35
1 Confidential Spring ををををををを ををををををををををを をを

Springをフル活用した 継続的デリバリーの実践

Embed Size (px)

Citation preview

Page 1: Springをフル活用した 継続的デリバリーの実践

1

Confidential

Spring をフル活用した継続的デリバリーの実践

辻 昌佳

Page 2: Springをフル活用した 継続的デリバリーの実践

2

Confidential

弊社について

Page 3: Springをフル活用した 継続的デリバリーの実践

3

ConfidentialSpring Summer 2015

©2015 Money Partners Solutions Co., Ltd.

株式会社 マネーパートナーズソリューションズ

平成 18 年 9 月 15 日設立

FX 、証券、カード事業等を展開するマネーパートナーズグループの一員。マネーパートナーズ社の兄弟会社として、同社のサービスを支える各種システムの開発、保守、運用を中心に事業展開をしています。

会社紹介

Page 4: Springをフル活用した 継続的デリバリーの実践

4

ConfidentialSpring Summer 2015

©2015 Money Partners Solutions Co., Ltd.

弊社開発事例

マネーパートナーズ社のサービスを支える各種システム

サーバーサイドはすべて Spring フレームワークを使用

• 会員ポータルシステム• FX 取引システム• 口座開設システム

• CRM システム• 帳票システム      他多数

Page 5: Springをフル活用した 継続的デリバリーの実践

5

Confidential

弊社の開発体制

Page 6: Springをフル活用した 継続的デリバリーの実践

6

ConfidentialSpring Summer 2015

©2015 Money Partners Solutions Co., Ltd.

ドメインごとに 5 チームポータル開発チーム … 会員専用ポータルシステム等取引基幹系チーム  … 証券取引システム等取引ツールチーム  … スマホアプリ用ゲートウェイシステム等社内チーム     … 帳票システム、CRMシステム等共通開発チーム   … ライブラリ・フレームワーク開発、サポート

各チームの開発者数は状況によりばらばら( 2 ~ 10 数名)

開発期間は状況によりばらばら( 1 ヵ月~ 6 ヵ月以上…)

開発~保守・運用体制

安定した開発・保守できるのか?

Page 7: Springをフル活用した 継続的デリバリーの実践

7

ConfidentialSpring Summer 2015

©2015 Money Partners Solutions Co., Ltd.

小規模~中規模プロダクトを多数かかえている。

いかにして効率よくリリース、保守しつづけていくか?

  チームごとに専属の開発者をアサインするのは非効率✓  アーキテクチャが異なると学習のオーバーヘッドが大きい✓  独自の構成があると担当が限られてしまい問題解決が遅れる✓

課題

Page 8: Springをフル活用した 継続的デリバリーの実践

8

Confidential

フレームワークによる解決

Page 9: Springをフル活用した 継続的デリバリーの実践

9

ConfidentialSpring Summer 2015

Spring フレームワークを基盤とした、共通の開発手法を確立。順次、自社プロダクトに適用しつづけ、今に至る。

©2015 Money Partners Solutions Co., Ltd.

Springフレームワークによる解決

参考: 2014 年 JSUG 勉強会発表資料「 Spring Boot を用いたドメイン駆動設計」http://sssslide.com/www.slideshare.net/jkazama/jsug-20141127

Page 10: Springをフル活用した 継続的デリバリーの実践

10

ConfidentialSpring Summer 2015

©2015 Money Partners Solutions Co., Ltd.

チーム間で開発者を共有できるようになった

• 保守で必要な開発者をキープしつつ、必要に応じて他チームへアサインできるようになっている。

• 他チームにアサインされても少ない学習量で開発を行える。

フレームワークの導入効果

Page 11: Springをフル活用した 継続的デリバリーの実践

11

ConfidentialSpring Summer 2015

©2015 Money Partners Solutions Co., Ltd.

保守、運用が容易にできるようになった

• 構成が統一されているので、問題発生時も一次調査程度であれば、だれでもできる。

• デプロイやプロセス起動等のマニュアル作業をツール化しており、定型保守作業が容易にできる。

• 運用保守作業においてトラックナンバーが 1 にならない。

