Movatterモバイル変換
[0]
ホーム
URL:
画像なし
夜間モード
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,792 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
Recommended
PDF
マイクロサービスアーキテクチャとは何か
by
Yusuke Suzuki
PDF
マイクロサービスに至る歴史とこれから - XP祭り2021
by
Yusuke Suzuki
PDF
なぜ「マイクロサービス“化”」が必要なのか
by
Yusuke Suzuki
PDF
Serverless時代のJavaについて
by
Amazon Web Services Japan
PDF
ドメイン駆動設計のための Spring の上手な使い方
by
増田 亨
PPTX
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
by
NTT DATA Technology & Innovation
PDF
ソフトウェア開発のやり方の改善
by
増田 亨
PDF
イミュータブルデータモデルの極意
by
Yoshitaka Kawashima
PDF
マイクロサービス化設計入門 - AWS Dev Day Tokyo 2017
by
Yusuke Suzuki
PDF
シリコンバレーの「何が」凄いのか
by
Atsushi Nakada
PDF
異次元のグラフデータベースNeo4j
by
昌桓 李
PDF
マルチテナント化で知っておきたいデータベースのこと
by
Amazon Web Services Japan
PDF
世界でいちばんわかりやすいドメイン駆動設計
by
増田 亨
PDF
フロー効率性とリソース効率性について #xpjug
by
Itsuki Kuroda
PDF
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善
by
Ito Takayuki
PDF
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
by
Amazon Web Services Japan
PDF
ドメイン駆動設計 ( DDD ) をやってみよう
by
増田 亨
PPTX
Amazon SageMakerでカスタムコンテナを使った学習
by
西岡 賢一郎
PDF
ドメインオブジェクトの見つけ方・作り方・育て方
by
増田 亨
PPTX
オーバーエンジニアリングって何? #devsumi #devsumiA
by
Ore Product
PDF
パターン・ランゲージ入門講座(Pattern Language Innovators Summit)
by
Takashi Iba
PDF
MagicOnion入門
by
torisoup
PDF
マイクロサービス 4つの分割アプローチ
by
増田 亨
PDF
ドメイン駆動設計 失敗したことと成功したこと
by
BIGLOBE Inc.
PDF
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
by
Mikiya Okuno
PDF
ドメイン駆動設計に15年取り組んでわかったこと
by
増田 亨
PDF
イミュータブルデータモデル(世代編)
by
Yoshitaka Kawashima
PDF
マイクロにしすぎた結果がこれだよ!
by
mosa siru
PDF
30分でわかるマイクロサービスアーキテクチャ 第2版
by
Naoki (Neo) SATO
PDF
サービスブループリントによるシステム設計手法の紹介 - XP祭り2022
by
Yusuke Suzuki
More Related Content
PDF
マイクロサービスアーキテクチャとは何か
by
Yusuke Suzuki
PDF
マイクロサービスに至る歴史とこれから - XP祭り2021
by
Yusuke Suzuki
PDF
なぜ「マイクロサービス“化”」が必要なのか
by
Yusuke Suzuki
PDF
Serverless時代のJavaについて
by
Amazon Web Services Japan
PDF
ドメイン駆動設計のための Spring の上手な使い方
by
増田 亨
PPTX
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
by
NTT DATA Technology & Innovation
PDF
ソフトウェア開発のやり方の改善
by
増田 亨
PDF
イミュータブルデータモデルの極意
by
Yoshitaka Kawashima
マイクロサービスアーキテクチャとは何か
by
Yusuke Suzuki
マイクロサービスに至る歴史とこれから - XP祭り2021
by
Yusuke Suzuki
なぜ「マイクロサービス“化”」が必要なのか
by
Yusuke Suzuki
Serverless時代のJavaについて
by
Amazon Web Services Japan
ドメイン駆動設計のための Spring の上手な使い方
by
増田 亨
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
by
NTT DATA Technology & Innovation
ソフトウェア開発のやり方の改善
by
増田 亨
イミュータブルデータモデルの極意
by
Yoshitaka Kawashima
What's hot
PDF
マイクロサービス化設計入門 - AWS Dev Day Tokyo 2017
by
Yusuke Suzuki
PDF
シリコンバレーの「何が」凄いのか
by
Atsushi Nakada
PDF
異次元のグラフデータベースNeo4j
by
昌桓 李
PDF
マルチテナント化で知っておきたいデータベースのこと
by
Amazon Web Services Japan
PDF
世界でいちばんわかりやすいドメイン駆動設計
by
増田 亨
PDF
フロー効率性とリソース効率性について #xpjug
by
Itsuki Kuroda
PDF
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善
by
Ito Takayuki
PDF
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
by
Amazon Web Services Japan
PDF
ドメイン駆動設計 ( DDD ) をやってみよう
by
増田 亨
PPTX
Amazon SageMakerでカスタムコンテナを使った学習
by
西岡 賢一郎
PDF
ドメインオブジェクトの見つけ方・作り方・育て方
by
増田 亨
PPTX
オーバーエンジニアリングって何? #devsumi #devsumiA
by
Ore Product
PDF
パターン・ランゲージ入門講座(Pattern Language Innovators Summit)
by
Takashi Iba
PDF
MagicOnion入門
by
torisoup
PDF
マイクロサービス 4つの分割アプローチ
by
増田 亨
PDF
ドメイン駆動設計 失敗したことと成功したこと
by
BIGLOBE Inc.
PDF
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
by
Mikiya Okuno
PDF
ドメイン駆動設計に15年取り組んでわかったこと
by
増田 亨
PDF
イミュータブルデータモデル(世代編)
by
Yoshitaka Kawashima
PDF
マイクロにしすぎた結果がこれだよ!
by
mosa siru
マイクロサービス化設計入門 - AWS Dev Day Tokyo 2017
by
Yusuke Suzuki
シリコンバレーの「何が」凄いのか
by
Atsushi Nakada
異次元のグラフデータベースNeo4j
by
昌桓 李
マルチテナント化で知っておきたいデータベースのこと
by
Amazon Web Services Japan
世界でいちばんわかりやすいドメイン駆動設計
by
増田 亨
フロー効率性とリソース効率性について #xpjug
by
Itsuki Kuroda
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善
by
Ito Takayuki
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
by
Amazon Web Services Japan
ドメイン駆動設計 ( DDD ) をやってみよう
by
増田 亨
Amazon SageMakerでカスタムコンテナを使った学習
by
西岡 賢一郎
ドメインオブジェクトの見つけ方・作り方・育て方
by
増田 亨
オーバーエンジニアリングって何? #devsumi #devsumiA
by
Ore Product
パターン・ランゲージ入門講座(Pattern Language Innovators Summit)
by
Takashi Iba
MagicOnion入門
by
torisoup
マイクロサービス 4つの分割アプローチ
by
増田 亨
ドメイン駆動設計 失敗したことと成功したこと
by
BIGLOBE Inc.
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
by
Mikiya Okuno
ドメイン駆動設計に15年取り組んでわかったこと
by
増田 亨
イミュータブルデータモデル(世代編)
by
Yoshitaka Kawashima
マイクロにしすぎた結果がこれだよ!
by
mosa siru
Similar to マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018
PDF
30分でわかるマイクロサービスアーキテクチャ 第2版
by
Naoki (Neo) SATO
PDF
サービスブループリントによるシステム設計手法の紹介 - XP祭り2022
by
Yusuke Suzuki
PDF
マイクロサービス化に向けて
by
HIRA
PDF
要求の変化とマイクロサービスアーキテクチャ
by
Yusuke Suzuki
PPTX
20200610 マイクロサービス勉強会
by
Naoki Yoshitake
PDF
マイクロサービスアーキテクチャの設計 - JUG2015
by
Yusuke Suzuki
PDF
MicroserviceでのNoOps戦略 - NoOps Meetup Tokyo #2 #NoOpsJP
by
Yusuke Suzuki
PDF
デザインパターンから見た AWS と Azure
by
Sunao Tomita
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
オトナのService Fabric~マイクロサービス編
by
Tatsuaki Sakai
PDF
[Java Day Tokyo 2018]50分で最新技術学習の基礎を身につける(SOMPO Systems Daisuke Nishino)
by
Daisuke Nishino
PPT
覚えて帰ろうJavaデザインパターン
by
Kazuya Hirota
PPTX
Container microservices
by
Tsuyoshi Ushio
30分でわかるマイクロサービスアーキテクチャ 第2版
by
Naoki (Neo) SATO
サービスブループリントによるシステム設計手法の紹介 - XP祭り2022
by
Yusuke Suzuki
マイクロサービス化に向けて
by
HIRA
要求の変化とマイクロサービスアーキテクチャ
by
Yusuke Suzuki
20200610 マイクロサービス勉強会
by
Naoki Yoshitake
マイクロサービスアーキテクチャの設計 - JUG2015
by
Yusuke Suzuki
MicroserviceでのNoOps戦略 - NoOps Meetup Tokyo #2 #NoOpsJP
by
Yusuke Suzuki
デザインパターンから見た AWS と Azure
by
Sunao Tomita
20180525 system department manager microservices
by
kounan13
Preparation to Start the Microservice for Java EE developers
by
Yoshio Terada
マイクロサービス運用の所感 #m3dev
by
Kazuhiro Sera
オトナのService Fabric~マイクロサービス編
by
Tatsuaki Sakai
[Java Day Tokyo 2018]50分で最新技術学習の基礎を身につける(SOMPO Systems Daisuke Nishino)
by
Daisuke Nishino
覚えて帰ろうJavaデザインパターン
by
Kazuya Hirota
Container microservices
by
Tsuyoshi Ushio
More from Yusuke Suzuki
PDF
アジャイル開発を支えるアーキテクチャ設計とは
by
Yusuke Suzuki
PDF
アーキテクチャのレビューについて - JaSST Review '18
by
Yusuke Suzuki
PDF
アーキテクチャの進化から学ぶ、プラットフォームエンジニアリングへのアプローチ
by
Yusuke Suzuki
PDF
エンタープライズ、アーキテクチャ、アジャイルのこれから
by
Yusuke Suzuki
PDF
見えない壁を越えよう!アジャイルやマイクロサービスを阻む「今までのやり方」 - デブサミ夏2023
by
Yusuke Suzuki
PDF
エンタープライズアジャイルでチームが超えるべきこと - エンタープライズアジャイル勉強会 2018年10月セミナー
by
Yusuke Suzuki
PDF
今どきのアーキテクチャ設計戦略 - QCon Tokyo 2016
by
Yusuke Suzuki
PDF
プロダクトオーナーは育成できるのか? - プロダクトオーナー祭り2016
by
Yusuke Suzuki
PDF
エンタープライズアジャイルにおける要求探索の勘所 要求開発アライアンス2018年7月定例会
by
Yusuke Suzuki
PDF
ITトレンドに見る日本のエンタープライズITについて
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
クラウド時代のエンジニアについて #sesfukui
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
アジャイル開発を支えるアーキテクチャ設計とは
by
Yusuke Suzuki
アーキテクチャのレビューについて - JaSST Review '18
by
Yusuke Suzuki
アーキテクチャの進化から学ぶ、プラットフォームエンジニアリングへのアプローチ
by
Yusuke Suzuki
エンタープライズ、アーキテクチャ、アジャイルのこれから
by
Yusuke Suzuki
見えない壁を越えよう!アジャイルやマイクロサービスを阻む「今までのやり方」 - デブサミ夏2023
by
Yusuke Suzuki
エンタープライズアジャイルでチームが超えるべきこと - エンタープライズアジャイル勉強会 2018年10月セミナー
by
Yusuke Suzuki
今どきのアーキテクチャ設計戦略 - QCon Tokyo 2016
by
Yusuke Suzuki
プロダクトオーナーは育成できるのか? - プロダクトオーナー祭り2016
by
Yusuke Suzuki
エンタープライズアジャイルにおける要求探索の勘所 要求開発アライアンス2018年7月定例会
by
Yusuke Suzuki
ITトレンドに見る日本のエンタープライズITについて
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
クラウド時代のエンジニアについて #sesfukui
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
マイクロサービス化デザインパターン - #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_arclamp1
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の開発プラクティスは基本»テスト駆動開発、ペアプロ(モブ)、リファクタリング、ソースコードの共同所有、継続的インテグレーション、YAGNI14
16.
マイクロサービス化の観点運用の自動化• 運用作業が自動化/ツール化された状態»それを開発するのはDevOpsエンジニア/SREエンジニア»インフラ・運用担当者の新たな役割»単純な運用作業/オペレーターは不要• 開発者はツールを使ってコードを稼働させる»「アプリを作る」から「サービスを動かす」へ»非機能要件も意識するようになる15
17.
マイクロサービス化の観点プラットフォーム化• 運用作業を織り込んだプラットフォーム»WebアプリPaaSなどは最初から可用性を備える• サービスを支えるプラットフォーム»サービスの数が増えてきても疎に連携できる基盤•
サービスを管理するプラットフォーム»増えたサービスを管理し、自動化する基盤16
18.
マイクロサービス化の導入ステップ17
19.
マイクロサービス化の導入ステップ段階を経て進めていく• Step1:最初のサービスを分割する»Monolithicからサービスを切り出していく• Step2:サービス基盤を整備する»サービスを増やしていくための基盤を整備する•
Step3:サービスを管理する»数が多くなってきたサービスそのものの管理を自動化していく18
20.
マイクロサービス化の導入ステップStep119
21.
Step1方針• 最初のサービスを切り出す»サービスとのWebAPI連携»URLベースの書き換え»共有メモリでの認証情報共有»共有データベース»PaaSの利用20
22.
Step1最初のサービスを切り出す• 分割は「リリースサイクルを早めたい場所」»まずはビジネス視点で整理を行う▸変更要求が多いところ▸複数の機能を横断する場合があるため注意して整理»そのうえで制約条件を整理し、分けられるポイントを探る»サイズはチーム(3名~9名)でメンテできるかどうか21
23.
Step1サービスとのWebAPI連携• サービスをWebAPIで同期呼び出しする»メリット:既存の延長で拡張できる▸認証認可などを考慮外にできる»デメリット:適用できるケースが多くない▸改修が発生するポイントが新サービス部分に寄るのであれはOK22新サービスシステム一部改修
24.
Step1URLベースの置き替え• URLベースで一部の処理を新サービスに置き換える»メリット:旧システムの手術リスクを回避、新サービスのFW自由»デメリット:URLベースですり替えが可能な場合に限る▸例:ECサイトの一部機能を置き換える23システム新サービス早めたいシステム廃止/aaa//bbb//aaa//bbb/URL置き換え現状ルータールーター
25.
Step1共有メモリでの認証情報共有• セッション情報をバックエンドの共有メモリへ»メリット:認証機構にほぼ変更が不要»デメリット:セッション情報の形式によっては言語縛り▸※既存がDBであれば、そのままDBでもよし24新サービスシステム廃止共有メモリログイン処理セッションElastiCache
26.
DBStep1共有データベース• データの分割は避け、共有データベースから»メリット:コスト最適化»デメリット:データベースに関する変更では同期が必要▸Read Onlyな部分はview化すると変更影響を抑えられる25新サービスシステム廃止新サービスシステム廃止テーブル共有
ビュー経由共有
27.
Step1PaaSの利用• 新サービスにはWebアプリPaaSを採用»メリット:運用作業が自動化される▸リリース、障害復旧、ミドルウェアアップデート、▸操作は手動でもいいし、時間があればCI/CD»デメリット:PaaSの制約に従う必要がある▸既存システムとのギャップが大きく運用できるかは課題あり26新サービスシステム廃止EC2EBRDSElastiCacheGit CodePipeline
28.
Step1ポイント• サービスの分割点はビジネス視点で決定すること»制約の範囲で最適な範囲を見つける• 技術的に無理しすぎない»全部ではなく、部分的に新しいものをいれる»新しい概念が必要な技術へのチャレンジは慎重に▸コンテナ、NoSQL、サーバレス…»実際には運用周りでの変更をどこまで救えるかが重要27
29.
マイクロサービス化の導入ステップStep228
30.
Step2方針• サービスが増えてもサービス間を疎に保つ基盤づくり»認証のSSO化»ログ基盤»非同期キューの導入»DBインスタンスの分離»環境設定の外部注入29
31.
Step2認証のSSO化• 認証をSSOに変更する(OpenID Connectなど)»メリット:サービスが増えることに対応しやすくなる▸ユーザー情報として既存テーブルを利用可能することもOK»デメリット:既存システムも認証基盤の変更が必要30DBユーザー新サービスシステム廃止SSO基盤新サービス
32.
ログ基盤の導入• ログを基盤側に送信して管理する»メリット:ノード数に非依存、イベントフックによる自動化▸ログにユーザーキーを付けることで抽出可能にしておく»デメリット:特になしStep231新サービスシステム廃止新サービスKinesis FirehoseKinesis
Streams※イベントをフックして自動通知などに展開可能ログ基盤
33.
Step2非同期キューの導入• サービス間の連携に非同期処理を導入»メリット:サービス同士を疎結合に連携▸性能面でも仕様面でも安定する。ECサイトの受注処理など»デメリット:非同期ゆえ、後続処理での問題発生がありえる▸サービスAはOKを返しているのに、サービスBでNGの場合のリカバリ32サービスAキュー基盤キューサービスBSQS
34.
ETL基盤Step2DBインスタンスの分離• データベースを分離する»メリット:データベースの疎結合化▸トリガー、ストアドなどによりインスタンス間コピー▸マスタなどはETLによる連携»デメリット:データの不整合の発生33新サービスシステム廃止インスタンス間コピー新サービスシステム廃止ETL
35.
Step2環境設定の外部注入• 環境に依存する設定情報はランタイムに取得させる»メリット:環境によってビルド結果が変わらない▸一度作ったビルド済みファイルがすべての環境で使えるように»デメリット:設定サーバが必要になる34新サービスシステム廃止新サービスログ基盤設定サーバ
36.
Step2ポイント• サービスの数を増やしていくことができるようにする»基盤として整備をしておかないと、あとで問題になる»儲からないが、やっておかないといけないこと»マイグレーションの場合、PaaSだけでは対応しきれない• 分割と集約のバランスを考える»サービス間を疎結合にできないなら分割すべきではない»キュー、Lambdaのようなものをピンポイントで利用する35
37.
マイクロサービス化の導入ステップStep336
38.
Step3方針• さらに大量のノードを管理するための基盤づくり»コンテナの導入»バッチサーバの廃止»コンテナオーケストレーターの導入»サービスメッシュの導入»イベントソーシング37
39.
Step3アプリケーションのコンテナ対応• コンテナによってアプリの実行環境をパッケージ化»メリット:ミドルウェアの管理がアプリと同期▸PaaSの制約に縛られない構成が可能。代表的なものはDocker▸ミドルウェアの設定が楽。アップデートも楽に。»デメリット:CI/CD必須38OSアプリケーションネットワーク構成ミドルウェア設定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
[8]
ページ先頭
©2009-2025
Movatter.jp