![Page 1: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/1.jpg)
de:code 2019 MW01
ASP.NET Core + Azure で支える
熟成 3 年「私だけのポン酢」アーキテクチャ
株式会社オルターブース
松村優大 森田邦裕
![Page 2: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/2.jpg)
松村優大 (まつむらゆうた)
業務執行役員 / Chief Technical ArchitectMicrosoft MVP for Developer Technologies
C# / PHP / Microsoft AzureFukuoka.NET 主催
![Page 3: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/3.jpg)
森田邦裕 (もりた くにひろ)
ソリューションアーキテクト
JAWS-UG福岡, Serverless Meetup Fukuoka 運営
![Page 4: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/4.jpg)
株式会社オルターブース
2015 年 3 月設立 (5 期目)Microsoft Azure を活用したソリューションを展開するクラウドインテグレーター2017 年 8 月 Japan Microsoft Partner of the Year (OSS on Azure) 受賞
![Page 5: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/5.jpg)
本セッションについて
![Page 6: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/6.jpg)
本セッションについて
![Page 7: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/7.jpg)
世界でたったひとつだけの、
自分だけのオリジナルソースを作ろう。
簡単に、お手軽に。あなたの「コレ、好き!」を作るお手伝い。
https://mysaucefactory.com/
![Page 8: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/8.jpg)
マイソースファクトリーの構成
アプリケーション インフラストラクチャ
![Page 9: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/9.jpg)
マイソースファクトリーの構成
アプリケーション インフラストラクチャ
![Page 10: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/10.jpg)
クラウドネイティブ技術
https://github.com/cncf/toc/blob/master/DEFINITION.md
![Page 11: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/11.jpg)
クラウドネイティブのメリット
https://github.com/cncf/toc/blob/master/DEFINITION.md
![Page 12: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/12.jpg)
クラウドネイティブを実践する上で大事なこと
アーキテクチャ
![Page 13: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/13.jpg)
連携
![Page 14: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/14.jpg)
連携
![Page 15: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/15.jpg)
ASP.NET Core の採用
![Page 16: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/16.jpg)
![Page 17: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/17.jpg)
• MVC (Model-View-Controller)
• Web API
![Page 18: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/18.jpg)
バージョン マイソースファクトリー 取り組んだこと
1.0-preview 開発初期~ベータ版 .xproj + project.json
1.0 正式公開 .csproj に移行
2.0
正式公開継続的なアップデート
(大きな問題は起きていない)2.1
2.2
![Page 19: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/19.jpg)
なぜ .NET Core を最初から採用したか
![Page 20: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/20.jpg)
なぜ .NET Core を最初から採用したか
![Page 21: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/21.jpg)
なぜ .NET Framework ではなかった?
![Page 22: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/22.jpg)
開発当初に苦労したこと
![Page 23: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/23.jpg)
API バージョニング
/api/v1/resources
/api/v2/resources
![Page 24: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/24.jpg)
API バージョニング
![Page 25: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/25.jpg)
Swagger で API のデバッグ
![Page 26: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/26.jpg)
![Page 27: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/27.jpg)
リポジトリパターンの採用
![Page 28: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/28.jpg)
リポジトリパターンとは
https://docs.microsoft.com/ja-jp/dotnet/standard/microservices-
architecture/microservice-ddd-cqrs-patterns/infrastructure-persistence-layer-design
![Page 29: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/29.jpg)
リポジトリパターンとは
データ ソースへのアクセスに必要なロジックをカプセル化する
クラスまたはコンポーネントです。
リポジトリは一般的なデータ アクセス機能を一元管理して
保守性を向上させ、ドメイン モデル レイヤーからデータベース
にアクセスするためのインフラストラクチャやテクノロジを切り
離します。
![Page 30: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/30.jpg)
![Page 31: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/31.jpg)
Data Source
Repository
Controller
View
Model
Service
Data Source
Model
Controller
View
![Page 32: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/32.jpg)
Data Source
Model
Controller
View
![Page 33: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/33.jpg)
Data Source
Repository
Controller
View
Model
Service
![Page 34: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/34.jpg)
連携
![Page 35: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/35.jpg)
初代アーキテクチャ
![Page 36: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/36.jpg)
全体の利用ツール・クラウド
ACS
WebApps
BLOB
SQLDatabase
DocumentDB
LogicApp
Functions
OMS
CloudFrontRoute53
S3
API Gateway
ECR
Cognito
IAM
Lambda
CloudWatch
![Page 37: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/37.jpg)
• .NET Core で動く
• コンテナーで本番環境
• ログの可視化
• CI/CD による自動化
• 自動フェイルオーバー
リリースに向けたアーキテクチャ方針 (2016年)
![Page 38: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/38.jpg)
.NET Core が動く
![Page 39: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/39.jpg)
コンテナーで本番環境
![Page 40: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/40.jpg)
アーキテクチャ
AWS LambdaAmazon
API Gateway
Amazon Cognito
Web Apps
SQL DatabaseContainer Service
![Page 41: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/41.jpg)
アーキテクチャ
AWS LambdaAmazon
API Gateway
Amazon Cognito
Web Apps
SQL DatabaseContainer Service
Single Page Application
![Page 42: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/42.jpg)
アーキテクチャ
AWS LambdaAmazon
API Gateway
Amazon Cognito
Web Apps
SQL DatabaseContainer Service
![Page 43: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/43.jpg)
アーキテクチャ
AWS LambdaAmazon
API Gateway
Amazon Cognito
Web Apps
SQL DatabaseContainer Service
![Page 44: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/44.jpg)
アーキテクチャ
AWS LambdaAmazon
API Gateway
Amazon Cognito
Web Apps
SQL DatabaseContainer Service
• 自前で認証を持ちたくなかった
• Azure AD B2C はデザインの一貫性が合わなかった
• AWS で実現
![Page 45: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/45.jpg)
アーキテクチャ
AWS LambdaAmazon
API Gateway
Amazon Cognito
Web Apps
SQL DatabaseContainer Service
Azure と AWS のマルチクラウド
![Page 46: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/46.jpg)
ログの可視化Azure Container Service
Storage
![Page 47: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/47.jpg)
CI/CD による自動化
実行結果
Push
Polling
Azure Container Service
docker swarm
docker pulldocker push
docker build
Amazon EC2 Container Registry
blue green
開発メンバー
![Page 48: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/48.jpg)
フェイルオーバー
![Page 49: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/49.jpg)
Azure での構成も検討したが
Amazon Route 53
Web Apps Amazon CloudFront
Amazon S3
?
マイソースファクトリー
https://mysaucefactory.com
![Page 50: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/50.jpg)
連携
![Page 51: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/51.jpg)
![Page 52: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/52.jpg)
時代・環境の変化 (2017年)
![Page 53: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/53.jpg)
サービス提供を持続可能な運用形式へのシフト
運用の手間を無くす
マネージメントレベルの高いサービスへ乗り換え
解決するには?
![Page 54: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/54.jpg)
マネージメントレベルの高いサービス
https://docs.microsoft.com/ja-jp/azure/security/security-management-and-monitoring-
overview
![Page 55: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/55.jpg)
連携
![Page 56: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/56.jpg)
2代目アーキテクチャ
![Page 57: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/57.jpg)
改善の目的 (2018年~)
![Page 58: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/58.jpg)
アーキテクチャ
AWS LambdaAmazon
API Gateway
Amazon Cognito
Web Apps
SQL DatabaseContainer Service
![Page 59: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/59.jpg)
アーキテクチャ
AWS LambdaAmazon
API Gateway
Amazon Cognito
Web Apps
SQL DatabaseWeb Apps
Managed Identities
Container Instance
Function Apps
![Page 60: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/60.jpg)
アーキテクチャ
AWS LambdaAmazon
API Gateway
Amazon Cognito
Web Apps
SQL DatabaseWeb Apps
Managed Identities
Container Instance
Function Apps• コンテナーホスティングを辞めた
• Azure Container Service から Web Apps へ乗り換え
![Page 61: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/61.jpg)
アーキテクチャ
AWS LambdaAmazon
API Gateway
Amazon Cognito
Web Apps
SQL DatabaseWeb Apps
Managed Identities
Container Instance
Function Apps
Azure Container 上のコンテナーで動いていた一部処理を Function Apps に移植
![Page 62: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/62.jpg)
アーキテクチャ
AWS LambdaAmazon
API Gateway
Amazon Cognito
Web Apps
SQL DatabaseWeb Apps
Managed Identities
Container Instance
Function Apps
Azure Container Service 上でバッチ起動していたコンテナーを Azure Container Instance で起動するように移植
![Page 63: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/63.jpg)
アーキテクチャ
AWS LambdaAmazon
API Gateway
Amazon Cognito
Web Apps
SQL DatabaseWeb Apps
Managed Identities
Container Instance
Function Apps
• サービスプリンシバルからの脱却
• コードにアスセスキーを埋め込まない
• SDK が期限付きトークンを自動的に取得/再取得
• これまで通り Azure サービスに対しアクセス可能( Azure AD 認証をサポートするサービスのみ)
![Page 64: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/64.jpg)
アーキテクチャ (検討中)
Web Apps
SQL DatabaseWeb Apps
Managed Identities
Container Instance
Function Apps
Azure AD B2C
認証機能を Azure AD B2C へ移行
![Page 65: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/65.jpg)
新旧リソース切り替え
Container Service
Web Apps
Amazon Route 53 SQL Database
![Page 66: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/66.jpg)
リソースのサブスクリプション移動
旧 Subscription 新 Subscription
![Page 67: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/67.jpg)
リソースのサブスクリプション移動
Web Apps
Amazon Route 53 SQL Database
Web Apps
![Page 68: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/68.jpg)
Azure Container Service からWeb Apps へAzure Container Service Web Apps
as a Service IaaS PaaS
アップデート対応 自前で対応 プラットフォーム側対応
サービス監視 自前で対応 プラットフォーム側対応
セキュリティ 自前で対応 プラットフォーム側対応
Infrastructure as Code Terraform, Ansible Terraform
環境構築OS からミドルウェア、アプリデプ
ロイまで全て自前で対応アプリデプロイするだけ
![Page 69: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/69.jpg)
Web Apps に変えて
![Page 70: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/70.jpg)
Kubernetes (k8s) に変えなかったの?
![Page 71: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/71.jpg)
ログの可視化Azure Container Service
Storage
![Page 72: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/72.jpg)
ログの可視化
Web Apps Application Insights
アプリにApplication Insights SDK を組み込み
![Page 73: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/73.jpg)
Elasticsearch + Fluentd + Kibana から Application Insights へ
Elasticsearch + Fluentd +
KibanaApplication Insights
as a Service IaaS SaaS
アップデート対応 自前で対応 プラットフォーム側対応
サービス監視 自前で対応 プラットフォーム側対応
セキュリティ 自前で対応 プラットフォーム側対応
Infrastructure as Code Terraform, Ansible Terraform
環境構築OS からミドルウェアまで全て
自前で対応サービスを利用する
![Page 74: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/74.jpg)
Application Insights に変えて
![Page 75: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/75.jpg)
CI/CD による自動化
実行結果
Push
Polling
Azure Container Service
docker swarm
docker pulldocker push
docker build
Amazon EC2 Container Registry
blue green
開発メンバー
![Page 76: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/76.jpg)
CI/CD による自動化
実行結果
Push
Polling
Azure DevOps
Web Apps Web Apps
ReleaseBuild
開発メンバー
![Page 77: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/77.jpg)
Jenkins から Azure DevOps へJenkins Azure DevOps
as a Service IaaS SaaS
アップデート対応 自前で対応 プラットフォーム側対応
サービス監視 自前で対応 プラットフォーム側対応
セキュリティ 自前で対応 プラットフォーム側対応
Infrastructure as Code Terraform, Ansible -
環境構築OS からミドルウェアまで全て
自前で対応。 Jenkins職人サービスを利用する
![Page 78: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/78.jpg)
Azure DevOps に変えて
![Page 79: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/79.jpg)
連携
![Page 80: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/80.jpg)
ログの送信先
![Page 81: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/81.jpg)
ログの送信先
![Page 82: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/82.jpg)
![Page 83: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/83.jpg)
メールのアーキテクチャ
![Page 84: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/84.jpg)
AWS LambdaAmazon
API Gateway
Amazon Cognito
Web Apps
SQL DatabaseWeb Apps
Managed Identities
Container Instance
Function Apps
![Page 85: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/85.jpg)
メールのアーキテクチャ
![Page 86: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/86.jpg)
サーバーレスで実現する負荷分散メール
API
![Page 87: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/87.jpg)
責任範囲が明確になる
API
![Page 88: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/88.jpg)
責任範囲が明確になる
API
![Page 89: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/89.jpg)
責任範囲が明確になる
API
![Page 90: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/90.jpg)
シークレットの保護(= 機密情報)
![Page 91: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/91.jpg)
AWS LambdaAmazon
API Gateway
Amazon Cognito
Web Apps
SQL DatabaseWeb Apps
Managed Identities
Container Instance
Function Apps
![Page 93: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/93.jpg)
Secret Manager
Development Staging / Production
Azure Key Vault
Managed Identities
secrets.json
![Page 94: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/94.jpg)
Azure Key Vault でシークレットを管理する理由
![Page 95: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/95.jpg)
Managed Identities
![Page 96: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/96.jpg)
![Page 97: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/97.jpg)
分散キャッシュ
![Page 98: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/98.jpg)
• 分散キャッシュ
キャッシュ
![Page 99: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/99.jpg)
![Page 100: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/100.jpg)
まとめ
![Page 101: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/101.jpg)
ASP.NET Core に挑戦して良かった
![Page 102: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/102.jpg)
ASP.NET Core に挑戦して良かった
![Page 104: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/104.jpg)
継続的クラウドネイティブ
![Page 105: MW01 - eventmarketing.blob.core.windows.net · de:code 2019 MW01 ASP.NET Core + Azure で支える 熟成3 年「私だけのポン酢」アーキテクチャ 株式会社オルターブース](https://reader035.vdocuments.pub/reader035/viewer/2022062604/5fc4f279977a260f0830bf3d/html5/thumbnails/105.jpg)
© 2018 Microsoft Corporation. All rights reserved.
本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。
© AlterBooth,inc.
本情報の内容 (添付文書、リンク先などを含む) は、de:code 2019 開催日 (2019年5月29~30日) 時点のものであり、予告なく変更される場合があります。
本コンテンツの著作権、および本コンテンツ中に出てくる商標権、団体名、ロゴ、製品、サービスなどはそれぞれ、各権利保有者に帰属します。