O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.
自己紹介
日本マイクロソフト(株)
Java エバンジェリスト
寺田 佳央
ハッシュタグ #てらだよしおがんばれ
クラウドを有効活用できす
アプリケーションを
実装されてますか?
今のアプリケーションを
そのままクラウドに移行する?
ところで
昨今話題ですが
マイクロサービス
は必要 ?
モノリシック?マイクロ?
一般的な企業システムの実装例
顧客管理 受注管理 物流管理 売り上げ管理
商品管理 レコメンド 顧客分析 経営分析
企業システム DB
どんどんマイクロ・サービス化
受注管理
サービス
顧客管理 DB
物流管理
サービス
顧客管理 DB
マイクロサービス
いち早くサービスを
提供したい
柔軟にスケール
させたい
独立したサービス作りを
おこないたい
耐障害性を高めたい
変更に強いシステムを
作りたい
とりあえず
MSA 化が必要
Docker を導入したい
何のためのマイクロ・...
マイクロサービス
一番だめなパターン
とりあえず
MSA 化が必要
Docker を導入したい
マイクロサービス
いち早くサービスを
提供したい
柔軟にスケール
させたい
独立したサービス作りを
おこないたい
MSA でなくてもできません?
マイクロサービス
耐障害性を高めたい
(回復性を高める)
変更に強いシステムを
作りたい
MSA が有効
( 寺田の所感 )
https://jaxenter.com/microservices-trends-2017-survey-133265.html
既存サービスを
マイグレーション
する
新規サービスで
導入
導入済み
予定なし
12 Factor App
Reactor Manifest
組織作り
TDD
Agile
継続的インテグレーション
Infrastructure as Code
継続的デリバリ
© 2017 Microsoft Corporation. All rights reserved.
本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。
ちょっと宣伝させてください
Azure Container Service
クラウド・ネイティブな
スケーラブル・アプリ開発のために
はじめに
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
はじめに
Java SE の現在と将来
Java EE の現在と将来
並列処理
非同期
ノンブロッキング
同期?非同期?
Service C
Service C
Service C
Load
Balancer
API
Gateway
待ちによる
スレッドの滞留を防ぐ
はじめに
Java SE の現在と将来
Java EE の現在と将来
共有ライブラリ
共有ライブラリ呪縛
から解放されません?
顧客管理 受注管理 物流管理 売り上げ管理
商品管理 レコメンド 顧客分析 経営分析
共有ライブラリ
共有ライブラリ
顧客管理 受注管理 物流管理 売り上げ管理
商品管理 レコメンド 顧客分析 経営分析
共有ライブラリにバグがみつかった!!
えっ?!全部再テスト?
追加機能に影響が!!
リリース・スケジュール延期!!
顧客管理
受注管理
商品管理
レコメンド
共有ライブラリ
ライブラリ
顧客管理
ライブラリ
商品管理
ライブラリ
受注管理
ライブラリ
レコメンド
バグがみつかった!!
v1
顧客管理
v1
受注管理
v2
顧客管理
ビルド
プライベート
レポジトリ
建てましょう
ライブラリ v1
商品管理
ライブラリ v2
レコメンド
ライブラリ v1
物流管理
ライブラリ v2
売り上げ管理
共有ライブラリ
依存から脱却し
ましょう
はじめに
Java SE の現在と将来
Java EE の現在と将来
リソース設定を
柔軟に !!
どこでも動くアプリを
心掛けましょう
外部リソース
の設定
サービス
JDBC メッセージ
プログラム?XML?
はじめに
Java SE の現在と将来
Java EE の現在と将来
ビルド
リリース
実行
Build Release Run
$ mvn clean package
$ docker build .
$ mvn deploy
$ docker push
$ java –jar App.jar
$ docker run
$ deis releases -a lonely-jokester
=== lonely-jokester Releases
v6 2017-04-26T14:41:41Z yoterada added DATABASE_URL
v5 201...
$ deis rollback v2 -a lonely-jokester
Rolling back to v2... done, v5
$ deis releases -a lonely-jokester
=== lonely-jokeste...
はじめに
Java SE の現在と将来
Java EE の現在と将来
廃棄容易性
起動時間の最小化
不意な停止に対応
素早い起動・停止
$ deis autoscale:set cmd
--min=3 --max=8 --cpu-percent=75 -a
lonely-jokesterApplying
autoscale settings for process type c...
はじめに
Java SE の現在と将来
Java EE の現在と将来
自己完結型
アプリケーション
自己完結で軽量に動くアプリに
ポートバインディングを通してサービスを公開
はじめに
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/Ubu...
開発と本番環境の環境は統一しましょう
開発環境 テスト環境 本番環境
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 Ubunt...
ホット・デプロイから継続的デプロイ
すべての変更を自動的に本番での検証
• Feature Flag
• Blue/Green Deploy
• A/B Test
• Canary Test
• Red/Black
Feature Flag
はじめに
Java SE の現在と将来
Java EE の現在と将来
運用・監視ログ
はじめに
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 A...
https://aka.ms/deis-
k8s-acs
Microsoft OSS
セッションアンケートにご協力ください
 専用アプリからご回答いただけます。
