SlideShare a Scribd company logo
1 of 59
Download to read offline
Copyright© Growth Architectures & Teams, Inc. All rights reserved.
“実ビジネス”のための、
アプリケーションモダナイゼーション導⼊ステップ
なぜ「マイクロサービス“化”」が必要なのか
2019/8/12
グロース・アーキテクチャ&チームス株式会社
代表取締役 鈴⽊ 雄介
トラディショナル企業のための、“ビジネスに効く”、アプリケーションモダナイゼーション実践法
〜アプリ開発・提供の「スピードと品質」をどう両⽴するか〜
Copyright© Growth Architectures & Teams, Inc. All rights reserved.
⾃⼰紹介
• 鈴⽊雄介
–Graat(グラーツ)
» グロース・アーキテクチャ&チームス
株式会社
▸ 代表取締役 社⻑
» http://www.graat.co.jp/
–SNS
» @yusuke_arclamp
» http://arclamp.hatenablog.com/
1
Copyright© Growth Architectures & Teams, Inc. All rights reserved.
アジェンダ
• DX時代のシステム開発
• マイクロサービスとは
• マイクロサービス化の基本戦略
• 導⼊の進め⽅
• まとめ
2
Copyright© Growth Architectures & Teams, Inc. All rights reserved.
DX時代のシステム開発
3
Copyright© Growth Architectures & Teams, Inc. All rights reserved.
DX時代のシステム開発
• システム開発を「早く」したい
–「実装が早い」ことではない
–ユーザーへのフィードバックを早く
4
ユーザー
企画
実装
リリース
Copyright© Growth Architectures & Teams, Inc. All rights reserved.
DX時代のシステム開発
• 何が「早さ」を阻害するのか︖
–変更すべき部分は1ヶ所( )
–でも、「そこを変更すれば終わり」ではない
5
機能
A
機能
B
機能
C
Copyright© Growth Architectures & Teams, Inc. All rights reserved.
DX時代のシステム開発
• 何が「早さ」を阻害するのか︖
–影響調査︓変更が、どこに影響するのか︖
–回帰テスト︓想定しない変更が起きないか︖
» リグレッションテスト
–リリース調整︓他の機能とリリースを合わせる
6
機能
A
機能
B
機能
C
Copyright© Growth Architectures & Teams, Inc. All rights reserved.
DX時代のシステム開発
• 「機能間調整」が早さを阻害する
–変更作業そのものは⼩さな⼯数
–様々な調整作業に⼯数と期間がかかる
» コストもかかる
» 外注していれば⾒積もり、要員調達、受⼊テストも…
• モノリス(⼀枚岩)なシステムのデメリット
–機能間が密結合で、互いに依存する
7
Copyright© Growth Architectures & Teams, Inc. All rights reserved.
• いかに機能間調整を無くすか︖
–機能間の依存関係を低くすればいい
» 結合度を下げる、疎結合化する
–変更をしたら、他機能を気にすることなくリリース
» 影響調査不要、再帰テスト不要、リリース調整不要
DX時代のシステム開発
8
機能
A
機能
B
機能
C
Copyright© Growth Architectures & Teams, Inc. All rights reserved.
マイクロサービスとは
9
Copyright© Growth Architectures & Teams, Inc. All rights reserved.
マイクロサービスとは
• 機能間を疎結合に保ちながらシステム全体を動
かすためのテクニック/テクノロジー群
–総称がマイクロサービスアーキテクチャ
» Microservices、MSA
10
サービス
A
サービス
B
サービス
C
Copyright© Growth Architectures & Teams, Inc. All rights reserved.
マイクロサービスとは
• マイクロサービスの特性
–機能ごとにインスタンスを分ける
–機能ごとに開発チームを分ける
–機能特性にあわせて技術要素を選択する
–その開発チームで運⽤する
–機能間の連携は WebAPI を通じて⾏う
–機能間でデータベースを共有していない
–機能のリリースは無停⽌で⾏う
–連携先サービスがダウンしても稼働するようにする
–機能単位で再構築を⾏う
11
Copyright© Growth Architectures & Teams, Inc. All rights reserved.
マイクロサービスとは
• 機能ごとに分ける
–インスタンスを分ける
–開発チームを分ける
–技術要素は機能特性に合わせて選択する
–開発チームで運⽤する(継続開発)
12
サービスA サービスB サービスC
チームA チームB
開発 運⽤ 開発 運⽤
技術 技術 技術
Copyright© Growth Architectures & Teams, Inc. All rights reserved.
マイクロサービスとは
• 機能を疎に連携させる≒変更を伝播させない
–WebAPIを通じて連携する
» ネットワークオーバーヘッドが⼤きいが明確になる
–データベースは共有しない
» 共有すると変更が伝播しやすくなる
13
サービスA サービスB サービスC
DB A DB B DB C
Copyright© Growth Architectures & Teams, Inc. All rights reserved.
マイクロサービスとは
• 他機能に影響しない/依存しない
–無停⽌リリースを⾏う
» ブルーグリーンデプロイメント
–連携先サービスがダウンしても稼働する
» ⾃分で障害対策を⾏う
14
サービスA
サービスB
v1.0
サービスB
v1.1
サービスA サービスB障害
障害を伝播
させない
Copyright© Growth Architectures & Teams, Inc. All rights reserved.
マイクロサービスとは
• ⼤きな機能変更に対応する
–機能を再構築する
» 機能単位で再構築することで、全体再構築を避ける
15
サービスA
サービスB
サービスD
Copyright© Growth Architectures & Teams, Inc. All rights reserved.
マイクロサービスとは
• これまで「システム間連携」と呼んでいたもの
を機能単位に持ち込んだ
– 機能ごとにインスタンス、チーム、技術を分ける
– 機能間の連携は WebAPI 。DBは共有しない
– リリースは無停⽌。障害時対策もしておく
– 機能単位で再構築を⾏う
16
システムA
機能A
機能B
機能C
システムB
機能D
機能E
機能F
機能A
機能B
機能C
機能D
機能E
機能F
システム全体
Copyright© Growth Architectures & Teams, Inc. All rights reserved.
マイクロサービスとは
• MSAを実現できた技術的背景
–クラウド(仮想化技術)
» 仮想サーバ、仮想ストレージ、仮想ネットワーク
–インフラ構築の⾃動化
» 「コピーして新規作成」が容易
–運⽤作業の⾃動化
» PaaS/マネージドサービスの登場でメンテコストが激減
• インスタンス数を増やすコストが低くなった
–分けることのデメリットが⼩さい
17
Copyright© Growth Architectures & Teams, Inc. All rights reserved.
マイクロサービスとは
• マイクロサービスとは
–⽬的︓システム全体としての変化を早くする
–戦略︓機能の変更にともなう調整を排除する
–戦術︓システムを機能単位に分割していく
–背景︓クラウド・⾃動化などの技術
• そのための具体的な戦術集
–ノウハウ、テクニック、テクノロジーなど
18
Copyright© Growth Architectures & Teams, Inc. All rights reserved.
19https://www.flickr.com/photos/pictureperfectpose/76138988/
Copyright© Growth Architectures & Teams, Inc. All rights reserved.
マイクロサービスとは
• マイクロサービスは万能ではない
–モノリスのメリットが失われる
» 密結合による効率性
–システム間連携で発⽣する問題が機能間連携で発⽣
するようになる
» 代表例はデータの不整合、ネットワークレイテンシ
–システム全体の運営ノウハウが全く異なる
» 管理対象が圧倒的に増えるため、これまでのシステム横断
管理⼿法ではオーバーヘッドが⼤きすぎる
20
Copyright© Growth Architectures & Teams, Inc. All rights reserved.
マイクロサービスとは
• システム再構築でMSAは実現できない
–そもそも、⼀括再構築を避けるのがMSA
–疎結合による⾮効率化に負けていく
» チーム間格差が埋まらない、機能間テストができない
–適切な分割点を⾒つけるのが困難
» データ不整合や性能問題が多発する
–組織的な運営ノウハウがついていかない
» 既存の考え⽅でガバナンスを効かせるとMSAにならない
21
Copyright© Growth Architectures & Teams, Inc. All rights reserved.
マイクロサービス化の基本戦略
22
Copyright© Growth Architectures & Teams, Inc. All rights reserved.
マイクロサービス化の基本戦略
• マイクロサービス“化”
–対象システムを段階的にマイクロサービス化
–<重要>⼀括再構築では絶対に無理
• だんだん成熟度がレベルアップしていく
–モノリス(現状)をレベル1とする
–理想形までを連続的に捉え、段階的に適⽤していく
–レベルアップを通じて組織もレベルアップする
23
Copyright© Growth Architectures & Teams, Inc. All rights reserved.
マイクロサービス化の基本戦略
• マイクロサービスの適⽤レベル
24
項⽬ 概要
1 モノリス 機能はシステム内で密結合している
2 API連携 モノリスとAPI連携するサービスがある
3 複数サービス 基盤が整備され、DevOpsにも取り組む
4 ⼀般的なMSA ⾮同期キュー利⽤や無停⽌リリース
5 ⾼度なMSA 数⼗〜数百のサービス
6 先進的なMSA 数百〜数千のサービス
7 世界最先端なMSA 数千〜のサービス、MSA技術の開発
Copyright© Growth Architectures & Teams, Inc. All rights reserved.
マイクロサービス化の基本戦略
• マイクロサービスの適⽤レベル
–レベル7は、Google、Amazon、Microsoftなどの限
られた企業
–多くの事例はレベル4-5なので、レベル1の状態から
いきなり真似することは危険
–レベル上げには試⾏錯誤をおこなうこと
» うまくいくか分からないなら、試すしかないし、その結果
としてうまくいかないことが分かるのは正しい成果
25
Copyright© Growth Architectures & Teams, Inc. All rights reserved.
基本戦略
• ストラングラーパターン
–対象システムをマイクロサ
ービス化するにあたり、対
象システムに⼿を⼊れては
いけない
–「既存システムを分割して
機能を切り出す」のではな
く「新しく作ったサービス
で機能をすり替える」
26https://www.flickr.com/photos/paulafunnell/3871868188/
Copyright© Growth Architectures & Teams, Inc. All rights reserved.
• 既存システムは「使わないようにしていく」
–最もコスト効果が⾼く、便利な⼿法
サービス
A
マイクロサービス化の基本戦略
27
システムA
機能A
機能B
機能C
クライアント
システムA
機能A
機能B
機能Cクライアント
機能A
サービス
A
機能A
サービス
B
機能B
サービス
C
機能C
システムA
クライアント
Copyright© Growth Architectures & Teams, Inc. All rights reserved.
マイクロサービス化の基本戦略
• 新しいサービスに対するアプローチ 1/2
–開発はアジャイル
» チームが継続的にサービスの改善に取り組む
» あくまでもオーナーはビジネス側にやってもらう
▸ 企画→開発→運⽤の⼀体化が重要
» 既存の組織とは分断した場所、チームが望ましい
28
Copyright© Growth Architectures & Teams, Inc. All rights reserved.
マイクロサービス化の基本戦略
• 新しいサービスに対するアプローチ 2/2
–運⽤は⾃動化していく
» 運⽤の主体は開発チーム
» ただ、なるべく運⽤作業を⾃動化し、既存の運⽤ツールや
ルールを適⽤しようとしない
» DevOpsチームが⾃動化を実現し、開発チームはそれらを利
⽤することで運⽤を⾏う
» できる限り、クラウドのマネージドサービスを利⽤する
» サービス間連携もマネージドサービス化
▸ 認証認可、ロギング、メッセージ連携、APIゲートウェイなど、サー
ビス間の連携⽅式は基盤チームが整備する
29
Copyright© Growth Architectures & Teams, Inc. All rights reserved.
導⼊の進め⽅
30
Copyright© Growth Architectures & Teams, Inc. All rights reserved.
導⼊の進め⽅
• レベル2→3
–サービスを分割する
–サービスを連携させる
• レベル5
–今後の進化
31
Copyright© Growth Architectures & Teams, Inc. All rights reserved.
導⼊の進め⽅
サービスの分割
32
Copyright© Growth Architectures & Teams, Inc. All rights reserved.
サービスを分割する
• どのようにサービスの分割境界を決めるか︖
33
技術的に
難易度が⾼い
低い
その機能のリリースが
早くなることで
ビジネスに貢献する
貢献しない
Copyright© Growth Architectures & Teams, Inc. All rights reserved.
サービスを分割する
• サービス分割の考え⽅
–ともかく「ビジネスに貢献するか」
» これがマイクロサービスの根幹だから
–技術的難易度は関係ない
» ただし、ビジネス継続に影響がでるリスクがあるなら回避
するしかない
–適切なサイズであること
» 1チーム(3­7名)が、4週間以内に初期構築できること
▸ 本番相当環境で、ビジネス的なターゲットユーザーによる利⽤(α/β
)が可能になる状態
34
Copyright© Growth Architectures & Teams, Inc. All rights reserved.
サービスを分割する
• よくある質問 1/2
–誰が境界を決めるのですか︖
» 開発チームと相談しながらビジネス側のオーナーが決める
–細かいほどいいんですよね︖
» 細かすぎると管理が⼤変。API単位はナノレベル
–技術は全部共通/個別がいいんですよね︖
» チームのスキルや対象サービスによってケースバイケース
–DBを分割したいです
» 共有データベースで問題ないです(詳細は次章)
35
Copyright© Growth Architectures & Teams, Inc. All rights reserved.
サービスを分割する
• よくある質問 2/2
–サービスはいくつぐらいがいいですか︖
» 最初は1つ。DevOpsがないなら増やしても⽚⼿まで
–Kubernetesを使いたいです
» 絶対にいりません。サービスが数⼗になってから
–<流⾏りのテクノロジー>を使いたいです
» たぶん、いらないです
» PoCをする、チームのスキルと⾒合う、特に保守性に注意
» 場合によってはプロダクトがなくなることを意識する
36
Copyright© Growth Architectures & Teams, Inc. All rights reserved.
導⼊の進め⽅
サービスを連携させる
37
Copyright© Growth Architectures & Teams, Inc. All rights reserved.
サービスを連携させる
• サービス間でのデータ分割を進める
–保守性︓データの定義変更による影響↓
–性能︓データアクセスの性能劣化による影響↓
–可⽤性︓データアクセスの障害による影響↓
• サービス間でのデータ整合性との戦い
–分割していくほど整合性は弱くなる
» データの鮮度、整合されるまでの期間など
–どこまで許容できるのか︖が⼤事な判断
38
Copyright© Growth Architectures & Teams, Inc. All rights reserved.
データの分割
• RDBはうまく使う
–RDBの実績は硬いので、うまく利⽤する
–共有データベースパターンもオススメ
–既存のRDBの機能でも、いくつかの選択肢がある
» 詳細次ページ
–もちろん、デメリットは理解する
» 保守性、性能、可⽤性
39
Copyright© Growth Architectures & Teams, Inc. All rights reserved.
データの分割
40
サービス
A
モノリス
システム
共有
サービス
A
モノリス
システム
ビュー
サービス
A
モノリス
システム
レプリケーション
サービス
A
モノリス
システム
ETL
Copyright© Growth Architectures & Teams, Inc. All rights reserved.
データの分割
• APIによるサービス間連携
–⾮同期メッセージングを活⽤する
» 保守性、性能、可⽤性の観点でメリットは⼤きい
» ただし、エラー発⽣時に別ルートでの対応が必要
41
サービス
A
サービス
B
同期 ⾮同期
サービス
A
サービス
B
Copyright© Growth Architectures & Teams, Inc. All rights reserved.
データ分割
• イベントソーシング
–データの状態ではなく、変更イベントを⾮同期に受
信することで擬似的にデータを共有する
–サービスBは「興味があるイベント」だけに対して処
理を⾏い、その結果を保持すれば良い
42
サービス
A
サービス
B
Copyright© Growth Architectures & Teams, Inc. All rights reserved.
データの分割
43
⾼い
多い
低い
少ない
ファイル
連携
(ETL)
同期
API
データ量
⾮同期
API
同期性
イベント
ソーシング
DB
共有
Copyright© Growth Architectures & Teams, Inc. All rights reserved.
導⼊の進め⽅
今後の進化
44
Copyright© Growth Architectures & Teams, Inc. All rights reserved.
• サービスの数が増えたらどうするのか︖
–成熟度レベル5以上
–全社の主要システムがマイクロサービス化され、そ
れらのサービス数が数⼗〜数百
• 注⽬はKubernetes関連技術の進歩
–実質的な標準であり、今後の進化の軸となる製品
今後の進化
45
Copyright© Growth Architectures & Teams, Inc. All rights reserved.
今後の進化
• コンテナ(Docker)
–アプリケーションとミドルウェアをパッケージング
–ミドルウェア構成のコード化=バージョン管理
» 開発チームで容易にミドルウェアを管理可能に
» インフラチームから⾒た多様性を吸収=管理コスト低減
46
サービス
OS
ミドルウェア
アプリケーション
サービス
OS
コンテナ
アプリケーション
ミドルウェア
コンテナエンジン
Copyright© Growth Architectures & Teams, Inc. All rights reserved.
Node
Node
• コンテナオーケストレーション
–あらゆるサービスもコンテナとしては同じ
–あとはリソースの割り当てと配置
• Kubernetes
–2014年にGoogleが発表、2015年にCNCFへ寄贈
Master
今後の進化
47
kubectl
API Server
etcd 設定
コントロール
マネージャー
スケジューラー
設定 設定
Node
コンテナ
レジストリ
kubelet Pod
Copyright© Growth Architectures & Teams, Inc. All rights reserved.
今後の進化
• サービスメッシュ
–サービス間のAPI連携を管理する必要がある
–ルーティング、性能分析、障害時挙動など
• Istio
–2017年にGoogle、IBM、Lyftが公開
48
Kubernetes
コントロールプレーン
Pod
サービスA
Envoy
(Proxy)
Pod
サービスA
Envoy
(Proxy)
HTTP/HTTPS
/gRPC
・ルーティングルール
・認証管理
・テレメトリ情報の収集
・障害時ポリシーの管理
Copyright© Growth Architectures & Teams, Inc. All rights reserved.
今後の進化
• サービスの管理を⾼度化/抽象化していく流れ
–Kubernetesオペレータ
» ミドルウェア製品の管理
» ミドルウェア型マネージドサービスの代替
–K Native
» アプリケーションの⾃動Pod化=サーバレス
» サーバ実⾏環境型マネージドサービスの代替
• 今後、クラウドサービスに対するポータビリテ
ィが⾼くなっていく
49
Copyright© Growth Architectures & Teams, Inc. All rights reserved.
今後の進化
• いま、何に取り組むべきか︖
–新規サービスをコンテナベースで管理する
» 既存技術と親和性も⾼い
–デプロイ先はコンテナ向けマネージドサービス
» AWS Fargate、Google App Engine、Azure App Service
–業務システムであればサーバレスよりも優先
» AWS Lambda、Azure Functions
» シェルスクリプト感覚で使うもの
50
Copyright© Growth Architectures & Teams, Inc. All rights reserved.
まとめ
51
Copyright© Growth Architectures & Teams, Inc. All rights reserved.
DX時代のシステム開発
• 「機能間調整」が早さを阻害する
–変更作業そのものは⼩さな⼯数
–様々な調整作業に⼯数と期間がかかる
» 影響調査、再帰テスト、リリース調整
• 機能間の依存関係を低くして調整を減らす
–結合度を下げる、疎結合化する
52
Copyright© Growth Architectures & Teams, Inc. All rights reserved.
マイクロサービスとは
• これまで「システム間連携」と呼んでいたもの
を機能単位に持ち込んだもの
– 機能ごとにインスタンス、チーム、技術を分ける
– 機能間の連携は WebAPI 。DBは共有しない
– リリースは無停⽌。障害時対策もしておく
– 機能単位で再構築を⾏う
53
システムA
機能A
機能B
機能C
システムB
機能D
機能E
機能F
機能A
機能B
機能C
機能D
機能E
機能F
システム全体
Copyright© Growth Architectures & Teams, Inc. All rights reserved.
マイクロサービスとは
• マイクロサービスは万能ではない
–モノリスのメリットが失われる
» 密結合による効率性
–システム間連携で発⽣する問題が機能間連携で発⽣
するようになる
» 代表例はデータの不整合、ネットワークレイテンシ
–システム全体の運営ノウハウが全く異なる
» 管理対象が圧倒的に増えるため、これまでのシステム横断
管理⼿法ではオーバーヘッドが⼤きすぎる
54
Copyright© Growth Architectures & Teams, Inc. All rights reserved.
マイクロサービス化の基本戦略
• マイクロサービス“化”
–対象システムを段階的にマイクロサービス化
–⼀括再構築では絶対に無理
• ストラングラーパターン
–既存システムに⼿を⼊れるのではなく、覆い隠す
• その他の取り組み
–アジャイル、DevOps、プラットフォーム化
55
Copyright© Growth Architectures & Teams, Inc. All rights reserved.
導⼊の進め⽅
• サービスを分割する
–ビジネスに貢献するかどうかを最優先に判断する
–適切なサイズに、まずは1つ切り出すところから
• データを分割する
–サービス間のデータ不整合を、どう許容するか
–許容するほど⾮機能上のメリットは⼤きい
• 今後の進化
–コンテナ、Kubernetesに注⽬
–コンテナは早期に取り組みを開始できる状態
56
Copyright© Growth Architectures & Teams, Inc. All rights reserved.
さいごに
• ⼀括再構築、ダメ絶対
–既存資産を活⽤しながら段階的に取り組む
–段階的に取り組むためのマイクロサービス
• マイクロサービス化の過程が組織変⾰
–実は技術的な変化よりもカルチャーの変化が⼤きい
–企画と開発と運⽤という垣根を越える
57
Copyright© Growth Architectures & Teams, Inc. All rights reserved.
“実ビジネス”のための、
アプリケーションモダナイゼーション導⼊ステップ
なぜ「マイクロサービス“化”」が必要なのか
2019/8/12
グロース・アーキテクチャ&チームス株式会社
代表取締役 鈴⽊ 雄介
トラディショナル企業のための、“ビジネスに効く”、アプリケーションモダナイゼーション実践法
〜アプリ開発・提供の「スピードと品質」をどう両⽴するか〜

