rights reserved. In Partnership with Deep Dive on DevOps for Serverless Applications Keiichi Nakayama Vice General Manager Cloud Partner Group CHARA-WEB Co., Ltd. B - 5
rights reserved. In Partnership with 本セッションについて u 想定される聴講者 • DevOpsに取り組んでいる、またはこれから取り組もうとしている方 • サーバーレスアプリケーション開発に興味がある方 • 開発プロセスの改善を検討されている方 u ゴール • AWSを活用した、サーバーレスアプリケーション開発のDevOpsにおけるポイン トなどを知っていただく
rights reserved. In Partnership with ステージ毎のアカウント分割 • 開発用 新機能の開発を進めていくためのステージ • 検証用 商用にリリースする前の検証用ステージ • 商用 エンドユーザーへ実際に提供を行うステージ • 管理用 CI/CDパイプラインやソースコードリポジトリ を配置したり、各アカウントを中央管理する ステージ毎の権限分離やコストの把 握が行いやすい Manage Dev Stg Prod Micro Service Micro Service Micro Service Micro Service Micro Service Micro Service Micro Service Micro Service Micro Service Micro Service Micro Service Micro Service CI/CD for Micro Service CI/CD for Micro Service CI/CD for Micro Service CI/CD for Micro Service 比較的中小規模なプロダクトにオススメ
rights reserved. In Partnership with マイクロサービス毎のアカウント分割 • マイクロサービス毎ステージ毎 ステージ毎のアカウント分割の4アカウント を、更にマイクロサービス毎に分割する マイクロサービス本来のポリシーが担保しや すく、きめ細やかな管理が実現できる • マイクロサービス毎 マイクロサービス毎に単一のアカウントを設 け、アカウント内にCI/CDや各ステージを含む 形で運用する マイクロサービス毎にDevOpsチームが分割さ れている組織などでは扱いやすい マイクロサービス毎の権限分離やコ ストの把握が行いやすい 大規模なプロダクトにオススメ Manage CI/CD Dev Micro Service Stg Micro Service Prod Micro Service Manage CI/CD Dev Micro Service Stg Micro Service Prod Micro Service Manage CI/CD Dev Micro Service Stg Micro Service Prod Micro Service Manage CI/CD Dev Micro Service Stg Micro Service Prod Micro Service
rights reserved. In Partnership with CI/CD Pipelineの役割 • リリースプロセスの自動化 全てのコミットはリリース対象として扱い、特定のブランチへのプッシュにより自動的にリリー スプロセスが稼働し、ターゲットステージへのデプロイまでが自動的に行われる。 これにより、プロダクトの価値を素早く頻繁にエンドユーザーへデリバリーする • 品質の安定化 リリースターゲットに対するユニットテストのカバレッジや、静的コード解析を自動的に実行す ることで、一定基準の品質を保った安定したプロダクトをリリースする • 統制管理 組織のルールに則ったリリース承認フローや、使用されるライブラリのチェック、脆弱性検査等 を強制する Build Test Staging Deploy Test Release Approval Production Deploy Release Process Source
rights reserved. In Partnership with ユニットテストのポイント ü ローカル環境でユニットテストを 行いながら開発を進める ü 各メソッドをピュアに保ち、テス ト可能なメソッドにする ü UIテストやインテグレーションテ ストではテストを行いにくい例外 処理についても網羅的にテストを 実行できる ü カバレッジを計測し一定基準を 保ったテストが行われていること を担保する UI Test Integration Test Unit Test
rights reserved. In Partnership with Test Driven Development • TDDは下記のサイクルで行う • Red 1つのテストを追加し、テストが失敗することを確 認する • Green テストが成功するための最低限のコードを追加する • Refactor コードをリファクタリングする • TDDにより小さくインクリメンタルに開 発を進める • 常にカバレッジが高く質の高いコード になりやすい