Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
XP祭り2021 - LT
Search
Thirosue
September 18, 2021
2
39
XP祭り2021 - LT
Thirosue
September 18, 2021
Tweet
Share
More Decks by Thirosue
See All by Thirosue
2022/6/27(月) AWS好きエンジニア LT会 vol.2 #2
thirosue
2
200
2022/2/24(木) AWS好きエンジニア LT会 vol.1 #2
thirosue
2
140
Spring Fest 2017 の資料
thirosue
2
51
ブロックチェーンの講演@東京工業大学
thirosue
2
39
Featured
See All Featured
Intergalactic Javascript Robots from Outer Space
tanoku
268
27k
Building Applications with DynamoDB
mza
90
6.1k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
328
21k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
33k
Producing Creativity
orderedlist
PRO
341
39k
Teambox: Starting and Learning
jrom
132
8.7k
Designing Experiences People Love
moore
138
23k
Imperfection Machines: The Place of Print at Facebook
scottboms
264
13k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
7
150
Practical Orchestrator
shlominoach
186
10k
10 Git Anti Patterns You Should be Aware of
lemiorhan
654
59k
Building Your Own Lightsaber
phodgson
102
6k
Transcript
短期間でDevOpsのベストプラク ティスで開発を実現した話 株式会社ビッグツリーテクノロジー&コンサルティング 廣末丈⼠
⾃⼰紹介 • 廣末丈⼠ • 株式会社ビッグツリーテクノロジー&コンサルティング • 最近は技術⽀援、開発基盤整備などの仕事が多め • ⾃称フルスタックエンジニア
みなさん、DevOpsのベストプラクティス 実践できていますか?
DevOpsのベストプラクティス • 継続的インテグレーション • 継続的デリバリー • マイクロサービス • Infrastructure as
Code • モニタリングとロギング • コミュニケーションと共同作業 引⽤元: https://aws.amazon.com/jp/devops/what-is-devops/
とある開発案件 • 官公庁向け新規のWebサービス開発 • ローンチまでの期間は1ヶ⽉強 • アプリの機能はシンプル (画⾯数6、マスタデータ:4、トランデータ:3程度) • ⼤まかな仕様は提案時に策定済
• AWS利⽤ • 使い捨てでなく、それなりに⻑く使われる想定
プロジェクト体制 開発期間 1.5ヶ⽉ 開発メンバ数 3名 開発基盤整備・開発⽀援 1名(わたし) フロントエンド 1名(新卒3年⽬) バックエンド
1名(新卒2年⽬) 勤務形態 ほぼリモート ※⽴ち上げ期に週1出社程度
検討したこと • データストア(RDB or NoSQL) • Caas or FaaS •
認証 • CI / CD • Infrastructure as Code(IaC)
検討したこと → 中間結果 • データストア(RDB or NoSQL)→ページングあるのでAurora • Caas or
FaaS → RDS Proxy GA後だったため、Lambda(FaaS) • 認証 → Cognito • CI / CD → 後述… • Infrastructure as Code(IaC) → 後述…
AWS Amplify ⼀択
AWS Amplify とは? • AWS Amplify は Web フロントエンド、モバイルアプリの開発を加速 させるために作られたプラットフォーム
• サーバーレスなバックエンドの構築するための CLI や、バックエンド と接続するためのライブラリ、Web サイトのホスティングの仕組み を持つ
Amplifyの開発スタイル 例:REST API⽣成 1) コマンド実⾏
2) オプション選択
3) ファイル⽣成 ← ソースファイル ↓インフラ⽣成コード ← カスタマイズパラメータ
3) ソースコード 選択したオプションに応じ、ボイラーテンプレートが出⼒される
開発。。。 数時間後。。。
4) APIのデプロイ pushコマンドでインフラコードとソースコードをAWSに反映 する(裏でCloudFormationを実⾏し、AWSリソース⽣成)
検討したこと → 最終結果 • データストア(RDB or NoSQL)→ページングあるのでAurora • Caas or
FaaS → RDS Proxy GA後だったため、Lambda(FaaS) • 認証 → Cognito + IAM認証(Amplify Auth) • CI / CD → Amplify Consoleで実現 • Infrastructure as Code(IaC) → Amplify CLIで実現
DevOpsのベストプラクティス • 継続的インテグレーション → Amplify Console • 継続的デリバリー → Amplify
Console • マイクロサービス → FaaS • Infrastructure as Code → Amplify CLI • モニタリングとロギング → CloudWatch(Logs/Metrics) • コミュニケーションと共同作業 → 後述… 引⽤元: https://aws.amazon.com/jp/devops/what-is-devops/
開発者 Cloud Formation CloudFront + S3 Cognito IAM認証 Aurora with
RDS Proxy Batch Code Commit ⾃動 デプロイ Amplify Console Amplify CLI (amplify push) 担当者 API GateWay + Lambda アーキテクチャ CSV作成⽤バッチ CSV配置 開発時の 随時の環境反映 CSV ダウンロード
開発者 Cloud Formation CloudFront + S3 Cognito IAM認証 Aurora with
RDS Proxy Batch Code Commit ⾃動 デプロイ Amplify Console Amplify CLI (amplify push) 担当者 API GateWay + Lambda Amplifyで⽣成可能なリソース CSV作成⽤バッチ CSV配置 開発時の 随時の環境反映 CSV ダウンロード 対象外 リソース 個別にCfnで⽣成
Amplify良かったこと(その他) • ブランチプレビュー 機能ブランチでプレビュー環境作成。リソース(バックエンド、 DB含め)を丸ごと作成し、⼀早いフィードバックをもらえる 運⽤後の複数機能の並⾏開発、バグフィックス+機能の並⾏開発 などでもスムースに対応できた • レジリエンス サーバレス前提のため、障害に強く、東京リージョンなどで発⽣
する⼀時的な障害などにも基本最短時間で復旧できた
コミュニケーションと共同作業について
検討事項 • 若⼿メンバー育成 • 仕様のやりとり • その他もろもろ。。。 ・モブワーク 画⾯共有、VS Code
Live Shareなど活⽤し、ナレッジ共有&課題に対応 ・1 on 1 定期的にメンバの現状や悩みを確認。メンバとのコミュニケーションの障 壁を低くし、メンバに応じた動機付けのポイントなどを探った。 実施したこと
結果、残業もほとんどなく 無事、ローンチ。 安定運⽤も実現できています。
まとめ • Amplify CI/CD, IaCなどを省⼒化できるAmplifyにどっぷりハマる。ユース ケースに応じて活⽤することで、運⽤もスムースに • 共同作業 モブワーク(Live Share)、1
on 1などでリモート課題に対応
ご静聴ありがとうございました!