More Related Content

What's hot

マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!mosa siru
 
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけらAtsushi Nakamura
 
はじめてのElasticsearchクラスタ
はじめてのElasticsearchクラスタはじめてのElasticsearchクラスタ
はじめてのElasticsearchクラスタSatoyuki Tsukano
 
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理NTT DATA Technology & Innovation
 
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)NTT DATA Technology & Innovation
 
今更ながらの「マイクロサービス」
今更ながらの「マイクロサービス」今更ながらの「マイクロサービス」
今更ながらの「マイクロサービス」Hideaki Tokida
 
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのかシリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのかAtsushi Nakada
 
40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていることonozaty
 
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -onozaty
 
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」Takuto Wada
 
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)Yoshitaka Kawashima
 
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLiveDXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLiveTokoroten Nakayama
 
世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計増田 亨
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話Kumazaki Hiroki
 
ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門増田 亨
 
分散システムについて語らせてくれ
分散システムについて語らせてくれ分散システムについて語らせてくれ
分散システムについて語らせてくれKumazaki Hiroki
 
ドメイン駆動設計 分析しながら設計する
ドメイン駆動設計 分析しながら設計するドメイン駆動設計 分析しながら設計する
ドメイン駆動設計 分析しながら設計する増田 亨
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪Takuto Wada
 
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021Hiroshi Tokumaru
 
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Springドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring増田 亨
 

