#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ってなんだっけ、というお話から始まりました。これ大事なのでキャプチャ貼ります。
次に、安全安心のデプロイとは何かについて。以下3つのお話でした。資料を読んでいただいたほうがわかりみが深いので、詳細は割愛。
1. 開発者なら誰でもデプロイまでできる
2. 人間が頑張らずにデプロイまでできる
3. Stagingでテストされた環境が(そのまま)Productionにデプロイされる
まとめです。こちらはキャプチャしました。
ちなみに、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はまさに環境構築しようとしているところだったので、良いインプットに恵まれました。神。というわけでアウトプットするまでが勉強会ということで、以上が私のアウトプットになります。ご査収ください。
この記事が気に入ったらサポートをしてみませんか?