第1回 CircleCI ユーザーコミュニティミートアップ

CircleCIの記念すべき第1回目のユーザーコミュニティミートアップがDeNAさんのオフィスのヒカリエで開催されるとのことで、仕事終わりに参加してきた。

概要

  • 会場:ヒカリエ DeNA
  • 日付:2019.1.30
  • ハッシュタグ: #circlecijp

第1回目のメイントピックはCircleCIの最新機能であるOrbsについてです。Orbsがどのようにして作られたのか、Orbsを使うと何が嬉しいのか、などについてすでにOrbsを現場で使っているユーザーの方にお話いただきます。また、GitLabの開発者からみたCircleCIについてお話ししていただくセッションも用意しています。

今回は、昨年末にリリースされたCircleCIのOrbsという機能を中心としたトピックになっていた。
私はプライベートでも会社でもCircleCIを利用しているが、まだOrbsは使っていないのと、CIとしての情報のキャッチアップができればと思い参加した。

CircleCIのアップデートについて

  • orbsでorbsが使えるようになった
  • CLIでorbsの --sort オプション使えるようになった
  • 画面の性能改善
  • 2.16に12/17にリリース, オンプレ版は32GBRAMが必須になった

意外にもといったら私が知らなかっただけだが、オンプレ版のCircleCIがあるというのを初めて知った。
確かに外部のリソースでCIを回すのに抵抗のある環境とかであればとても有用だと思う。

Orbsリリースまでの歴史 by kimh

  • 3,4年前Inference(コマンドを自動的に予測してくれる機能)が目玉機能の一つだった
  • 2015年頃, Functions, Bash Script
  • 2016年頃, 自動的にやってくれるからユーザーが全部定義することになった
  • 2017年頃, Orbsの前進のBundlesがつくられた(当初はOrbsという名前については浸透してなかった)
  • 2018年頃, Orbsが復活して爆誕

CircleCI、およびOrbsの歴史を話してもらい、知らないワードがちらほら。
特にInferenceはかなり便利そうだなとは思いつつ、確かに全て自動だと、本番サービスには厳しいところがありそうだなと思った。

Orbsベスト・プラクティス(仮) by sue445

  • ピクシブ
  • 3rd party製では3位(上位2人はCircleCIの社員)
  • Orbsのテストは難しい
  • dependabot.com がSaaSで存在する
  • ライブラリをフルインストールは時間がかかるので、CIではキャッシュする(save_cache,restore_cache)
  • Orbsをつかって16行が1行に
  • Orbs化モチベーションはコピペを減らすため
  • インライン展開されるイメージ
  • リポジトリをまたいだリファクタ処理ができる

フルスタッキュアエンジニアとして活躍されているsue445さんの発表。
発表内容もさることなが、のっけからプリキュアのデスクトップを晒すというとてもインパクトの強い方だった。
CircleCIの調べ物をしていると必ずといっていいほど、sue445さんのブログを拝見するので、いつもありがとうございますという気持ちで聞いていた。

OrbsをつかったiOSアプリのCI/CD導入 by ngs

CircleCI Orbs を使った iOS アプリの CI/CD 導入 #circlecijp – Atsushi Nagase
– 6年くらいCircleCI使ってる
– CI2Go作ったリアルタイムログ閲覧をサポートする CI2Go をリリースしました – Atsushi Nagase
– もともとTravisCI使ってた
– nomad-cli を使ってた
– iOSアプリのCI/CDにはXCodeのバージョン問題がある
– MacOSでは時間制限があるのでLinuxコンテナで実行してコスト削減
– ビルドの結果をApp Storeへアップロードしている
– App StoreのアップロードでコケることがあるのでRetry処理いれている
– SSHを有効化して、SSHトンネリングしてパスワード変更して、VNCに接続するとデバッグできるようになる

iOSのビルド周りだったため、今まで以上に全くわからないキーワードが多かったように思う。
というより、そもそもAppStoreへのデプロイもCircleCIで出来るんだと、全く初心者の感想ばかりが浮かんだ。
あと、印象的だったのがCircleCIのビルドのデバッグで、プラットフォームがMacOSXだった場合、SSHトンネリング経由のVNC接続ができるというのが大変印象的だった。
そもそもCircleCIの会社の方も知らなかったレベルだった様子。すごい。。

GitLb開発者から見たCircleCI by tnir

  • GitLabのコアチーム
  • CircleCIを参考にしたりしなかったり..
  • 2019年のDevOpsを支えるCI/CD動向:新春特別企画|gihyo.jp … 技術評論社
  • GitHubの場合は戦国時代ph2
  • Developer Experience大事
  • DevSecOps
  • GitLab Auto DevOps
      – YAMLフリーなCI/CDパイプライン
      – 環境変数のみで設定変更する
      – k8s,Helm chartsエコシステムに乗っかかる
      – k8sへのSecretsを渡せる
  • k8sの利用者? –> 1~2人くらい)
  • マイクロサービス時代だとCircleCIのconfig.ymlのコピペが増える
  • CircleCI/GitLabはCD/RA弱い?
  • CIツールとしてはワークロードの汎用化・省力的自動化が鍵
  • CircleCIの良いところ
    • WebUI
    • Notifications
    • Cache(Image)
    • Artifacts
    • CircleCI local CLI(workflowが動かない)
  • GitHub Actions, Azure DevOps, AWS Code Series

GitLabのコアチームで活動されているtnirさんの発表。
会社とは別で、個人でDockerTokyo、CloudNativeとかでも活動されているらしい。。
個人的にはAnsibleやTerraformをレガシー環境と言われていたのが、衝撃的だった。
マイクロサービスやk8sなどを考えている人からすると、もはやSSHをすることがレガシー環境ということのようだった。

LT:abeja.incのイシカワさん

  • Company | 株式会社ABEJA
  • AI企業
  • 733 project
  • 180 – 230h CircleCI回している
  • ビルド最長6時間
  • approve気づかない -> リリースしていない
  • ContextがAdminで見られない

めちゃくちゃCircleCIを活用していて、とても軽快に話をされていた。
ビルド時間が6時間とかは中々に辛そうな印象だった。
一日9時間平均で回しているというのは、かなり有効活用しているように思った。

LT:ヤマザキさん

  • 目チェックからSCPとかrsyncとか辛い
  • CI/CD自動化できるようになって平和になった
  • 無料プランで本番をやってしまって終了
  • 静的解析を導入して説明していなくて、通知が大量になった
  • ローカル環境便利

こちらの方は、「HDMIの信号がありません」というエラー画面をあえてスライドにいれて掴みを得るというかなり斬新な切り口だった。
話もとてもおもしろく、CIを導入して運用が楽になった反面、通知が大量になってしまったなどのあるあるの話をされていて面白かった。

その他

感想

ユーザーミートアップということで、軽食が出て、ステッカーやTシャツまでもらえて、Orbsの話以外にもCIのあるある話や有用な話を聞くことができ、大変ありがたい会に参加できた。
最近こういったミートアップや勉強会に参加できていなかったので、参加してとても良かったと思う。
CircleCIは個人では1コンテナの無料枠で色々試すことができる上に、常に便利な機能追加やパフォーマンスアップが行われるので、是非今後もバシバシ活用していきたい。

<p style='padding: 5px;'>