SlideShare a Scribd company logo
[AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure
自己紹介
日本マイクロソフト(株)
Java エバンジェリスト
寺田 佳央
ハッシュタグ #てらだよしおがんばれ
クラウドを有効活用できす
アプリケーションを
実装されてますか?
今のアプリケーションを
そのままクラウドに移行する?
ところで
昨今話題ですが
マイクロサービス
は必要 ?
モノリシック?マイクロ?
一般的な企業システムの実装例
顧客管理 受注管理 物流管理 売り上げ管理
商品管理 レコメンド 顧客分析 経営分析
企業システム DB
どんどんマイクロ・サービス化
受注管理
サービス
顧客管理 DB
物流管理
サービス
顧客管理 DB
[AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure
マイクロサービス
いち早くサービスを
提供したい
柔軟にスケール
させたい
独立したサービス作りを
おこないたい
耐障害性を高めたい
変更に強いシステムを
作りたい
とりあえず
MSA 化が必要
Docker を導入したい
何のためのマイクロ・サービス?
マイクロサービス
一番だめなパターン
とりあえず
MSA 化が必要
Docker を導入したい
マイクロサービス
いち早くサービスを
提供したい
柔軟にスケール
させたい
独立したサービス作りを
おこないたい
MSA でなくてもできません?
マイクロサービス
耐障害性を高めたい
(回復性を高める)
変更に強いシステムを
作りたい
MSA が有効
( 寺田の所感 )
[AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure
https://jaxenter.com/microservices-trends-2017-survey-133265.html
既存サービスを
マイグレーション
する
新規サービスで
導入
導入済み
予定なし
12 Factor App
Reactor Manifest
組織作り
TDD
Agile
継続的インテグレーション
Infrastructure as Code
継続的デリバリ
[AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure
© 2017 Microsoft Corporation. All rights reserved.
本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。
ちょっと宣伝させてください
[AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure
Azure Container Service
[AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure
クラウド・ネイティブな
スケーラブル・アプリ開発のために
[AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure
はじめに
Java SE の現在と将来
Java EE の現在と将来
ソースコード管理
ソースコード管理
どのようなソースコード管理 してます?
複数のモジュールを
1レポジトリで管理
サービス毎にレポジトリを作成しましょう
サービス毎の履歴管理や
把握が容易に !!
はじめに
Java SE の現在と将来
Java EE の現在と将来
どうやって実装?
今までの Web アプリケーション
ビジネス・ロジック
ビューとロジックを分離
ビジネス・ロジック
Front End For
Back End
RESTful
Web Services
JSON
Stateless
UI とバックエンド・サービスの分割
UI
Face Detect
warファイル
Emotional
UI サービス
Face Detect
Emotional
[AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure
はじめに
Java SE の現在と将来
Java EE の現在と将来
並列処理
非同期
ノンブロッキング
同期?非同期?
Service C
Service C
Service C
Load
Balancer
API
Gateway
待ちによる
スレッドの滞留を防ぐ
はじめに
Java SE の現在と将来
Java EE の現在と将来
共有ライブラリ
共有ライブラリ呪縛
から解放されません?
顧客管理 受注管理 物流管理 売り上げ管理
商品管理 レコメンド 顧客分析 経営分析
共有ライブラリ
共有ライブラリ
顧客管理 受注管理 物流管理 売り上げ管理
商品管理 レコメンド 顧客分析 経営分析
共有ライブラリにバグがみつかった!!
えっ?!全部再テスト?
追加機能に影響が!!
リリース・スケジュール延期!!
顧客管理
受注管理
商品管理
レコメンド
共有ライブラリ
ライブラリ
顧客管理
ライブラリ
商品管理
ライブラリ
受注管理
ライブラリ
レコメンド
バグがみつかった!!
v1
顧客管理
v1
受注管理
v2
顧客管理
ビルド
プライベート
レポジトリ
建てましょう
[AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure
ライブラリ v1
商品管理
ライブラリ v2
レコメンド
ライブラリ v1
物流管理
ライブラリ v2
売り上げ管理
共有ライブラリ
依存から脱却し
ましょう
はじめに
Java SE の現在と将来
Java EE の現在と将来
リソース設定を
柔軟に !!
どこでも動くアプリを
心掛けましょう
外部リソース
の設定
サービス
JDBC メッセージ
プログラム?XML?
[AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure
[AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure
[AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure
はじめに
Java SE の現在と将来
Java EE の現在と将来
ビルド
リリース
実行
Build Release Run
$ mvn clean package
$ docker build .
$ mvn deploy
$ docker push
$ java –jar App.jar
$ docker run
[AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure
[AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure
[AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure
[AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure
$ deis releases -a lonely-jokester
=== lonely-jokester Releases
v6 2017-04-26T14:41:41Z yoterada added DATABASE_URL
v5 2017-04-26T14:27:08Z yoterada rolled back to v2
v4 2017-04-26T14:09:56Z yoterada changed healthcheck
info for proc type cmd
v3 2017-04-26T14:09:03Z yoterada added healthcheck
info for proc type cmd
v2 2017-04-26T12:29:44Z yoterada deployed 545623c
v1 2017-04-26T12:26:01Z yoterada created initial
release
$ deis rollback v2 -a lonely-jokester
Rolling back to v2... done, v5
$ deis releases -a lonely-jokester
=== lonely-jokester Releasesv5
2017-04-26T14:27:08Z yoterada rolled back to v2
V4 2017-04-26T14:09:56Z yoterada changed healthcheck
info for proc type cmd
V3 2017-04-26T14:09:03Z yoterada added healthcheck
info for proc type cmd
V2 2017-04-26T12:29:44Z yoterada deployed 545623c
V1 2017-04-26T12:26:01Z yoterada created initial
release
はじめに
Java SE の現在と将来
Java EE の現在と将来
廃棄容易性
起動時間の最小化
不意な停止に対応
素早い起動・停止
[AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure
$ deis autoscale:set cmd
--min=3 --max=8 --cpu-percent=75 -a
lonely-jokesterApplying
autoscale settings for process type cmd
on lonely-jokester... Done
$ deis autoscale:list -a lonely-jokester
=== lonely-jokester Autoscale
--- cmd:
Min Replicas: 3 Max Replicas: 8 CPU: 75%
はじめに
Java SE の現在と将来
Java EE の現在と将来
自己完結型
アプリケーション
自己完結で軽量に動くアプリに
ポートバインディングを通してサービスを公開
[AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure
はじめに
Java SE の現在と将来
Java EE の現在と将来
開発・本番一致
開発と本番環境の環境は統一しましょう
開発環境 テスト環境 本番環境
Java JDK 8 u121 JDK 8 u72 JDK 8 u20
Ruby 2.3.0 2.2.4 2.2.4
MySQL 5.6 5.5 5.5
OS Win/Ubuntu RedHat RedHat
開発と本番環境の環境は統一しましょう
開発環境 テスト環境 本番環境
Java JDK 8 u121 JDK 8 u121 JDK 8 u121
Ruby 2.4.1 2.4.1 2.4.1
MySQL 5.7 5.7 5.7
OS Ubuntu Ubuntu Ubuntu
ホット・デプロイから継続的デプロイ
すべての変更を自動的に本番での検証
• Feature Flag
• Blue/Green Deploy
• A/B Test
• Canary Test
• Red/Black
Feature Flag
はじめに
Java SE の現在と将来
Java EE の現在と将来
運用・監視ログ
[AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure
[AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure
[AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure
[AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure
はじめに
Java SE の現在と将来
Java EE の現在と将来
さいごに
おきないように
頑張る ?
起きても大丈夫な
ように作る?
障害はおきる!!
分散コンピューティングの落とし穴
誤った考えかた
https://blogs.oracle.com/jag/resource/Fallacies.html
分散コンピューティングを
意識したシステム開発
どこで障害が発生する?
仮想 IP
LB
App Server
ハートビート
HA-Cluster
ハートビート
仮想 IP
今だから再び !!
オススメの一冊
マイクロ・サービス
Face API
Emotion API
Bot Framework
Azure Managed MySQL
VSTS
DEIS
Kubernetes
Azure Container Services
12 Factor App
Git Maven
Nexus 3
Payara Micro
Docker
Java
https://aka.ms/deis-
k8s-acs
[AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure
Microsoft OSS
セッションアンケートにご協力ください
 専用アプリからご回答いただけます。
decode 2017
 スケジュールビルダーで受講セッションを
登録後、アンケート画面からご回答ください。
 アンケートの回答時間はたったの 15 秒です!
Ask the Speaker のご案内
本セッションの詳細は『Ask the Speaker Room』各コーナーカウンタにて
ご説明させていただきます。是非、お立ち寄りください。
[AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure
© 2017 Microsoft Corporation. All rights reserved.
本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。
はじめに
Java SE の現在と将来
Java EE の現在と将来
データベース連携
顧客管理 受注管理 物流管理 売り上げ管理
商品管理 レコメンド 顧客分析 経営分析
企業システム DB
顧客管理
サービス
顧客管理 DB
受注管理
サービス
受注管理 DB
物流管理
サービス
物流管理 DB
売上管理
サービス
売上管理 DB
JDBC 接続
プール
JDBC 接続
プール
JDBC 接続
プール
JDBC 接続
プール
受注管理
サービス
顧客管理 DB
物流管理
サービス
物流管理 DB
JDBC 接続
プール
JDBC 接続
プール
顧客管理 DB 物流管理 DB
受注管理
サービス
物流管理
サービス
JDBC 接続
プール
JDBC 接続
プール
受注
完了
メ
ッ
セ
ー
ジ
ン
グ
・シ
ス
テ
ム
メッセージ連携
受注
発生
イベント処理
はじめに
Java SE の現在と将来
Java EE の現在と将来
その他
[AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure
メッセージ駆動 (Message Driven)Consumer-Driven Contracts
https://github.com/DiUS/pact-jvm

More Related Content

PPTX
Istio on k8s on Azure (AKS)
PDF
[DO06] Infrastructure as Code でサービスを迅速にローンチし、継続的にインフラを変更しよう
PPTX
Azure PaaSを活用したモダン E コマースソリューションの構築方法
PDF
[AC02] Cloud Robotics Azure Platform って何だ!?~ IoT をもっと簡単に、Cloud AI の活用をもっと気軽にや...
PPTX
PythonによるAzureサーバレスアプリケーション開発 / Serverless Application Development with Python
PDF
Azure Blueprints - 企業で期待される背景と特徴、活用方法
PDF
[MW11] OSS on Azure で構築する ウェブアプリケーション
PDF
[AC09] Azure Stack パート1 ~今知っておくべき開発者/インフラ担当者の最新ハイブリッドクラウドとの向きあい方~
Istio on k8s on Azure (AKS)
[DO06] Infrastructure as Code でサービスを迅速にローンチし、継続的にインフラを変更しよう
Azure PaaSを活用したモダン E コマースソリューションの構築方法
[AC02] Cloud Robotics Azure Platform って何だ!?~ IoT をもっと簡単に、Cloud AI の活用をもっと気軽にや...
PythonによるAzureサーバレスアプリケーション開発 / Serverless Application Development with Python
Azure Blueprints - 企業で期待される背景と特徴、活用方法
[MW11] OSS on Azure で構築する ウェブアプリケーション
[AC09] Azure Stack パート1 ~今知っておくべき開発者/インフラ担当者の最新ハイブリッドクラウドとの向きあい方~

What's hot (20)

PDF
Microsoft Azure Update 20151112
PDF
[AC07] 米国マイクロソフト本社で体験したノウハウを伝授!マイクロサービス実行基盤Azure Service Fabricの勘所
PDF
[MW07] OSS on Azure で構築するモバイルバックエンド
PPTX
Application Development Vision
PPTX
Java on Kubernetes on Azure
PDF
[MW06] PaaS を活用した、ハイコストパフォーマンスなウェブサイト構築・運用・メンテナンス
PDF
JAZUG Nagoya Windows Azure Update 20140301
PDF
オトナのService Fabric~マイクロサービス編
PPTX
Azure Service Fabric 紹介
PPTX
JAZUG Sendai Windows Azure Update 20131109
PDF
JAZUG Nagoya Bar Azure #2 Japan DC 20140331
PPTX
データからビジネス変革をもたらすマイクロソフトの AI とは
PDF
コマンド1発でAzureにDC/OS環境を作る方法
PPTX
20171004 ignite17 dep
PPTX
Azure Antenna AI 概要
PDF
ルーメン・テクノロジーズ エッジプラットフォーム Varnish・Node.js
PDF
Paas_Security_Part1
PDF
Kansai Azure Azure Overview & Update 20140926
PDF
Smart store servlerless-20191030-40min
DOCX
Virtual WAN × Citrix SD-WAN の衝撃! ~演習用資料~
Microsoft Azure Update 20151112
[AC07] 米国マイクロソフト本社で体験したノウハウを伝授!マイクロサービス実行基盤Azure Service Fabricの勘所
[MW07] OSS on Azure で構築するモバイルバックエンド
Application Development Vision
Java on Kubernetes on Azure
[MW06] PaaS を活用した、ハイコストパフォーマンスなウェブサイト構築・運用・メンテナンス
JAZUG Nagoya Windows Azure Update 20140301
オトナのService Fabric~マイクロサービス編
Azure Service Fabric 紹介
JAZUG Sendai Windows Azure Update 20131109
JAZUG Nagoya Bar Azure #2 Japan DC 20140331
データからビジネス変革をもたらすマイクロソフトの AI とは
コマンド1発でAzureにDC/OS環境を作る方法
20171004 ignite17 dep
Azure Antenna AI 概要
ルーメン・テクノロジーズ エッジプラットフォーム Varnish・Node.js
Paas_Security_Part1
Kansai Azure Azure Overview & Update 20140926
Smart store servlerless-20191030-40min
Virtual WAN × Citrix SD-WAN の衝撃! ~演習用資料~
Ad

Similar to [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure (20)

PPTX
Cloud Native Application on DEIS by using 12 factor
PPTX
Preparation to Start the Microservice for Java EE developers
PDF
JAWS-UG Meets Windows (JAWS Days 2017)
PDF
DevOps時代到来!Engine YardのPaaSで変わるシステムの開発と運用のあり方
PPTX
PDF
なぜ「マイクロサービス“化”」が必要なのか
PDF
クラウド概略(プレゼン)
PDF
Springon cloudfoundry
PDF
Windows 開発者のための Dev&Ops on AWS
PDF
20130326 aws meister-reloaded-windows
PDF
クラウド開発に役立つ OSS あれこれ
PDF
30分でわかるマイクロサービスアーキテクチャ 第2版
PDF
Amazon EC2 HPCインスタンス - AWSマイスターシリーズ
PDF
CloudStack Overview@OSC2012Fukuoka
PDF
マイクロサービスに至る歴史とこれから - XP祭り2021
PPTX
DevOps on azure 高品質クラウドデザインを求めて
PDF
オラクルクラウドで開発を~サーバからDB/アプリケーションサーバ準備が、2時間で~
PPT
2010 04クラウド技術講座
PDF
【VMware】jp developer-summit_2012_final_for_print
PDF
マイクロサービス運用の所感 #m3dev
Cloud Native Application on DEIS by using 12 factor
Preparation to Start the Microservice for Java EE developers
JAWS-UG Meets Windows (JAWS Days 2017)
DevOps時代到来!Engine YardのPaaSで変わるシステムの開発と運用のあり方
なぜ「マイクロサービス“化”」が必要なのか
クラウド概略(プレゼン)
Springon cloudfoundry
Windows 開発者のための Dev&Ops on AWS
20130326 aws meister-reloaded-windows
クラウド開発に役立つ OSS あれこれ
30分でわかるマイクロサービスアーキテクチャ 第2版
Amazon EC2 HPCインスタンス - AWSマイスターシリーズ
CloudStack Overview@OSC2012Fukuoka
マイクロサービスに至る歴史とこれから - XP祭り2021
DevOps on azure 高品質クラウドデザインを求めて
オラクルクラウドで開発を~サーバからDB/アプリケーションサーバ準備が、2時間で~
2010 04クラウド技術講座
【VMware】jp developer-summit_2012_final_for_print
マイクロサービス運用の所感 #m3dev
Ad

More from de:code 2017 (20)

PDF
[AI08] 深層学習フレームワーク Chainer × Microsoft で広がる応用
PDF
[AI10] ゲームキャラクターのための人工知能と社会への応用 ~ FINAL FANTASY XV を事例として ~
PDF
[DO07] マイクロサービスに必要な技術要素はすべて Spring Cloud にある
PDF
[SC09] パッチ待ちはもう古い!Windows 10 最新セキュリティ技術とゼロデイ攻撃攻防の実例
PDF
[SC10] 自社開発モバイルアプリの DLP 対応化を Microsoft Intune で可能に
PDF
[DI12] あらゆるデータをビジネスに活用! Azure Data Lake を中心としたビックデータ処理基盤のアーキテクチャと実装
PDF
[DI10] IoT を実践する最新のプラクティス ~ Azure IoT Hub 、SDK 、Azure IoT Suite ~
PDF
[AI03] AI × 導入の速さを武器に。 ” 人工知能パーツ ” Cognitive Services の使いどころ
PDF
[SP04] これからのエンジニアに必要な「マネジメント」の考え方
PDF
[DO17] セゾン情報システムズの CTO 小野氏による、伝統的 Sier におけるモダン開発への挑戦
PDF
[DO13] 楽天のクラウドストレージ使いこなし術 Azure と OSS で少しずつ進めるレガシー脱却
PDF
[DO11] JOY, Inc. : あなたの仕事場での喜びは何ですか?
PDF
[DO08] 『変わらない開発現場』を変えていくために ~エンプラ系レガシー SIer のための DevOps 再入門~
PDF
[DO05] システムの信頼性を上げるための新しい考え方 SRE ( Site Reliability Engineering ) in Azure, o...
PDF
[DO04] アジャイル開発サバイバルガイド 〜キミが必ず直面する課題と乗り越え方を伝えよう!〜
PDF
[DO02] Jenkins PipelineとBlue Oceanによる、フルスクラッチからの継続的デリバリ
PDF
[SP03] 「怠惰の美徳~言語デザイナーの視点から」
PDF
[SP02] Developing autonomous vehicles with AirSim
PDF
[SP01] CTO が語る! 今注目すべきテクノロジー
PDF
[DO16] Mesosphere : Microservices meet Fast Data on Azure
[AI08] 深層学習フレームワーク Chainer × Microsoft で広がる応用
[AI10] ゲームキャラクターのための人工知能と社会への応用 ~ FINAL FANTASY XV を事例として ~
[DO07] マイクロサービスに必要な技術要素はすべて Spring Cloud にある
[SC09] パッチ待ちはもう古い!Windows 10 最新セキュリティ技術とゼロデイ攻撃攻防の実例
[SC10] 自社開発モバイルアプリの DLP 対応化を Microsoft Intune で可能に
[DI12] あらゆるデータをビジネスに活用! Azure Data Lake を中心としたビックデータ処理基盤のアーキテクチャと実装
[DI10] IoT を実践する最新のプラクティス ~ Azure IoT Hub 、SDK 、Azure IoT Suite ~
[AI03] AI × 導入の速さを武器に。 ” 人工知能パーツ ” Cognitive Services の使いどころ
[SP04] これからのエンジニアに必要な「マネジメント」の考え方
[DO17] セゾン情報システムズの CTO 小野氏による、伝統的 Sier におけるモダン開発への挑戦
[DO13] 楽天のクラウドストレージ使いこなし術 Azure と OSS で少しずつ進めるレガシー脱却
[DO11] JOY, Inc. : あなたの仕事場での喜びは何ですか?
[DO08] 『変わらない開発現場』を変えていくために ~エンプラ系レガシー SIer のための DevOps 再入門~
[DO05] システムの信頼性を上げるための新しい考え方 SRE ( Site Reliability Engineering ) in Azure, o...
[DO04] アジャイル開発サバイバルガイド 〜キミが必ず直面する課題と乗り越え方を伝えよう!〜
[DO02] Jenkins PipelineとBlue Oceanによる、フルスクラッチからの継続的デリバリ
[SP03] 「怠惰の美徳~言語デザイナーの視点から」
[SP02] Developing autonomous vehicles with AirSim
[SP01] CTO が語る! 今注目すべきテクノロジー
[DO16] Mesosphere : Microservices meet Fast Data on Azure

[AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure