---
title: Monolithtomicroservices
tags:  #microservices #agile #enterprise devops #enterprise a  
author: [Shotaro Suzuki](https://convert.docswell.com/user/shosuz)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/PJXD66D3EX.jpg?width=480
description: エンタープライズアジャイル勉強会 5/16
published: May 25, 19
canonical: https://convert.docswell.com/s/shosuz/K7VGGJ-monolithtomicroservices
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/PJXD66D3EX.jpg)

エンタープライズアジャイル勉強会 5月セミナー
モノリスなアプリからマイクロサービスへ
- クラウドネイティブなアプリ開発における
CI/CD プロセスと DevOps ツール -
鈴木 章太郎
横山 依子
株式会社 FIXER
Technical Fellow, Evangelist
内閣官房 政府 CIO 補佐官
株式会社 FIXER
Cloud Evangelist
© COPYRIGHT 2019 FIXER Inc.


# Page. 2

![Page Image](https://bcdn.docswell.com/page/3JKX11XNED.jpg)

鈴木章太郎
株式会社 FIXER
Technical Fellow, Evangelist
内閣官房 政府 CIO 補佐官
（法務省担当）
元 Microsoft Evangelist
AWS, Azure, GCP
Certified Professional
Follow me!
@shosuz
© COPYRIGHT 2019 FIXER Inc.


# Page. 3

![Page Image](https://bcdn.docswell.com/page/LE35QQ5ZJ5.jpg)

横山 依子
（ヨコヤマ ヨリコ）
株式会社FIXER
Cloud Evangelist
Follow me!
@yokoyamasandesu
© COPYRIGHT 2019 FIXER Inc.


# Page. 4

![Page Image](https://bcdn.docswell.com/page/8EDD99D4EG.jpg)

Technology to FIX your challenges.
あなたのチャレンジをテクノロジーで成就する
私たちはテクノロジーの力を信じています。
情報化社会のビジネスシーンにおいて、
新たなチャレンジの基盤となるテクノロジー。
スローガンに込めた「FIX（＝成就）」とは、
お客さまのチャレンジを実現し、事業の価値を高めること。
そして「your challenges」は、お客さまとFIXER の社員、
あらゆるステークホルダーのチャレンジを示します。
その全てをテクノロジーでFIX することが
私たちの歓びであり、みなさまへの約束です。
COPYRIGHT
© COPYRIGHT©2019
FIXER Inc. 2019 FIXER inc.
4


# Page. 5

![Page Image](https://bcdn.docswell.com/page/V7PXZZXVE8.jpg)

会社概要 (2019年4月1日現在)
会社名
株式会社FIXER
代表者
松岡 清一
所在地
従業員数
資本金
従業員数
東京都港区芝浦1-2-3シーバンスS館 24階
会長: 仲畑 貴志
代表取締役社長: 松岡 清一
役員
2009年11月6日
COPYRIGHT
© COPYRIGHT©2019
FIXER Inc. 2019 FIXER inc.
社外取締役: 板野 泰之
顧問: 渥美 俊英
社外監査役: 名古屋 聡介
3,500万円
118名 (正社員)
172名 (他雇用形態・業務委託を含む)
取締役: 中尾 公一
関連会社
株式会社ドラゴン東京
5


# Page. 6

![Page Image](https://bcdn.docswell.com/page/2JVLWWLR7Q.jpg)

拠点 (2019年1月1日現在)
金沢事業所
名古屋事業所
東京本社
FIXER
クラウドセンター
FIXER
Technologies, Inc.
COPYRIGHT
© COPYRIGHT©2019
FIXER Inc. 2019 FIXER inc.
石川県金沢市広岡2-13-37
STビル
愛知県名古屋市中区栄2-2-23
アーク白川公園ビルディング
東京都港区芝浦1-2-3
シーバンスS館
三重県津市あのつ台4-6-1
あのつピア
717 Market St STE100,
San Francisco CA 94103
6


# Page. 7

![Page Image](https://bcdn.docswell.com/page/5EGXDDX6JL.jpg)

当社が提供するサービスの全体像
コアプロダクトであるマネージドサービス cloud.config を基盤に、Fintech/MaaS 領域でサービスを開発。
これらのサービスの基礎技術となる AI/Machine Learning および IoT Platform の研究開発を積極的に推進
Fintech
サービス開発
クラウドバンキングの開発から、
デジタル時代の銀行のビジネスと
システムアーキテクチャデザイン
Lift &amp; Shift
マネージド
サービス
MaaS (Mobility as a Service)
cloud.config
クラウド移行の
難易度・効果を
クイックに診断、
プランをご提案
AI / Machine Learning
先端技術開発
COPYRIGHT
© COPYRIGHT©2019
FIXER Inc. 2019 FIXER inc.
マルチモーダルサービス対応の
アプリ開発、自動運転時代の
データプラットフォーム開発
自然言語処理のLegal Tech応用、
対話型エージェントの開発
cloud.config Portal
設計・監視・運用
・保守を24/7支援
するフルネージド
サービス
プロビジョニング
からスケーリング
までを自動化する
管理ポータル
IoT Platform
クラウドの利点をフル活用できる
5G時代のデータ収集・転送・分析
プラットフォームの開発
7


# Page. 8

![Page Image](https://bcdn.docswell.com/page/4JQ811827P.jpg)

Microsoftとのパートナーシップ
Microsoftの「Cloud Solution Provider Program」に開始初期から参加、2017年には「Microsoft Country Partner of the
Year」を受賞するなど、緊密に連携してビジネスを展開
クラウドのためのベストサービス
～フルマネージドサービス～
最適なパブリッククラウド
～クラウドマネージメント～
2013
当社松岡が発起人となり一般社団法人アジュール評議会(ACE)設立
Microsoft Azure パートナーアワード Cloud Service Vendor 最優秀賞 受賞
2014
Microsoft Azure パートナーアワード Cloud Service Vendor 最優秀賞 受賞
2015
パートナープログラム「Cloud Solution Provider Program」の開始に当たり
パートナーとして認定(世界26社のうち1社)
2016
2017
日本国内で最も優秀な成績を収めたパートナーとして、Microsoft Country Partner of the Year 受賞
2018
Microsoft Financial Services Award 受賞
2019
COPYRIGHT
© COPYRIGHT©2019
FIXER Inc. 2019 FIXER inc.
8


# Page. 9

![Page Image](https://bcdn.docswell.com/page/K742RR2PJ1.jpg)

Cloud Config TechBlog Powered by FIXER
https://tech-blog.cloud-config.jp/
COPYRIGHT
© COPYRIGHT©2019
FIXER Inc. 2019 FIXER inc.
10


# Page. 10

![Page Image](https://bcdn.docswell.com/page/LJ1MQQMXEG.jpg)

Agenda
• アプリケーションのクラウド移行戦略
• マイクロサービスとは何か
• マイクロサービスを支える技術
• Azure DevOps デモ
• サンプルアプリご紹介
• まとめ
© COPYRIGHT 2019 FIXER Inc.


# Page. 11

![Page Image](https://bcdn.docswell.com/page/GJW3MM3KJ2.jpg)

アプリケーションの
クラウド移行戦略
© COPYRIGHT 2019 FIXER Inc.


# Page. 12

![Page Image](https://bcdn.docswell.com/page/4EZVQQVNJ3.jpg)

デジタル･トランスフォーメーションとは何か
異業種からの参入
市場環境の流動性
顧客嗜好の多様化
不確実性の増大
ビジネスのスピードを圧倒的に上げるしか
対処する術はない
➢
➢
➢
意思決定サイクル
の短縮
現場への
大幅な権限委譲
流水化された
ビジネス・プロセス
現場や顧客の「見える化」
自律的なチームによる
運営と管理
バリューストリームの
管理と把握
経営会議のサイクルを月次から日次へ
販売実績の報告を日次からリアルタイムへ
労働時間の把握を月次からリアルタイムへ
（ヒト、モノ、カネ、情報）
デジタル・テクノロジーを駆使
ビジネス・スピードを加速する
デジタル・トランスフォーメーション
© COPYRIGHT 2019 FIXER Inc.


# Page. 13

![Page Image](https://bcdn.docswell.com/page/Y7656659EV.jpg)

デジタルトランスフォーメーションを取り巻く2つの環境
ビ
ジ
ネ
ス
環
境
Ｄ
Ｘ
を
支
え
る
仕
組
み
Ｉ
Ｔ
環
境
© COPYRIGHT 2019 FIXER Inc.
異業種からの参入
市場環境の流動性
顧客嗜好の多様化
不確実性の増大
事業継続の条件：変化への即応力を持つこと
意志決定の迅速化
ビジネス・プロセスのデジタル化
見える化
最適化
機械学習×データサイエンス
ERP × BPR / BPM
プラットフォーム
ビジネスの現場からのデータ収集
アジャイル開発と DevOps
クラウド:コンテナ × Kubernetes / SaaS × PaaS
変
化
に
俊
敏
に
対
応
で
き
る
企
業
文
化
・
体
質


# Page. 14

![Page Image](https://bcdn.docswell.com/page/G75Y66YD74.jpg)

クラウド移行戦略
リフト＆シフト＋モダナイズ
New
シフトの指針
ガートナーの5つのR
・Rehost
・Refactor
・Rearchitect
・Rebuild
・Replace
© COPYRIGHT 2019 FIXER Inc.


# Page. 15

![Page Image](https://bcdn.docswell.com/page/9J2GMMYMJR.jpg)

アプリケーション ポートフォリオ アセスメント
EOS（例：Windows Sever 2008）がきっかけの場合も
• ビジネス
• テクノロジー
• 人
・ビジネス価値
・コスト
・アプリケーション
・プラットフォーム
・ワークフローの
メンテナンスや
更新
リタイア
リプレース
リビルド
リアーキテクト
リファクタ
リホスト
© COPYRIGHT 2019 FIXER Inc.
16


# Page. 16

![Page Image](https://bcdn.docswell.com/page/DEYVXXGPEM.jpg)

アプリケーションのクラウド移行シナリオ
オンプレミス
© COPYRIGHT 2019 FIXER Inc.
IaaS
コンテナ
サーバーレス
17


# Page. 17

![Page Image](https://bcdn.docswell.com/page/VJNM11GM78.jpg)

リアーキテクト : アプリのアーキテクチャ変更
マイクロサービスでアプリ構築
・スケールアップやメンテナンスがより簡単になり、弾力性があり安定した運用が可能
モノリシック
© COPYRIGHT 2019 FIXER Inc.
マイクロサービス
18


# Page. 18

![Page Image](https://bcdn.docswell.com/page/YE9N55WWE3.jpg)

モノリシックからマイクロサービス（APIベース）
© COPYRIGHT 2019 FIXER Inc.
API
商品
API
注文
API
決済
API
配達


# Page. 19

![Page Image](https://bcdn.docswell.com/page/GE8KYYNR7D.jpg)

マイクロサービス的実装例
API
API
API
API
© COPYRIGHT 2019 FIXER Inc.


# Page. 20

![Page Image](https://bcdn.docswell.com/page/LELZ44P2JR.jpg)

Smart hotels 360
https://azure.microsoft.com/ja-jp/campaigns/smarthotel360/
© COPYRIGHT 2019 FIXER Inc.


# Page. 21

![Page Image](https://bcdn.docswell.com/page/4JMVKK49JW.jpg)

日本政府の
取り組み
• 世界最先端デジタル
国家創造宣言
• 官民データ活用推進
基本計画
• デジタル・ガバメント
推進方針
• デジタル・ガバメント
実行計画
© COPYRIGHT 2019 FIXER Inc.
世界最先端デジタル国家
実行計画が
目指すもの
（ToBe)


# Page. 22

![Page Image](https://bcdn.docswell.com/page/PJR2XXW9E9.jpg)

デジタル
ファースト
法案、
衆院通過
© COPYRIGHT 2019 FIXER Inc.


# Page. 23

![Page Image](https://bcdn.docswell.com/page/PEXD66P37X.jpg)

•
【方針２－３】プラットフォームの共用化と民間サービスの活用
• 効率的かつ効果的なプラットフォームの整備を行うため、共用化を前提とした
共通システムや共通サービスの整備及び拡充を推進する。業務やデータの標準
化等の業務改革を進めながら、府省共通システムの継続的な充実及び強化や自
治体クラウドの一層の推進に取り組む。
• 全国同一水準での提供が求められる地方公共団体等のサービスについて、各主
体において個別に情報システムの整備を行うのではなく、自治体クラウド等
への集約化を推進する。加えて、クラウドの広域化やグループ同士の統合等を
進め、機能の共用化を促進する。
• プラットフォームの共用化の一環として、行政機関におけるテレワーク・リ
モート アクセス環境の共通化等、生産性の向上や多様なワークスタイルを実
現する共通インフラの整備を推進する。
• 情報システムの導入に当たっては、全ての機能を行政自らが構築するという自
前主義に拘泥するのではなく、民間クラウドや民間サービスを積極的に活用し、
行政機関が全てを保有・管理する形態から必要なものを必要な期間だけ利用
するという考え方へ転換する。これによって、最新技術の早期かつ適時の導入
や投資対効果の向上を実現する。国において直接保有・管理する必要がある
政府情報システムについては、標準化・共通化を図るとともに、投資対効果の
検証を徹底した上で、政府共通プラットフォームへの移行を推進する。
クラウドバイデフォルト
の推進
© COPYRIGHT 2019 FIXER Inc.
• 国際的な動向を見ながら、
プラットフォームの共通化
を再検討する必要あり
• クラウド方針を作成
（CIO 補佐官技術タスク
フォース）
• データ分析やプロジェクト
管理等、汎用機能での民間
サービスの積極的活用
（CIO 補佐官）
24


# Page. 24

![Page Image](https://bcdn.docswell.com/page/3EKX11DN7D.jpg)

政府 CIO 補佐官技術タスクフォース ディスカッションペーパー
https://cio.go.jp/dp
© COPYRIGHT 2019 FIXER Inc.


# Page. 25

![Page Image](https://bcdn.docswell.com/page/L735QQRZE5.jpg)

引用：パブリック・クラウドを利用した情報システムにおける計画・構築時の基本的な考え方
https://cio.go.jp/dp2019_01
パブリック・クラウド利用時の考え方
（従来の考え方）
システム設計
クラウドサービスのリファレンスアーキテクチャをベースと
する
様々な技法・手法や、これまでの経験をベースとする
開発量の削減
SaaS、PaaS、マネージドサービス等を利用する
パッケージや超高速開発ツール等を適用する
データベース
マネージドサービスの DB を利用する
（スケールアップ・スケールアウト可能）
ライセンスを購入して個別に DB サーバを構築する
BI
マネージドサービスの BI を利用する
ライセンスを購入して個別に BI 環境を構築する
システム間インタフェース
疎結合、非同期を前提に、API 管理ツールで一元管理を行う
個別に設計・実装
サービス指向
マネージドサービスのマイクロサービス（サーバレス）を
利用する
個別にサービス化を行う
環境変化への姿勢
環境変化を当然と捉えて、前向きに対応する。
アジャイル開発を積極的に取り入れ、コンテナ等の DevOps
も想定する
環境変化を必要悪と捉えて、やむを得ず対応する
（参考）3．アプリケーション設計・開発に
おける考え方 1/2
© COPYRIGHT 2019 FIXER Inc.


# Page. 26

![Page Image](https://bcdn.docswell.com/page/87DD99Y47G.jpg)

マイクロサービス
とは何か
© COPYRIGHT 2019 FIXER Inc.


# Page. 27

![Page Image](https://bcdn.docswell.com/page/VJPXZZ6V78.jpg)

マイクロ
サービスとは
• MSDN アーキテクチャーセンター
• マイクロサービスアーキテクチャは、小さな
自律的サービスのコレクションで構成されます。
各サービスは自己完結型で、1つのビジネス機能
を実装している必要があります。
• https://docs.microsoft.com/jajp/azure/architecture/guide/architecturestyles/microservices
• ビジネスの変化に即応するための目的的な概念
© COPYRIGHT 2019 FIXER Inc.


# Page. 28

![Page Image](https://bcdn.docswell.com/page/2EVLWW3RJQ.jpg)

各サービスの特長
© COPYRIGHT 2019 FIXER Inc.


# Page. 29

![Page Image](https://bcdn.docswell.com/page/57GXDD36EL.jpg)

①小さく、独立的で、疎結合
© COPYRIGHT 2019 FIXER Inc.


# Page. 30

![Page Image](https://bcdn.docswell.com/page/4EQ81152JP.jpg)

②小規模な1つの開発者チームで作成および管理可能
© COPYRIGHT 2019 FIXER Inc.


# Page. 31

![Page Image](https://bcdn.docswell.com/page/KJ42RR9PE1.jpg)

大規模なチーム開発だと・・・
© COPYRIGHT 2019 FIXER Inc.


# Page. 32

![Page Image](https://bcdn.docswell.com/page/LE1MQQKX7G.jpg)

③個別にデプロイ可能で、 アプリケーション全体を再構築
したり再デプロイしたりすることなく、個別にサービスを
更新可能
© COPYRIGHT 2019 FIXER Inc.


# Page. 33

![Page Image](https://bcdn.docswell.com/page/GEW3MMDKE2.jpg)

多くの人手・承認・時間など
コストがかかる
© COPYRIGHT 2019 FIXER Inc.


# Page. 34

![Page Image](https://bcdn.docswell.com/page/47ZVQQGNE3.jpg)

④サービスのデータや外部の状態を保持する役割を担う
© COPYRIGHT 2019 FIXER Inc.


# Page. 35

![Page Image](https://bcdn.docswell.com/page/YJ6566Y97V.jpg)

⑤明確に定義された API で互いに通信し、各サービス内部
の実装の詳細は、他のサービスに開示されない
© COPYRIGHT 2019 FIXER Inc.


# Page. 36

![Page Image](https://bcdn.docswell.com/page/GJ5Y66GDJ4.jpg)

⑥各サービスは、サービスの特性に応じて異なるテクノロジスタック、
ライブラリ、またはフレームワークで構築可能
© COPYRIGHT 2019 FIXER Inc.


# Page. 37

![Page Image](https://bcdn.docswell.com/page/LE35QQPQJ5.jpg)

このシステム
複雑すぎる・・・
どのコードを参照したら
いいんだっけ・・・？？
しかもNode.js使いたいん
ですけど。
© COPYRIGHT 2019 FIXER Inc.


# Page. 38

![Page Image](https://bcdn.docswell.com/page/8EDD99LWEG.jpg)

⑦障害も分離される
© COPYRIGHT 2019 FIXER Inc.


# Page. 39

![Page Image](https://bcdn.docswell.com/page/V7PXZZ2XE8.jpg)

全サービス、ストップ。
いつ復旧するの？損害は？
© COPYRIGHT 2019 FIXER Inc.


# Page. 40

![Page Image](https://bcdn.docswell.com/page/2JVLWWD37Q.jpg)

モノリシックサービス
© COPYRIGHT 2019 FIXER Inc.


# Page. 41

![Page Image](https://bcdn.docswell.com/page/5EGXDDYYJL.jpg)

マイクロサービス
© COPYRIGHT 2019 FIXER Inc.


# Page. 42

![Page Image](https://bcdn.docswell.com/page/4JQ811M67P.jpg)

マイクロサービスの
特長
•
•
•
•
•
•
•
ビジネスドメインに沿ったモデル化
実装の詳細の隠避
自動化の推進
高度な分散化の推進
独立したデプロイメント
障害の分離の徹底
監視と管理の高度化
© COPYRIGHT 2019 FIXER Inc.


# Page. 43

![Page Image](https://bcdn.docswell.com/page/K742RRVMJ1.jpg)

マイクロサービス化する上での
課題とは？？
01
02
03
運用管理コスト
データの整合性
結合テスト
単純に複数サーバで運用するので
データベースも複数運用となる
アプリケーションが複数の
運用管理コストは増大します。
と、データの整合性の問題も出
サーバの費用もそうですが、環境
サーバ、インスタンスにま
てきます。また、既存サービス
構築や監視、メンテナンスなど
サーバが増えるのでそれも運用コ
ストとなります。
© COPYRIGHT 2019 FIXER Inc.
をデータ分割するとなると難易
度が上がります。
たがった構成になるので結
合テストが難解になります。


# Page. 44

![Page Image](https://bcdn.docswell.com/page/LJ1MQQ3YEG.jpg)

ちょうどいいマイクロ
サービス化を行い、
変化に対応しやすい
システムを作ろう！
© COPYRIGHT 2019 FIXER Inc.


# Page. 45

![Page Image](https://bcdn.docswell.com/page/GJW3MMP1J2.jpg)

マイクロ
サービスの2側面
• プラットフォーム技術
• Container
• Docker
• Kubernetes
• ソフトウェアアーキテクチャ
• 分散アーキテクチャ
• 通信
• データ
© COPYRIGHT 2019 FIXER Inc.


# Page. 46

![Page Image](https://bcdn.docswell.com/page/4EZVQQKXJ3.jpg)

• ビジネスモデルの急速な
変化
•
•
•
•
マイクロサービスの
台頭①
© COPYRIGHT 2019 FIXER Inc.
アジャイル開発
クラウドベンダー成長
クラウド利用企業激増
API 公開・連携の拡大
• アプリケーション最新化
• 反復的
• 継続的


# Page. 47

![Page Image](https://bcdn.docswell.com/page/Y76566QPEV.jpg)

• プラットフォーム技術
• Container, Orchestrator
• 運用コスト削減
• ビジネス機会の拡大
• 選択と集中
• 必要機能のみスケール
アウト
マイクロサービスの
台頭②
© COPYRIGHT 2019 FIXER Inc.


# Page. 48

![Page Image](https://bcdn.docswell.com/page/G75Y66RP74.jpg)

マイクロサービス
アーキテクチャによるアプリ構築
着手前に考慮すべき技術的課題
• 同機能のモノリシックアプリより多くの動的なパーツで構成され複雑
• サービス間の境界にまたがってリファクタリングを行うことは困難
• 多くの異なる言語やフレームワークを使用する場合のアプリのガバナ
ンス
• ネットワークの輻輳と待機時間
• 独自のデータを永続化する各マイクロサービスを使用するためデータ
整合性の困難さ
• サービス間で相互に関連付けられたログを記録することは難しい
• 複数のサービスが特定の時点で更新される場合があるためバージョン
管理を慎重に設計する必要がある
• 高度な分散システムのため成功のために必要なスキルセット
© COPYRIGHT 2019 FIXER Inc.


# Page. 49

![Page Image](https://bcdn.docswell.com/page/9J2GMMDZJR.jpg)

マイクロサービスを
支える技術
© COPYRIGHT 2019 FIXER Inc.


# Page. 50

![Page Image](https://bcdn.docswell.com/page/DEYVXX2NEM.jpg)

Docker Containers
クラウドからオンプレミスまで
どこでも実行可能な高速で軽量な
アプリケーション / サービスの
配置、運用、管理、自動化のための技術
コンテナー型のアプリ仮想化技術
◼
◼
◼
ネットワークやリソースを分離
高速かつオーバーヘッドの少ない配置展開
オープンソース
© COPYRIGHT 2019 FIXER Inc.
Linux
Windows


# Page. 51

![Page Image](https://bcdn.docswell.com/page/VJNM118V78.jpg)

Docker とは？
App
A
App
A’
App
B
Bins/
Libs
Bins/
Libs
Gues
t
OS
Guest
OS
Bins/
Libs
Gues
t
OS
Guest
OS
VM
Guest
OS
◼ コンテナー型のアプリ仮想化技術
◼ コンテナ間は分離
◼ OS カーネルや各種ライブラリ等は共有
◼ 高速かつオーバーヘッドの少ない
デプロイ、再起動、移行
◼ オープンソース
App B’
App B’
App B’
Bins/Libs
App B
© COPYRIGHT 2018 FIXER Inc.
App A’
Hypervisor (Type 2)
App A
Container
Bins/Libs
Host OS
Host OS
Server
Server
52


# Page. 52

![Page Image](https://bcdn.docswell.com/page/YE9N55KVE3.jpg)

Docker とは？
参考：マンガでわかるDocker_技術書典
© COPYRIGHT 2018 FIXER Inc.
53


# Page. 53

![Page Image](https://bcdn.docswell.com/page/GE8KYYR47D.jpg)

本日Dockerについて
覚えていただきたいこと
①コンテナ
②イメージ
© COPYRIGHT 2019 FIXER Inc.


# Page. 54

![Page Image](https://bcdn.docswell.com/page/LELZ44KVJR.jpg)

Docker と コンテナの関係は？
参考：マンガでわかるDocker_技術書典
© COPYRIGHT 2018 FIXER Inc.
55


# Page. 55

![Page Image](https://bcdn.docswell.com/page/4JMVKK2NJW.jpg)

イメージ とは？
コンテナをつくる元となる
ファイルのこと。
© COPYRIGHT 2018 FIXER Inc.
56


# Page. 56

![Page Image](https://bcdn.docswell.com/page/PJR2XXM4E9.jpg)

「Docker」で「イメージ」をもとに「コンテナ」を起動する
参考：マンガでわかるDocker_技術書典
© COPYRIGHT 2018 FIXER Inc.
57


# Page. 57

![Page Image](https://bcdn.docswell.com/page/PEXD66VZ7X.jpg)

イメージが置いてあるDocker hubっていうWebサイトがあるよ。
© COPYRIGHT 2018 FIXER Inc.
58


# Page. 58

![Page Image](https://bcdn.docswell.com/page/3EKX11QV7D.jpg)

資源効率性の高さ
Container
（Docker）を
なぜ使うのか
© COPYRIGHT 2019 FIXER Inc.
ポータビリティ（移植性）の
高さ
コンテナはホスト OS を共有するので、
ゲスト OS を立てる必要がない
コンテナを構成してリポジトリに保存し
ておけば、どこでも動かせる
クラウドをまたぐことも可能（Poly
Cloud）
展開の容易性と高速性
コマンドのみで展開、再展開が容易に
可能
開発の容易性と高速性
アプリケーションが動作する環境をコン
テナとして維持管理可能


# Page. 59

![Page Image](https://bcdn.docswell.com/page/L735QQKQE5.jpg)

従来のサーバ構成
MW
（Apache/Post
greSQL）
アプリケーション
バイ
ナリ
OS
（Linux/Windows）
HW
（CPU/メモリ/ディスク）
© COPYRIGHT 2019 FIXER Inc.
ライブ
ラリ
• アプリケーション/MWは、バイナリ (Java コ
マンド等) /ライブラリに依存しており、動作
させるためには OS に依存対象をインスト
ールする必要あり
依存 • その結果、OS 含めたサーバ全体が、
“Web サーバ”、”バッチサーバ” といった目
的に特化したものとなり汎用性がなくなるこ
とになる
• 例えば、”Web サーバ”と”バッチサーバ”を
一つのサーバに同居させようとすると、
”Web ＋ バッチサーバ”という目的に特化
したOS設定となる


# Page. 60

![Page Image](https://bcdn.docswell.com/page/87DD993W7G.jpg)

Docker を利用したコンテナ化
• アプリケーション/MW が依存するバイナリ/ライ
ブラリをコンテナイメージという形でパッケージング
dockerコンテナ
MW
（Apache/Po
stgreSQL）
アプリケーション
バイ
ナリ
Docker
OS
（Linux/Windows）
HW
（CPU/メモリ/ディスク）
© COPYRIGHT 2019 FIXER Inc.
ライブ
ラリ
依
存
• どんなサーバでも、docker が動いていればコン
テナイメージをコンテナとして稼働可能
• 結果、アプリケーション/MW は、コンテナとして
抽象化され、 OS 以下のレイヤーは汎用的に
• 例えば、障害時のフェイルオーバや負荷による
スケールアウトが、コンテナと OS/HW で分離
されるため柔軟に実行可能
• OS/HW はクラウドで容易に調達可能である
ため、クラウドのメリットをより引き出すシステム
構成


# Page. 61

![Page Image](https://bcdn.docswell.com/page/VJPXZZ4X78.jpg)

Docker Containers ～ 共通デプロイ単位
Leverage the Azure platform
Keep using the platform of your choice,
designed for your container needs
running great on Azure
Options of
compute
Azure Web App for Containers
Service Fabric
Azure
Kubernetes
Service (AKS)
Azure Container Registry
Visual Studio tools
© COPYRIGHT 2019 FIXER Inc.
Redhat Openshift
Container Platform
InteliJ
Kubernetes
Docker Hub,
private registry
Jenkins
Ma en
Pivotal Cloud
Foundry


# Page. 62

![Page Image](https://bcdn.docswell.com/page/2EVLWWX3JQ.jpg)

コンテナが増えすぎた！
© COPYRIGHT 2019 FIXER Inc.


# Page. 63

![Page Image](https://bcdn.docswell.com/page/57GXDDVYEL.jpg)

• Docker により、アプリケーション
のコード、インフラの構成情報を
統合的に管理（疎結合）
• ただし、大規模システムの場合、
複数のホストマシンからなる、分
散環境構築が必要
• 開発したアプリケーションを、効
率よく継続的にデプロイしていく
か？という開発 / 運用を考え
なくてはならない
コンテナのオーケストレーションの
必要性
© COPYRIGHT 2019 FIXER Inc.
↓
• コンテナのオーケストレーション
ツールが必要


# Page. 64

![Page Image](https://bcdn.docswell.com/page/4EQ81166JP.jpg)

コンテナのオーケストレーションとは？
• 複数のコンテナアプリケーションを連動させて一つの
サービスとして提供するサービス
• 障害時の対策など運用面を考慮し、複数コンテナ
を管理するシステム
• AWS、Microsoft、Google、IBM、等主要クラ
ウドベンダーが採用したこともあり、現在のところコン
テナオーケストレーションツールとして
Kubernetes はデファクトといえる存在
© COPYRIGHT 2019 FIXER Inc.


# Page. 65

![Page Image](https://bcdn.docswell.com/page/KJ42RR4ME1.jpg)

Kubernetes (クゥバネィテス) とは
• ギリシャ語で “船の操縦手” “統括者・支配者” という意味
• K8s と略され記述される事が多い（8は K から s の間の文字
数）
• ベアメタルサーバーや、仮想マシン（On-Premise、Cloud）上の、
Docker をはじめとするコンテナ群を管理するシステム（コンテナオー
ケストレーションツール）
• Google 社内で開発/運用されている、コンテナクラスタ管理システ
ム “Borg” でのノウハウを結集して開発された
• 現在は、Apache ライセンスで配布されているオープンソースソフト
ウェア
• マイクロサービスを効率的にデプロイ、アップデートする機能として、
• コンテナのオートスケール
• Blue Green Deployment
• Rolling Update
などの機能を備えている
© COPYRIGHT 2019 FIXER Inc.


# Page. 66

![Page Image](https://bcdn.docswell.com/page/LE1MQQ4Y7G.jpg)

Kubernetes における
コンテナのオーケストレーション
• コンテナを複数のノードに配置し、
全体を一つのプラットフォームとして
管理可能
Master Node
Pod
Pod
Pod
Pod
Agent Node
Agent Node
© COPYRIGHT 2019 FIXER Inc.
• スケジューリング、配置
• 監視、復旧
• コンテナの冗長構成
• コンテナ間の通信確保
• コンテナのオートスケール (In/Out)
などの機能を備えている


# Page. 67

![Page Image](https://bcdn.docswell.com/page/GEW3MMX1E2.jpg)

• Kubernetes 上にデプロイした
サービスの間の通信を統一的な
仕組みで管理
• Blue/Green Deployment
• カナリアリリース
• サーキットブレーカー(CDP)
• 分散トレーシング
• Envoy サイドカーパターン
https://docs.microsoft.com/ja-jp/azure/aks/istio-scenario-routing
Istio - サービスメッシュ
（Service Mesh）
© COPYRIGHT 2019 FIXER Inc.


# Page. 68

![Page Image](https://bcdn.docswell.com/page/47ZVQQ6XE3.jpg)

Circuit Breaker パターン


一般的な
業務処理
Circuit Breaker 処理
通常処理（ Close ）
準縮退処理（ Half-Open）
© COPYRIGHT 2019 FIXER Inc.


# Page. 69

![Page Image](https://bcdn.docswell.com/page/YJ65662P7V.jpg)

Microsoft Azure でコンテナに対応している サービス
利用用途に応じて適切なサービスを選択可能
管理重視
© COPYRIGHT 2019 FIXER Inc.
生産性重視
70


# Page. 70

![Page Image](https://bcdn.docswell.com/page/GJ5Y662PJ4.jpg)

• 使い慣れた C# / VB.NET を用いて
コンテナで実行するアプリを開発可能
.NET Core でマイクロサービスを
開発するメリット
© COPYRIGHT 2019 FIXER Inc.
• 開発環境をサポートするツール群
• .NET Core CLI
（dotnet コマンド）
• Docker for Windows
• Visual Studio 2019 による
コンテナサポート
• ※ Windows のみの環境で
Linux を含むコンテナ実行
アプリを開発可能


# Page. 71

![Page Image](https://bcdn.docswell.com/page/9E2GMM4ZER.jpg)

マイクロサービスの開発ライフサイクル
開発環境
ローカル
環境での
開発
テスト環境 / 運用環境
Azure
Kubernetes
Service
Azure
Container
Registry
Azure
Kubernetes
Service
Pipeline
Azure
Kubernetes
Service
A チーム
Repository
B チーム
© COPYRIGHT 2019 FIXER Inc.
© COPYRIGHT 2019 FIXER Inc.
Azure DevOps


# Page. 72

![Page Image](https://bcdn.docswell.com/page/D7YVXXMN7M.jpg)

Web Apps 開発ライフサイクル (シナリオ例)
Deploy
Deploy
git push
pull, clone
開発環境
Azure
© COPYRIGHT 2019 FIXER Inc.


# Page. 73

![Page Image](https://bcdn.docswell.com/page/VENM11WVJ8.jpg)

Azure DevOps デモ①
- Azure Web Apps -
© COPYRIGHT 2019 FIXER Inc.


# Page. 74

![Page Image](https://bcdn.docswell.com/page/Y79N55XV73.jpg)

Container 開発とツールサポート
• Docker CLI
• Azure CLI, SSH
• Visual Studio Code &amp; Docker 拡張機能
• Visual Studio 2019 コンテナー サポート (Build, Debug)
• Docker Image の管理
• Docker Hub
• Azure Container Registry
• Private Registry
© COPYRIGHT 2018 FIXER Inc.


# Page. 75

![Page Image](https://bcdn.docswell.com/page/G78KYY24JD.jpg)

Container 開発ライフサイクル (シナリオ例)
docker push
docker push
git push
pull, clone
CD (Webhook)
開発環境
Azure
© COPYRIGHT 2019 FIXER Inc.


# Page. 76

![Page Image](https://bcdn.docswell.com/page/L7LZ442VER.jpg)

• 開発
• ASP.NET Core アプリを
ローカルで開発
• Azure DevOps でソース
コードを管理
• Docker Compose
（Option）
• 自動ビルド
マイクロサービスの開発から
展開までの流れ
© COPYRIGHT 2019 FIXER Inc.
• Azure DevOps Pipeline
でビルド＆単体テスト
• Azure Container
Registry にコンテナイメージ
を登録
• クラウド展開
• Helm Charts を利用し
て AKS に展開


# Page. 77

![Page Image](https://bcdn.docswell.com/page/4EMVKK8NEW.jpg)

サンプルアプリの構造
Select Range List
C#
JavaScript
HTML
SQL
ASP.NET Core
Web API
User ID
Password
Users
Admin
Introduction
☒ 1.2. C#
C# xxxxxxxxxxxx
☒ 3. C#
yyyyyyyyyyyy
☒ 4. ・・・・・・・
nTimes
AND
Trial Mode
78/100 Correct
Description
C# has only 3 Types ?
×
Web API consists of
Interfaces?
〇
〇
・
・
© COPYRIGHT 2019 FIXER Inc.
Description
http://quizap.com/
2
.NET is the Language?
YES
NO
Description
http://quizap.com/
3
Web API consists of
Interfaces?
YES
NO
Description
http://quizap.com/
・
・
1
Question
1
Answer
×
Correct Answer：NO
C# has only 3 Types ?
Description:
xxxxxxxxxxxxxx
OR
Picture from Blob URL
(if exists)
Results
3
NO
Recommended by AI
Result List
.NET is the Language?
YES
Wrong Answers
Past
2
C# has only 3 Types ?
Conditions :
Study Mode L
CRUD, BULK INSERT（Link Added)
1
Search wrong Answers or Top 100
from the Beginning
Trial Mode
READ, UPDATE
Questions List
5. ・・・・・・・
Mode Selection
1
Questions List
Study Mode
Subjects
Top Menu
User Authentication
Users
Admin
http://quizap.com/
1
Answer
Description
http://quizap.com/
2
Answer
Description
http://quizap.com/
3
Answer
Reference：
http://quizap.com/
or
Blob URL
3
Answer
〇
Correct Answer: NO
Description:
YES
NO
Next
xxxxxxxxxxxxxx
Reference：
http://quizap.com/
or
Blob URL
Next


# Page. 78

![Page Image](https://bcdn.docswell.com/page/PER2XX5479.jpg)

サンプルアプリ画面遷移イメージ
© COPYRIGHT 2019 FIXER Inc.


# Page. 79

![Page Image](https://bcdn.docswell.com/page/P7XD66KZJX.jpg)

サンプルアプリ画面遷移イメージ
© COPYRIGHT 2019 FIXER Inc.


# Page. 80

![Page Image](https://bcdn.docswell.com/page/37KX115VJD.jpg)

追加実装する範囲
•
•
•
•
統合認証機能
検索機能追加
BI (Power BI) 機能追加
AI (Recommendation 等) 機能追加
© COPYRIGHT 2019 FIXER Inc.


# Page. 81

![Page Image](https://bcdn.docswell.com/page/LJ35QQ1Q75.jpg)

統合認証、検索、BI / AI 機能追加
Select Range List
C#
JavaScript
HTML
SQL
ASP.NET Core
Web API
User ID
Password
Users
Admin
Introduction
☒ 1.2. C#
C# xxxxxxxxxxxx
☒ 3. C#
yyyyyyyyyyyy
☒ 4. ・・・・・・・
Times
n
AND
Trial Mode
78/100 Correct
Description
C# has only 3 Types ?
×
Web API consists of
Interfaces?
〇
〇
・
・
© COPYRIGHT 2019 FIXER Inc.
Description
http://quizap.com/
2
.NET is the Language?
YES
NO
Description
http://quizap.com/
3
Web API consists of
Interfaces?
YES
NO
Description
http://quizap.com/
・
・
1
Question
1
Answer
×
Correct Answer：NO
C# has only 3 Types ?
Description:
xxxxxxxxxxxxxx
OR
Picture from Blob URL
(if exists)
Results
3
NO
Recommended by AI
Result List
.NET is the Language?
YES
Wrong Answers
Past
2
C# has only 3 Types ?
Conditions :
Study Mode L
CRUD, BULK INSERT（Link Added)
1
Search wrong Answers or Top 100
from the Beginning
Trial Mode
READ, UPDATE
Questions List
5. ・・・・・・・
Mode Selection
1
Questions List
Study Mode
Subjects
Top Menu
User Authentication
Users
Admin
http://quizap.com/
1
Answer
Description
http://quizap.com/
2
Answer
Description
http://quizap.com/
3
Answer
Reference：
http://quizap.com/
or
Blob URL
3
Answer
〇
Correct Answer: NO
Description:
YES
NO
Next
xxxxxxxxxxxxxx
Reference：
http://quizap.com/
or
Blob URL
Next


# Page. 82

![Page Image](https://bcdn.docswell.com/page/8JDD99XWJG.jpg)

追加する機能について
• Facebook/Twitter/Google/Microsoft
認証追加
Trial Mode
Conditions :
• Active Directory 認証追加
Wrong Answers
Past
AND
n
Times
OR
Recommended by AI
• Study (学習）モード追加
• 検索機能追加
• BI 機能追加
(Power BI 等)
• AI バックエンド追加
(Recommendation 等)
© COPYRIGHT 2019 FIXER Inc.


# Page. 83

![Page Image](https://bcdn.docswell.com/page/VEPXZZPXJ8.jpg)

追加編実装の方針
•
•
•
•
統合認証機能追加 → App Services で追加、認証ロジック追加
検索機能追加 → Service 実装、Model に Search フォルダを追加
BI (Power BI) 機能追加 → Web API をフルに公開
AI (Recommendation 等) 機能追加 → 様々な方法有り
• 例：Recommendations Solution Template
© COPYRIGHT 2019 FIXER Inc.


# Page. 84

![Page Image](https://bcdn.docswell.com/page/27VLWW23EQ.jpg)

Recommendations Solution Template とは
•
Azure にレコメンデーションエンジンがデプロイ
•
•
Azure Web Apps、Web Jobs、Storage で構成
商品カタログとトランザクション履歴のデータに
基づき、商品のレコメンド予測モデルを構築
• SAR（Smart Adaptive Recommendations）
アルゴリズムにより、２つのシナリオがサポート
•
Item-to-Item Recommendations
•
•
•
「この商品をチェックした人はこんな商品もチェックしています」の
ようなレコメンドを表示するシナリオ
関連する商品を表示することで、カタログ内の商品を見つけや
すくする
Personalized Recommendations
•
ユーザーの最近のトランザクション履歴をもとに、そのユーザーに
特化したレコメンドを表示
https://github.com/Microsoft/Product-Recommendations
© COPYRIGHT 2019 FIXER Inc.


# Page. 85

![Page Image](https://bcdn.docswell.com/page/5JGXDDRY7L.jpg)

マイクロサービス化
ASP.NET
Core
Web App
Azure Kubernetes Services（AKS）
Business
Intelligence
認証
Recommend
Recommendation
Solution Template
検索
バッチ処理
Azure
Functions
iOS,
Android
© COPYRIGHT 2018 FIXER Inc.
87


# Page. 86

![Page Image](https://bcdn.docswell.com/page/47Q811V6EP.jpg)

© COPYRIGHT 2019 FIXER Inc.


# Page. 87

![Page Image](https://bcdn.docswell.com/page/KE42RRMM71.jpg)

クイズアプリ Web サイトの
実行用アーキテクチャ実装例 (AKS)
Quiz サービス
Web App
自動スケール
・Azure Kubernetes Services
・SQL Azure Database Managed Instance
SQL
Database
東日本
Geo
レプリケーション
西日本
東南アジア
認証サービス
マスター DB
検索サービス
出題サービス
BI サービス
AI サービス
Web App
Web App
Web App
Web App
Web App
Web App
Test
API
Report
API
SQL
Database
SQL
Database
Token
Service API
SQL
Database
© COPYRIGHT 2018 FIXER Inc.
Master
API
SQL
Database
Search
API
SQL
Database
Message
Bus
Recommend
API
SQL
Database
89


# Page. 88

![Page Image](https://bcdn.docswell.com/page/L71MQQ8YJG.jpg)

実装方針
•
•
•
•
•
最初にモノリシックなアプリを開発
各種必要機能を追加
CDP 等を考慮してサービス単位を分割
Docker でのローカルテスト
Azure Kubernetes Services へのデプロイ
© COPYRIGHT 2019 FIXER Inc.


# Page. 89

![Page Image](https://bcdn.docswell.com/page/G7W3MMZ172.jpg)

マイクロサービスの開発ライフサイクル
開発環境
ローカル
環境での
開発
テスト環境 / 運用環境
Azure
Kubernetes
Service
Azure
Container
Registry
Azure
Kubernetes
Service
Pipeline
Azure
Kubernetes
Service
A チーム
Repository
B チーム
© COPYRIGHT 2019 FIXER Inc.
© COPYRIGHT 2019 FIXER Inc.
Azure DevOps


# Page. 90

![Page Image](https://bcdn.docswell.com/page/4JZVQQ1X73.jpg)

Azure Dev Spaces (Preview)
• Azure Kubernetes Service (AKS) 上でのコンテナーの実行とデバッグを実行可能
• マネージドな Kubernetes クラスターをチームで共有して共同作業可能
• 依存関係を複製したりモックアップしたりすることなく、自分のコードを分離して
開発したり、他のコンポーネントと併せてエンド ツー エンドのテストを実行
© COPYRIGHT 2018 FIXER Inc.


# Page. 91

![Page Image](https://bcdn.docswell.com/page/YE6566LPJV.jpg)

Azure Dev Spaces (Preview)
• Azure Kubernetes Service (AKS) 上でのコンテナーの実行とデバッグを実行可能
• マネージドな Kubernetes クラスターをチームで共有して共同作業可能
• 依存関係を複製したりモックアップしたりすることなく、自分のコードを分離して開発したり、
他のコンポーネントと併せてエンド ツー エンドのテストを実行
• さまざまな開発言語/フレームワーク、Windows, macOS, Linux で利用可能
• 開発とプロダクションで同一の Docker / Helm 環境を利用
http://web-frontend.bd0cfb25.../aksapp.io
http://scott.s.web-frontend.bd0cfb25.../aksapp.io
© COPYRIGHT 2019 FIXER Inc.
Scott


# Page. 92

![Page Image](https://bcdn.docswell.com/page/GE5Y661PE4.jpg)

© COPYRIGHT 2019 FIXER Inc.


# Page. 93

![Page Image](https://bcdn.docswell.com/page/972GMM1Z7R.jpg)

Azure DevOps デモ③
- Azure Dev Spaces -
© COPYRIGHT 2019 FIXER Inc.


# Page. 94

![Page Image](https://bcdn.docswell.com/page/DJYVXXZNJM.jpg)

まとめ
•
•
•
•
•
•
アプリケーションのクラウド移行戦略
マイクロサービスとは何か
マイクロサービスを支える技術
Azure DevOps デモ
サンプルアプリご紹介
まとめ
© COPYRIGHT 2018 FIXER Inc.


# Page. 95

![Page Image](https://bcdn.docswell.com/page/V7NM113VE8.jpg)

FIXER Tech Academy
Cloud Config Boot Camp
© COPYRIGHT 2018 FIXER Inc.
Nagisa Terrace in Tamachi


# Page. 96

![Page Image](https://bcdn.docswell.com/page/YJ9N559VJ3.jpg)

Cloud Config Boot Camp（クラウド・コンフィグ・ブートキャンプ）
Azureソリューションに必要なスキルを体系的に習得
FIXERでは、Azureへのリフト＆シフトやクラウドの効果的な活用、クラウド上でのアプリ開発など、
様々なスキルを体系的に習得できる各種トレーニングをご用意しております。
インフラ
構築編
アプリ開発
基礎編
アプリ開発
機能追加編
応用編
CDP概論・各論、
仮想ネットワーク、
ARMテンプレート等
ASP.NET Core
MVC Web
モノリシック
アーキテクチャ
ASP.NET Core
MVC Web
マイクロサービス
アーキテクチャ
Azureの基礎知識
Azure基本事項、Azureサービスと機能のツアーなど
© COPYRIGHT 2018 FIXER Inc.


# Page. 97

![Page Image](https://bcdn.docswell.com/page/GJ8KYY94ED.jpg)

ご清聴
ありがとう
ございました！
© COPYRIGHT 2019 FIXER Inc.


# Page. 98

![Page Image](https://bcdn.docswell.com/page/LJLZ44WV7R.jpg)

© COPYRIGHT 2019 FIXER Inc.