What's hot (20)

マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
 
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
 
はじめてのElasticsearchクラスタ
はじめてのElasticsearchクラスタはじめてのElasticsearchクラスタ
はじめてのElasticsearchクラスタ
 
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
 
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
 
今更ながらの「マイクロサービス」
今更ながらの「マイクロサービス」今更ながらの「マイクロサービス」
今更ながらの「マイクロサービス」
 
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのかシリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
 
40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること
 
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
 
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
 
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
 
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLiveDXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
 
世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
 
ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門
 
分散システムについて語らせてくれ
分散システムについて語らせてくれ分散システムについて語らせてくれ
分散システムについて語らせてくれ
 
ドメイン駆動設計 分析しながら設計する
ドメイン駆動設計 分析しながら設計するドメイン駆動設計 分析しながら設計する
ドメイン駆動設計 分析しながら設計する
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪
 
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
 
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Springドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
 

Similar to なぜ「マイクロサービス“化”」が必要なのか

くま(Kuma)でメッシュなマイクロサービス
くま(Kuma)でメッシュなマイクロサービスくま(Kuma)でメッシュなマイクロサービス
くま(Kuma)でメッシュなマイクロサービスssuser6b3f181
 
アーキテクチャとアジャイルプロジェクトをまともに進めるための両輪について-DevLOVE関西 #DevKan
アーキテクチャとアジャイルプロジェクトをまともに進めるための両輪について-DevLOVE関西 #DevKan アーキテクチャとアジャイルプロジェクトをまともに進めるための両輪について-DevLOVE関西 #DevKan
アーキテクチャとアジャイルプロジェクトをまともに進めるための両輪について-DevLOVE関西 #DevKan Yusuke Suzuki
 
アーキテクチャの進化から学ぶ、プラットフォームエンジニアリングへのアプローチ
アーキテクチャの進化から学ぶ、プラットフォームエンジニアリングへのアプローチアーキテクチャの進化から学ぶ、プラットフォームエンジニアリングへのアプローチ
アーキテクチャの進化から学ぶ、プラットフォームエンジニアリングへのアプローチYusuke Suzuki
 
20160710_PMI日本フォーラム2016_講演資料_ITI小久保v1.1
20160710_PMI日本フォーラム2016_講演資料_ITI小久保v1.120160710_PMI日本フォーラム2016_講演資料_ITI小久保v1.1
20160710_PMI日本フォーラム2016_講演資料_ITI小久保v1.1it-innovation
 
SIerとクラウドの付き合い方
SIerとクラウドの付き合い方SIerとクラウドの付き合い方
SIerとクラウドの付き合い方Yusuke Suzuki
 
【IMJ】デジタルマーケティングを加速させるヒントがここに imj jelly cms 事例活用セミナー
【IMJ】デジタルマーケティングを加速させるヒントがここに imj jelly cms 事例活用セミナー【IMJ】デジタルマーケティングを加速させるヒントがここに imj jelly cms 事例活用セミナー
【IMJ】デジタルマーケティングを加速させるヒントがここに imj jelly cms 事例活用セミナーIMJ Corporation
 
AWS における Microservices Architecture と DevOps を推進する組織と人とツール
AWS における Microservices Architecture と DevOps を推進する組織と人とツールAWS における Microservices Architecture と DevOps を推進する組織と人とツール
AWS における Microservices Architecture と DevOps を推進する組織と人とツールAmazon Web Services Japan
 
