コンテナ中でVCS Stampingが失敗する話

こんにちは、garsueです。最近、手元の開発環境を一新していて遭遇したちょっとした小ネタを紹介します。同じ問題に遭遇する人もいそうな気がするので参考になれば幸いです。

事象: DockerにマウントしたGoのプロジェクトでビルドがコケる

当社の開発環境では開発中のコードをDockerのコンテナにマウントしてコンテナ中でビルドしています。その際に一部のコンテナで以下のエラーとともにビルドが失敗していました。

error obtaining VCS status: exit status 128
Use -buildvcs=false to disable VCS stamping.

VCS StampingはGo 1.18から追加された機能で、Gitなどのバージョンコントロールシステムからリビジョン番号などを取得してバイナリに埋め込む機能です。

エラーの詳細としては exit status 128 としか表示されておらず、なぜ失敗しているのか上記のエラーだけではパッとはわかりませんでした。

なお、単にエラーが起きないようにするだけならエラーメッセージにあるようにビルドオプションに -buildvcs=false を追加すればいいだけです。大抵の場合、開発途中では不要かと思います。1

OpenTelemetryを活用してGCP × Python × マイクロサービス構成のObservabilityを高める

こんにちは、マネーフォワード ケッサイのデータチームで与信審査システムやデータ基盤の開発をしているkamillleです。 今回はOpenTelemetryとGoogle Trace, Loggingなどを組み合わせてCloud Run, Functions上で動くPythonアプリケーションのObservabilityを高めている取り組みの中から、外部のドキュメントなどに情報が記載されておらず対応に苦労したポイントをご紹介したいと思います。

GCPにデプロイするPythonアプリケーションへのOpenTelemetry導入に関してはGoogle CloudのドキュメントやGMOさん、キャディさんのブログに詳しく書かれているため割愛します。

Google Cloud のドキュメント

GMO さん: GCP Cloud Trace を使ってみた

キャディさん: Python プロジェクトに OpenTelemetry を導入する

なお、今回利用しているサンプルコードはGitHub上で mfkessai/opentelemetry-python-sample-app としてパブリックに公開しているため、参考になればと思います。

Cloudflare WorkersからTinyGoでビルドしたWabAssemblyバイナリを呼び出す

こんにちは、マネーフォワード ケッサイのテックリードをやっておりますgarsueです。

最近、CDNのエッジで動くサーバレス環境が充実してきましたね。

代表的なものとしてはCloudflare WorkersやfastlyのCompute@Edgeなどがあります。CloudflareではKey-Valueストアもあり、S3やGCSのようなオブジェクトストレージまで揃いつつあるようです。

そんな流れに乗って、Cloudflare Workersを使ってGoで実装した計算ロジックをエッジで動かせるか検証してみました。今回はその結果をレポートします。

TL;DR

  • アップロードサイズ制限があるのでTinyGo使って小さいwasmバイナリを作る
  • wrangler.tomlで type = "CompiledWasm"のモジュールとしてwasmバイナリをアップロードする
  • wasmのエントリポイント内でJavaScriptの名前空間にJavaScriptの関数としてセットする

僕たちの障害対応

こんにちは、マネーフォワードケッサイ(以下MFK)でバックエンドエンジニアをやっていますshoheiです。 サービス提供をおこなっているなら必ず直面するであろう障害対応について書いていこうと思います。 例に漏れずMFKでも障害は発生します。一方で、障害が起きても迅速に解消できるように様々な仕組み・取り組みを導入しています。 今回はそんなMFKの障害対応時の仕組みについてご紹介させていただきます。

OPA/Regoを活用して継続的監査を実現して、楽をしよう

あけましておめでとうございます。Open Policy Agent(以下OPA)/Rego x 監査で継続的監査をあたりまえにしていきたいと思っているMoney Forward Kessai(以下MFK)のshinofaraです。 Regoとは、OPAのポリシーを記述する言語です。

本日はOPA / Rego Advent Calendar 2021の影響を受けて、MFKでOPA/Regoを活用して実現している監査に関することの1つを紹介できればと思いブログを書き始めました。

そもそもOPAって何?に関しては、以下のZennに詳しく書かれておりますので、こちらのブログでは割愛させていただきます。 OPA/Rego入門: OPA/Regoとはなんなのか