狠狠撸

狠狠撸Share a Scribd company logo
短納期で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/CaaS
? 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などでリモート課題に対応
ご静聴ありがとうございました!

More Related Content

Xpjug lt-20210918