見出し画像

#CircleCIJP 【オンライン】【最強CircleCI利用術編】CircleCI ユーザーコミュニティミートアップ に参加したよ


TL;DR

CircleCIユーザーコミュニティのミートアップに参加したよ、というお話です。

はい。というわけで以下ダイジェストです。

そもそもCircleCIとは何じゃ

すげー平たく言うと、CI(継続的インテグレーション)およびCD(継続的デリバリー)と言われる、ソースコードのビルド〜テスト〜デプロイを自動化するためのプラットフォームになります。

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

日本だと、東京・大阪・福岡など各地にあります。グローバルで提供されているツールなので、当然海外にもコミュニティがあります。

えっ

発表① 新型コロナウイルス感染症対策サイトのデータ更新をCircleCIで自動化!

まず最初はこちらの方の発表です。

こちらの会社の代表取締役をされています。

青森版の新型コロナ感染症対策サイトを有志で構築し、データ更新をCircleCIで自動化したよ、という事例です。

発表資料はこちら。

ポイントは大きく2点。

①開発開始から20時間弱でローンチ

②青森県から提供されたデータをサイトへ反映する作業を、段階を踏んで自動化

ローンチ当初は、PDFで提供されたデータをインプットに、人力でdata.jsonを作成(手作業でデータ更新)していたのを、PDF配信のRSSからデータ抽出して開発者が手作業でデータ更新→CI/CDをCircleCIに切り替え、非開発者でもデータ更新ができるように→データ配信がPDFからCSVに変更され、データ更新を人手を介さずに自動化する環境を構築されたそうです。

青森は従前からオープンデータ化に積極的だったことで、官民一体となってサイトやデータ更新作業の改善に努めることができたんだろうなぁ。

現在はソースコードを青森県に譲渡し、県の公式サイトとして運営されているそうです。最初のサイトを構築された有志のグループ「AomoriHackers」の名前は、現在も公式サイトで紹介されているそうです。

あはっ。

発表② Kubernetes × CircleCIで実現する安心安全Deploy

次はこちらの方の発表です。

登壇資料はこちら。

まずはCI/CDってなんだっけ、というお話から始まりました。これ大事なのでキャプチャ貼ります。

スクリーンショット 0032-06-03 23.02.22

スクリーンショット 0032-06-03 23.03.07

次に、安全安心のデプロイとは何かについて。以下3つのお話でした。資料を読んでいただいたほうがわかりみが深いので、詳細は割愛。

1. 開発者なら誰でもデプロイまでできる
2. 人間が頑張らずにデプロイまでできる
3. Stagingでテストされた環境が(そのまま)Productionにデプロイされる

まとめです。こちらはキャプチャしました。

スクリーンショット 0032-06-03 23.11.14

ちなみに、Pipeline上でProductionリリースを承認するタスクは、ちょっと前まではCircleCIのGUI上でしかできなかったのが、ApproveジョブがAPI提供開始されたので、Slack上からApproveする、というようなオペレーションができるようになりました(歓喜)。

発表③ CircleCIのサポートが実践するCircleCIビルドのデバック方法

最後はCircleCIの中の人の発表です。

どうでも良いけど、マクラでスタンディングデスクの紹介があったので、ちょろっとだけ欲しくなったのはここだけの話です。

まぁまぁよくある、ビルドが途中で止まっちまう問題の対処法について、発表していただきました。

止まっちゃったその①:何もしていないのにビルドが止まる
 →Docker Imageのshaを確認せよ
  CircleCIが用意しているDocker Imageは各言語やMWが提供している
  Dockerfileをインポートしているそうです。
  よりキャッシュ効率化と安定性を考慮したcimg/xxxxを提供
  これにより、外部のDockerfileへの依存を排除
止まっちゃったその②:時々ビルドが失敗する
 →エラーコードが137であれば、OOM(OutOfMemory)を疑え
  JVM編と、Node.js編に分けて紹介いただきました。
  まぁでも、気をつけるべきはJVMのヒープサイズですね。
止まっちゃったその③:commitしたのにビルドが開始されない
 →GitからCircleCIへのWebhook通信を確認せよ
  これはそもそもCircleCIの内部の動きを把握したほうが良い、
  というわけで以下の動画を御覧ください。
止まっちゃったその④:直近のジョブが見えない
 →CircleCIのステータスを確認せよ

ここで僕はなぜかZoomが落ちたので離脱…。

まとめ

とても勉強になりました。CI/CDはまさに環境構築しようとしているところだったので、良いインプットに恵まれました。神。というわけでアウトプットするまでが勉強会ということで、以上が私のアウトプットになります。ご査収ください。

この記事が気に入ったらサポートをしてみませんか?