Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Yusuke Suzuki
38,796 views
マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018
2018年11月2日に行われたAWS Dev Day Tokyo 2018での講演「マイクロサービス化デザインパターン」の資料です。
Technology
◦
Read more
81
Save
Share
Embed
Embed presentation
Download
Downloaded 259 times
1
/ 49
2
/ 49
3
/ 49
4
/ 49
5
/ 49
6
/ 49
7
/ 49
8
/ 49
9
/ 49
10
/ 49
11
/ 49
12
/ 49
13
/ 49
14
/ 49
15
/ 49
16
/ 49
17
/ 49
18
/ 49
19
/ 49
20
/ 49
21
/ 49
22
/ 49
23
/ 49
24
/ 49
25
/ 49
26
/ 49
27
/ 49
28
/ 49
29
/ 49
30
/ 49
31
/ 49
32
/ 49
33
/ 49
34
/ 49
35
/ 49
36
/ 49
37
/ 49
38
/ 49
39
/ 49
40
/ 49
41
/ 49
42
/ 49
43
/ 49
44
/ 49
45
/ 49
46
/ 49
47
/ 49
48
/ 49
49
/ 49
More Related Content
PDF
なぜ「マイクロサービス“化”」が必要なのか
by
Yusuke Suzuki
PDF
マイクロサービスに至る歴史とこれから - XP祭り2021
by
Yusuke Suzuki
PDF
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
by
NTT DATA Technology & Innovation
PDF
開発速度が速い #とは(LayerX社内資料)
by
mosa siru
PDF
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
by
Koichiro Matsuoka
PDF
ドメイン駆動設計のための Spring の上手な使い方
by
増田 亨
PPTX
マイクロサービスにおける 結果整合性との戦い
by
ota42y
PPTX
Redisの特徴と活用方法について
by
Yuji Otani
なぜ「マイクロサービス“化”」が必要なのか
by
Yusuke Suzuki
マイクロサービスに至る歴史とこれから - XP祭り2021
by
Yusuke Suzuki
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
by
NTT DATA Technology & Innovation
開発速度が速い #とは(LayerX社内資料)
by
mosa siru
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
by
Koichiro Matsuoka
ドメイン駆動設計のための Spring の上手な使い方
by
増田 亨
マイクロサービスにおける 結果整合性との戦い
by
ota42y
Redisの特徴と活用方法について
by
Yuji Otani
What's hot
PDF
アジャイル開発を支えるアーキテクチャ設計とは
by
Yusuke Suzuki
PDF
マイクロサービス化に向けて
by
HIRA
PDF
Infrastructure as Code (IaC) 談義 2022
by
Amazon Web Services Japan
PDF
エンタープライズ、アーキテクチャ、アジャイルのこれから
by
Yusuke Suzuki
PPTX
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
by
NTT DATA Technology & Innovation
PDF
Swaggerでのapi開発よもやま話
by
KEISUKE KONISHI
PDF
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
by
Amazon Web Services Japan
PDF
マルチテナント化で知っておきたいデータベースのこと
by
Amazon Web Services Japan
PPTX
ぱぱっと理解するSpring Cloudの基本
by
kazuki kumagai
PPTX
AWS Organizations連携サービスの罠(Security JAWS 第26回 発表資料)
by
NTT DATA Technology & Innovation
PDF
ドメイン駆動設計(DDD)の実践Part2
by
増田 亨
PPTX
境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)
by
Koichiro Matsuoka
PDF
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
by
Recruit Lifestyle Co., Ltd.
PDF
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
by
Koichiro Matsuoka
PDF
オブジェクト指向エクササイズのススメ
by
Yoji Kanno
PDF
マイクロサービス 4つの分割アプローチ
by
増田 亨
PDF
ドメイン駆動設計 失敗したことと成功したこと
by
BIGLOBE Inc.
PDF
ドメイン駆動設計に15年取り組んでわかったこと
by
増田 亨
PDF
超実践 Cloud Spanner 設計講座
by
Samir Hammoudi
PDF
マイクロにしすぎた結果がこれだよ!
by
mosa siru
アジャイル開発を支えるアーキテクチャ設計とは
by
Yusuke Suzuki
マイクロサービス化に向けて
by
HIRA
Infrastructure as Code (IaC) 談義 2022
by
Amazon Web Services Japan
エンタープライズ、アーキテクチャ、アジャイルのこれから
by
Yusuke Suzuki
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
by
NTT DATA Technology & Innovation
Swaggerでのapi開発よもやま話
by
KEISUKE KONISHI
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
by
Amazon Web Services Japan
マルチテナント化で知っておきたいデータベースのこと
by
Amazon Web Services Japan
ぱぱっと理解するSpring Cloudの基本
by
kazuki kumagai
AWS Organizations連携サービスの罠(Security JAWS 第26回 発表資料)
by
NTT DATA Technology & Innovation
ドメイン駆動設計(DDD)の実践Part2
by
増田 亨
境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)
by
Koichiro Matsuoka
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
by
Recruit Lifestyle Co., Ltd.
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
by
Koichiro Matsuoka
オブジェクト指向エクササイズのススメ
by
Yoji Kanno
マイクロサービス 4つの分割アプローチ
by
増田 亨
ドメイン駆動設計 失敗したことと成功したこと
by
BIGLOBE Inc.
ドメイン駆動設計に15年取り組んでわかったこと
by
増田 亨
超実践 Cloud Spanner 設計講座
by
Samir Hammoudi
マイクロにしすぎた結果がこれだよ!
by
mosa siru
Similar to マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018
PDF
マイクロサービスアーキテクチャとは何か
by
Yusuke Suzuki
PDF
マイクロサービス化設計入門 - AWS Dev Day Tokyo 2017
by
Yusuke Suzuki
PDF
サービスブループリントによるシステム設計手法の紹介 - XP祭り2022
by
Yusuke Suzuki
PDF
30分でわかるマイクロサービスアーキテクチャ 第2版
by
Naoki (Neo) SATO
PDF
マイクロサービスアーキテクチャの設計 - JUG2015
by
Yusuke Suzuki
PPTX
20200610 マイクロサービス勉強会
by
Naoki Yoshitake
PDF
MicroserviceでのNoOps戦略 - NoOps Meetup Tokyo #2 #NoOpsJP
by
Yusuke Suzuki
PDF
デザインパターンから見た AWS と Azure
by
Sunao Tomita
PDF
要求の変化とマイクロサービスアーキテクチャ
by
Yusuke Suzuki
PPTX
20180525 system department manager microservices
by
kounan13
PPTX
Preparation to Start the Microservice for Java EE developers
by
Yoshio Terada
PDF
マイクロサービス運用の所感 #m3dev
by
Kazuhiro Sera
PDF
[Java Day Tokyo 2018]50分で最新技術学習の基礎を身につける(SOMPO Systems Daisuke Nishino)
by
Daisuke Nishino
PDF
オトナのService Fabric~マイクロサービス編
by
Tatsuaki Sakai
PPT
覚えて帰ろうJavaデザインパターン
by
Kazuya Hirota
PPTX
Container microservices
by
Tsuyoshi Ushio
マイクロサービスアーキテクチャとは何か
by
Yusuke Suzuki
マイクロサービス化設計入門 - AWS Dev Day Tokyo 2017
by
Yusuke Suzuki
サービスブループリントによるシステム設計手法の紹介 - XP祭り2022
by
Yusuke Suzuki
30分でわかるマイクロサービスアーキテクチャ 第2版
by
Naoki (Neo) SATO
マイクロサービスアーキテクチャの設計 - JUG2015
by
Yusuke Suzuki
20200610 マイクロサービス勉強会
by
Naoki Yoshitake
MicroserviceでのNoOps戦略 - NoOps Meetup Tokyo #2 #NoOpsJP
by
Yusuke Suzuki
デザインパターンから見た AWS と Azure
by
Sunao Tomita
要求の変化とマイクロサービスアーキテクチャ
by
Yusuke Suzuki
20180525 system department manager microservices
by
kounan13
Preparation to Start the Microservice for Java EE developers
by
Yoshio Terada
マイクロサービス運用の所感 #m3dev
by
Kazuhiro Sera
[Java Day Tokyo 2018]50分で最新技術学習の基礎を身につける(SOMPO Systems Daisuke Nishino)
by
Daisuke Nishino
オトナのService Fabric~マイクロサービス編
by
Tatsuaki Sakai
覚えて帰ろうJavaデザインパターン
by
Kazuya Hirota
Container microservices
by
Tsuyoshi Ushio
More from Yusuke Suzuki
PDF
アーキテクチャの進化から学ぶ、プラットフォームエンジニアリングへのアプローチ
by
Yusuke Suzuki
PDF
ウォーターフォールとアジャイルを考える #ita_ws
by
Yusuke Suzuki
PDF
今どきのアーキテクチャ設計戦略 - QCon Tokyo 2016
by
Yusuke Suzuki
PDF
アーキテクチャのレビューについて - JaSST Review '18
by
Yusuke Suzuki
PDF
エンタープライズアジャイルでチームが超えるべきこと - エンタープライズアジャイル勉強会 2018年10月セミナー
by
Yusuke Suzuki
PDF
プロダクトオーナーは育成できるのか? - プロダクトオーナー祭り2016
by
Yusuke Suzuki
PDF
エンタープライズアジャイルにおける要求探索の勘所 要求開発アライアンス2018年7月定例会
by
Yusuke Suzuki
PDF
Javaのカルチャーとグロース - MANABIYA 2018
by
Yusuke Suzuki
PDF
Javaとコミュニティの歩み 2020
by
Yusuke Suzuki
PDF
DX時代に目指すべき品質向上とテスト - @IT ソフトウェア品質向上セミナー 2019夏
by
Yusuke Suzuki
PDF
JJUG初心者のためのJava/JJUG講座
by
Yusuke Suzuki
PDF
見えない壁を越えよう!アジャイルやマイクロサービスを阻む「今までのやり方」 - デブサミ夏2023
by
Yusuke Suzuki
PDF
クラウド時代のエンジニアについて #sesfukui
by
Yusuke Suzuki
PDF
ITトレンドに見る日本のエンタープライズITについて
by
Yusuke Suzuki
PDF
エナジャイル設立によせて
by
Yusuke Suzuki
PDF
ユーザー企業へのアジャイル導入四苦八苦 - エンタープライズアジャイル勉強会2016年11月セミナー
by
Yusuke Suzuki
PDF
エンタプライズ領域のアジャイル開発の課題 - FIT2020
by
Yusuke Suzuki
PDF
JavaOne 2016総括 #jjug
by
Yusuke Suzuki
PDF
Javaはコミュニティの力で再び偉大になれるのか
by
Yusuke Suzuki
PDF
JavaとOSSとAndroid - JavaAPI訴訟問題を考える
by
Yusuke Suzuki
アーキテクチャの進化から学ぶ、プラットフォームエンジニアリングへのアプローチ
by
Yusuke Suzuki
ウォーターフォールとアジャイルを考える #ita_ws
by
Yusuke Suzuki
今どきのアーキテクチャ設計戦略 - QCon Tokyo 2016
by
Yusuke Suzuki
アーキテクチャのレビューについて - JaSST Review '18
by
Yusuke Suzuki
エンタープライズアジャイルでチームが超えるべきこと - エンタープライズアジャイル勉強会 2018年10月セミナー
by
Yusuke Suzuki
プロダクトオーナーは育成できるのか? - プロダクトオーナー祭り2016
by
Yusuke Suzuki
エンタープライズアジャイルにおける要求探索の勘所 要求開発アライアンス2018年7月定例会
by
Yusuke Suzuki
Javaのカルチャーとグロース - MANABIYA 2018
by
Yusuke Suzuki
Javaとコミュニティの歩み 2020
by
Yusuke Suzuki
DX時代に目指すべき品質向上とテスト - @IT ソフトウェア品質向上セミナー 2019夏
by
Yusuke Suzuki
JJUG初心者のためのJava/JJUG講座
by
Yusuke Suzuki
見えない壁を越えよう!アジャイルやマイクロサービスを阻む「今までのやり方」 - デブサミ夏2023
by
Yusuke Suzuki
クラウド時代のエンジニアについて #sesfukui
by
Yusuke Suzuki
ITトレンドに見る日本のエンタープライズITについて
by
Yusuke Suzuki
エナジャイル設立によせて
by
Yusuke Suzuki
ユーザー企業へのアジャイル導入四苦八苦 - エンタープライズアジャイル勉強会2016年11月セミナー
by
Yusuke Suzuki
エンタプライズ領域のアジャイル開発の課題 - FIT2020
by
Yusuke Suzuki
JavaOne 2016総括 #jjug
by
Yusuke Suzuki
Javaはコミュニティの力で再び偉大になれるのか
by
Yusuke Suzuki
JavaとOSSとAndroid - JavaAPI訴訟問題を考える
by
Yusuke Suzuki
Recently uploaded
PDF
第21回 Gen AI 勉強会「NotebookLMで60ページ超の スライドを作成してみた」
by
嶋 是一 (Yoshikazu SHIMA)
PDF
自転車ユーザ参加型路面画像センシングによる点字ブロック検出における性能向上方法の模索 (20260123 SeMI研)
by
Yuto Matsuda
PDF
2025→2026宙畑ゆく年くる年レポート_100社を超える企業アンケート総まとめ!!_企業まとめ_1229_3版
by
sorabatake
PDF
PMBOK 7th Edition Project Management Process Scrum
by
akipii ogaoga
PDF
PMBOK 7th Edition_Project Management Context Diagram
by
akipii ogaoga
PDF
Starlink Direct-to-Cell (D2C) 技術の概要と将来の展望
by
CRI Japan, Inc.
PDF
ST2024_PM1_2_Case_study_of_local_newspaper_company.pdf
by
akipii ogaoga
PDF
Team Topology Adaptive Organizational Design for Rapid Delivery of Valuable S...
by
akipii ogaoga
PDF
100年後の知財業界-生成AIスライドアドリブプレゼン イーパテントYouTube配信
by
e-Patent Co., Ltd.
PDF
FY2025 IT Strategist Afternoon I Question-1 Balanced Scorecard
by
akipii ogaoga
PDF
Reiwa 7 IT Strategist Afternoon I Question-1 Ansoff's Growth Vector
by
akipii ogaoga
PDF
Reiwa 7 IT Strategist Afternoon I Question-1 3C Analysis
by
akipii ogaoga
PDF
PMBOK 7th Edition_Project Management Process_WF Type Development
by
akipii ogaoga
第21回 Gen AI 勉強会「NotebookLMで60ページ超の スライドを作成してみた」
by
嶋 是一 (Yoshikazu SHIMA)
自転車ユーザ参加型路面画像センシングによる点字ブロック検出における性能向上方法の模索 (20260123 SeMI研)
by
Yuto Matsuda
2025→2026宙畑ゆく年くる年レポート_100社を超える企業アンケート総まとめ!!_企業まとめ_1229_3版
by
sorabatake
PMBOK 7th Edition Project Management Process Scrum
by
akipii ogaoga
PMBOK 7th Edition_Project Management Context Diagram
by
akipii ogaoga
Starlink Direct-to-Cell (D2C) 技術の概要と将来の展望
by
CRI Japan, Inc.
ST2024_PM1_2_Case_study_of_local_newspaper_company.pdf
by
akipii ogaoga
Team Topology Adaptive Organizational Design for Rapid Delivery of Valuable S...
by
akipii ogaoga
100年後の知財業界-生成AIスライドアドリブプレゼン イーパテントYouTube配信
by
e-Patent Co., Ltd.
FY2025 IT Strategist Afternoon I Question-1 Balanced Scorecard
by
akipii ogaoga
Reiwa 7 IT Strategist Afternoon I Question-1 Ansoff's Growth Vector
by
akipii ogaoga
Reiwa 7 IT Strategist Afternoon I Question-1 3C Analysis
by
akipii ogaoga
PMBOK 7th Edition_Project Management Process_WF Type Development
by
akipii ogaoga
マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018
1.
マイクロサービス化デザインパターン 2018/11/02 鈴木雄介 Graat 代表 日本Javaユーザーグループ 会長 AWS
Dev Day Tokyo 2018
2.
自己紹介 鈴木雄介 • Graat(グラーツ) » グロース・アーキテクチャ&チームス株式会社 »
代表取締役 社長 » http://www.graat.co.jp/ • 日本Javaユーザーグループ » 会長 » http://www.java-users.jp/ • SNS » http://arclamp.hatenablog.com/ » @yusuke_arclamp 1
3.
本セッションについて • マイクロサービス”化”デザインパターン »NOT 「マイクロサービスデザインパターン」 •
想定している聴講者 »現状の資産を、どうやってマイクロサービス化していくのか?に 悩んでいる方 »マイクロサービスを始めたものの、どこから手を付けるべきか、 悩んでいる方 2
4.
アジェンダ • マイクロサービスとは • マイクロサービス化の観点 •
マイクロサービス化の導入プロセス • まとめ 3
5.
マイクロサービスとは 4
6.
マイクロサービスとは 目的:システム全体の変更速度を上げる • ユーザーからのフィードバックを早く反映する 5 ユーザー 企画 実装 運用
7.
マイクロサービスとは アジャイル(2001年) • 小さなチームによるタイムボックス型管理 »「大きな計画」の限界 ▸予測精度が低い、進捗が管理しきれない、PMに依存する »「小さな計画を繰り返し立案する」というアイデア ▸予測範囲を狭める、動くソフトウェアで確認する、チームで解決する • 課題:Monolithicではうまくいかない »複数チーム間の調整コストが高くなる 6 利用 企画 実装 運用
8.
マイクロサービスとは Monolithic • 巨大な一枚岩のシステム »機能同士がメソッド呼び出しやデータを通じて密結合になってお り、機能間の依存関係も不透明 • 結果として、一部の変更が全体に波及する »影響調査、リグレッションテスト、リリース調整などのオーバー ヘッドが発生 »稼働状態では特定機能の性能劣化が全体に波及 7
9.
マイクロサービスとは クラウド(2006年~)/DevOps(2009年~) • クラウド=インフラとミドルウェアのソフトウェア化 »サーバ環境を構築する手順がコード化できる • DevOps=開発と運用の協業 »必要な処理をコードにまとめ、自動化する ▸Chef、Puppet、Ansible... »様々な情報共有 ▸デプロイ、バージョン、メトリクスなど 8 利用 企画 実装 運用
10.
マイクロサービスとは NoOps(2011年~) • NoOps=運用作業込みでのプラットフォーム化 »運用機能込みでアプリケーションの稼働環境をプラットフォーム 化してしまう »代表的なのはブルーグリーンデプロイメント(無停止リリース) • Webアプリ用PaaSの興隆 »AWS
Elastic Beanstalk(2011年~) »Cloud Foundry、OpenShift… 9 利用 企画 実装 運用
11.
マイクロサービスとは Microservices(2014年~) • システム全体を「サービス単位」で変更していく »サービスのリリース/切り戻しは自動化され無停止で実施可能 »チームをまたがる影響調査やリリース調整は不要 • マイクロサービス=アジャイル+DevOps/NoOps »目的:システム全体の変更速度を上げる 10 利用 企画 実装 運用
12.
マイクロサービスとは Cloud Native Architecture(2017年~) •
ものすごく沢山のノードを管理する »複雑化したサービス群を管理するためのツールを利用 ▸コンテナオーケストレーション: Kubernetes、Amazon ECS/EKS ▸サービスメッシュ:Istio • まさに現在進行形の領域 »「Cloud Native」ではない名前になると思われる 11
13.
マイクロサービス化の観点 12
14.
マイクロサービス化の観点 誰も最初はマイクロサービスではなかった • 先端企業だってマイクロサービス化していった »Netflixは2008年からAWS化し、自動化をしながら足りない管理 機能を開発してきた »2011年ぐらいに「マイクロサービス」と名付けられただけ • マイクロサービスまで至る歴史をたどるべき »アジャイル→DevOps→NoOps→Microsrvices→Cloud
Native »アジャイルやDevOpsを飛ばしてMicrosrvicesは無理 13
15.
マイクロサービス化の観点 アジャイル化 • それぞれのチームが好きなタイミングでリリースする »大きな計画の中で同期をとって開発していくならMonolithicのほ うが効率が良い。分割にはオーバーヘッドが伴う • チームサイズは5-9名が理想 »サービスはチームが扱える大きさであるべき ▸1チームで複数サービスを管理することは問題なし •
XPの開発プラクティスは基本 »テスト駆動開発、ペアプロ(モブ)、リファクタリング、ソース コードの共同所有、継続的インテグレーション、YAGNI 14
16.
マイクロサービス化の観点 運用の自動化 • 運用作業が自動化/ツール化された状態 »それを開発するのはDevOpsエンジニア/SREエンジニア »インフラ・運用担当者の新たな役割 »単純な運用作業/オペレーターは不要 • 開発者はツールを使ってコードを稼働させる »「アプリを作る」から「サービスを動かす」へ »非機能要件も意識するようになる 15
17.
マイクロサービス化の観点 プラットフォーム化 • 運用作業を織り込んだプラットフォーム »WebアプリPaaSなどは最初から可用性を備える • サービスを支えるプラットフォーム »サービスの数が増えてきても疎に連携できる基盤 •
サービスを管理するプラットフォーム »増えたサービスを管理し、自動化する基盤 16
18.
マイクロサービス化の導入ステップ 17
19.
マイクロサービス化の導入ステップ 段階を経て進めていく • Step1:最初のサービスを分割する »Monolithicからサービスを切り出していく • Step2:サービス基盤を整備する »サービスを増やしていくための基盤を整備する •
Step3:サービスを管理する »数が多くなってきたサービスそのものの管理を自動化していく 18
20.
マイクロサービス化の導入ステップ Step1 19
21.
Step1 方針 • 最初のサービスを切り出す »サービスとのWebAPI連携 »URLベースの書き換え »共有メモリでの認証情報共有 »共有データベース »PaaSの利用 20
22.
Step1 最初のサービスを切り出す • 分割は「リリースサイクルを早めたい場所」 »まずはビジネス視点で整理を行う ▸変更要求が多いところ ▸複数の機能を横断する場合があるため注意して整理 »そのうえで制約条件を整理し、分けられるポイントを探る »サイズはチーム(3名~9名)でメンテできるかどうか 21
23.
Step1 サービスとのWebAPI連携 • サービスをWebAPIで同期呼び出しする »メリット:既存の延長で拡張できる ▸認証認可などを考慮外にできる »デメリット:適用できるケースが多くない ▸改修が発生するポイントが新サービス部分に寄るのであれはOK 22 新サービス システム 一部改修
24.
Step1 URLベースの置き替え • URLベースで一部の処理を新サービスに置き換える »メリット:旧システムの手術リスクを回避、新サービスのFW自由 »デメリット:URLベースですり替えが可能な場合に限る ▸例:ECサイトの一部機能を置き換える 23 システム 新サービス 早めたい システム 廃止/aaa/ /bbb/ /aaa/ /bbb/ URL置き換え現状 ルーター ルーター
25.
Step1 共有メモリでの認証情報共有 • セッション情報をバックエンドの共有メモリへ »メリット:認証機構にほぼ変更が不要 »デメリット:セッション情報の形式によっては言語縛り ▸※既存がDBであれば、そのままDBでもよし 24 新サービス システム 廃止 共有 メモリ ログイン処理セッション ElastiCache
26.
DB Step1 共有データベース • データの分割は避け、共有データベースから »メリット:コスト最適化 »デメリット:データベースに関する変更では同期が必要 ▸Read Onlyな部分はview化すると変更影響を抑えられる 25 新サービス システム 廃止 新サービス システム 廃止 テーブル共有
ビュー経由共有
27.
Step1 PaaSの利用 • 新サービスにはWebアプリPaaSを採用 »メリット:運用作業が自動化される ▸リリース、障害復旧、ミドルウェアアップデート、 ▸操作は手動でもいいし、時間があればCI/CD »デメリット:PaaSの制約に従う必要がある ▸既存システムとのギャップが大きく運用できるかは課題あり 26 新サービス システム 廃止 EC2 EB RDS ElastiCache Git CodePipeline
28.
Step1 ポイント • サービスの分割点はビジネス視点で決定すること »制約の範囲で最適な範囲を見つける • 技術的に無理しすぎない »全部ではなく、部分的に新しいものをいれる »新しい概念が必要な技術へのチャレンジは慎重に ▸コンテナ、NoSQL、サーバレス… »実際には運用周りでの変更をどこまで救えるかが重要 27
29.
マイクロサービス化の導入ステップ Step2 28
30.
Step2 方針 • サービスが増えてもサービス間を疎に保つ基盤づくり »認証のSSO化 »ログ基盤 »非同期キューの導入 »DBインスタンスの分離 »環境設定の外部注入 29
31.
Step2 認証のSSO化 • 認証をSSOに変更する(OpenID Connectなど) »メリット:サービスが増えることに対応しやすくなる ▸ユーザー情報として既存テーブルを利用可能することもOK »デメリット:既存システムも認証基盤の変更が必要 30 DB ユーザー 新サービス システム 廃止 SSO基盤 新サービス
32.
ログ基盤の導入 • ログを基盤側に送信して管理する »メリット:ノード数に非依存、イベントフックによる自動化 ▸ログにユーザーキーを付けることで抽出可能にしておく »デメリット:特になし Step2 31 新サービス システム 廃止 新サービス Kinesis Firehose Kinesis
Streams ※イベントをフックして 自動通知などに展開可能 ログ基盤
33.
Step2 非同期キューの導入 • サービス間の連携に非同期処理を導入 »メリット:サービス同士を疎結合に連携 ▸性能面でも仕様面でも安定する。ECサイトの受注処理など »デメリット:非同期ゆえ、後続処理での問題発生がありえる ▸サービスAはOKを返しているのに、サービスBでNGの場合のリカバリ 32 サービスA キュー 基盤 キューサービスB SQS
34.
ETL基盤 Step2 DBインスタンスの分離 • データベースを分離する »メリット:データベースの疎結合化 ▸トリガー、ストアドなどによりインスタンス間コピー ▸マスタなどはETLによる連携 »デメリット:データの不整合の発生 33 新サービス システム 廃止 インスタンス間コピー 新サービス システム 廃止 ETL
35.
Step2 環境設定の外部注入 • 環境に依存する設定情報はランタイムに取得させる »メリット:環境によってビルド結果が変わらない ▸一度作ったビルド済みファイルがすべての環境で使えるように »デメリット:設定サーバが必要になる 34 新サービス システム 廃止 新サービス ログ基盤 設定 サーバ
36.
Step2 ポイント • サービスの数を増やしていくことができるようにする »基盤として整備をしておかないと、あとで問題になる »儲からないが、やっておかないといけないこと »マイグレーションの場合、PaaSだけでは対応しきれない • 分割と集約のバランスを考える »サービス間を疎結合にできないなら分割すべきではない »キュー、Lambdaのようなものをピンポイントで利用する 35
37.
マイクロサービス化の導入ステップ Step3 36
38.
Step3 方針 • さらに大量のノードを管理するための基盤づくり »コンテナの導入 »バッチサーバの廃止 »コンテナオーケストレーターの導入 »サービスメッシュの導入 »イベントソーシング 37
39.
Step3 アプリケーションのコンテナ対応 • コンテナによってアプリの実行環境をパッケージ化 »メリット:ミドルウェアの管理がアプリと同期 ▸PaaSの制約に縛られない構成が可能。代表的なものはDocker ▸ミドルウェアの設定が楽。アップデートも楽に。 »デメリット:CI/CD必須 38 OS アプリケーション ネットワーク構成 ミドルウェア設定 git ネットワーク設定 ミドルウェア設定 OS アプリケーションgit
40.
ジョブジョブ Step3 バッチサーバの廃止 • バッチアプリを起動するタイミングでノードを手配する »メリット:バッチアプリ単位で最適化が可能 ▸性能(スケールアウト/アップ)、起動時間 »デメリット:管理が面倒 39 バッチ サーバ バッチ サーバ バッチ サーバ ジョブ ジョブジョブ ジョブ ジョブジョブ バッチ サーバ バッチ サーバ バッチ サーバ
41.
Step3 コンテナオーケストレーターの導入 • コンテナ化されたアプリの管理を自動化する »メリット:アプリの起動制御が自動化 ▸ECS、EKSなど »デメリット:管理が面倒 ▸それなりのノード数でないと管理コストに見合わない可能性も 40 コンテナ オーケストレーター コンテナ コンテナ コンテナ サーバ コンテナ サーバ コンテナ サーバ コンテナ 設定情報
42.
Step3 サービスメッシュの導入 • サービス間メッセージのルーティング管理を行う »メリット:ノードの状況を管理し、ルートを設定 ▸ノード個別のサーキットブレーカーなどを不要に ▸ESBを分散管理型にし、ルーティングのみに特化 41 新サービス 新サービス サービスメッシュ プロキシ
プロキシ
43.
Step3 イベントソーシングの導入 • データのステートではなく、変更イベントを共有する »メリット:データ構造の共有から離れることができる ▸どんなステートに対して処理すべきかだけわかっていればいい »デメリット:複雑 42 新サービス システム 廃止 イベントソーシング ストリーム イベント フック
44.
Step3 ポイント • 大量になってきたサービスをいかに管理するのか? »この分野は現在進行形なので、まだまだ未成熟な領域 »数年で落ち着いてくるはず • 導入が早すぎると管理コストばかりがかかる »いわゆるオーバーキル問題 »コンテナだけは早めでもいい 43
45.
まとめ 44
46.
マイクロサービスとは Microservices(2014年~) • システム全体を「サービス単位」で変更していく »サービスのリリース/切り戻しは自動化され無停止で実施可能 »チームをまたがる影響調査やリリース調整は不要 • マイクロサービス=アジャイル+DevOps/NoOps »目的:システム全体の変更速度を上げる 45 利用 企画 実装 運用
47.
マイクロサービス化の観点 誰も最初はマイクロサービスではなかった • 先端企業だってマイクロサービス化していった »Netflixは2008年からAWS化し、自動化をしながら足りない管理 機能を開発してきた »2011年ぐらいに「マイクロサービス」と名付けられただけ • マイクロサービスまで至る歴史をたどるべき »アジャイル→DevOps→NoOps→Microsrvices→Cloud
Native »アジャイルやDevOpsを飛ばしてMicrosrvicesは無理 46
48.
マイクロサービス化の導入ステップ 段階を経て進めていく • Step1:最初のサービスを分割する »Monolithicからサービスを切り出していく • Step2:サービス基盤を整備する »サービスを増やしていくための基盤を整備する •
Step3:サービスを管理する »数が多くなってきたサービスそのものの管理を自動化していく 47
49.
さいごに 明日からマイクロサービス化をはじめよう! • マイクロサービス”化”であることを理解する »いきなり完成形を目指すのでなくStep by
Stepで • 目の前の課題が、その技術で解決すべき課題が考える »技術を先に決めるとオーバーキルになりがち • マイクロサービス化プロセスがチームを育てる »最初からできる人を望むのではなく、段階的に成長してもらう 48
Download