decode 2017
 スケジュールビルダーで受講セッションを
登録後、アンケート画面からご回答ください。
 アンケートの回答時間はたったの 15 秒です!
Ask the Speaker のご案内
本セッションの詳細は『Ask the Speaker Room』各コーナーカウンタにて
ご説明させていただきます。是非、お立ち寄りください。
© 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 の現在と将来
その他
メッセージ駆動 (Message Driven)Consumer-Driven Contracts
https://github.com/DiUS/pact-jvm
[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
[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
[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
[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
[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
[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
[AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure
Próximos SlideShares
Carregando em…5
×

de

[AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 1 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 2 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 3 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 4 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 5 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 6 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 7 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 8 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 9 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 10 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 11 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 12 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 13 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 14 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 15 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 16 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 17 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 18 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 19 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 20 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 21 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 22 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 23 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 24 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 25 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 26 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 27 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 28 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 29 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 30 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 31 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 32 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 33 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 34 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 35 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 36 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 37 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 38 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 39 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 40 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 41 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 42 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 43 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 44 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 45 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 46 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 47 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 48 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 49 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 50 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 51 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 52 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 53 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 54 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 55 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 56 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 57 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 58 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 59 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 60 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 61 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 62 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 63 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 64 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 65 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 66 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 67 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 68 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 69 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 70 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 71 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 72 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 73 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 74 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 75 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 76 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 77 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 78 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 79 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 80 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 81 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 82 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 83 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 84 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 85 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 86 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 87 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 88 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 89 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 90 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 91 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 92 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 93 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 94 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 95 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 96 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 97 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 98 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 99 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 100 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 101 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 102 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 103 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 104 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 105 [AC06] クラウド・ネイティブなスケーラブル・アプリ開発のために~12 Factor App on Kubernetes on Azure Slide 106
Próximos SlideShares
What to Upload to SlideShare
Avançar
Transfira para ler offline e ver em ecrã inteiro.

2 gostaram

Compartilhar

Baixar para ler offline

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

Baixar para ler offline

クラウド環境で、メンテナンス性を持ち移植性が高くスケーラブルなアプリケーションを構築するために、12 Factor のアプリケーションを実装することが重要です。本セッションは、クラウド ネィティブなアプリを構築するために重要な 12 Factor + α (Beyond the 12 factor) を、コードを交えながら紹介し Azure Container Service で提供する Kubernetes 上にデプロイし、その効果と有用性についてご紹介します。サンプル コードは Java で紹介しますが任意のプログラミング言語に有用な情報をお届けします。

寺田 佳央
日本マイクロソフト株式会社
デベロッパー エバンジェリズム統括本部
エバンジェリスト

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

  1. 1. 自己紹介 日本マイクロソフト(株) Java エバンジェリスト 寺田 佳央 ハッシュタグ #てらだよしおがんばれ
  2. 2. クラウドを有効活用できす アプリケーションを 実装されてますか?
  3. 3. 今のアプリケーションを そのままクラウドに移行する?
  4. 4. ところで 昨今話題ですが
  5. 5. マイクロサービス は必要 ?
  6. 6. モノリシック?マイクロ?
  7. 7. 一般的な企業システムの実装例 顧客管理 受注管理 物流管理 売り上げ管理 商品管理 レコメンド 顧客分析 経営分析 企業システム DB
  8. 8. どんどんマイクロ・サービス化 受注管理 サービス 顧客管理 DB 物流管理 サービス 顧客管理 DB
  9. 9. マイクロサービス いち早くサービスを 提供したい 柔軟にスケール させたい 独立したサービス作りを おこないたい 耐障害性を高めたい 変更に強いシステムを 作りたい とりあえず MSA 化が必要 Docker を導入したい 何のためのマイクロ・サービス?
  10. 10. マイクロサービス 一番だめなパターン とりあえず MSA 化が必要 Docker を導入したい
  11. 11. マイクロサービス いち早くサービスを 提供したい 柔軟にスケール させたい 独立したサービス作りを おこないたい MSA でなくてもできません?
  12. 12. マイクロサービス 耐障害性を高めたい (回復性を高める) 変更に強いシステムを 作りたい MSA が有効 ( 寺田の所感 )
  13. 13. https://jaxenter.com/microservices-trends-2017-survey-133265.html 既存サービスを マイグレーション する 新規サービスで 導入 導入済み 予定なし
  14. 14. 12 Factor App Reactor Manifest 組織作り TDD Agile 継続的インテグレーション Infrastructure as Code 継続的デリバリ
  15. 15. © 2017 Microsoft Corporation. All rights reserved. 本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。 ちょっと宣伝させてください
  16. 16. Azure Container Service
  17. 17. クラウド・ネイティブな スケーラブル・アプリ開発のために
  18. 18. はじめに Java SE の現在と将来 Java EE の現在と将来 ソースコード管理
  19. 19. ソースコード管理
  20. 20. どのようなソースコード管理 してます? 複数のモジュールを 1レポジトリで管理
  21. 21. サービス毎にレポジトリを作成しましょう
  22. 22. サービス毎の履歴管理や 把握が容易に !!
  23. 23. はじめに Java SE の現在と将来 Java EE の現在と将来 どうやって実装?
  24. 24. 今までの Web アプリケーション ビジネス・ロジック
  25. 25. ビューとロジックを分離 ビジネス・ロジック
  26. 26. Front End For Back End
  27. 27. RESTful Web Services JSON
  28. 28. Stateless
  29. 29. UI とバックエンド・サービスの分割 UI Face Detect warファイル Emotional UI サービス Face Detect Emotional
  30. 30. はじめに Java SE の現在と将来 Java EE の現在と将来 並列処理 非同期 ノンブロッキング
  31. 31. 同期?非同期? Service C Service C
  32. 32. Service C Load Balancer API Gateway 待ちによる スレッドの滞留を防ぐ
  33. 33. はじめに Java SE の現在と将来 Java EE の現在と将来 共有ライブラリ
  34. 34. 共有ライブラリ呪縛 から解放されません?
  35. 35. 顧客管理 受注管理 物流管理 売り上げ管理 商品管理 レコメンド 顧客分析 経営分析 共有ライブラリ
  36. 36. 共有ライブラリ 顧客管理 受注管理 物流管理 売り上げ管理 商品管理 レコメンド 顧客分析 経営分析 共有ライブラリにバグがみつかった!! えっ?!全部再テスト? 追加機能に影響が!! リリース・スケジュール延期!!
  37. 37. 顧客管理 受注管理 商品管理 レコメンド 共有ライブラリ ライブラリ 顧客管理 ライブラリ 商品管理 ライブラリ 受注管理 ライブラリ レコメンド
  38. 38. バグがみつかった!! v1 顧客管理 v1 受注管理 v2 顧客管理
  39. 39. ビルド
  40. 40. プライベート レポジトリ 建てましょう
  41. 41. ライブラリ v1 商品管理 ライブラリ v2 レコメンド ライブラリ v1 物流管理 ライブラリ v2 売り上げ管理 共有ライブラリ 依存から脱却し ましょう
  42. 42. はじめに Java SE の現在と将来 Java EE の現在と将来 リソース設定を 柔軟に !!
  43. 43. どこでも動くアプリを 心掛けましょう
  44. 44. 外部リソース の設定 サービス JDBC メッセージ プログラム?XML?
  45. 45. はじめに Java SE の現在と将来 Java EE の現在と将来 ビルド リリース 実行
  46. 46. Build Release Run $ mvn clean package $ docker build . $ mvn deploy $ docker push $ java –jar App.jar $ docker run
  47. 47. $ 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
  48. 48. $ 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
  49. 49. はじめに Java SE の現在と将来 Java EE の現在と将来 廃棄容易性
  50. 50. 起動時間の最小化 不意な停止に対応 素早い起動・停止
  51. 51. $ 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%
  52. 52. はじめに Java SE の現在と将来 Java EE の現在と将来 自己完結型 アプリケーション
  53. 53. 自己完結で軽量に動くアプリに ポートバインディングを通してサービスを公開
  54. 54. はじめに Java SE の現在と将来 Java EE の現在と将来 開発・本番一致
  55. 55. 開発と本番環境の環境は統一しましょう 開発環境 テスト環境 本番環境 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
  56. 56. 開発と本番環境の環境は統一しましょう 開発環境 テスト環境 本番環境 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
  57. 57. ホット・デプロイから継続的デプロイ すべての変更を自動的に本番での検証 • Feature Flag • Blue/Green Deploy • A/B Test • Canary Test • Red/Black
  58. 58. Feature Flag
  59. 59. はじめに Java SE の現在と将来 Java EE の現在と将来 運用・監視ログ
  60. 60. はじめに Java SE の現在と将来 Java EE の現在と将来 さいごに
  61. 61. おきないように 頑張る ? 起きても大丈夫な ように作る? 障害はおきる!!
  62. 62. 分散コンピューティングの落とし穴
  63. 63. 誤った考えかた https://blogs.oracle.com/jag/resource/Fallacies.html
  64. 64. 分散コンピューティングを 意識したシステム開発
  65. 65. どこで障害が発生する? 仮想 IP LB App Server ハートビート HA-Cluster ハートビート 仮想 IP
  66. 66. 今だから再び !! オススメの一冊
  67. 67. マイクロ・サービス 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
  68. 68. https://aka.ms/deis- k8s-acs
  69. 69. Microsoft OSS
  70. 70. セッションアンケートにご協力ください  専用アプリからご回答いただけます。 decode 2017  スケジュールビルダーで受講セッションを 登録後、アンケート画面からご回答ください。  アンケートの回答時間はたったの 15 秒です!
  71. 71. Ask the Speaker のご案内 本セッションの詳細は『Ask the Speaker Room』各コーナーカウンタにて ご説明させていただきます。是非、お立ち寄りください。
  72. 72. © 2017 Microsoft Corporation. All rights reserved. 本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。
  73. 73. はじめに Java SE の現在と将来 Java EE の現在と将来 データベース連携
  74. 74. 顧客管理 受注管理 物流管理 売り上げ管理 商品管理 レコメンド 顧客分析 経営分析 企業システム DB
  75. 75. 顧客管理 サービス 顧客管理 DB 受注管理 サービス 受注管理 DB 物流管理 サービス 物流管理 DB 売上管理 サービス 売上管理 DB JDBC 接続 プール JDBC 接続 プール JDBC 接続 プール JDBC 接続 プール
  76. 76. 受注管理 サービス 顧客管理 DB 物流管理 サービス 物流管理 DB JDBC 接続 プール JDBC 接続 プール
  77. 77. 顧客管理 DB 物流管理 DB 受注管理 サービス 物流管理 サービス JDBC 接続 プール JDBC 接続 プール 受注 完了 メ ッ セ ー ジ ン グ ・シ ス テ ム メッセージ連携 受注 発生
  78. 78. イベント処理
  79. 79. はじめに Java SE の現在と将来 Java EE の現在と将来 その他
  80. 80. メッセージ駆動 (Message Driven)Consumer-Driven Contracts
  81. 81. https://github.com/DiUS/pact-jvm
  • yasuhiko0118

    Dec. 14, 2020
  • HIROTOYAMADA2

    May. 19, 2020

クラウド環境で、メンテナンス性を持ち移植性が高くスケーラブルなアプリケーションを構築するために、12 Factor のアプリケーションを実装することが重要です。本セッションは、クラウド ネィティブなアプリを構築するために重要な 12 Factor + α (Beyond the 12 factor) を、コードを交えながら紹介し Azure Container Service で提供する Kubernetes 上にデプロイし、その効果と有用性についてご紹介します。サンプル コードは Java で紹介しますが任意のプログラミング言語に有用な情報をお届けします。 寺田 佳央 日本マイクロソフト株式会社 デベロッパー エバンジェリズム統括本部 エバンジェリスト

Vistos

Vistos totais

4.571

No Slideshare

0

De incorporações

0

Número de incorporações

3.382

Ações

Baixados

65

Compartilhados

0

Comentários

0

Curtir

2

×