フレームワークの導入効果

Page 12: Springをフル活用した 継続的デリバリーの実践

12

ConfidentialSpring Summer 2015

©2015 Money Partners Solutions Co., Ltd.

統一感を持った見積もりができるようになった

• ベースアーキテクチャが同じなので数値がぶれにくい。

• ドメイン固有の開発作業の見積もり部分のチェックがしやすい。

• テンプレート化した見積もりツールで見積もり作業が楽にできる。

フレームワークの導入効果

Page 13: Springをフル活用した 継続的デリバリーの実践

13

ConfidentialSpring Summer 2015

©2015 Money Partners Solutions Co., Ltd.

フレームワークの導入効果

会社全体で柔軟性のある開発体制で、サービスのリリース・保守が行えるようになった

  チーム間で開発者を共有できるようになった✓  保守、運用が容易にできるようになった✓  統一感を持った見積もりができるようになった✓

Page 14: Springをフル活用した 継続的デリバリーの実践

14

Confidential

フレームワークについて

Page 15: Springをフル活用した 継続的デリバリーの実践

15

ConfidentialSpring Summer 2015

©2015 Money Partners Solutions Co., Ltd.

Spring Framework+Hibernateエンタープライズアーキテクチャに関心のある層に認知されており、コミュニティやメンテナンスが活発なフレームワークを採用した。

フレームワーク

そのまま一般の開発に渡して開発するにはリスクがある

Page 16: Springをフル活用した 継続的デリバリーの実践

16

ConfidentialSpring Summer 2015

©2015 Money Partners Solutions Co., Ltd.

MPs eXtension Framework ( MPX フレームワーク)社内での開発生産性向上を目的としたフレームワーク。Spring+Hibernate をベースに、統一感のあるドメインロジックの構築をおこなうための基盤ロジック、エンタープライズ開発に必要となる共通部品を持たせた。

フレームワーク

基盤が共通なら運用も共通化できるはず…

Page 17: Springをフル活用した 継続的デリバリーの実践

17

ConfidentialSpring Summer 2015

©2015 Money Partners Solutions Co., Ltd.

MPX-Toolプロジェクトの初動を早めるための自動生成ツールと、運用で必要となるデプロイ等の定型作業を集約したスクリプトのセットを用意した。

フレームワーク+ツール

開発から保守まで一貫した基盤が準備できた

Page 18: Springをフル活用した 継続的デリバリーの実践

18

ConfidentialSpring Summer 2015

©2015 Money Partners Solutions Co., Ltd.

フレームワークのアーキテクチャー

TomcatMVCRemoting

JMS

Springコア

Hibernate

コントローラー ファサード

サービス

ドメインモデル

監査・イベント

分散プロセス制御

マルチテナント制御

ユーティリティ類

データベース / ファイルシステム

UI / 外部サービス

Jasper

Page 19: Springをフル活用した 継続的デリバリーの実践

19

ConfidentialSpring Summer 2015

©2015 Money Partners Solutions Co., Ltd.

自動生成、ビルド、リリース、運用作業をサポート。

ツールの利用イメージ

リポジトリ

業務設計者

モデル設計

設計成果物 プロジェクト構成

プロジェクト・モデル生成

アーキテクト

CI ツール

ビルド

開発

CI サーバ

開発者

一括リリース、起動 /停止

配付サーバ 稼働サーバ

開発者・運用者

Page 20: Springをフル活用した 継続的デリバリーの実践

20

ConfidentialSpring Summer 2015

©2015 Money Partners Solutions Co., Ltd.

フレームワーク

Springベースのフレームワークとツールセットを活用して、継続的デリバリを実現

 ✓ Spring+Hibernate の強力な機能の利用

 ✓MPX フレームワークによる開発効率化

  ツールによる運用支援✓

Page 21: Springをフル活用した 継続的デリバリーの実践

21

Confidential

フレームワーク適用例

Page 22: Springをフル活用した 継続的デリバリーの実践

22

ConfidentialSpring Summer 2015

適用パターン –顧客ポータル(1)-

©2015 Money Partners Solutions Co., Ltd.

