kakakakakku blog

Weekly Tech Blog: Keep on Learning!

CircleCI

入門から実践まで CircleCI のノウハウが凝縮された「CircleCI 実践入門」を読んだ

9月に出版された「CircleCI 実践入門」を読んだ.素晴らしかった!なぜ CI/CD が必要なのか?という背景から,CircleCI 入門,CircleCI 実践まで,網羅的に解説されている.ボリュームは多く,読みごたえはあるけど,必要な箇所から読むこともできる.また「…

「Slack Orb」を使って CircleCI から Slack に通知する

CircleCI のジョブ結果を Slack に通知する場合,今までは CircleCI の Webhook と Slack の Incoming WebHooks を組み合わせて実現していた.最近読んでいる「CircleCI 実践入門」に「Slack Orb」を使う方法が載っていたので,プライベートで使っている Git…

多くの CircleCI ファンが集まった「CircleCI Japan User Community Kickoff」に参加した

12/3 (月) にサイボウズ様オフィスで開催された「CircleCI Japan User Community Kickoff」に参加した.今回は招待制のプライベートイベントで,CircleCI を日頃から圧倒的に活用している人たちが集まっていたので,有名人多すぎでは?という感じだった.僕…

HTML の Lint ツール「htmllint」を CircleCI で実行する

HTML を実装しながら Lint を実行するため「htmllint」を使うことにした.類似ライブラリに「HTMLHint」もある. github.com htmllint と htmllint-cli 「htmllint」を CLI で実行する場合は「htmllint-cli」を使う. github.com 以下のように npm で htmlli…

CircleCI の Auto-cancel redundant builds が Workflows にも対応した

CircleCI には便利な Auto-cancel redundant builds があり,有効にしておくと,同じブランチに対して複数回ビルドがトリガーされた場合に,自動的に過去のビルドがキャンセルされる.繰り返し git push をして,さらに CI 時間が長いような場合には,無駄な…

CircleCI + misspell で typo の検出を CI する

「misspell」は,Go で実装された typo 検出ライブラリで,手軽に実行できるので,英語のドキュメントに対してよく使っている.例えば,以下のようにワンライナーで "World" の typo を検知することができる. $ echo 'Hello Worls!' | misspell stdin:1:6: …

たった 19.9MB!mkr の公式 Docker イメージが公開された

今月のアップデートで,Mackerel コマンドラインツール mkr の公式 Docker イメージが公開された. mackerel.io mkr monitors { pull / diff / push } 2年前に記事を書いているけど,CircleCI と mkr を組み合わせて Infrastructure as Code にした Mackerel…

CircleCI 2.0 + Apex で Lambda をデプロイする

Lambda をデプロイする場合,最近だと Serverless Framework もしくは AWS Serverless Application Model を使う場面が多いけど,他の AWS サービスに依存せず Lambda だけをデプロイしたい場合には Apex も積極的に使っている.要件がシンプルな場合に特に…

CircleCI 2.0 の「ワークフロー機能」を学べる公式デモ用リポジトリ circleci-demo-workflows

前回の記事に続き,CircleCI 2.0 の調査をしている.今回は CircleCI から公式に提供されている「ワークフローデモ用リポジトリ」を活用して,CircleCI 2.0 の新機能である「ワークフロー機能」の仕組みと,設定ファイルのポイントを学んだ.「ワークフロー…

CircleCI 1.0 → 2.0 に設定ファイルをマイグレーションするために「config-translation API」を試した

2月末にアナウンスがあり,CircleCI 1.0 のサポートが終了することになった.時期は今年の8月末で,それまでにマイグレーションをする必要がある.単純にマイグレーションをするだけではなく,せっかくなら CircleCI 2.0 の新機能も積極的に活用したいと思っ…

Apex の --env オプションを使って Lambda を複数環境にデプロイする

最近仕事で必要になり,CircleCI + Apex を使って,Lambda を複数環境 (prd / stg / dev など) にデプロイできる仕組みを作ったので,実現したかったこと,工夫したことなどを紹介したいと思う.ちなみに,以前も似たような事例で CloudWatch Events + Lambd…

CircleCI + ecs-deploy で ECS にデプロイをする

引き続き ECS のデプロイを調査していて,今回は導入された話を比較的よく聞く ecs-deploy を試した.AWS CLI と jq に依存しているけど,Shell 100% で実装されているため,実行環境の構築が不要という手軽さが1番のメリットだと思う. github.com ちなみに…

CircleCI で ECS にデプロイをするサンプルプロジェクト circleci/go-ecs-ecr を試した

CircleCI を使って,ECS に Docker コンテナをデプロイする方法を調べていたら,CircleCI が公開しているサンプルプロジェクト circleci/go-ecs-ecr の存在を知ったので,さっそく試してみた. circleci/go-ecs-ecr を動かすと,Golang の API が動く Docker…

Lambda + Apex 事例紹介 ~ 全ては AWS コスト削減のために ~

今日は社内の別プロダクトと合同勉強会があって,Lambda + Apex 便利だよ!という発表をしてきた. タイトルは「Lambda + Apex 事例紹介 ~ 全ては AWS コスト削減のために ~」で,発表内容としては,大きく3点にフォーカスした. CloudWatch Events + Lambda…

CloudWatch Events + Lambda + CircleCI + Apex で Lambda をサーバレスに実行 & デプロイする

先週,プロダクトで開発合宿を企画して実施してきた.今回のテーマは「開発効率/運用効率の改善」だったので,僕はインフラチームとして先輩と一緒に開発に取り組んだ.お題は「AWS コスト削減」にした.開発合宿で開発したツールで学んだことを簡単にまと…

CircleCI + ShellCheck でシェルスクリプトを静的解析する

シェルスクリプトのレビューを効率化するため,シェルスクリプト専用の静的解析ツール "ShellCheck" を導入して,さらに CircleCI で自動テストすることにした.導入検証も兼ねて,個人的に使ってる dotfiles に導入してみた話をまとめる. github.com apt-g…

CircleCI と Piculet でセキュリティグループを CI する

管理コンソールでセキュリティグループ設定を管理するのは限界があると思っていて,例えば以下のような状態になってしまうことがあると思う. 必要に応じて日々増えていくルール設定(無意識にポチポチと追加してしまう) 使って無さそうだから消したいけど…

社内イベントで「ガジェット紹介と Infrastructure CI の話」という謎の LT をした

今日は社内イベントで LT をする機会があって「ガジェット紹介と Infrastructure CI の話」という謎のタイトルで話してきた.せっかくの LT 枠だからネタ要素多めにしようと思ってて,前半のガジェット紹介は全てネタで突っ走った.結構ウケてて良かったなと…

CircleCI + Docker で Infrastructure CI (Chef + Serverspec) 環境を構築した

近況 3月から DevOps 関連の技術的負債の解消に取り組んでいて,動かなくなった Chef を直したり,秘伝のタレ(手動)で構築されたサーバ設定を Chef にリバースエンジニアリングしたり,Serverspec を導入して稼働中のサーバの差異を確認したりしている. …