[PR]Interface誌2022年5月号に記事を寄稿しました

こんにちは、CTO室AI推進部アナリストグループの足立です。
CQ出版社さまからブログでの紹介の許諾を得られたので宣伝させてください。

このたび、CQ出版社のInterface誌2022年5月号「データサイエンス入門特集:センサ×AIで酒蔵の匠の技を覚える」に寄稿しました。
データサイエンスに興味ある方、ぜひ御覧ください。

続きを読む

How I integrated the Kibela API into my local note-taking routine

I’m Kay and joined Money Forward as a new graduate in December 2020.
Currently, I am a member of the Group that improves the architecture of Money Forward Business Company’s Accounting Department.

NotePlan. This is the App that my work life revolves around since I started using it. It is a markdown note editor which has macOS Calendar integration. In a sidebar, you can see the current month with its days and the current day, which has the same layout as the day-view of the macOS Calendar. Further, when you click on the days of the month, you have your daily notes that are neatly accessible via the calendar and other shortcuts.
Besides that, NotePlan has its folder structure for notes on the left sidebar. Organizing notes has never been easier, which is why I now use it every day non-stop since I found out about it.

Retrieved from NotePlan

Now, in MoneyForward we use Kibela, a note-sharing platform, which is accessed via the browser.
For me, someone who rather doesn’t use a web app if there is a native app, it is rather appalling to use it for simple tasks like notes.
Since there is no Kibela App – I would use NotePlan anyway if there were, to be honest – but a neat and easy-to-use Kibela API, I tried to integrate it into NotePlan. Usually, I would write such tools in Python, but this time, since I use Ruby at work, I wanted to see how it would be using Ruby for a change.

続きを読む

AWS IAM Userアクセスキーのローテーションを自動化しました

こんにちは。サービス基盤本部でPlatform SREとして全社共通のインフラ基盤を開発している @grezarjp というものです。私の所属しているチームが何をしているかについてはこちらの記事が詳しいです。

今回は、CI/CDのプラットフォームやTerraformなどで利用しているAWS IAM Userアクセスキーのキーローテーションを自動化して定期的なキーローテーションによるより安全なアクセスキーの運用を達成したのでご紹介したいと思います。

なお、この記事内でアクセスキーという用語を用いた場合は特に言及がない限りAWS IAM Userのアクセスキーを指すものとします。

大前提、アクセスキーは可能な限り持つべきでない

改めて言及する必要もないと思いますが、大前提として永続的なシークレットであるアクセスキーは漏洩のリスクやexpireのオペレーションなどを考えると可能な限り利用を避けるべきだと思います。

AWSのリソースに対する操作であればEC2やCodeBuildなどからAssume Roleで一時的なトークンを発行して利用したり、AWS外の環境であってもGitHub ActionsなどでOIDCでの認証が利用可能になったことから、セキュリティ的な観点からは永続的なアクセスキーを持つ必要がないこれらの方法が最初に検討されるべきです。

ただし、AWSやGitHub Actions外の環境からAWSのAPIを利用したいユースケースにおいては依然としてIAM Userのアクセスキーを利用した認証が必要になり、今回はそのようなケースにおいて利用されているアクセスキーのローテーションを自動化した事例となります。

続きを読む

待望のGo新機能のリリース!!でもちょっと待って!プロダクションコードに反映する前に・・・

この記事はalias go='go1.18'でお送りしています。
Money ForwardでGoエンジニアをしている @yoskeoka です。

Go1.18がついにリリースされましたね!

特に注目度の高いGenericsFuzzingのような言語の新機能、Go tool chain, standard packageの拡張などなど・・・、あなたのチームで開発しているプロダクトで早速活用してみたいのではないでしょうか。

でも、ちょっと待ってください。
Go公式からのリリース発表だけを見て早速新機能を使ったコードを書いてしまっていいのでしょうか?

いきなりアップデートしてしまう前に、新しいバージョンのGoの新機能が手元の開発PCから本番環境まで対応済みかどうか、丁寧に確認してから計画的にアップデートしましょう。

続きを読む

【Ruby】クラウド勤怠におけるゴーストメソッド利用例

初めに

こんにちは。「マネーフォワード クラウド勤怠」のエンジニアをしています katuo です。自分はマネーフォワードに約10ヶ月前に入社し、同時にRubyを初めて業務で触ってから約10ヶ月が経ちました。

サーバーサイドの言語でいうと静的型付け言語であるGoを約3年ほど書いていたのですが、業務で使う動的型付け言語はRubyが初めてで諸々新鮮でした。そんな中、Rubyの勉強をしていくうちにRuby自体の言語仕様を活用したテクニックなどを知る場面が幾度もあり、今回はその中の1つの「ゴーストメソッド」について書いていきたいと思います。

ゴーストメソッドとは

例えば以下の図のような、Class Aを基底クラスとした継承関係を持つClass達が存在するとします。

ObjectからClassA, ClassB, ClassC が〇〇メソッドを定義していない場合、Callerが〇〇メソッドを呼び出そうとしたとき、NoMethodError等の例外が吐かれます。(メソッド探索で対象メソッドを発見できなかった場合に吐かれる例外)