アジャイルコーチになって3ヶ月で学んだこと
アジャイルコーチになって3ヶ月で学んだことアジャイルコーチになって3ヶ月で学んだこと
アジャイルコーチになって3ヶ月で学んだことGraat(グラーツ)
 
【17-D-1】今どきのアーキテクチャを現場の立場で斬る
【17-D-1】今どきのアーキテクチャを現場の立場で斬る【17-D-1】今どきのアーキテクチャを現場の立場で斬る
【17-D-1】今どきのアーキテクチャを現場の立場で斬るDevelopers Summit
 
ヒーロー島 Visual Studio 2012
ヒーロー島 Visual Studio 2012ヒーロー島 Visual Studio 2012
ヒーロー島 Visual Studio 2012智治 長沢
 
ビジネスとITをリンクさせるアジャイルな組織のつくり方 - アジャイル経営カンファレンス2023
ビジネスとITをリンクさせるアジャイルな組織のつくり方 - アジャイル経営カンファレンス2023ビジネスとITをリンクさせるアジャイルな組織のつくり方 - アジャイル経営カンファレンス2023
ビジネスとITをリンクさせるアジャイルな組織のつくり方 - アジャイル経営カンファレンス2023Graat(グラーツ)
 
Base 20141011 1_for_slideshre
Base 20141011 1_for_slideshreBase 20141011 1_for_slideshre
Base 20141011 1_for_slideshre正善 大島
 
製造業向け量子コンピュータ時代のDXセミナー ~見える化、分析、予測、その先の最適化へ~
製造業向け量子コンピュータ時代のDXセミナー ~見える化、分析、予測、その先の最適化へ~製造業向け量子コンピュータ時代のDXセミナー ~見える化、分析、予測、その先の最適化へ~
製造業向け量子コンピュータ時代のDXセミナー ~見える化、分析、予測、その先の最適化へ~Fixstars Corporation
 
クラウド座談会資料
クラウド座談会資料クラウド座談会資料
クラウド座談会資料知礼 八子
 
基調講演「データのグループウェア化」
基調講演「データのグループウェア化」基調講演「データのグループウェア化」
基調講演「データのグループウェア化」Cybozucommunity
 
アーキテクチャの発掘に見る要求変化の発見 - 要求開発アライアンス2014年2月定例会
アーキテクチャの発掘に見る要求変化の発見 - 要求開発アライアンス2014年2月定例会アーキテクチャの発掘に見る要求変化の発見 - 要求開発アライアンス2014年2月定例会
アーキテクチャの発掘に見る要求変化の発見 - 要求開発アライアンス2014年2月定例会Yusuke Suzuki
 
[db tech showcase Tokyo 2016] A25: ACIDトランザクションをサポートするエンタープライズ向けNoSQL Databas...
[db tech showcase Tokyo 2016] A25: ACIDトランザクションをサポートするエンタープライズ向けNoSQL Databas...[db tech showcase Tokyo 2016] A25: ACIDトランザクションをサポートするエンタープライズ向けNoSQL Databas...
[db tech showcase Tokyo 2016] A25: ACIDトランザクションをサポートするエンタープライズ向けNoSQL Databas...Insight Technology, Inc.
 
「企業システムにおける意志決定とITサービス運営について」 ユーザ企業との協業によるエンタープライズ・アジャイルの支援 ~東京商工リサーチの事例~
「企業システムにおける意志決定とITサービス運営について」  ユーザ企業との協業によるエンタープライズ・アジャイルの支援 ~東京商工リサーチの事例~「企業システムにおける意志決定とITサービス運営について」  ユーザ企業との協業によるエンタープライズ・アジャイルの支援 ~東京商工リサーチの事例~
「企業システムにおける意志決定とITサービス運営について」 ユーザ企業との協業によるエンタープライズ・アジャイルの支援 ~東京商工リサーチの事例~グロースエクスパートナーズ株式会社/Growth xPartners Incorporated.
 
クラウド運用3足の草鞋151102
クラウド運用3足の草鞋151102クラウド運用3足の草鞋151102
クラウド運用3足の草鞋151102Keiichi Hashimoto
 

Similar to なぜ「マイクロサービス“化”」が必要なのか (20)

くま(Kuma)でメッシュなマイクロサービス
くま(Kuma)でメッシュなマイクロサービスくま(Kuma)でメッシュなマイクロサービス
くま(Kuma)でメッシュなマイクロサービス
 
アーキテクチャとアジャイルプロジェクトをまともに進めるための両輪について-DevLOVE関西 #DevKan
アーキテクチャとアジャイルプロジェクトをまともに進めるための両輪について-DevLOVE関西 #DevKan アーキテクチャとアジャイルプロジェクトをまともに進めるための両輪について-DevLOVE関西 #DevKan
アーキテクチャとアジャイルプロジェクトをまともに進めるための両輪について-DevLOVE関西 #DevKan
 
アーキテクチャの進化から学ぶ、プラットフォームエンジニアリングへのアプローチ
アーキテクチャの進化から学ぶ、プラットフォームエンジニアリングへのアプローチアーキテクチャの進化から学ぶ、プラットフォームエンジニアリングへのアプローチ
アーキテクチャの進化から学ぶ、プラットフォームエンジニアリングへのアプローチ
 
20160710_PMI日本フォーラム2016_講演資料_ITI小久保v1.1
20160710_PMI日本フォーラム2016_講演資料_ITI小久保v1.120160710_PMI日本フォーラム2016_講演資料_ITI小久保v1.1
20160710_PMI日本フォーラム2016_講演資料_ITI小久保v1.1
 
SIerとクラウドの付き合い方
SIerとクラウドの付き合い方SIerとクラウドの付き合い方
SIerとクラウドの付き合い方
 
【IMJ】デジタルマーケティングを加速させるヒントがここに imj jelly cms 事例活用セミナー
【IMJ】デジタルマーケティングを加速させるヒントがここに imj jelly cms 事例活用セミナー【IMJ】デジタルマーケティングを加速させるヒントがここに imj jelly cms 事例活用セミナー
【IMJ】デジタルマーケティングを加速させるヒントがここに imj jelly cms 事例活用セミナー
 
AWS における Microservices Architecture と DevOps を推進する組織と人とツール
AWS における Microservices Architecture と DevOps を推進する組織と人とツールAWS における Microservices Architecture と DevOps を推進する組織と人とツール
AWS における Microservices Architecture と DevOps を推進する組織と人とツール
 
アジャイルコーチになって3ヶ月で学んだこと
アジャイルコーチになって3ヶ月で学んだことアジャイルコーチになって3ヶ月で学んだこと
アジャイルコーチになって3ヶ月で学んだこと
 
【17-D-1】今どきのアーキテクチャを現場の立場で斬る
【17-D-1】今どきのアーキテクチャを現場の立場で斬る【17-D-1】今どきのアーキテクチャを現場の立場で斬る
【17-D-1】今どきのアーキテクチャを現場の立場で斬る
 
ヒーロー島 Visual Studio 2012
ヒーロー島 Visual Studio 2012ヒーロー島 Visual Studio 2012
ヒーロー島 Visual Studio 2012
 
ビジネスとITをリンクさせるアジャイルな組織のつくり方 - アジャイル経営カンファレンス2023
ビジネスとITをリンクさせるアジャイルな組織のつくり方 - アジャイル経営カンファレンス2023ビジネスとITをリンクさせるアジャイルな組織のつくり方 - アジャイル経営カンファレンス2023
ビジネスとITをリンクさせるアジャイルな組織のつくり方 - アジャイル経営カンファレンス2023
 
Base 20141011 1_for_slideshre
Base 20141011 1_for_slideshreBase 20141011 1_for_slideshre
Base 20141011 1_for_slideshre
 
製造業向け量子コンピュータ時代のDXセミナー ~見える化、分析、予測、その先の最適化へ~
製造業向け量子コンピュータ時代のDXセミナー ~見える化、分析、予測、その先の最適化へ~製造業向け量子コンピュータ時代のDXセミナー ~見える化、分析、予測、その先の最適化へ~
製造業向け量子コンピュータ時代のDXセミナー ~見える化、分析、予測、その先の最適化へ~
 
クラウド座談会資料
クラウド座談会資料クラウド座談会資料
クラウド座談会資料
 
基調講演「データのグループウェア化」
基調講演「データのグループウェア化」基調講演「データのグループウェア化」
基調講演「データのグループウェア化」
 
アーキテクチャの発掘に見る要求変化の発見 - 要求開発アライアンス2014年2月定例会
アーキテクチャの発掘に見る要求変化の発見 - 要求開発アライアンス2014年2月定例会アーキテクチャの発掘に見る要求変化の発見 - 要求開発アライアンス2014年2月定例会
アーキテクチャの発掘に見る要求変化の発見 - 要求開発アライアンス2014年2月定例会
 
[db tech showcase Tokyo 2016] A25: ACIDトランザクションをサポートするエンタープライズ向けNoSQL Databas...
[db tech showcase Tokyo 2016] A25: ACIDトランザクションをサポートするエンタープライズ向けNoSQL Databas...[db tech showcase Tokyo 2016] A25: ACIDトランザクションをサポートするエンタープライズ向けNoSQL Databas...
[db tech showcase Tokyo 2016] A25: ACIDトランザクションをサポートするエンタープライズ向けNoSQL Databas...
 
