1/30(水)に DeNA さんのオフィスで開催された『第 1 回 CircleCI ユーザーコミュニティ ミートアップ』に参加してきたので、簡単に参加レポートです。
twitter のハッシュタグは #circlecijp です。
CircleCI ユーザーコミュニティについて
はじめに、CircleCI のカントリーマネージャーである森本さん(@kemorimo)から CircleCI ユーザーコミュニティについての説明と、今回会場提供もしているコミュニティリーダー DeNA 井口さん(@hisa9chi)からの挨拶がありました。
- circlecijp = 「学ぶ」と「つながる」が両立する場
- Learn: 機能だけでなく、運用の話も
- Connect: うまく使っている人だけでなく、これから使う人の HUB に
- Output: 誰かのアウトプットが、誰かの躓きを防ぐ
- 会場で CircleCI 使ってる人、9 割くらい
- 「次回は 100 人目指してどんどん巻き込んでいきましょう」
「学ぶ」と「つながる」は勉強会参加者がまさに求めてるものだと思うので、いいですね。参加者はだいたい CircleCI 利用者で、過去のイベントでも見かけた参加者が多かったです。
CircleCI Updates
内容は上のスライドに含まれてます。
CircleCI の車井さん(@kurumai)から CircleCI の最近のアップデートについて。
- Changelog で最近の変更が見られる
- orbs の変更
- orbs の中で他の orbs を使用できるようになった
- CircleCI CLI で orbs の list をソートして表示できるようになった
circleci orb list --sort
- Performance Pricing Plan で DLC とアクティブユーザー数の情報が表示されるようになった
- 巨大なログはこれまでダウンロードしないと表示できなかったけど、ブラウザ上の別画面で表示できるようになった
- 性能改善
最近の目玉の Orbs まわりの更新が多いですね。ログは地味に嬉しいと思います。
Orbs までの道のり
TODO: スライドがアップロードされたらリンク貼る
CircleCI の kim さん(kimhirokuni)から Orbs ができるまでの CircleCI の歴史について。
- CircleCI 1.0
- Inference
- リポジトリの中身を見て自動でジョブを設定してくれる
- kim さんは好きだった
- Inference
- CircleCI 2.0
- Inference 廃止
- Declarative, no magic
- config.yml が膨大になってくる問題が発覚
- Orbs は最初は Bundles という名前だった
- 社内のネイソンさんが Orbs という名前を激押し
- Orbs
- 名前の由来は、Orbs = 球 = Circle
ネイソンさんの熱意がおもしろかったです。個人の感想レベルでは Orbs という名称になってよかったと思います。
Orbs ベストプラクティス
ピクシブの末吉さん(@sue445)による Orbs のベストプラクティスと、おまけで CircleCI への要望。
- CI マニア
- 作成した Orb が Orbs registry で CircleCI 社員を除けば実質一位
- Orbs とは
.circleci/config.yml
をモジュール化する仕組み - Orbs であるあるな処理がすっきり書ける
- Orbs のテスト手法
- CircleCI orb Perfect Testing という記事を書いた
- Orbs の勘所
- シェルと CircleCI の機能を連携する部分が向いている
- Orbs そのものはテストしづらい
- 合わせて読みたい
- 質疑応答
- Q: yaml のバリデーションがエラーになったときに原因すぐわかりますか?
- A: 割と勘でわかる。ディレクトリわける仕組みを使っておけば 1 ファイルの yaml が小さくなるので楽。
- Q: yaml のバリデーションがエラーになったときに原因すぐわかりますか?
テストが難しいというの激しく同意です。末吉さんの Orbs へのコミットがすごいので、CircleCI からリアル Orb が贈られてました。叩くと光ります。IoT 化してビルドに失敗したら光るようにするとおもしろそうです。
Orbsをヘビーに使っているってことで中の人からOrb(球)をもらいました。ありがとうございます!!! #circlecijp pic.twitter.com/SNR5CnVXEl
— sue445 (@sue445) 2019年1月30日
Orbs を使った iOS アプリの CI/CD 導入
長瀬さん(@ngs)による iOS アプリの CI/CD で CircleCI Orbs を使った知見。
- 2013 年から CircleCI を使ってる
- CI2Go
- CircleCI の iOS クライアント
- この iOS アプリを作るときに得た知見
- iOS のビルドを CircleCI に移行
- 当時は fastlane はまだ有名じゃなくて NOMAD という CLI ツールを使用(HashiCorp のとは無関係)
- XCode の追従が遅い問題があった
- 最近は割とすぐ追従してくれる
- iOS 向け Orbs を複数開発
- ssh port forwarding + VNC で mac の画面を見ながらビルドをデバッグできる
- キーチェーンのパスワードを求められて止まっていたりするときがあるので便利
- 質疑応答
- Q: VNC するのは公式的に OK?
- A: たぶん OK by kim さん
- Q: VNC するのは公式的に OK?
自分は iOS アプリ開発は詳しくないですが、CI/CD の試行錯誤の歴史が見られておもしろかったです。CircleCI の中の人が VNC に驚いてたのもおもしろかったです。
CircleCI and GitLab CI/CD / GitLab 開発者から見た CircleCI
GitLab の Core Team メンバーである野口さん(@tn961ir)から GitLab 開発者視点からの CircleCI について。
- GitLab を開発する中で CircleCI を参考にしているし、ユーザーとして使っている
- GitLab からお金をもらっているわけではない
- 今日の発表のきっかけは技術評論社の記事
- CircleCI は最初は入れてたけど、DevOps という文脈だと難しくて外した
- GitHub 上での CI/CD は戦国時代
- DX 大事
- GitLab Auto DevOps
- yaml ファイルなしで全部設定可能
- 環境変数のみで設定変更
- Orbs のバージョン更新どうするの?
- Continuous Delivery and Release Automation のリサーチ
- 省力化が鍵
自分は GitLab は気になりつつも触れてないので、GitLab の開発者視点での CircleCI というのは独特な観点でよかったです。CI は沼りやすいので、省力化が進むと嬉しいです。
LT1 CircleCI の闇
TODO: スライドがアップロードされたらリンク貼る
ABEJA の石川さんによる CircleCI 使いまくりな話。
- CircleCI 733 プロジェクト
- 悪循環コラ
- テストからデプロイまでいろいろ自動化
- ビルド時間 180 〜 230h / month
- 6 時間ビルドが実行され続けて他のプロジェクトがビルドされない
- 大量の環境変数
利用が大規模になるにつれて出てくる問題はやはりありますよね。LT らしくウケをとっててよかったです。
LT2 CircleCI をちゃんと使いたい話
TODO: スライドがアップロードされたらリンク貼る
やぎぃさん(@Yaggytter)による CircleCI で平和になった話。
- 「入力信号がありません」というスライド
- CircleCI を導入してから平和な日々
- CircleCI 2.0 移行で逆 DevOps
- 無料分使い切って、あわてて自分のクレカを登録した
- 静的解析入れたら結果を自分のアカウントでコメントしてて、自分が怒ってると思われた
移行期のどたばた感がリアルでした。「入力信号がありません」スライドのセンスに脱帽。
その他
これは良いTシャツ😀 #circlecijp pic.twitter.com/Im2UBDAXq9
— Shun Sugai (@sugaishun) 2019年1月30日
↑会場では CircleCI シャツが配られてました。
↑facebook 上で CircleCI Japan User Group が存在します。
↑2/20(水)に WeWork で CircleCI もくもく会が開催されます。
まとめ
CircleCI の最近の目玉新機能である CircleCI Orbs の話題が多くて参考になりました。まだ試行錯誤するフェーズだと思ってるので、こうやってコミュニティの場があって持ち寄ってコミュニケーションできるのはいいですね。3 月にもまたミートアップがあるようです。
ユーザーコミュニティでは引き続きコミュニティリーダーとして活動してくれる人を募集しているようで、今後は国内だけでなく海外にも活動を展開していくとのことです。
また次回以降も参加したいと思うので、よろしくお願いします。