続きを読む

CRISP-DMに沿ってデータ分析する

こんにちは、CTO室AI推進部アナリストグループの足立です。私たちアナリストグループは、主に「プロダクトの課題発見のためのデータ分析」に取り組んでいます。ユーザの皆さんがサービスをより利用しやすくなるよう、データ分析によって得られた知見は様々な場面で活用しています。

 今回は、多くのデータアナリストが参考にしているであろう、CRISP-DMと呼ばれるデータ分析のフレームワークを紹介します。

CRISP-DM

 CRISP-DMは、Cross-industry standard process for data miningの頭文字の略であり、データ分析の道筋を表現したものです[1]。
 CRISP-DMは、データを中心に、ビジネス理解から始まり共有・展開に至るまで、6つの工程があります。

では、各工程における作業をみていきましょう。

ビジネス理解

 この工程ではまず、ビジネス背景を理解し課題を選定します。課題は、現在の状態と将来の状態の差から考えてみましょう。

 次に、課題を解決するために存在する問題のうち、データを分析して解けるものに焦点を当て、分析の目標を設定します。このとき、分析の目標を達成したとみなす基準も決めておきます。例えば、モデルの精度や結果の根拠の解釈しやすさ、推論処理の速度などが挙げられます。

続きを読む

I was thinking NGINX was the best until i knew OPENRESTY

I’m Hoang, but people call me “Taio”. I am member of team SRE in Accounting Department of Money Forward, Inc. since November 2021. I’m a tech geek so even if there’s an earthquake I’ll git commit … git push … before evacuating.
Note : There are different ways of call for nginx like NGINX, nginx or Nginx, but in this article i will use NGINX as the standard.

We all know that NGINX is a lightweight, high-performance web server designed for high-traffic use cases. It is used for: Serving the static contents, Load Balancing, Caching, Application Firewall, and Reverse Proxy. It’s designed to handle heavy loads so 20,000 hits per second is no big deal. Isn’t that great? But I want more and then I found OPENRESTY

What is Openresty?

OpenResty is a full-fledged web platform that integrates our enhanced version of the Nginx core, our enhanced version of LuaJIT, many carefully written Lua libraries, lots of high-quality 3rd-party NGINX modules, and most of their external dependencies. It is designed to help developers easily build scalable web applications, web services, and dynamic web gateways.

OPENRESTY is basically an improvement of NGINX. It transforms the NGINX server into a strong web application server, which the web designers can utilize the Lua programming language and Lua modules to develop very superior execution web applications that are able to deal with 10K ~ 1000K+ associations in a server.

Not just that it additionally means to run your server-side web application totally in the NGINX server, leveraging NGINX’s event model to do non-blocking I/O not only with the HTTP clients, but also with remote backends like MySQL, PostgreSQL, Memcached, and Redis.

続きを読む

マネーフォワードCTOが考えていること(2022年3月)

こんにちは、マネーフォワード CTOの中出(なかで)です。
CTOの私が、普段「なにを感じて、どんなことを考えているか」について、四半期に一回社内へ共有している内容を一部編集し、エンジニアブログに公開したいと思います。
前回はこちら:マネーフォワードCTOが考えていること(2021年12月)

マネーフォワードの開発組織の強み

マネーフォワードのエンジニア組織が持つ強みはなんでしょうか?CTOとして感じている最大の強みは、サービスを生み出し続ける力、開発力です。

マネーフォワードは今年創業10年を迎えますが、毎年いくつものサービスがリリースされています。昨年度には、個人向け、法人向け、金融機関向けでそれぞれ複数の新規サービスがリリースされました。既存サービスも機能面でも使いやすさでも改良を重ね、より多くのユーザーを獲得しています。マネーフォワード全体では、リリース後も成長を続け、運用・改善をし続けているサービスがすでに40を超えています。

続きを読む

副業QAエンジニアは週3時間でいかに価値を出すか〜組織横断のヒッティング・パートナーをめざして〜

副業のQAスペシャリストとしてマネーフォワードHRソリューション本部プロダクト事業部QAグループに参画していますMark(@mkwrd)です。週に3時間だけ、マネーフォワードで仕事をしています。小欄では、ぼくが一体どんな取り組みをしているのかを語ってみます。エンジニアで副業を考えている方や、マネーフォワードへの参画を検討している(!)方に読んでいただけると、うれしいです。

この文章の要約

本業を持ちながら、業務委託として週3時間参画しています。主な取り組みは品質や組織づくりに関して「聴くこと」「話すこと」「繋ぐこと」の3つであり、特に「繋ぐこと」は本業とのコラボレーションという形で実現した珍しい貢献の形だと考えています。マネーフォワードの事業は広いので、HR領域だけでなく、様々な事業ドメインでパフォーマンスを引き出すヒッティング・パートナーになろうと、爆速前進の日々を過ごしています。

画像引用元: Roger Federerのヒッティング・パートナーをつとめるStefan Edberg
https://www.youtube.com/watch?v=Cwrt36THazc

続きを読む