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
Designing Experiences People Love
moore
138
23k
Become a Pro
speakerdeck
PRO
25
5k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.8k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
6
410
What's new in Ruby 2.0
geeforr
343
31k
Embracing the Ebb and Flow
colly
84
4.5k
The World Runs on Bad Software
bkeepers
PRO
65
11k
Building Better People: How to give real-time feedback that sticks.
wjessup
364
19k
Writing Fast Ruby
sferik
627
61k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Side Projects
sachag
452
42k
Optimizing for Happiness
mojombo
376
70k
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などでリモート課題に対応
ご静聴ありがとうございました!