生産性向上ブログ

継続的な生産性向上を目指すエンジニアのためのブログ

『第 1 回 CircleCI ユーザーコミュニティ ミートアップ』参加レポート

circleci.connpass.com

f:id:miya-jan:20190131010826j:plain:w300

1/30(水)に DeNA さんのオフィスで開催された『第 1 回 CircleCI ユーザーコミュニティ ミートアップ』に参加してきたので、簡単に参加レポートです。

twitter のハッシュタグは #circlecijp です。

CircleCI ユーザーコミュニティについて

speakerdeck.com

はじめに、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 さんは好きだった
  • CircleCI 2.0
    • Inference 廃止
    • Declarative, no magic
    • config.yml が膨大になってくる問題が発覚
  • Orbs は最初は Bundles という名前だった
    • 社内のネイソンさんが Orbs という名前を激押し
  • Orbs
    • 名前の由来は、Orbs = 球 = Circle

ネイソンさんの熱意がおもしろかったです。個人の感想レベルでは Orbs という名称になってよかったと思います。

Orbs ベストプラクティス

sue445.github.io

ピクシブの末吉さん(@sue445)による Orbs のベストプラクティスと、おまけで CircleCI への要望。

  • CI マニア
  • 作成した Orb が Orbs registry で CircleCI 社員を除けば実質一位
  • Orbs とは .circleci/config.yml をモジュール化する仕組み
  • Orbs であるあるな処理がすっきり書ける
  • Orbs のテスト手法
  • Orbs の勘所
    • シェルと CircleCI の機能を連携する部分が向いている
    • Orbs そのものはテストしづらい
  • 合わせて読みたい
  • 質疑応答
    • Q: yaml のバリデーションがエラーになったときに原因すぐわかりますか?
      • A: 割と勘でわかる。ディレクトリわける仕組みを使っておけば 1 ファイルの yaml が小さくなるので楽。

テストが難しいというの激しく同意です。末吉さんの Orbs へのコミットがすごいので、CircleCI からリアル Orb が贈られてました。叩くと光ります。IoT 化してビルドに失敗したら光るようにするとおもしろそうです。

Orbs を使った iOS アプリの CI/CD 導入

ja.ngs.io

長瀬さん(@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 さん

自分は iOS アプリ開発は詳しくないですが、CI/CD の試行錯誤の歴史が見られておもしろかったです。CircleCI の中の人が VNC に驚いてたのもおもしろかったです。

CircleCI and GitLab CI/CD / GitLab 開発者から見た CircleCI

speakerdeck.com

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
  • 無料分使い切って、あわてて自分のクレカを登録した
  • 静的解析入れたら結果を自分のアカウントでコメントしてて、自分が怒ってると思われた

移行期のどたばた感がリアルでした。「入力信号がありません」スライドのセンスに脱帽。

その他

↑会場では CircleCI シャツが配られてました。

www.facebook.com

↑facebook 上で CircleCI Japan User Group が存在します。

connpass.com

↑2/20(水)に WeWork で CircleCI もくもく会が開催されます。

まとめ

CircleCI の最近の目玉新機能である CircleCI Orbs の話題が多くて参考になりました。まだ試行錯誤するフェーズだと思ってるので、こうやってコミュニティの場があって持ち寄ってコミュニケーションできるのはいいですね。3 月にもまたミートアップがあるようです。

ユーザーコミュニティでは引き続きコミュニティリーダーとして活動してくれる人を募集しているようで、今後は国内だけでなく海外にも活動を展開していくとのことです。

また次回以降も参加したいと思うので、よろしくお願いします。