先日、こちら( https://circleci.connpass.com/event/134220/ )に参加してきて、有用な情報もあったので補記も含めて以下メモを残しておく。
■ワークフローのタイプ
・スケジューリング: ナイトリービルドのように決まった時刻に実行(スケジューリング設定が可能と言う話)
・マニュアル承認: ワークフローの一部で自動実行を中断し、手動による承認によって再開
・ブランチ指定: ブランチの指定が可能
・タグの指定: gitのタグで指定可能
マニュアル承認の存在は初めて知ったが、承認出るまでWorkflowをデプロイ前でHold状態にできる機能だ。
上場企業のIT監査にも耐えれそうなレベルかは確認必要だが、便利なCIツールだと思う。
https://circleci.com/docs/ja/2.0/workflows/#%E6%89%BF%E8%AA%8D%E5%BE%8C%E3%81%AB%E5%87%A6%E7%90%86%E3%82%92%E7%B6%9A%E8%A1%8C%E3%81%99%E3%82%8B-workflow-%E3%81%AE%E4%BE%8B
■SSHデバッグ
Rebuild with SSHを選択すると、ビルド終了後2時間、もしくはSSHセッションが終わって10分はコンテナが行きているのでアクセスして直接確認が可能
■ビルドの高速化
・同一ジョブ間のキャッシュ、同一ワークフロー内の異なるジョブ間でキャッシュを共有できる
・並列処理(例: 10個のテストを4分割して実行)
■設定のパッケージングと再利用(Orbs)
- OrbsはOrbsレジストリ上で誰でも公開する事ができ誰でも利用できるが、private利用ができないので注意。
■Orbs Registry(https://circleci.com/orbs/registry/)
以下、3種類のOrbsがある
- Certified(CircleCI)
- Partner(CircleCI認定パートナー)
- 3rd party(その他)
世界で一番使われているのは、大規模開発している3rd partyが作ったもの。ソースのビルドに時間がかかってしまうので自作したスクリプトを混ぜているそう。
各Orbsには使い方の事例が掲載されているので、導入もしやすい。
※AWS-CLIのOrbs: 色々とAWS関連のコマンドをCircleCI上で実行できそう。
※Jira用のOrbs: 色々設定すればJiraに通知できそう。
その他概念的な話
■CI/CDのCDについての各社の捉え方
CDという意味は2つの意味合いで活用されている。(会社によって意味合いが分かれる)
-
Continuous Delivery(継続的デリバリー)
・リリース直前までは自動化してリリース時は人の手で行う -
Continuous Deployment(継続的デプロイメント)
・リリース作業に人間の意志が介在しない
■CircleCI 5metrics
https://www2.circleci.com/rs/485-ZMH-626/images/5-Key-Metrics-Engineering.pdf
→ 以下の時間を意識しましょうと言う話
・コードがコミットされてからデプロイされるまでの時間
・CIビルドにかかる時間
・CIビルドが始まるまでに待たされるまでの時間
・Masterブランチが壊れている時間(いかに早くリカバれるかの時間)
・ツールのメンテナンスなど開発以外にかかっている時間
まとめ
既知の話もあれば新規の話もあり、話聞けて良かった。
新機能が出る度、話を聞きに外出するのもアリだと思った。