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
EN
Uploaded by
Hideaki Tokida
754 views
今更ながらの「マイクロサービス」
InnocationHubKyushuDeveloperDay講演資料2017年10月7日
Technology
◦
Read more
0
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 37
2
/ 37
3
/ 37
4
/ 37
5
/ 37
6
/ 37
7
/ 37
8
/ 37
9
/ 37
10
/ 37
11
/ 37
12
/ 37
13
/ 37
14
/ 37
15
/ 37
16
/ 37
17
/ 37
18
/ 37
19
/ 37
20
/ 37
21
/ 37
22
/ 37
23
/ 37
24
/ 37
25
/ 37
26
/ 37
27
/ 37
28
/ 37
29
/ 37
30
/ 37
31
/ 37
32
/ 37
33
/ 37
34
/ 37
35
/ 37
36
/ 37
37
/ 37
More Related Content
PDF
なぜ「マイクロサービス“化”」が必要なのか
by
Yusuke Suzuki
PDF
JaSST Tokyo 2022 アジャイルソフトウェア開発への統計的品質管理の応用
by
Akinori SAKATA
PDF
インフラCICDの勘所
by
Toru Makabe
PDF
マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018
by
Yusuke Suzuki
PDF
大企業アジャイルの勘所(ver1.1) #アジャイルマネジメントセミナー
by
Itsuki Kuroda
PPTX
Azure API Management 俺的マニュアル
by
貴志 上坂
PDF
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
by
NTT DATA Technology & Innovation
PDF
マイクロサービスに至る歴史とこれから - XP祭り2021
by
Yusuke Suzuki
なぜ「マイクロサービス“化”」が必要なのか
by
Yusuke Suzuki
JaSST Tokyo 2022 アジャイルソフトウェア開発への統計的品質管理の応用
by
Akinori SAKATA
インフラCICDの勘所
by
Toru Makabe
マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018
by
Yusuke Suzuki
大企業アジャイルの勘所(ver1.1) #アジャイルマネジメントセミナー
by
Itsuki Kuroda
Azure API Management 俺的マニュアル
by
貴志 上坂
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
by
NTT DATA Technology & Innovation
マイクロサービスに至る歴史とこれから - XP祭り2021
by
Yusuke Suzuki
What's hot
PPTX
20160526 依存関係逆転の原則
by
bonjin6770 Kurosawa
PDF
大規模レガシー環境に立ち向かう有機的な開発フォーメーション #devsumi #devsumic
by
Itsuki Kuroda
PDF
マイクロサービス化設計入門 - AWS Dev Day Tokyo 2017
by
Yusuke Suzuki
PDF
開発速度が速い #とは(LayerX社内資料)
by
mosa siru
PPTX
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
by
NTT DATA Technology & Innovation
PDF
コンテナの作り方「Dockerは裏方で何をしているのか?」
by
Masahito Zembutsu
PDF
コンテナとimmutableとわたし。あとセキュリティ。(Kubernetes Novice Tokyo #15 発表資料)
by
NTT DATA Technology & Innovation
PDF
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
by
Toru Makabe
PDF
xOps: エンジニアがスタートアップの成長の原動力となる日
by
Takaaki Umada
PDF
マイクロサービス 4つの分割アプローチ
by
増田 亨
PDF
新規事業が対峙する現実からエンジニアリングを俯瞰する #devsumiB #devsumi
by
Itsuki Kuroda
PPTX
マイクロサービスにおける 結果整合性との戦い
by
ota42y
PDF
フロー効率性とリソース効率性について #xpjug
by
Itsuki Kuroda
PDF
7. Vertex AI Model Registryで BigQuery MLのモデルを管理する
by
幸太朗 岩澤
PDF
ビジネスパーソンのためのDX入門講座エッセンス版
by
Tokoroten Nakayama
PDF
Kubernetesを使う上で抑えておくべきAWSの基礎概念
by
Shinya Mori (@mosuke5)
PDF
大規模システムリプレイスへの道
by
Recruit Lifestyle Co., Ltd.
PDF
40歳過ぎてもエンジニアでいるためにやっていること
by
onozaty
PDF
マイクロサービス化に向けて
by
HIRA
PDF
インフラエンジニアの綺麗で優しい手順書の書き方
by
Shohei Koyama
20160526 依存関係逆転の原則
by
bonjin6770 Kurosawa
大規模レガシー環境に立ち向かう有機的な開発フォーメーション #devsumi #devsumic
by
Itsuki Kuroda
マイクロサービス化設計入門 - AWS Dev Day Tokyo 2017
by
Yusuke Suzuki
開発速度が速い #とは(LayerX社内資料)
by
mosa siru
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
by
NTT DATA Technology & Innovation
コンテナの作り方「Dockerは裏方で何をしているのか?」
by
Masahito Zembutsu
コンテナとimmutableとわたし。あとセキュリティ。(Kubernetes Novice Tokyo #15 発表資料)
by
NTT DATA Technology & Innovation
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
by
Toru Makabe
xOps: エンジニアがスタートアップの成長の原動力となる日
by
Takaaki Umada
マイクロサービス 4つの分割アプローチ
by
増田 亨
新規事業が対峙する現実からエンジニアリングを俯瞰する #devsumiB #devsumi
by
Itsuki Kuroda
マイクロサービスにおける 結果整合性との戦い
by
ota42y
フロー効率性とリソース効率性について #xpjug
by
Itsuki Kuroda
7. Vertex AI Model Registryで BigQuery MLのモデルを管理する
by
幸太朗 岩澤
ビジネスパーソンのためのDX入門講座エッセンス版
by
Tokoroten Nakayama
Kubernetesを使う上で抑えておくべきAWSの基礎概念
by
Shinya Mori (@mosuke5)
大規模システムリプレイスへの道
by
Recruit Lifestyle Co., Ltd.
40歳過ぎてもエンジニアでいるためにやっていること
by
onozaty
マイクロサービス化に向けて
by
HIRA
インフラエンジニアの綺麗で優しい手順書の書き方
by
Shohei Koyama
Similar to 今更ながらの「マイクロサービス」
PPT
Microservicesのdesign patterns
by
Naohiko Uramoto
PPTX
オレ流クラウドデザイン
by
Atsushi Kojima
PDF
Design Pattern MicroServices Architecture in Japanese
by
Lei Xu
PDF
オトナのService Fabric~マイクロサービス編
by
Tatsuaki Sakai
PDF
Open Hybrid Cloudを検討すべき理由.pdf
by
Masahiko Umeno
PPTX
Microservices
by
kounan13
PDF
マイクロサービス運用の所感 #m3dev
by
Kazuhiro Sera
PPTX
Servcie Fabric and Cloud Design Pattern
by
Takekazu Omi
PPTX
Container microservices
by
Tsuyoshi Ushio
PPTX
Twilio x SendGrid x Bluemix 実践ハンズオン
by
Masaya Fujita
PDF
マイクロサービスで、 一歩先行くImmutable Infrastructureを目指そう
by
Takashi Abe
PDF
Microservices and Servcie Mesh on Azure
by
Tsukasa Kato
PDF
30分でわかるマイクロサービスアーキテクチャ 第2版
by
Naoki (Neo) SATO
PPTX
JSUG SpringOnePlatform 2016報告会 Case study2 - feed back - springoneplatform
by
Takahiro Fujii
PPTX
App003 pivotal cloud_foundry_on_azure_で実現する_j
by
Tech Summit 2016
PDF
App003 pivotal cloud_foundry_on_azure_で実現する_ja
by
Tech Summit 2016
PDF
Spring Bootハンズオン ~Spring Bootで作る マイクロサービスアーキテクチャ! #jjug_ccc #ccc_r53
by
Toshiaki Maki
PPT
Bluemix体験レポート@第3回札幌SoftLayer勉強会 20140901
by
YoshiyukiKonno
PPTX
API Academy:マイクロサービス化へのファーストステップ
by
CA Technologies
PDF
Monolith to microservice
by
YorikoYokoyama
Microservicesのdesign patterns
by
Naohiko Uramoto
オレ流クラウドデザイン
by
Atsushi Kojima
Design Pattern MicroServices Architecture in Japanese
by
Lei Xu
オトナのService Fabric~マイクロサービス編
by
Tatsuaki Sakai
Open Hybrid Cloudを検討すべき理由.pdf
by
Masahiko Umeno
Microservices
by
kounan13
マイクロサービス運用の所感 #m3dev
by
Kazuhiro Sera
Servcie Fabric and Cloud Design Pattern
by
Takekazu Omi
Container microservices
by
Tsuyoshi Ushio
Twilio x SendGrid x Bluemix 実践ハンズオン
by
Masaya Fujita
マイクロサービスで、 一歩先行くImmutable Infrastructureを目指そう
by
Takashi Abe
Microservices and Servcie Mesh on Azure
by
Tsukasa Kato
30分でわかるマイクロサービスアーキテクチャ 第2版
by
Naoki (Neo) SATO
JSUG SpringOnePlatform 2016報告会 Case study2 - feed back - springoneplatform
by
Takahiro Fujii
App003 pivotal cloud_foundry_on_azure_で実現する_j
by
Tech Summit 2016
App003 pivotal cloud_foundry_on_azure_で実現する_ja
by
Tech Summit 2016
Spring Bootハンズオン ~Spring Bootで作る マイクロサービスアーキテクチャ! #jjug_ccc #ccc_r53
by
Toshiaki Maki
Bluemix体験レポート@第3回札幌SoftLayer勉強会 20140901
by
YoshiyukiKonno
API Academy:マイクロサービス化へのファーストステップ
by
CA Technologies
Monolith to microservice
by
YorikoYokoyama
More from Hideaki Tokida
PDF
[GCP INSIDE Retail] オンプレミスDWHからBQへ
by
Hideaki Tokida
PDF
D1-2-S07 オンプレミスのデータウェアハウス基盤を BigQuery へ
by
Hideaki Tokida
PDF
D1-2-OS2_オンプレミスのVMワークロードをGCPへ移行する
by
Hideaki Tokida
PDF
About Istio
by
Hideaki Tokida
PDF
OpenShift Ansbile 活用法 アプリケーションライフサイクルからみる導入効果
by
Hideaki Tokida
PDF
LT資料イベント状況SNS自動投稿について考えてみた
by
Hideaki Tokida
PDF
Docker Actionを利用してOpenWhiskをあれこれする
by
Hideaki Tokida
PPTX
Bluemixクラウド開発入門 Devlivery Pipeline デモ
by
Hideaki Tokida
PPTX
IBM Bluemixクラウド開発入門 15分でわかるBluemix
by
Hideaki Tokida
PDF
API公開最初の一歩 - API Connect on Bluemix
by
Hideaki Tokida
PPTX
Bluemix User Group ご紹介
by
Hideaki Tokida
PPTX
BMXUG 大勉強会 2017.6.21 アジェンダ
by
Hideaki Tokida
PDF
OpenWhisk meetup vol2
by
Hideaki Tokida
PDF
OpenWhisk meetup vol1
by
Hideaki Tokida
PDF
Serverless meetup02 openwhisk
by
Hideaki Tokida
PDF
Bluemix Users Group 活動報告
by
Hideaki Tokida
PDF
デモから見るOpenWhisk - Docker Action -
by
Hideaki Tokida
PDF
OpenWhisk Serverless への期待
by
Hideaki Tokida
PDF
SIer目線でみたbluemix "bluemixハッカソン、watson ハッカソンでの知見"
by
Hideaki Tokida
PPTX
日本SoftLayerユーザ会紹介資料 2016
by
Hideaki Tokida
[GCP INSIDE Retail] オンプレミスDWHからBQへ
by
Hideaki Tokida
D1-2-S07 オンプレミスのデータウェアハウス基盤を BigQuery へ
by
Hideaki Tokida
D1-2-OS2_オンプレミスのVMワークロードをGCPへ移行する
by
Hideaki Tokida
About Istio
by
Hideaki Tokida
OpenShift Ansbile 活用法 アプリケーションライフサイクルからみる導入効果
by
Hideaki Tokida
LT資料イベント状況SNS自動投稿について考えてみた
by
Hideaki Tokida
Docker Actionを利用してOpenWhiskをあれこれする
by
Hideaki Tokida
Bluemixクラウド開発入門 Devlivery Pipeline デモ
by
Hideaki Tokida
IBM Bluemixクラウド開発入門 15分でわかるBluemix
by
Hideaki Tokida
API公開最初の一歩 - API Connect on Bluemix
by
Hideaki Tokida
Bluemix User Group ご紹介
by
Hideaki Tokida
BMXUG 大勉強会 2017.6.21 アジェンダ
by
Hideaki Tokida
OpenWhisk meetup vol2
by
Hideaki Tokida
OpenWhisk meetup vol1
by
Hideaki Tokida
Serverless meetup02 openwhisk
by
Hideaki Tokida
Bluemix Users Group 活動報告
by
Hideaki Tokida
デモから見るOpenWhisk - Docker Action -
by
Hideaki Tokida
OpenWhisk Serverless への期待
by
Hideaki Tokida
SIer目線でみたbluemix "bluemixハッカソン、watson ハッカソンでの知見"
by
Hideaki Tokida
日本SoftLayerユーザ会紹介資料 2016
by
Hideaki Tokida
今更ながらの「マイクロサービス」
1.
今更ながらの 「マイクロサービス」 Innovation Hub 九州
Developer Day Hideaki Tokida ⽇本情報通信株式会社 ArchitectureとBluemixでの実装⽅法のヒント
2.
0 ) 0
r e 4 0 0 0 • k dinp ah • m U A IH M TA @lc sxu • O U o • @ . ( O • 40 lc ! • tCG BW • 0 4 4 ¥30 6 4 1/0 2: - 89 73
3.
⽬標 • マイクロサービスとは何か? • Bluemix上でマイクロサービスアーキテクチャを実装する際のヒント
4.
マイクロサービスの本格化 • 海外の代表的なIT企業(Netflix,Amazon, Uber,Twitterなど)がここ数年 で従来型のアーキテクチャからマイクロサービスアーキテクチャを採⽤。 それはこれまでとアプリケーションに対する要求が変わってきたから •
マイクロサービスは従来のモノリスなアーキテクチャに対してスケーラビ リティ、効率、新しい技術の適応と⾔った所で効果的があるとされていま す。
5.
2004-2017 までの検索⼈気の⽐較 (マイクロサービス vs
サービス指向アーキテクチャ) 2017年の”マイクロサービス”の分布 2017年の”サービス指向アーキテクチャ”の分布
6.
Service-Oriented Architecture • SOAは、複数のサービスが連携して⼀つの機能を提供するための設計⼿法。 •
問題が⾊々あった→どの位⼩さくサービスを分けるべきかという⽅法論、 通信プロトコルやSOA「製品」に帰属する問題。 • マイクロサービスは、SOAの⼿法の⼀つ。
7.
モノリスなシステム モジュール コードの凝縮性を⾼める 変更する理由が同じものは集める、理由が違うものは分ける 似たよ うな機能が
8.
マイクロサービス 変更する サービス サービス サービスの境界 =ビジネスの境界 ⼗分に⼩さく、ちょうどいい⼤きさ 2週間で書き直せるもの あまりに⼩さすぎても複雑さを増す ⾃⽴性 他には何も変更せずに、単独でサー ビスのデプロイが⾏えるか? API
9.
マイクロサービス(⾃律性) 変更する サービス サービス 独⽴したプロセス, または個別のOS上で動く API 分散システムと相性がよく、マイクロサービスは分散システムの利点を引き継いでいる
10.
マイクロサービス(技術異質性) 変更する サービス PHP Nodejs Java Java PHP Java Golang 各サービスは分離されており、サービスごとに適 切な技術を利⽤することが出来る API やりたいことに応じてリスクが低 い事、逆に新しい技術に挑戦をす ることが可能となる
11.
回復性 モジュー 似 た 変更する サービス サービス 障害が発⽣した点 モノリシックなアプリケーションの場合には障 害が全体に波及 よくある対策 回避するために同じものを⽤意 マイクロサービスの場合には箇所に応じて機能 低下させて継続動作
12.
スケール性 モジュー 似 API Bluemixのようなクラウドを利⽤することによりサーバ⾃体 もオンデマンドプロビジョニング出来る モノリシックなアプリケーションの場合には全 対を⼤きく拡⼤ マイクロサービスの場合には必要な部分だけを スケール (インスタンスを増やす、サイズを⼤きくする) 現実的には単⼀のサーバである事が 多く物理的な限界が有る
13.
似て⾮なるもの • 共有ライブラリ • ⾔語標準的な分解テクニック。ライブラリは⾔語にいぞするため技術異 質性(多様性)が失われる。ライブラリ単独ではスケールできない。DLL 以外の場合には新しいライブラリのために全体を起動する必要がある。 •
モジュール • ⾔語ごとにモジュールを利⽤する⼿段は違う。モジュールが過度に結合 する事があり得る。共有ライブラリと同じ問題点を持つ。
14.
疎結合と⾼凝縮性 変更する サービス 疎結 疎結 疎結 必要最低限の事のみ知っている 他のサービスでは変更なくデプロイが出来る F F F F 同じ機能はまとめる →⾼凝縮性
15.
モジュールの境界 モジュー ル モジュー ル モジュー ル F F F F ドメイン ドメイン ドメイン モジュールとの境界が⼀致しているべき =マイクロサービス
16.
推奨されるスタート • Monolithでアプリケーションを作成 • 初期の段階で適切にどのように分割するかわかることは難しい •
ドメインを正確に理解した後にマイクロサービスに分割 • より柔軟なリソースの変化に耐えるためにクラウドサービスの利⽤を推 奨 • 特に結合しがちなDBなどは注意が必要
17.
モノリスからの分解 フロントエンド バックエンド データストア 3階層型アーキテクチャ ⼀般的なモノリス構造の場合、データベースがアプリケーションの密結合の核になっているケースが多い。 マイクロサービス化をしていくためには、どのコードがどのデータ(テーブル)を利⽤してるかを理解する。 最終的には、サービスの境界をまたがる可能性があるテーブルを理解する(外部からの参照されているキー等)
18.
モノリスからの分解 バックエンド機能 機能 A 機能 B 単⼀ スキーマ バックエンド機能 機能 A 機能 B 機能A スキーマ 機能B スキーマ 機能A サービス 機能B サービス 機能A スキーマ 機能B スキーマ 現実の世界では2フェーズコミットなど⾊々実装していたものをマイクロサービス上でも実装が必要となる。 その為全体のトランザクションをコントロールする機能を⽤意したりする
19.
マイクロサービス間のやり取り 機能A サービス 機能B サービス XML-RPC SOAP Protocol Buffer REST API (Application Programing
Interface) 伝統的に利⽤されていたRPCよりもより技術⾮依存であるRESTが⽀持されている。 (特定の分野ではProtocol Bufferなどを利⽤するほうが良いこともあるため何でも かんでもRESTというわけではない)
20.
REST • RESTは、通信プロトコルは定義されていないがHTTP上で利⽤されるのが ⼀般的である。 • 特にHTTP動詞(GET,
POST , PUT等)と、URLをリソースとして扱うこ とで⾮常に相性がよく利⽤することが出来る。例えばSOAPもHTTPで利 ⽤されているが動詞部分はXML内で定義され通常はGETのみ • REST上で流れるデータ構造はJSONそしてXMLが利⽤されます。JSONは より容易に書くことが出来る反⾯XMLの持つリンクや厳格なデータ構造を 持つことが困難です。
21.
コンウェイの法則 • 「あらゆる組織は、必ずその組織のコミュニケーション構造に倣った構造を持 つ設計を⽣み出す」 Melvin
Conway • 組織はアーキテクチャに、アーキテクチャは組織に倣う • マイクロサービスアーキテクチャを採⽤する場合には、組織もそのドメインに そうことが望ましい(有名なのは、Amazon Web Servicesにて採⽤さている two-pizza / 2枚のピザで⾜りないほどの⼤きなチームにすべきではない) • マイクロサービスアーキテクチャを駆動させるプラットフォーム(インフラ 層〜アプリ層までの間)を管理するチームは必要→クラウド利⽤の利点
22.
Bluemix上でマイクロサービスを作るためには • 最終的な各サービスは何かしらの機能を持ちそれはHTTP(S)通信を利⽤して RESTを利⽤しJSON(またはXML)でやり取りするサービスを作る必要がありま す。 • そしてそれらの各サービスはより容易に試験を⾏い本番環境、開発環境などに デプロイされる必要があります。 •
クラウドサービスを利⽤することでマイクロサービスを実装するのに必要なプ ラットフォームを⼿に⼊れることが可能です。そしてマイクロサービスを実⾏ する時のハードルとなるマイクロサービスのプラットフォーム⾃体の運⽤とい う部分を⾏わなくても良いことが最⼤のメリットです。
23.
主なクラウドで利⽤する機能 • 継続的インテグレーション・継続的デリバリ • 様々な形式でのアプリケーションの実装の選択肢 •
API利⽤における⽀援 • 総合的なログ運⽤の実装
24.
継続的デリバリ • Continuous Delivery
を⾏うための Build Pipelineを作ることが出来るツー ル郡が⽤意されている。 • Build Pipelineではコードがコミットされたことを検出し、コードをチェッ クアウトしビルド・テストそしてデプロイすることが出来る。 • 標準のBuild Pipelineでは、Cloud Foundry Application , Kubernets ContaienrをBluemix環境にDeployするための設定がプリセットされている ためすぐにでも継続的デリバリを始めることが出来る
25.
Source Code Repository (git.ng.bluemix.net ) Build Pipeline (ServiceA) serviceA Build
-002 Service B Build-002 Service C Build-002 Build Pipeline (ServiceB) Build Pipeline (ServiceC) Repositoryの変更を監視 Pipelineサービス上で定義された Buildライン 成果物をサービスとしてデプロイ Build TEST Deploy 複数の定義を組み込むことが可能 (Shellが利⽤出来るので必要があれば柔軟に対応することが出来る) 成果物 成果物 Bluemix Platform (CF or Kubernnets) Deploy UNIT テスト 性能 テスト ひつように応じて複数のテストを実施
26.
Bluemixという実装 • BluemixのようなPaaSやContainer環境に対してサービスをDepoyする場合に は、利⽤者はより抽象化された中で作業を⾏う。 • 具体的にはどの物理(仮想)サーバでBuild成果物が動作しているかは⾃動的に プロビジョニングされるため意図的な操作は不要です。またBluemixの場合には 成果物以外にもデータベースなどのサービスも簡単に利⽤する事が出来るように 構成されています。 •
Buildフェーズでは、CFの場合にはソースをチェックアウトし適切なBuildpack を元にBuild処理が実⾏され成果物(droplet)が製造される。これはVM等の場合、 ⾃⾝でChef,Ansibleなどを⽤意することから⽐べれば多くの作業を軽減出来る。
27.
成果物 成果物 Bluemix Platform (CF
or Kubernnets) Deploy コンテナ コンテナ コンテナ Buildpack App OS App OS App ホスト カーネル VM 成果物はそれぞれの⽅式 で適切に配置される Bluemixにおける購⼊単位
28.
適切なアーキテクチャの選択 責任範囲 ステー トレス 従来か らの互 換性 Blue mix サー ビス 連携 開発速 度 Standar d Portabili ty Securit y Performan ce Reliabilit y HW OS Bin Lib Code IaaS ✓
✓ ✓ ✓ ◎ X X ◎ ☓ ◎ ◎ ◎ Docker ✓ ✓ ○ ◎ ○ ◎ ◎ △ ◎ ○ Cloud Foundry ✓ △ ◎ ◎ △ △ (IBM) ○ ○ Cloud Functions ✓ ○ ☓ ☓ ◎ ☓ ☓ (IBM) ○ ○
29.
より⼩さい機能の提供 • Function as
a Serviceとしての IBM Cloud Functions (旧OpenWhisk) • 主な2つの機能 • イベント駆動型 • あるサービスの変化(イベント)に応じて処理が実⾏される(状態変 化を監視するプログラム無しで実⾏される)現⾏では CloudantNoSQL、MessagingHubなどと連携可能 • 関数型 • シンプルなリクエスト/レスポンス型の処理が実⾏される。特に Function as a Serviceの場合には処理(具体的には、⾔語のFunction 部分)のみを記述することで動作する • クラウドらしい料⾦体系 • 実⾏した回数、実⾏時間、実⾏時のメモリで課⾦がされる。 https://github.com/IBM/openwhisk-serverless-apis
30.
マイクロサービス間の連携 変更する サービス PHP Nodejs Java Java PHP Java Golang API •
各サービス間の連携はおもにRESTで接続される • 各サービス感は必要最低限の情報のみをやり取りする • あるアプリケーションから見て、他のサービスはアタッチ可能な リーソースのように振るまう
31.
マイクロサービス間の連携 PHP API •Cloud Foundry, Cloud
Functions のアプリケーションは、標 準でAPI保護機能を持っている。(ワンクリックでAPIのみを公 開する⽤に定義することが出来る) •API Managementの機能はシンプルだがSwaggerをサポート しておりスモールスタートとしては⼗分の機能を備えている Golang API API •Coustom API (Service) の機能を利⽤すると、アプリケーショ ンからアプリケーションへ接続するための情報を環境変数として 引き渡すことが出来る。(Bluemix上のサービスのように振る舞 う。ここでは実体はなくVCAP_SERVICESのやり取りのみ) •任意の値をJSONで引き渡すことが可能。
32.
認証 • Cloud Foundry
, Cloud Functions では API Managementの機能を利⽤ するとAPIキー発⾏の機能やOAuth連携を有効にすることが出来る。 • より⾼度な認証・認可のためにAPI Connectを利⽤することも可能。個々 のアプリケーションの認証のためには Single Signon サービスが提供さ れている。 • (現⾏のBluemixでは発⾏されたAPIキーの操作ログを取得するサービスが 提供されていないので監査⽬的の場合にはリクエストを受ける側などで実 装が必要 or IBM Cloud Active Tracker)
33.
統合されたログ蓄積 • Bluemixでは、Log Analyticsサービスを利⽤することでログを収集することが出来る。(サー ビスを利⽤することで保管する容量や⼀⽇あたりの検索可能な容量を変更することが可能) •
ログ検索では標準的になってきたElasticSearch+Kibana5を利⽤ Log Analytics サービス Cloud Foundry Kubernetes VM/Bere Loggre gator STDOUT,STDERR STDOUT,STDERRLogコレ クター Logstas h LOG Kibana
35.
IBMの公開している情報 Microservices with IBM
Cloud Functions and Cloud Foundry Microservices with Kubernetes
36.
まとめ • マイクロサービスは、様々な変化に対応する事が⽬的です。リソースの拡⼤ や新しいリリースを⾃由にする出来る事が必要です。そのために機能毎に⾃ 律性・技術特異性などを持たせる必要があります。 • 現在のシステムを将来的にマイクロサービス化するかしないかにかかわらず ドメインでシステムを分離する(またはどこが密結合しているか)を調べる ことはシステムの安定した運⽤(障害時の影響範囲の推測など)にも有⽤ •
出来るところからマイクロサービス化/合わせてクラウドサービスの利⽤を 検討する
37.
参考⽂献 書籍 1. マイクロサービスアーキテクチャ OʼReilly
Japan / Sam Newman 2. プロダクションレディ マイクロサービス OʼReilly Japan / Susan J.Fowler 3. エリック・エヴァンスのドメイン駆動設計 (IT ArchitectsʼArchive ソフトウェア開発の実践) Web上の情報 • Microservices https://www.ibm.com/devops/method/content/architecture/ microservices/2_0 • The Twellve Factor Apps(⽇本語)https://12factor.net/ja/
Download