基幹システム

ポータル固有実装

基幹 API

ポータルAPI

ベースアーキテクチャ

FX 会員サービス

ポータル DB 基幹 DB

メッセージング

Remoting

SSO

DB 参照

Page 23: Springをフル活用した 継続的デリバリーの実践

23

ConfidentialSpring Summer 2015

適用パターン –顧客ポータル(2)-

©2015 Money Partners Solutions Co., Ltd.

顧客ポータル

会員サービス( FX ・ CFD ・証券・カード)

ポータル DB

FX

CFD

証券

カード

メッセージング等各種連携

Page 24: Springをフル活用した 継続的デリバリーの実践

24

Confidential

フレームワークデモ

Page 25: Springをフル活用した 継続的デリバリーの実践

25

ConfidentialSpring Summer 2015

©2015 Money Partners Solutions Co., Ltd.

デモ

自動生成デモ1. Git リポジトリからプロジェクトテンプレートをダウンロード2. サンプルプロジェクトを自動構築3. プロセスの起動4. Swagger からサーバの API を確認5. 組込 H2 データベース上のデータを確認

Page 26: Springをフル活用した 継続的デリバリーの実践

26

ConfidentialSpring Summer 2015

©2015 Money Partners Solutions Co., Ltd.

デモ

自動生成デモ

Page 27: Springをフル活用した 継続的デリバリーの実践

27

ConfidentialSpring Summer 2015

©2015 Money Partners Solutions Co., Ltd.

デモ

デプロイ~リリースデモ1. 仮想マシンにデプロイ2. 仮想マシン上にリリース3. プロセスの起動4. Swagger からサーバの API を確認5. 組込 H2 データベース上のデータを確認6. プロセスの終了

Page 28: Springをフル活用した 継続的デリバリーの実践

28

ConfidentialSpring Summer 2015

©2015 Money Partners Solutions Co., Ltd.

デモ

デプロイ ~ リリースデモ

Page 29: Springをフル活用した 継続的デリバリーの実践

29

ConfidentialSpring Summer 2015

©2015 Money Partners Solutions Co., Ltd.

デモ

リポジトリ

業務設計者

モデル設計

設計成果物 プロジェクト構成

プロジェクト・モデル生成

アーキテクト

一括リリース、起動 /停止

配付サーバ 稼働サーバ

開発者・運用者

ツールのサポートにより開発者が開発に専念できる

CI ツール

ビルド

開発

CI サーバ

開発者

Page 30: Springをフル活用した 継続的デリバリーの実践

30

Confidential

これから

Page 31: Springをフル活用した 継続的デリバリーの実践

31

ConfidentialSpring Summer 2015

©2015 Money Partners Solutions Co., Ltd.

MPX Frameworkのこれから

Spring のライブラリ群の取り込み

当フレームワークを活用したシステムの共同開発

マイクロサービス開発への対応

Page 32: Springをフル活用した 継続的デリバリーの実践

32

ConfidentialSpring Summer 2015

©2015 Money Partners Solutions Co., Ltd.

TomcatMVCRemoting

JMS

Springコア

Hibernate

コントローラー ファサード

サービス

ドメインモデル

監査・イベント

分散プロセス制御

マルチテナント制御

ユーティリティ類

データベース / ファイルシステム

UI / 外部サービス

Jasper

フレームワークの拡張

OAuth REST AMQP

Security

Cassandra Solr

Boot

テストツール

Page 33: Springをフル活用した 継続的デリバリーの実践

33

ConfidentialSpring Summer 2015

©2015 Money Partners Solutions Co., Ltd.

弊社のこれから

EC や物流など他業種への展開

サービスの継続性を損なわない、システムの移行開発

当社のノウハウを展開して、開発の効率化をサポート

Page 34: Springをフル活用した 継続的デリバリーの実践

34

Confidential

ご清聴ありがとうございました

Page 35: Springをフル活用した 継続的デリバリーの実践

35

ConfidentialSpring Summer 2015

©2015 Money Partners Solutions Co., Ltd.

お問い合わせ先

株式会社マネーパートナーズソリューションズサービス推進室  [email protected]