こちらの勉強会に行ってきました。
GitHubですが、私自身は個人利用しかしたことがなくビジネスでの活用には興味ありました。GitHub社の開発方法や、クラスメソッド社が実践しているGitHubとAWSとの連携、GitHubEnterpriseのデザインパターンの紹介など興味深い話ばかりでした。
今回のテーマはDevOpsということですが、DevOpsというのは、一言で言うと 従来の製造から保守までを業者に任せるのではなく、作ってもらったものを自前で管理して使うと言うものです。 パソコンが普及して20年以上たった今、パソコンを使う業務というのは当たり前のことになり、サーバもクラウドサービスを活用することで、安全で便利な運用をできるようになってきました。 今後はより高い価値を提供していける企業が残っていく時代になっていくんだなと思える勉強会でした。
セッションの内容は資料が上がっているので、ここではダイジェスト版で
How we ship GitHub
DevOpsとは DevOpsとは何なのか、なぜ今DevOpsなのかといった事に触れていました。 「DevOpsとは無駄なく遅滞なく価値を届ける」であると言ってした。
アジャイルとは、 Scope、Resource、Timeの三角形であるが、それが今は逆になっているのではないか 従来のScopeが決まっていて、Resouce、Timeを割り当てると言った手法からTime、ResourceがあってScopeを作っていくということですが、市場の変化に対応するとこうなるということでした。
GitHubの開発管理 前提:Masterは随時デプロイ可能な状態を保つということで
- Masterからフィーチャーブランチを作成してコーディングをしていく
- できるだけ短い期間でのコミット
- コミットしたものを他の開発者たちと議論しながら開発を進め
- 動作保証がされたものを最終的にMasterにマージ
コミット時に議論をするときに使ってるのがhubotでCIの役割もしているそうですが、お遊びコマンドもいくつか紹介していました。*1
DevOpsとAWS
DevOpsとは 「安全に、早くリリースする仕組み」 そのために、 属人性の排除 デリバリの自動化 コードで整理する
開発の効率化
安全なリリース デプロイの自動化、フローを自動化して安全を確保
CI/CD バグを早期発見する手法でこれも自動化する仕組み
AWSサービス CodeXXXを使う コード管理、ビルド、デプロイをAWSのサービスで行ってます。 それぞれCodeCommit、CodeBuild、CodeDeployを利用 注意すべきは「デプロイとプロビジョニングは混ぜるな」だそうです。
GitHub EnterpriseとAWSを組み合わせたCDP
- Managed Serviceを使う 安定性 他サービス連携 運用負荷軽減
要件に合わない時に自分たちで作る
GHEの設定はいじらない データとユーザ以外は最新版で上書きされるため
GHEをインターネットに繋ぎたくない セキュリティ面、社内LDAPを使いたい場合 →プライベートネットワークパターン
GHEのバックアップをしたい 不要なインスタンスは管理したくない →ManagedBackupパターン
他、いろいろなデザインパターンを紹介していただきました。
DevOpsと言ってもお客さんに提供する形は様々でそれに合わせたサービスを提供していくこと 世の中の変化に対して素早く対応していくことが今後は必要ですね
*1:写真撮影可能だったのですが、撮影してこなかったのが残念