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
52
ブロックチェーンの講演@東京工業大学
thirosue
2
41
Featured
See All Featured
Scaling GitHub
holman
458
140k
Building Adaptive Systems
keathley
38
2.3k
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
Product Roadmaps are Hard
iamctodd
PRO
49
11k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
Six Lessons from altMBA
skipperchong
27
3.5k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
132
33k
What's in a price? How to price your products and services
michaelherold
243
12k
The Cult of Friendly URLs
andyhume
78
6.1k
KATA
mclloyd
29
14k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
28
2.1k
Keith and Marios Guide to Fast Websites
keithpitt
410
22k
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などでリモート課題に対応
ご静聴ありがとうございました!