クラウドワークス エンジニアブログ

日本最大級のクラウドソーシング「クラウドワークス」の開発の裏側をお届けするエンジニアブログ

tfupdateで複数の.terraform.lock.hclを高速に一括更新する

はじめに

Terraform職人の@minamijoyoです。先日、tfupdateが.terraform.lock.hclの更新に対応しました。v0.7.0から tfupdate lock というコマンドが追加されています。

github.com

例えば、あるディレクトリ配下のすべてのAWSプロバイダを指定バージョンに更新しつつ、複数プラットフォーム混在で使う.terraform.lock.hclもまとめて一括更新するには、以下のようなコマンドで簡単にできるようになりました。

$ tfupdate provider aws -v 5.7.0 -r ./
$ tfupdate lock --platform=linux_amd64 \
                --platform=darwin_amd64 \
                --platform=darwin_arm64 \
                -r ./

内部的にterraformコマンドには依存せず、バージョン指定の検出からプロバイダのダウンロード、ハッシュ値の計算なども自前で実装したことで、terraform initを省略したり、計算結果をキャッシュすることが可能になりました。これにより、複数のディレクトリに散らばった.terraform.lock.hclを一括更新するようなユースケースにおいて、大幅にパフォーマンスが改善します。もちろん環境に依存しますが、数万行あるcrowdworks.jpのTerraform設定のリポジトリでは、バージョンアップ時のロックファイルの更新処理が300倍高速化しました。

この記事では、.terraform.lock.hclとは何かについておさらいした後、これまでの技術的な課題とその解決策について説明します。また、実装する上で調べた.terraform.lock.hclに記録されているハッシュ値の計算方法についても解説するので、この記事を読めばあなたも「.terraform.lock.hcl完全に理解した」と言えるでしょう。

本稿執筆時点でのTerraformのバージョンはv1.5.2で、tfupdateはv0.7.2です。最新の情報はGitHubリポジトリを参照してください。

続きを読む

MeowCopやめました(RuboCop設定の見直しをしてる話)

記事タイトル「MeowCopやめました(RuboCop設定の見直しをしてる話)」サムネイル

CrowdWorks ジャンヌチーム(技術的負債解消チーム)所属のlinyclarです。
「片付ければ片付く、片付けないから片付かない」をモットーに技術的負債解消に取り組んでおります。

長年放置され負債を生み出す原因となっているRuboCop設定の見直しを最近行っています。今回はその事例を共有します。なお、RuboCopでは各チェックのことをCopと言いますが、この記事では表現のしやすさから以下ルールと書いています。

MeowCopとは

MeowCopとは、簡単に言えばStyleやLayoutなどのRuboCopのStyle Checkerなルールを無効化し、RuboCopをLinterとしてのみ機能させるGemです。
また、兄弟GemにGryという守られているStyleをコードから抽出してくれるGemがあります。
資料:実用的な RuboCop の話
crowdworks.jpではMeowCopを導入し、上記資料にもでてくるGryを適用した状態になっていました。

続きを読む

元営業エンジニアのお話

こんにちは。2023年3月に入社した武藤です。法人様向けオンラインアシスタントサービス『ビズアシ』(以下ビズアシと省略)の開発を担当しています。

前職ではTypeScriptとPythonをメインの開発言語としていましたが、クラウドワークス入社後は未経験のRuby(主にRails)とPythonで開発をしています。

ビズアシはプロダクトごとに異なる開発言語で構成されているため、以前の開発手法とギャップが少なくストレスフリーで働けています。

入社後3ヶ月で感じた良いところと前職にはあったけどクラウドワークスに無いものを書いていきます。

続きを読む

2023年2月に入社した二人で(勝手に)対談してみた

初めまして!2023年2月に株式会社クラウドワークスへ中途入社した馬渕です。

2023年5月で入社して約4ヶ月経過しました。

今回は同じ日に入社しました牛嶋さんと、入社後の感想などを(勝手に)対談形式でお話していきます。

  • 中途入社
  • 地方在住
  • 初めてのオフショア開発

こんな方の参考になると思います。

またこの記事では

こんな内容を盛り込みました。

ぜひ最後までお付き合いください!

続きを読む

クラウドログのオフショア開発について

クラウドログのオフショア開発について
こんにちは!

はじめまして、クラウドログ開発チームで主にバックエンド関連の技術的課題に立ち向かってるエンジニアの武田です。

クラウドワークスへの入社は2022年の2月で、現時点で約1年ちょっと経ちました。 新しい事へのチャレンジは進めつつも、開発全体の生産性効率化を向けて取り組みを進めています。
今回はそのクラウドログ開発チームで行ってるオフショア開発について、ご紹介したいと思います。

続きを読む

© 2016 CrowdWorks, Inc., All rights reserved.