$30 off During Our Annual Pro Sale. View Details »

AWS Fargate + Code 兄弟で始める継続的デリバリー / Continuous Delivery with AWS Fargate and Code brothers

AWS Fargate + Code 兄弟で始める継続的デリバリー / Continuous Delivery with AWS Fargate and Code brothers

JAWS-UG コンテナ支部 入門編 #5 の資料です

ryo nakamaru

July 30, 2018
Tweet

More Decks by ryo nakamaru

Other Decks in Programming

Transcript

  1. + Code 兄弟で始める継続的デリバリー
    AWS Fargate
    JAWS-UG コンテナ支部 入門編 #5 July 30, 2018
    Ryo NAKAMARU, SUPINF Inc.

    View Slide

  2. !2
    今日はまるっと Fargate!!
    ついでに相性抜群の継続的デリバリー

    View Slide

  3. 早速 Fargate + α の紹介なんですが
    Black Belt の資料がよすぎるので
    そのまま一緒に読み合わせしますね!
    !3

    View Slide

  4. !4

    View Slide

  5. CI / CD パイプラインについて
    !5
    もう少し
    こまかい

    View Slide

  6. !6
    CI / CD パイプライン
    local
    source
    repository
    CI
    CD
    storage
    / docker
    repository
    cloud

    View Slide

  7. !7
    local
    source
    repository
    CI task
    runner
    CD
    storage
    / docker
    repository
    cloud
    • ソースコード 
    / 各種設定の 
    バージョン管理
    • 静的解析
    • 単体テスト
    • コンパイル
    • デプロイ
    • 成果物の管理
    • イメージ管理
    (・ e2e / UI テスト )
    • イベント制御
    • イベントフック
    • 正常 / 異常終了通知
    基本的な要素

    View Slide

  8. !8
    AWS サービスでいうと
    local
    source
    repository
    CI task
    runner
    CD
    storage
    / docker
    repository
    cloud
    CodeCommit CodeBuild
    ECS / EKS / CodeDeploy /CloudFormation
    ECR / S3
    CodePipeline

    View Slide

  9. !9
    Input と Output の選択肢
    local
    source
    repository
    CI
    CD
    docker
    repository
    staging
    env
    git push
    • master
    • release
    • other branches
    • tags • dev (edge)
    • branch-testing
    • staging
    • UAT
    • production
    edge
    env
    production
    env

    View Slide

  10. !10
    Input と Output の考慮ポイント例
    local
    source
    repository
    CI
    CD
    docker
    repository
    staging
    env
    edge
    env
    production
    env
    いつ?
    master ブランチ
    だけ push?
    自動?
    本番環境だけは
    承認ボタン?
    自由?
    master へは
    直 push 禁止?
    テストする?
    e2e、UI など
    全環境必要?

    View Slide

  11. !11
    例)1. master ブランチに push すると..
    local
    source
    repository
    CI
    CD
    docker
    repository
    staging
    env
    edge
    env
    production
    env

    View Slide

  12. !12
    例)2. tag を打つと..
    local
    source
    repository
    CI
    CD
    docker
    repository
    staging
    env
    edge
    env
    production
    env

    View Slide

  13. source
    repository
    CI
    !13
    例)3. リリースを承認すると..
    local
    CD
    docker
    repository
    staging
    env
    edge
    env
    production
    env

    View Slide

  14. ところで、ご存知ですか
    !14

    View Slide

  15. !15
    ビル・ゲイツが TED で語った
    教師の質を上げるために必要なこととは?

    View Slide

  16. フィードバックを得ること!
    フィードバックを 受け、現状を 正しく把握 する
    振り返りから改善点を学び、次に 活かす
    !16

    View Slide

  17. フィードバックを
    得て、理解して、生かす
    !17

    View Slide

  18. フィードバックを
    !18
    • もらう
    • 理解する
    • 次に生かす
    {

    View Slide

  19. 継続的デリバリーとコンテナも
    フィードバックのための手段!
    !19

    View Slide

  20. !20
    • もらう
    • 理解する
    • 次に生かす
    {
    フィードバックを
    Continuous Delivery
    いち早く
    継続的デリバリーで

    View Slide

  21. フィードバックを
    !21
    • もらう
    • 理解する
    • 次に生かす
    {
    正確に
    Fargate
    コンテナを使うことで

    View Slide

  22. コンテナやパイプラインそのものの完成ではなく
    そこから フィードバックがどう得られるかが重要!
    !22

    View Slide

  23. !23
    今日のハンズオンのゴール
    CI / CD:
    Docker:
    フィードバックサイクルの短縮
    再現性の向上、デプロイの汎化

    View Slide

  24. !24
    ハンズオンの流れ
    CloudFormation
    ECR
    CodePipeline
    CodeBuild
    CodeCommit
    master に push
    1. 開発環境で確認
    Fargate (Edge)

    View Slide

  25. !25
    ハンズオンの流れ
    release にマージ
    2. リリース確認
    Fargate (Staging)
    CloudFormation
    ECR
    CodePipeline
    CodeBuild
    CodeCommit
    master に push
    1. 開発環境で確認
    Fargate (Edge)

    View Slide

  26. !26
    ハンズオンの流れ
    release にマージ
    2. リリース確認
    Fargate (Staging)
    Fargate (Production)
    3. リリース承認
    CloudFormation
    ECR
    CodePipeline
    CodeBuild
    CodeCommit
    master に push
    1. 開発環境で確認
    Fargate (Edge)
    承認ボタンクリック

    View Slide

  27. では、始めましょう!
    !27

    View Slide

  28. !28
    本日のお題
    https://github.com/jawsug-container/hands-on/blob/master/fargate/README.md

    View Slide

  29. !29
    初歩的なことから始めたい方は
    https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/ECS_AWSCLI_Fargate.html

    View Slide

  30. Join us :)

    View Slide

  31. JAWS-UG コンテナ支部
    !31
    • AWS でのコンテナ利用事例、ベストプラクティスの知見交換
    • 定期的な AWS / コンテナ初心者向けハンズオン
    • 懇親会でも熱くコンテナを語る参加者のみなさん
    一緒に運営、
    やりません?

    View Slide

  32. SUPINF Inc.
    !32
    • クラウド / コンテナ 中心の コンサルティング / 環境構築 / 受託開発 / 運用
    • オンプレ × DGX-1 × Kubernetes 機械学習環境なども
    • スピンフ、と読みます

    View Slide