「企業システムにおける意志決定とITサービス運営について」 ユーザ企業との協業によるエンタープライズ・アジャイルの支援 ~東京商工リサーチの事例~
「企業システムにおける意志決定とITサービス運営について」  ユーザ企業との協業によるエンタープライズ・アジャイルの支援 ~東京商工リサーチの事例~「企業システムにおける意志決定とITサービス運営について」  ユーザ企業との協業によるエンタープライズ・アジャイルの支援 ~東京商工リサーチの事例~
「企業システムにおける意志決定とITサービス運営について」 ユーザ企業との協業によるエンタープライズ・アジャイルの支援 ~東京商工リサーチの事例~
 
クラウド運用3足の草鞋151102
クラウド運用3足の草鞋151102クラウド運用3足の草鞋151102
クラウド運用3足の草鞋151102
 
Ms retail update ra 20191030
Ms retail update ra 20191030Ms retail update ra 20191030
Ms retail update ra 20191030
 

More from Yusuke Suzuki

見えない壁を越えよう!アジャイルやマイクロサービスを阻む「今までのやり方」 - デブサミ夏2023
見えない壁を越えよう!アジャイルやマイクロサービスを阻む「今までのやり方」 - デブサミ夏2023見えない壁を越えよう!アジャイルやマイクロサービスを阻む「今までのやり方」 - デブサミ夏2023
見えない壁を越えよう!アジャイルやマイクロサービスを阻む「今までのやり方」 - デブサミ夏2023Yusuke Suzuki
 
サービスブループリントによるシステム設計手法の紹介 - XP祭り2022
サービスブループリントによるシステム設計手法の紹介 - XP祭り2022サービスブループリントによるシステム設計手法の紹介 - XP祭り2022
サービスブループリントによるシステム設計手法の紹介 - XP祭り2022Yusuke Suzuki
 
マイクロサービスに至る歴史とこれから - XP祭り2021
マイクロサービスに至る歴史とこれから - XP祭り2021マイクロサービスに至る歴史とこれから - XP祭り2021
マイクロサービスに至る歴史とこれから - XP祭り2021Yusuke Suzuki
 
Javaとコミュニティの歩み 2020
Javaとコミュニティの歩み 2020Javaとコミュニティの歩み 2020
Javaとコミュニティの歩み 2020Yusuke Suzuki
 
エンタプライズ領域のアジャイル開発の課題 - FIT2020
エンタプライズ領域のアジャイル開発の課題 - FIT2020エンタプライズ領域のアジャイル開発の課題 - FIT2020
エンタプライズ領域のアジャイル開発の課題 - FIT2020Yusuke Suzuki
 
DX時代に目指すべき品質向上とテスト - @IT ソフトウェア品質向上セミナー 2019夏
DX時代に目指すべき品質向上とテスト - @IT ソフトウェア品質向上セミナー 2019夏DX時代に目指すべき品質向上とテスト - @IT ソフトウェア品質向上セミナー 2019夏
DX時代に目指すべき品質向上とテスト - @IT ソフトウェア品質向上セミナー 2019夏Yusuke Suzuki
 
エンタープライズ、アーキテクチャ、アジャイルのこれから
エンタープライズ、アーキテクチャ、アジャイルのこれからエンタープライズ、アーキテクチャ、アジャイルのこれから
エンタープライズ、アーキテクチャ、アジャイルのこれからYusuke Suzuki
 
アーキテクチャのレビューについて - JaSST Review '18
アーキテクチャのレビューについて - JaSST Review '18アーキテクチャのレビューについて - JaSST Review '18
アーキテクチャのレビューについて - JaSST Review '18Yusuke Suzuki
 
MicroserviceでのNoOps戦略 - NoOps Meetup Tokyo #2 #NoOpsJP
MicroserviceでのNoOps戦略 - NoOps Meetup Tokyo #2 #NoOpsJPMicroserviceでのNoOps戦略 - NoOps Meetup Tokyo #2 #NoOpsJP
MicroserviceでのNoOps戦略 - NoOps Meetup Tokyo #2 #NoOpsJPYusuke Suzuki
 
エンタープライズアジャイルでチームが超えるべきこと - エンタープライズアジャイル勉強会 2018年10月セミナー
エンタープライズアジャイルでチームが超えるべきこと - エンタープライズアジャイル勉強会 2018年10月セミナーエンタープライズアジャイルでチームが超えるべきこと - エンタープライズアジャイル勉強会 2018年10月セミナー
エンタープライズアジャイルでチームが超えるべきこと - エンタープライズアジャイル勉強会 2018年10月セミナーYusuke Suzuki
 
エンタープライズアジャイルにおける要求探索の勘所 要求開発アライアンス2018年7月定例会
エンタープライズアジャイルにおける要求探索の勘所 要求開発アライアンス2018年7月定例会エンタープライズアジャイルにおける要求探索の勘所 要求開発アライアンス2018年7月定例会
エンタープライズアジャイルにおける要求探索の勘所 要求開発アライアンス2018年7月定例会Yusuke Suzuki
 
Javaはコミュニティの力で再び偉大になれるのか
Javaはコミュニティの力で再び偉大になれるのかJavaはコミュニティの力で再び偉大になれるのか
Javaはコミュニティの力で再び偉大になれるのかYusuke Suzuki
 
Javaのカルチャーとグロース - MANABIYA 2018
Javaのカルチャーとグロース - MANABIYA 2018Javaのカルチャーとグロース - MANABIYA 2018
Javaのカルチャーとグロース - MANABIYA 2018Yusuke Suzuki
 
アジャイル開発を支えるアーキテクチャ設計とは
アジャイル開発を支えるアーキテクチャ設計とはアジャイル開発を支えるアーキテクチャ設計とは
アジャイル開発を支えるアーキテクチャ設計とはYusuke Suzuki
 
JJUG初心者のためのJava/JJUG講座
JJUG初心者のためのJava/JJUG講座JJUG初心者のためのJava/JJUG講座
JJUG初心者のためのJava/JJUG講座Yusuke Suzuki
 
ITトレンドに見る日本のエンタープライズITについて
ITトレンドに見る日本のエンタープライズITについてITトレンドに見る日本のエンタープライズITについて
ITトレンドに見る日本のエンタープライズITについてYusuke Suzuki
 
エナジャイル設立によせて
エナジャイル設立によせてエナジャイル設立によせて
エナジャイル設立によせてYusuke Suzuki
 
マイクロサービス化設計入門 - AWS Dev Day Tokyo 2017
マイクロサービス化設計入門 - AWS Dev Day Tokyo 2017マイクロサービス化設計入門 - AWS Dev Day Tokyo 2017
マイクロサービス化設計入門 - AWS Dev Day Tokyo 2017Yusuke Suzuki
 
プロダクトオーナーは育成できるのか? - プロダクトオーナー祭り2016
プロダクトオーナーは育成できるのか? - プロダクトオーナー祭り2016プロダクトオーナーは育成できるのか? - プロダクトオーナー祭り2016
プロダクトオーナーは育成できるのか? - プロダクトオーナー祭り2016Yusuke Suzuki
 
ユーザー企業へのアジャイル導入四苦八苦 - エンタープライズアジャイル勉強会2016年11月セミナー
ユーザー企業へのアジャイル導入四苦八苦 - エンタープライズアジャイル勉強会2016年11月セミナーユーザー企業へのアジャイル導入四苦八苦 - エンタープライズアジャイル勉強会2016年11月セミナー
ユーザー企業へのアジャイル導入四苦八苦 - エンタープライズアジャイル勉強会2016年11月セミナーYusuke Suzuki
 

More from Yusuke Suzuki (20)

見えない壁を越えよう!アジャイルやマイクロサービスを阻む「今までのやり方」 - デブサミ夏2023
見えない壁を越えよう!アジャイルやマイクロサービスを阻む「今までのやり方」 - デブサミ夏2023見えない壁を越えよう!アジャイルやマイクロサービスを阻む「今までのやり方」 - デブサミ夏2023
見えない壁を越えよう!アジャイルやマイクロサービスを阻む「今までのやり方」 - デブサミ夏2023
 
サービスブループリントによるシステム設計手法の紹介 - XP祭り2022
サービスブループリントによるシステム設計手法の紹介 - XP祭り2022サービスブループリントによるシステム設計手法の紹介 - XP祭り2022
サービスブループリントによるシステム設計手法の紹介 - XP祭り2022
 
マイクロサービスに至る歴史とこれから - XP祭り2021
マイクロサービスに至る歴史とこれから - XP祭り2021マイクロサービスに至る歴史とこれから - XP祭り2021
マイクロサービスに至る歴史とこれから - XP祭り2021
 
Javaとコミュニティの歩み 2020
Javaとコミュニティの歩み 2020Javaとコミュニティの歩み 2020
Javaとコミュニティの歩み 2020
 
エンタプライズ領域のアジャイル開発の課題 - FIT2020
エンタプライズ領域のアジャイル開発の課題 - FIT2020エンタプライズ領域のアジャイル開発の課題 - FIT2020
エンタプライズ領域のアジャイル開発の課題 - FIT2020
 
