Skip to content

Instantly share code, notes, and snippets.

@takami228
Created Jun 18, 2019
Embed
What would you like to do?
JAWS-UG アーキ支部の議論のメモです。

AWS JAWS-UG アーキ支部

https://jawsug-arch.connpass.com/event/133504/

同僚との議論

https://twitter.com/int128/status/1138405093949169665

ブランチ戦略、ブランチと環境を対応させるのか?
ブランチと環境が1:1なのか、1:Nなのか?

今のプロジェクト

  • ブランチと環境を対応させて、Git駆動で環境反映させたい

🤔🤔🤔うまく運用回る???

以前のプロジェクトのフロー

アーティファクト作成とデプロイは分離。

  • GitLab -> Jenkins -> AWS CodeBuild上でCI(build/test/package) -> S3
  • S3 -> Ansible -> EC2(検証、商用)
  • Ansible -> AWS CLI -> EC2 -> S3 / CloudFront

CICDパイプラインを構成するパラメータをちょっと整理したくなった

CI/CDでどこまで自動化するのか?

  • ビルド、テストだけ
  • パッケージまで
  • インフラ構築、デプロイまで

Artifactをどう持つかにもよりそう?

  • S3にrpmとかjarとかをtar.gz等で保存、EC2が上がったらAnsibleでまきに行く
  • ECRにコンテナで持つ

環境が何面あるかにもよる?

  • 開発
  • 検証
  • ステージング
  • 商用

アプリの実行環境にも依存しそう

  • VM
    • EC2、ElasticBeansTalk
  • コンテナ、ビルドパック
    • ECS/Fargate
    • PCF
    • OpenShift/Kubernetes

環境差分をどう持つのか?

  • リリース資材に含めちゃう
  • 別管理して環境変数としてリリース時に注入
    • DB
    • SSMパラメータストア
  • Spring Cloud Config的なものでgitで管理
  • Kubernetes Configmap

開発プロセス運用の関連

ブランチマージで自動で環境反映させると初期開発で燃えたり試験フェーズで1日に何回もマージが入るとき、自分の反映の待ちが発生するのでは?

ある程度変更をまとめて○時までにマージされたのを△時いリリースします的な運用(前のプロジェクトはこれ)

環境作ってからE2Eテストが走るとかあったときにdevelop / stagingとかの環境はどうなる?

チームの体制

チームの人数にも依存しそう。

Ops・インフラチームがリリースするのか、開発チームが全部やるのか、会社が分かれるのか否か

他の同僚の意見

  • データモデルの話では?
  • デプロイ資材をデータと捉えて、各フェーズに対してFunctionの入出力を考えると整理できそう。
  • 何を固定制約において、何を変動要素にするか?自由度が高いものを固定して考えるとよさそう。

フィードバック

環境とブランチが一致しているとインフラ管理がらくちん。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment