ハンズオンの概要

このハンズオンで実施する内容を概観します。

Jupyter notebook について

Jupyter Notebook はブラウザから操作のできる、Python やシェルスクリプトなどの実行環境です。

セル(いま左側にフォーカスがあたっていますよね?この単位がセルです)ごとに
上方のメニューにある ▶︎| RUN でコマンドを実行することができます。

Shift + Enter キーでも実行しながら先に進むことができます。
試しに何度か押してみましょう!


In [ ]:
date

応答例)

Fri Jul 27 12:30:25 UTC 2018

In [ ]:
ls

応答例)

00-overview.ipynb                 04-deploy-to-production.ipynb
01-provision-aws-resources.ipynb  05-teardown-resources.ipynb
02-develop-with-git.ipynb         application
03-deploy-to-staging.ipynb        infrastructure

今回利用するコンテンツはすべて起動した Docker イメージの中にあり、
AWS CLI 以外の処理は すべてコンテナの中で完結 しています。
ホスト側の環境には影響を与えませんので安心してご利用ください。

すべてのノートは画面左上の File からダウンロードすることもできますし
jupyter アイコン からファイル一覧に戻り、その他のファイル操作をすることもできます。

(すべてのソースコードは こちら で公開されています)

ハンズオンと、そのサンプルケースの流れ

サンプルケース

このハンズオンは、とあるアプリケーション開発者が成果物を Fargate で公開する ことを想定しています。

ビルド・テスト・デプロイ・リリースは極力自動化されており、以下のプロセスを経ます。

  1. master ブランチに push するとテストが走り、テストが通れば edge 環境にデプロイされる

  1. edge 環境を実際にさわって確認
  2. release ブランチに対してプルリクエストを作成
  3. release ブランチにマージ されるとテストが走り、テストが通れば staging 環境にデプロイされる

  1. staging 環境を実際にさわって確認
  2. 承認ボタンのクリックproduction 環境にリリースされる

  1. production 環境を実際にさわって確認

ハンズオンの流れ

サンプルケースの流れに添い、追体験をしていきます。

ノート名
01-provision-aws-resources 後述のシステム構成を AWS 上にプロビジョニング
02-develop-with-git CodeCommit と git を使い、サンプルケースの 1, 2 を体験
03-deploy-to-staging ステージング環境を作りつつ、サンプルケースの 3, 4, 5 を体験
04-deploy-to-production 本番環境を作りつつ、サンプルケースの 6, 7 を体験
05-teardown-resources AWS リソースを掃除

システム構成

基本的にはこうです。

  • Fargate (on ECS) を使って Web アプリケーションを提供
  • CodeCommit と CodeBuild と CloudFormation を CodePipeline で括った CI/CD パイプラインでデプロイ

最終的なシステム構成は以下の通りです。

このハンズオンに含まれていないもの

通常 CI/CD にはある類のものも、ハンズオンの簡素化のため除外しています。
実際に本番稼働させるにあたっては別途十分な検討をしてください。

  • 本来デプロイ前後に可能な各種テスト、開発者へのフィードバック
  • ブランチ別のテストや PR に対してのテスト、レギュレーションの設定
  • 各種メトリクスやインジケータのモニタリング、通知、初期対応
  • イシュー・インシデントのトラック、トレース情報の収集の自動化

などなど