DX時代に目指すべき品質向上とテスト - @IT ソフトウェア品質向上セミナー 2019夏
DX時代に目指すべき品質向上とテスト - @IT ソフトウェア品質向上セミナー 2019夏DX時代に目指すべき品質向上とテスト - @IT ソフトウェア品質向上セミナー 2019夏
DX時代に目指すべき品質向上とテスト - @IT ソフトウェア品質向上セミナー 2019夏
 
エンタープライズ、アーキテクチャ、アジャイルのこれから
エンタープライズ、アーキテクチャ、アジャイルのこれからエンタープライズ、アーキテクチャ、アジャイルのこれから
エンタープライズ、アーキテクチャ、アジャイルのこれから
 
アーキテクチャのレビューについて - JaSST Review '18
アーキテクチャのレビューについて - JaSST Review '18アーキテクチャのレビューについて - JaSST Review '18
アーキテクチャのレビューについて - JaSST Review '18
 
MicroserviceでのNoOps戦略 - NoOps Meetup Tokyo #2 #NoOpsJP
MicroserviceでのNoOps戦略 - NoOps Meetup Tokyo #2 #NoOpsJPMicroserviceでのNoOps戦略 - NoOps Meetup Tokyo #2 #NoOpsJP
MicroserviceでのNoOps戦略 - NoOps Meetup Tokyo #2 #NoOpsJP
 
エンタープライズアジャイルでチームが超えるべきこと - エンタープライズアジャイル勉強会 2018年10月セミナー
エンタープライズアジャイルでチームが超えるべきこと - エンタープライズアジャイル勉強会 2018年10月セミナーエンタープライズアジャイルでチームが超えるべきこと - エンタープライズアジャイル勉強会 2018年10月セミナー
エンタープライズアジャイルでチームが超えるべきこと - エンタープライズアジャイル勉強会 2018年10月セミナー
 
エンタープライズアジャイルにおける要求探索の勘所 要求開発アライアンス2018年7月定例会
エンタープライズアジャイルにおける要求探索の勘所 要求開発アライアンス2018年7月定例会エンタープライズアジャイルにおける要求探索の勘所 要求開発アライアンス2018年7月定例会
エンタープライズアジャイルにおける要求探索の勘所 要求開発アライアンス2018年7月定例会
 
Javaはコミュニティの力で再び偉大になれるのか
Javaはコミュニティの力で再び偉大になれるのかJavaはコミュニティの力で再び偉大になれるのか
Javaはコミュニティの力で再び偉大になれるのか
 
Javaのカルチャーとグロース - MANABIYA 2018
Javaのカルチャーとグロース - MANABIYA 2018Javaのカルチャーとグロース - MANABIYA 2018
Javaのカルチャーとグロース - MANABIYA 2018
 
アジャイル開発を支えるアーキテクチャ設計とは
アジャイル開発を支えるアーキテクチャ設計とはアジャイル開発を支えるアーキテクチャ設計とは
アジャイル開発を支えるアーキテクチャ設計とは
 
JJUG初心者のためのJava/JJUG講座
JJUG初心者のためのJava/JJUG講座JJUG初心者のためのJava/JJUG講座
JJUG初心者のためのJava/JJUG講座
 
ITトレンドに見る日本のエンタープライズITについて
ITトレンドに見る日本のエンタープライズITについてITトレンドに見る日本のエンタープライズITについて
ITトレンドに見る日本のエンタープライズITについて
 
エナジャイル設立によせて
エナジャイル設立によせてエナジャイル設立によせて
エナジャイル設立によせて
 
マイクロサービス化設計入門 - AWS Dev Day Tokyo 2017
マイクロサービス化設計入門 - AWS Dev Day Tokyo 2017マイクロサービス化設計入門 - AWS Dev Day Tokyo 2017
マイクロサービス化設計入門 - AWS Dev Day Tokyo 2017
 
プロダクトオーナーは育成できるのか? - プロダクトオーナー祭り2016
プロダクトオーナーは育成できるのか? - プロダクトオーナー祭り2016プロダクトオーナーは育成できるのか? - プロダクトオーナー祭り2016
プロダクトオーナーは育成できるのか? - プロダクトオーナー祭り2016
 
ユーザー企業へのアジャイル導入四苦八苦 - エンタープライズアジャイル勉強会2016年11月セミナー
ユーザー企業へのアジャイル導入四苦八苦 - エンタープライズアジャイル勉強会2016年11月セミナーユーザー企業へのアジャイル導入四苦八苦 - エンタープライズアジャイル勉強会2016年11月セミナー
ユーザー企業へのアジャイル導入四苦八苦 - エンタープライズアジャイル勉強会2016年11月セミナー
 

Recently uploaded

TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 

Recently uploaded (10)

TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 

