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
The Language of Interfaces
destraynor
154
24k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
27
790
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
27
4.1k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
YesSQL, Process and Tooling at Scale
rocio
167
14k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
25
1.8k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.5k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5k
Thoughts on Productivity
jonyablonski
67
4.3k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
43
6.6k
Building Flexible Design Systems
yeseniaperezcruz
327
38k
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などでリモート課題に対応
ご静聴ありがとうございました!