ITサービスを取り巻く環境が刻一刻と変化する中で、ソフトウェア開発のスピードと信頼性の両立は開発現場で重要視されるポイントのひとつです。チームコミュニケーションツール「Slack」のエンジニアであるJonathan Chang氏とMichael Deng氏が、自社でソフトウェア開発を行う流れをSlackのブログで解説しています。
Deploys at Slack - Several People Are Coding
https://slack.engineering/deploys-at-slack-cd0d28c61701
SlackではGitを利用した開発を行っており、社内でのコードレビューやテストを通過すると、開発者はプルリクエストをmasterブランチにマージできるようになります。masterブランチの開発環境へのデプロイは、予期せぬ問題に対応できるよう、北アメリカにある拠点の営業時間内に行われます。デプロイは毎日12回行われ、それぞれのデプロイに対して責任者が割り当てられているとのこと。デプロイを細分化しているのは、エラーの影響を最小限に抑えるためだそうです。
Slackがソフトウェアの新しいビルドをリリースする際は、まずGit上でreleaseブランチを作成します。releaseブランチはリリースの履歴をタグ付けするために必要なもので、本番環境へのロールアウト中に見つかった問題を修正するポイントになります。releaseブランチでの作業が終わったら、非公開のテスト環境に新しいビルドをデプロイし、テストを実施。テストを通過したビルドは社内の従業員によって試用され、問題がなければSlack全体の利用者のうち2%を占める早期リリース環境へデプロイされます。そこで安定した動作が確認できたら、全利用者のうち10%、25%、50%、75%、100%と、段階的に新しいビルドを公開していく仕組みになっているとエンジニアは語っています。
2020-04-11 22:23:28