CI/CD Conference 2021 のいくつかのセッションを視聴したので、そのメモと感想です。
公式サイト
https://event.cloudnativedays.jp/cicd2021
OSSで作る機械学習のCI/CD
-
資料
-
取得したデータの正しさ
-
Pandera
- Pandas に対してスキーマを定義してバリデーションできる
- TensorBoard
-
Know Your Data
- CI/CD や学習の自動化を進める際は、Data Validation 同様にデータの異常を検知するためのユニットテストを書く
-
-
機械学習のテスト
- 少量のデータで、プログラム的に正しく動くことをアサーションする
- 型がおかしくてそもそもエラーとかにならないように
- アサーションは、学習後に精度が上がっていること、くらいでも有用
-
DVC (Data Version Control)
- ツール
- Git と同じような使い方でデータをバージョン管理
- MLFlow でも同じようなことが実現できる
-
CML (Continuous Machine Learning)
- DVC と同じ会社が出している
-
GitHub Actions などに組み込み、機械学習の結果をレポーティングしてプルリクに組み込む
-
負荷テスト
- 機械学習を組み込むときは、パフォーマンスに注意
- プロファイリングツールで見てみると、推論がきれいにたくさん時間を使う
- GPU コストを無駄にしないように、モデルの選定時にもパフォーマンスを意識する
-
ツール
- Locust
-
Vegeta Attack
- すぐに試したいときに最高の選択
-
感想
- そうだなあと思える苦しみが色々見えて面白かったです
- MLOps に強くなるには、このあたりのツールを使い込んでいたり知っているのも大事そうだなと思いました
君のセキュリティはデプロイするまでもなく間違っている
-
資料
-
設定のテストツール
-
CFn
- CloudFormation Linter
- CloudFormation Guard
-
-
IAM Access Analyzer
-
機能
- アクセスのプレビュー
- 定期的なスキャン
- Policy のバリデーション・個別項目ルールの検査
- CloudTrail のアクセス履歴から Policy を生成
-
-
SMT ソルバ
- Zelkova
- Tiros
-
感想
- チェックをレベル別でまとめていたのが非常に分かりやすかったです
- とりあえず IAM Access Analyzer を試すところからですね
複数ブランチ運用は『単一のコードベース』と言えるのか
-
理想的なコンテナアプリケーションデリバリ
- 単一永続ブランチ
- デプロイパイプラインはコードブランチとは別管理にすれば、そうできる
-
開発用のコンテナ
- FROM を本番用のコンテナにして、デバッグツールを入れる
-
感想
- めちゃくちゃ良い話でした
- いろんな人にこの話を聞いてほしいです
CyberAgent における OSS の CI/CD 基盤開発
-
GitHub Actions
-
helm/kind-action
- https://github.com/helm/kind-action
- kind を動かしてくれて便利
-
whywaita/myshoes
- 発表者の方が作成
- self-hosted runner を job ごとに生成、登録
- self-hosted runner に通常だと冪等性がないことを解消
- hashicorp/go-plugin によってプラガブルにしている
-
-
PipeCD
- CyberAgent 製
-
k8s 以外でも GitOps
- Terraform
- CloudRun
- Lambda
- Fargate
- …
-
Control-plane と piped という構成
- Control-plane はチーム間で共有
-
Control-plane にはプロダクトチームのクレデンシャルも保存されない
- シークレット管理の機能は備え付けられている
-
harness
-
感想
- helm/kind-action や hashicorp/go-plugin など、知らないツールを色々知れてよかったです
- PipeCD はかなり便利そうな印象でした