How to avoid Security Group changes corruption in terraform by applying Open Policy Agents (OPA)?

Introduction

  • Hi everyone, I’m @tnqv, a Platform SRE in the Service Infrastructure Division, developing the infrastructure for the entire company. Today, based on our experienced real-world use cases, I would like to share about how we are applying Open Policy Agents to the Platform in order to protect the SLA by avoiding Security Group changes’s corruption in Terraform.

What is Platform?

  • From the last quarter, Moneyforward’s Service Infrastructure Division is splitting to 3 groups: Enabling SRE, Platform Group, and Guardian Group.
  • As the Platform SRE, we will take a bird’s eye view of the entire company and develop the Platform.
    Through the Platform, we will improve the developer experience and development productivity of engineers throughout the company.

続きを読む

Scrum Fest Osaka 2022 に協賛します&登壇します

スポンサーになりました

マネーフォワードは、昨年に引き続き、ゴールドスポンサーとしてScrum Fest Osaka 2022を応援させていただきます!

Scrum Fest Osakaはスクラムの初心者からエキスパート、ユーザー企業から開発企業、立場の異なる様々な人々が集まる学びの場です。この2日間を通じ、参加社同士でスクラムやアジャイルプラクティスについての知識やパッションをシェアするだけでなく、ここで出会ったエキスパートに困りごとを相談することもできます。

【開催概要】

日時:2022年6月17日(金)〜2022年6月18日(土)
場所:オンライン と オフラインでのハイブリット開催
   大阪会場はこちら
主催:Scrum Fest Osaka 実行委員会

続きを読む

iOSエンジニア向けOSS Forwardワークショップを開催しました

はじめまして!iOSの技術顧問をしている@giginetです。Money Forwardでは、2021年3月よりiOS分野の技術顧問を務めており、2〜3ヶ月に1度のペースで社内勉強会を実施しています。

あんざいゆき、三木康暉の両氏が、AndroidおよびiOSの技術顧問に就任|株式会社マネーフォワード
https://corp.moneyforward.com/news/release/corp/20210305-mf-press2/

技術顧問giginetさんインタビュー コミュニティ活動やOSS活動の秘訣を聞いてみました | Money Forward Money Forward Engineers’ Blog
https://moneyforward.com/engineers_blog/2021/09/15/giginet-san-interview/

普段は、WWDCの振り返りやSwift Concurrencyについてなど、iOS界隈の最新知見についてのキャッチアップが主な内容でしたが、先日、三田オフィスにて、iOSエンジニア向けにOSS Forward体験ワークショップを開催しました。

このワークショップは、日常の業務上の課題から、OSS貢献のためのネタ探しをして、実際にPull Requestを送ることを通して、今後OSS貢献のハードルを下げていくことを目的としています。

また、コロナ禍以来、集まる機会の少なかった、社内iOSメンバーの交流の意図もあります。
都内のオフィスはもちろん、普段は福岡オフィスで業務しているメンバーも一同に会して、チームビルディングを行いました。

続きを読む

Scrum Fest Niigata 2022 に登壇しました!

こんにちは! マネーフォワード クラウド確定申告 でQAエンジニアをしています、yoya です。

先日 5/20(金)、21(土)に新潟で初めてのスクラムフェスが開催されました!
その名も Scrum Fest Niigata 2022 !!

大阪や札幌など各地で開催されているアジャイルコミュニティの祭典ですが、
新潟では 「Agile Testing Daysを日本で!」 というコンセプトで行われることになりました。
(※ Agile Testing Days はポツダムで開催されているアジャイルテストの大規模な祭典です)

マネーフォワードでは各本部に所属しているQAエンジニアが社内外に対し情報発信する機会が増えており、
今回のスクフェス新潟にもぜひ参加したい!という気持ちが高まりました。

というわけで今回、有志の5名 (「副業QAエンジニアは週3時間でいかに価値を出すか」のMarkさん も含めると6名!) が現地にて登壇しました。
その時の熱気などがお伝えできればと思います!

続きを読む

表舞台と裏舞台からみたGo Conference 2022 Spring

みなさん、こんにちわ&ブログではおひさしぶりです。
技術広報をやっている luccafort です。

欧州サッカーリーグが最終節を終えて悲喜こもごもな感情を抱いている今日この頃いかがお過ごしですか?
ぼくはインテル・ミラノ勝ちきってくれ!頼む!!!…そんな思いで最終節に祈りを捧げていましたが、残念ながらインテル・ミラノは優勝できずACミランが優勝しました。
完敗でございます。おめでとうACミラン、来季は神に祈るのではなく実力でねじ伏せる、そんな強いインテル・ミラノになることを祈ってます。

閑話休題。

今日は技術広報としての内容ではなく、4月23日に開催された Go Conference 2022 Spring についてお話したいと思います。
開催からちょうど一ヶ月ほど経過したこと、次回Go Conferenceの日程が公開されたこともあり書いてみようかなと思います。

続きを読む

Zeitwerkとrequire_dependency

こんにちは、ぽっけです。マネーフォワード クラウド会計Plusでエンジニアをしています。

Rails 6.0から、新しいAutoloaderとしてZeitwerkが導入されました。Rails 7.0からは旧来のAutoloader (Classicと呼びます)は使えなくなり、Zeitwerkが必須となりました。