なぜ「マイクロサービス“化”」が必要なのか

  • 1. Copyright© Growth Architectures & Teams, Inc. All rights reserved. “実ビジネス”のための、 アプリケーションモダナイゼーション導⼊ステップ なぜ「マイクロサービス“化”」が必要なのか 2019/8/12 グロース・アーキテクチャ&チームス株式会社 代表取締役 鈴⽊ 雄介 トラディショナル企業のための、“ビジネスに効く”、アプリケーションモダナイゼーション実践法 〜アプリ開発・提供の「スピードと品質」をどう両⽴するか〜
  • 2. Copyright© Growth Architectures & Teams, Inc. All rights reserved. ⾃⼰紹介 • 鈴⽊雄介 –Graat(グラーツ) » グロース・アーキテクチャ&チームス 株式会社 ▸ 代表取締役 社⻑ » http://www.graat.co.jp/ –SNS » @yusuke_arclamp » http://arclamp.hatenablog.com/ 1
  • 3. Copyright© Growth Architectures & Teams, Inc. All rights reserved. アジェンダ • DX時代のシステム開発 • マイクロサービスとは • マイクロサービス化の基本戦略 • 導⼊の進め⽅ • まとめ 2
  • 4. Copyright© Growth Architectures & Teams, Inc. All rights reserved. DX時代のシステム開発 3
  • 5. Copyright© Growth Architectures & Teams, Inc. All rights reserved. DX時代のシステム開発 • システム開発を「早く」したい –「実装が早い」ことではない –ユーザーへのフィードバックを早く 4 ユーザー 企画 実装 リリース
  • 6. Copyright© Growth Architectures & Teams, Inc. All rights reserved. DX時代のシステム開発 • 何が「早さ」を阻害するのか︖ –変更すべき部分は1ヶ所( ) –でも、「そこを変更すれば終わり」ではない 5 機能 A 機能 B 機能 C
  • 7. Copyright© Growth Architectures & Teams, Inc. All rights reserved. DX時代のシステム開発 • 何が「早さ」を阻害するのか︖ –影響調査︓変更が、どこに影響するのか︖ –回帰テスト︓想定しない変更が起きないか︖ » リグレッションテスト –リリース調整︓他の機能とリリースを合わせる 6 機能 A 機能 B 機能 C
  • 8. Copyright© Growth Architectures & Teams, Inc. All rights reserved. DX時代のシステム開発 • 「機能間調整」が早さを阻害する –変更作業そのものは⼩さな⼯数 –様々な調整作業に⼯数と期間がかかる » コストもかかる » 外注していれば⾒積もり、要員調達、受⼊テストも… • モノリス(⼀枚岩)なシステムのデメリット –機能間が密結合で、互いに依存する 7
  • 9. Copyright© Growth Architectures & Teams, Inc. All rights reserved. • いかに機能間調整を無くすか︖ –機能間の依存関係を低くすればいい » 結合度を下げる、疎結合化する –変更をしたら、他機能を気にすることなくリリース » 影響調査不要、再帰テスト不要、リリース調整不要 DX時代のシステム開発 8 機能 A 機能 B 機能 C
  • 10. Copyright© Growth Architectures & Teams, Inc. All rights reserved. マイクロサービスとは 9
  • 11. Copyright© Growth Architectures & Teams, Inc. All rights reserved. マイクロサービスとは • 機能間を疎結合に保ちながらシステム全体を動 かすためのテクニック/テクノロジー群 –総称がマイクロサービスアーキテクチャ » Microservices、MSA 10 サービス A サービス B サービス C
  • 12. Copyright© Growth Architectures & Teams, Inc. All rights reserved. マイクロサービスとは • マイクロサービスの特性 –機能ごとにインスタンスを分ける –機能ごとに開発チームを分ける –機能特性にあわせて技術要素を選択する –その開発チームで運⽤する –機能間の連携は WebAPI を通じて⾏う –機能間でデータベースを共有していない –機能のリリースは無停⽌で⾏う –連携先サービスがダウンしても稼働するようにする –機能単位で再構築を⾏う 11
  • 13. Copyright© Growth Architectures & Teams, Inc. All rights reserved. マイクロサービスとは • 機能ごとに分ける –インスタンスを分ける –開発チームを分ける –技術要素は機能特性に合わせて選択する –開発チームで運⽤する(継続開発) 12 サービスA サービスB サービスC チームA チームB 開発 運⽤ 開発 運⽤ 技術 技術 技術
  • 14. Copyright© Growth Architectures & Teams, Inc. All rights reserved. マイクロサービスとは • 機能を疎に連携させる≒変更を伝播させない –WebAPIを通じて連携する » ネットワークオーバーヘッドが⼤きいが明確になる –データベースは共有しない » 共有すると変更が伝播しやすくなる 13 サービスA サービスB サービスC DB A DB B DB C
  • 15. Copyright© Growth Architectures & Teams, Inc. All rights reserved. マイクロサービスとは • 他機能に影響しない/依存しない –無停⽌リリースを⾏う » ブルーグリーンデプロイメント –連携先サービスがダウンしても稼働する » ⾃分で障害対策を⾏う 14 サービスA サービスB v1.0 サービスB v1.1 サービスA サービスB障害 障害を伝播 させない
  • 16. Copyright© Growth Architectures & Teams, Inc. All rights reserved. マイクロサービスとは • ⼤きな機能変更に対応する –機能を再構築する » 機能単位で再構築することで、全体再構築を避ける 15 サービスA サービスB サービスD
  • 17. Copyright© Growth Architectures & Teams, Inc. All rights reserved. マイクロサービスとは • これまで「システム間連携」と呼んでいたもの を機能単位に持ち込んだ – 機能ごとにインスタンス、チーム、技術を分ける – 機能間の連携は WebAPI 。DBは共有しない – リリースは無停⽌。障害時対策もしておく – 機能単位で再構築を⾏う 16 システムA 機能A 機能B 機能C システムB 機能D 機能E 機能F 機能A 機能B 機能C 機能D 機能E 機能F システム全体
  • 18. Copyright© Growth Architectures & Teams, Inc. All rights reserved. マイクロサービスとは • MSAを実現できた技術的背景 –クラウド(仮想化技術) » 仮想サーバ、仮想ストレージ、仮想ネットワーク –インフラ構築の⾃動化 » 「コピーして新規作成」が容易 –運⽤作業の⾃動化 » PaaS/マネージドサービスの登場でメンテコストが激減 • インスタンス数を増やすコストが低くなった –分けることのデメリットが⼩さい 17
  • 19. Copyright© Growth Architectures & Teams, Inc. All rights reserved. マイクロサービスとは • マイクロサービスとは –⽬的︓システム全体としての変化を早くする –戦略︓機能の変更にともなう調整を排除する –戦術︓システムを機能単位に分割していく –背景︓クラウド・⾃動化などの技術 • そのための具体的な戦術集 –ノウハウ、テクニック、テクノロジーなど 18
  • 20. Copyright© Growth Architectures & Teams, Inc. All rights reserved. 19https://www.flickr.com/photos/pictureperfectpose/76138988/
  • 21. Copyright© Growth Architectures & Teams, Inc. All rights reserved. マイクロサービスとは • マイクロサービスは万能ではない –モノリスのメリットが失われる » 密結合による効率性 –システム間連携で発⽣する問題が機能間連携で発⽣ するようになる » 代表例はデータの不整合、ネットワークレイテンシ –システム全体の運営ノウハウが全く異なる » 管理対象が圧倒的に増えるため、これまでのシステム横断 管理⼿法ではオーバーヘッドが⼤きすぎる 20
  • 22. Copyright© Growth Architectures & Teams, Inc. All rights reserved. マイクロサービスとは • システム再構築でMSAは実現できない –そもそも、⼀括再構築を避けるのがMSA –疎結合による⾮効率化に負けていく » チーム間格差が埋まらない、機能間テストができない –適切な分割点を⾒つけるのが困難 » データ不整合や性能問題が多発する –組織的な運営ノウハウがついていかない » 既存の考え⽅でガバナンスを効かせるとMSAにならない 21
  • 23. Copyright© Growth Architectures & Teams, Inc. All rights reserved. マイクロサービス化の基本戦略 22
  • 24. Copyright© Growth Architectures & Teams, Inc. All rights reserved. マイクロサービス化の基本戦略 • マイクロサービス“化” –対象システムを段階的にマイクロサービス化 –<重要>⼀括再構築では絶対に無理 • だんだん成熟度がレベルアップしていく –モノリス(現状)をレベル1とする –理想形までを連続的に捉え、段階的に適⽤していく –レベルアップを通じて組織もレベルアップする 23
  • 25. Copyright© Growth Architectures & Teams, Inc. All rights reserved. マイクロサービス化の基本戦略 • マイクロサービスの適⽤レベル 24 項⽬ 概要 1 モノリス 機能はシステム内で密結合している 2 API連携 モノリスとAPI連携するサービスがある 3 複数サービス 基盤が整備され、DevOpsにも取り組む 4 ⼀般的なMSA ⾮同期キュー利⽤や無停⽌リリース 5 ⾼度なMSA 数⼗〜数百のサービス 6 先進的なMSA 数百〜数千のサービス 7 世界最先端なMSA 数千〜のサービス、MSA技術の開発
  • 26. Copyright© Growth Architectures & Teams, Inc. All rights reserved. マイクロサービス化の基本戦略 • マイクロサービスの適⽤レベル –レベル7は、Google、Amazon、Microsoftなどの限 られた企業 –多くの事例はレベル4-5なので、レベル1の状態から いきなり真似することは危険 –レベル上げには試⾏錯誤をおこなうこと » うまくいくか分からないなら、試すしかないし、その結果 としてうまくいかないことが分かるのは正しい成果 25
  • 27. Copyright© Growth Architectures & Teams, Inc. All rights reserved. 基本戦略 • ストラングラーパターン –対象システムをマイクロサ ービス化するにあたり、対 象システムに⼿を⼊れては いけない –「既存システムを分割して 機能を切り出す」のではな く「新しく作ったサービス で機能をすり替える」 26https://www.flickr.com/photos/paulafunnell/3871868188/
  • 28. Copyright© Growth Architectures & Teams, Inc. All rights reserved. • 既存システムは「使わないようにしていく」 –最もコスト効果が⾼く、便利な⼿法 サービス A マイクロサービス化の基本戦略 27 システムA 機能A 機能B 機能C クライアント システムA 機能A 機能B 機能Cクライアント 機能A サービス A 機能A サービス B 機能B サービス C 機能C システムA クライアント
  • 29. Copyright© Growth Architectures & Teams, Inc. All rights reserved. マイクロサービス化の基本戦略 • 新しいサービスに対するアプローチ 1/2 –開発はアジャイル » チームが継続的にサービスの改善に取り組む » あくまでもオーナーはビジネス側にやってもらう ▸ 企画→開発→運⽤の⼀体化が重要 » 既存の組織とは分断した場所、チームが望ましい 28
  • 30. Copyright© Growth Architectures & Teams, Inc. All rights reserved. マイクロサービス化の基本戦略 • 新しいサービスに対するアプローチ 2/2 –運⽤は⾃動化していく » 運⽤の主体は開発チーム » ただ、なるべく運⽤作業を⾃動化し、既存の運⽤ツールや ルールを適⽤しようとしない » DevOpsチームが⾃動化を実現し、開発チームはそれらを利 ⽤することで運⽤を⾏う » できる限り、クラウドのマネージドサービスを利⽤する » サービス間連携もマネージドサービス化 ▸ 認証認可、ロギング、メッセージ連携、APIゲートウェイなど、サー ビス間の連携⽅式は基盤チームが整備する 29
  • 31. Copyright© Growth Architectures & Teams, Inc. All rights reserved. 導⼊の進め⽅ 30
  • 32. Copyright© Growth Architectures & Teams, Inc. All rights reserved. 導⼊の進め⽅ • レベル2→3 –サービスを分割する –サービスを連携させる • レベル5 –今後の進化 31
  • 33. Copyright© Growth Architectures & Teams, Inc. All rights reserved. 導⼊の進め⽅ サービスの分割 32
  • 34. Copyright© Growth Architectures & Teams, Inc. All rights reserved. サービスを分割する • どのようにサービスの分割境界を決めるか︖ 33 技術的に 難易度が⾼い 低い その機能のリリースが 早くなることで ビジネスに貢献する 貢献しない
  • 35. Copyright© Growth Architectures & Teams, Inc. All rights reserved. サービスを分割する • サービス分割の考え⽅ –ともかく「ビジネスに貢献するか」 » これがマイクロサービスの根幹だから –技術的難易度は関係ない » ただし、ビジネス継続に影響がでるリスクがあるなら回避 するしかない –適切なサイズであること » 1チーム(3­7名)が、4週間以内に初期構築できること ▸ 本番相当環境で、ビジネス的なターゲットユーザーによる利⽤(α/β )が可能になる状態 34
  • 36. Copyright© Growth Architectures & Teams, Inc. All rights reserved. サービスを分割する • よくある質問 1/2 –誰が境界を決めるのですか︖ » 開発チームと相談しながらビジネス側のオーナーが決める –細かいほどいいんですよね︖ » 細かすぎると管理が⼤変。API単位はナノレベル –技術は全部共通/個別がいいんですよね︖ » チームのスキルや対象サービスによってケースバイケース –DBを分割したいです » 共有データベースで問題ないです(詳細は次章) 35
  • 37. Copyright© Growth Architectures & Teams, Inc. All rights reserved. サービスを分割する • よくある質問 2/2 –サービスはいくつぐらいがいいですか︖ » 最初は1つ。DevOpsがないなら増やしても⽚⼿まで –Kubernetesを使いたいです » 絶対にいりません。サービスが数⼗になってから –<流⾏りのテクノロジー>を使いたいです » たぶん、いらないです » PoCをする、チームのスキルと⾒合う、特に保守性に注意 » 場合によってはプロダクトがなくなることを意識する 36
  • 38. Copyright© Growth Architectures & Teams, Inc. All rights reserved. 導⼊の進め⽅ サービスを連携させる 37
  • 39. Copyright© Growth Architectures & Teams, Inc. All rights reserved. サービスを連携させる • サービス間でのデータ分割を進める –保守性︓データの定義変更による影響↓ –性能︓データアクセスの性能劣化による影響↓ –可⽤性︓データアクセスの障害による影響↓ • サービス間でのデータ整合性との戦い –分割していくほど整合性は弱くなる » データの鮮度、整合されるまでの期間など –どこまで許容できるのか︖が⼤事な判断 38
  • 40. Copyright© Growth Architectures & Teams, Inc. All rights reserved. データの分割 • RDBはうまく使う –RDBの実績は硬いので、うまく利⽤する –共有データベースパターンもオススメ –既存のRDBの機能でも、いくつかの選択肢がある » 詳細次ページ –もちろん、デメリットは理解する » 保守性、性能、可⽤性 39
  • 41. Copyright© Growth Architectures & Teams, Inc. All rights reserved. データの分割 40 サービス A モノリス システム 共有 サービス A モノリス システム ビュー サービス A モノリス システム レプリケーション サービス A モノリス システム ETL
  • 42. Copyright© Growth Architectures & Teams, Inc. All rights reserved. データの分割 • APIによるサービス間連携 –⾮同期メッセージングを活⽤する » 保守性、性能、可⽤性の観点でメリットは⼤きい » ただし、エラー発⽣時に別ルートでの対応が必要 41 サービス A サービス B 同期 ⾮同期 サービス A サービス B
  • 43. Copyright© Growth Architectures & Teams, Inc. All rights reserved. データ分割 • イベントソーシング –データの状態ではなく、変更イベントを⾮同期に受 信することで擬似的にデータを共有する –サービスBは「興味があるイベント」だけに対して処 理を⾏い、その結果を保持すれば良い 42 サービス A サービス B
  • 44. Copyright© Growth Architectures & Teams, Inc. All rights reserved. データの分割 43 ⾼い 多い 低い 少ない ファイル 連携 (ETL) 同期 API データ量 ⾮同期 API 同期性 イベント ソーシング DB 共有
  • 45. Copyright© Growth Architectures & Teams, Inc. All rights reserved. 導⼊の進め⽅ 今後の進化 44
  • 46. Copyright© Growth Architectures & Teams, Inc. All rights reserved. • サービスの数が増えたらどうするのか︖ –成熟度レベル5以上 –全社の主要システムがマイクロサービス化され、そ れらのサービス数が数⼗〜数百 • 注⽬はKubernetes関連技術の進歩 –実質的な標準であり、今後の進化の軸となる製品 今後の進化 45
  • 47. Copyright© Growth Architectures & Teams, Inc. All rights reserved. 今後の進化 • コンテナ(Docker) –アプリケーションとミドルウェアをパッケージング –ミドルウェア構成のコード化=バージョン管理 » 開発チームで容易にミドルウェアを管理可能に » インフラチームから⾒た多様性を吸収=管理コスト低減 46 サービス OS ミドルウェア アプリケーション サービス OS コンテナ アプリケーション ミドルウェア コンテナエンジン
  • 48. Copyright© Growth Architectures & Teams, Inc. All rights reserved. Node Node • コンテナオーケストレーション –あらゆるサービスもコンテナとしては同じ –あとはリソースの割り当てと配置 • Kubernetes –2014年にGoogleが発表、2015年にCNCFへ寄贈 Master 今後の進化 47 kubectl API Server etcd 設定 コントロール マネージャー スケジューラー 設定 設定 Node コンテナ レジストリ kubelet Pod
  • 49. Copyright© Growth Architectures & Teams, Inc. All rights reserved. 今後の進化 • サービスメッシュ –サービス間のAPI連携を管理する必要がある –ルーティング、性能分析、障害時挙動など • Istio –2017年にGoogle、IBM、Lyftが公開 48 Kubernetes コントロールプレーン Pod サービスA Envoy (Proxy) Pod サービスA Envoy (Proxy) HTTP/HTTPS /gRPC ・ルーティングルール ・認証管理 ・テレメトリ情報の収集 ・障害時ポリシーの管理
  • 50. Copyright© Growth Architectures & Teams, Inc. All rights reserved. 今後の進化 • サービスの管理を⾼度化/抽象化していく流れ –Kubernetesオペレータ » ミドルウェア製品の管理 » ミドルウェア型マネージドサービスの代替 –K Native » アプリケーションの⾃動Pod化=サーバレス » サーバ実⾏環境型マネージドサービスの代替 • 今後、クラウドサービスに対するポータビリテ ィが⾼くなっていく 49
  • 51. Copyright© Growth Architectures & Teams, Inc. All rights reserved. 今後の進化 • いま、何に取り組むべきか︖ –新規サービスをコンテナベースで管理する » 既存技術と親和性も⾼い –デプロイ先はコンテナ向けマネージドサービス » AWS Fargate、Google App Engine、Azure App Service –業務システムであればサーバレスよりも優先 » AWS Lambda、Azure Functions » シェルスクリプト感覚で使うもの 50
  • 52. Copyright© Growth Architectures & Teams, Inc. All rights reserved. まとめ 51
  • 53. Copyright© Growth Architectures & Teams, Inc. All rights reserved. DX時代のシステム開発 • 「機能間調整」が早さを阻害する –変更作業そのものは⼩さな⼯数 –様々な調整作業に⼯数と期間がかかる » 影響調査、再帰テスト、リリース調整 • 機能間の依存関係を低くして調整を減らす –結合度を下げる、疎結合化する 52
  • 54. Copyright© Growth Architectures & Teams, Inc. All rights reserved. マイクロサービスとは • これまで「システム間連携」と呼んでいたもの を機能単位に持ち込んだもの – 機能ごとにインスタンス、チーム、技術を分ける – 機能間の連携は WebAPI 。DBは共有しない – リリースは無停⽌。障害時対策もしておく – 機能単位で再構築を⾏う 53 システムA 機能A 機能B 機能C システムB 機能D 機能E 機能F 機能A 機能B 機能C 機能D 機能E 機能F システム全体
  • 55. Copyright© Growth Architectures & Teams, Inc. All rights reserved. マイクロサービスとは • マイクロサービスは万能ではない –モノリスのメリットが失われる » 密結合による効率性 –システム間連携で発⽣する問題が機能間連携で発⽣ するようになる » 代表例はデータの不整合、ネットワークレイテンシ –システム全体の運営ノウハウが全く異なる » 管理対象が圧倒的に増えるため、これまでのシステム横断 管理⼿法ではオーバーヘッドが⼤きすぎる 54
  • 56. Copyright© Growth Architectures & Teams, Inc. All rights reserved. マイクロサービス化の基本戦略 • マイクロサービス“化” –対象システムを段階的にマイクロサービス化 –⼀括再構築では絶対に無理 • ストラングラーパターン –既存システムに⼿を⼊れるのではなく、覆い隠す • その他の取り組み –アジャイル、DevOps、プラットフォーム化 55
  • 57. Copyright© Growth Architectures & Teams, Inc. All rights reserved. 導⼊の進め⽅ • サービスを分割する –ビジネスに貢献するかどうかを最優先に判断する –適切なサイズに、まずは1つ切り出すところから • データを分割する –サービス間のデータ不整合を、どう許容するか –許容するほど⾮機能上のメリットは⼤きい • 今後の進化 –コンテナ、Kubernetesに注⽬ –コンテナは早期に取り組みを開始できる状態 56
  • 58. Copyright© Growth Architectures & Teams, Inc. All rights reserved. さいごに • ⼀括再構築、ダメ絶対 –既存資産を活⽤しながら段階的に取り組む –段階的に取り組むためのマイクロサービス • マイクロサービス化の過程が組織変⾰ –実は技術的な変化よりもカルチャーの変化が⼤きい –企画と開発と運⽤という垣根を越える 57
  • 59. Copyright© Growth Architectures & Teams, Inc. All rights reserved. “実ビジネス”のための、 アプリケーションモダナイゼーション導⼊ステップ なぜ「マイクロサービス“化”」が必要なのか 2019/8/12 グロース・アーキテクチャ&チームス株式会社 代表取締役 鈴⽊ 雄介 トラディショナル企業のための、“ビジネスに効く”、アプリケーションモダナイゼーション実践法 〜アプリ開発・提供の「スピードと品質」をどう両⽴するか〜