Railsでソースコードを読み込むメソッドにrequire_dependencyがあります。require_dependencyは、Zeitwerkでは使う必要がなくなりました。 この記事では、require_dependencyがなぜZeitwerkで必要ないのかを深堀りしようと思います。

require_dependencyとは

そもそもrequire_dependencyとは何でしょうか? このメソッドは、Rubyデフォルトのrequireloadの代わりにRailsが提供しているメソッドです。

続きを読む

Railsのnew_framework_defaultsとの向き合い方

こんにちは、ぽっけです。マネーフォワード クラウド会計Plusでエンジニアをしています。

この記事ではRailsのnew_framework_defaultsとの向き合い方を整理します。私は最近Railsアップグレード業をしています。その中でこの設定との向き合い方を考える機会があったため、それを記事にしたためました。

new_framework_defaults とは

まずはnew_framework_defaultsとは何か、について説明します。

この記事では便宜上、以下の2つの要素をまとめてnew_framework_defaultsと表現しています。

  • Rails::Application::Configuration#load_defaultsメソッド
  • config/initializers/new_framework_defaults_*.rb ファイル

これらはRailsのアップグレードをよりスムーズに行うために用意されています。

では、これら2つの要素についてより詳しく見ていきましょう。

続きを読む

【クラウド勤怠】爆発する組み合わせテストと真摯に向き合う

この記事について

こんにちは。「マネーフォワード クラウド勤怠」のエンジニアをしています katuo です。直近、自分が担当する新機能開発プロジェクトで影響範囲が広範囲でかつ複雑な条件が混ざり合うテスト設計が求められる場面がありました。その過程で苦しみながら得たテストケース作成の知見などを一部抜粋して本記事にて共有できればと思っております。

なお、業務の関係上、具体的なテスト対象の公開が難しいため、一部表記を控えさせていただいています。

combinatorial testing

テスト対象となる機能の1つにユーザーからの入力を受けて保存処理を行う機能のテストを実施する場面があり、combinatorial testing(組み合わせテスト)を用いてのテストケース作成を試みました。この機能をテストするにあたっての因子と水準を考えると、初期状態や操作などを合わせて、7つの因子で構成されており

exhuastive testing(全網羅テスト)をする場合、テストケース数が各水準の種類を掛け合わせた12960件になってしまうようなテストでした。広範囲でかつ複雑な条件が混ざり合うテスト設計が求められている状況において、限られたリソースで効果的で十分なテストを設計するかということを考慮した結果、必要性が低いと判断されるテストケースを削減する方針でテストケースを作成していくことにしました。

続きを読む

[ノーコード] Zapier × Slack × asanaでタスク管理とユーザーコミュニケーションを効率化する

こんにちは。

マネーフォワードビジネスカンパニー所属の下村です。
ビジネスサイドエンジニアとして、日々業務自動化や、効率化を推進してます。
(以前はCIO室に所属していましたが、ビジネスサイドの業務をテクノロジーで効率化したい!と思い異動しました。)

本日は、社員からの問い合わせや作業依頼についての対応を効率化してみた記事を書いてみます。

この記事の要約

  1. Slackとasanaを併用するうえで、両者のメリットを最大限活かしつつ、デメリットを消せる運用を自動化してみた。
  2. 依頼者とのコミュニケーションはSlackに統一。
  3. 対応者はタスク管理はasana、依頼者とのコミュニケーションをSlackで行いつつ、スレッドでのやり取りをasanaタスクのコメントに記録するようにした。
  4. 上記方法の実現にZapierを使ってノーコードで実現した。

なぜやったか

下記のような課題があったため、Slackやasanaの良いところを最大限、活かしつつタスク管理したいなーと思ったためです。

  • 依頼者とのコミュニケーションはSlackで行うのが便利なのでSlackで行いがち。
  • ただ、Slackはタスクの優先度付けやToDo管理には向いていない…。
    • 「あれ?あの質問内容どのスレッドでやりとりしてたっけ…」となりがち。
  • そこでasanaでタスク管理をしようとするが、下記のような問題点が起きがち。
    • Slackの投稿内容をasanaに転記するの漏れがち。
    • asanaのタスクだけを見ても何やってたか忘れてしまい、Slackのスレッドの内容を再確認して時間を無駄にしがち。

続きを読む

DogStatsDを使った独自メトリクスのDatadog取り込み検証をローカル環境で実施する

クラウド勤怠とクラウド給与で一人プロダクトSREをしているVTRyoです。いつの間にかプロダクトを兼任していて人手が足りません、助けてください

Datadogに独自メトリクスを取り込むために最初はStaging環境などで検証しようとしたのですが、動くかわからないもののためにエンジニアのコードレビュー時間を取っても勿体ないです。

ローカルでDogStatsDを検証する方法があったので紹介します。

前提

Datadog側が提供している既存のメトリクスでは取得できない、アプリケーション独自のメトリクスを集計する必要がありました。
プロダクト固有の問題に寄り添ったSLIを設定するためには、もはや必須の条件です。

独自のメトリクスをDatadogに送信する方法はいくつかあります。

  • カスタムAgentチェック
  • DogStatsD
  • PowerShell
  • DatadogのHTTP API

今回はDogStatsDを利用します。
アプリケーション側で制御できることや、Datadog Agentに付属するメトリクス集計サービスであることによる導入コストの低さが理由です。

続きを読む