見出し画像

メタクラ開発の裏側を「エンジニア勉強会」で語ってきた!

株式会社メタップスでエンジニアをしています米谷です。
メタップスでは月に1回メタップスのエンジニアチームが新規事業やスキルの情報共有を行なっている横断勉強会があります。

スクリーンショット 2022-02-02 17.51.26

今回はメタップスクラウドの開発チームが発表を行いました!

メタクラ開発_登壇④

普段はWeworkのイベントスペースをお借りして、観に来てくださった方々と対面形式で行なっているのですが、今回はコロナの影響もありオンラインにて行う形になりました。
この勉強会の内容に関して簡単に振り返ってみました。

発表の内容

発表内容は、メタップスクラウドの紹介、SAML、フォームベース、コスト取得の仕組みなどを説明しました。

メタップスクラウドの紹介では、メタップスクラウドを使うことのメリットの説明を行いました。

スクリーンショット 2022-02-02 18.22.47

そこではSSOを行うことによるセキュリティリスクのお話や、SaaSの利用数が増加することによるお金や時間の無駄に関して話しました。
SSOに関してはSAMLとフォームベース認証があるのですが、そちらに関する簡単な技術的な説明も行いました。

スクリーンショット 2022-02-02 18.28.29

SAMLでのログインは「ID Passwordを使用しない」といった特徴があります。
その代わりに、認証情報を保持しているサービス(IdP)がSAML Responseという認証情報を生成して、ログインする対象のサービス(SP)に送ることでユーザーの認証を行います。
ID Passwordの設定が不要であることから、社内のSaaSのユーザー管理などを行う際に新規ユーザーに対してIDとPasswordを連絡する様な作業が不要になるといったメリットがあります。
ただ、SAMLに関しては対応していない、もしくはプランを上げないと使えないSaaSも多くあります。


フォームベース認証ではそういった場合でもSSOを実現することができます。
フォームベース認証ではメタップスクラウド側でSaaSのID Passwordを設定し、ログイン画面にてメタップスクラウドの拡張機能を利用して自動的にログインフォームにID Passwordを入力します。
ID Passwordの管理が必要になってしまうデメリットもありますが、SAMLが利用できない場合にはフォームベース認証を利用することでSSOを行うことができます。


次にコスト取得のアーキテクチャに関して説明を行いました。

メタクラ開発_登壇⑥

コスト取得ではジョブキューシステムを使っています。


ジョブキューシステムとは、何か重たい処理などの非同期で行いたい機能に関してジョブが登録されたら、逐次実行する様な機能になります。
同期的に処理を実行する場合は処理の完了を待たなければなりませんが、ジョブキューシステムではジョブを登録したらレスポンスを返せるといったメリットがあります。
またジョブの実行はLambdaで行なっているのでアプリケーションのサーバーへの負荷を下げることができるといったメリットもあります。
メタップスクラウドではバックエンド(Rails)がSQSにキューを登録してそこからLambdaの処理を呼び出し、それぞれのSaaSのページをスクレイピングしてコストを取得し、その結果をバックエンドに返す実装になっています。

最後にメタップスクラウドにて使用している言語やインフラに関して説明を行いました。

スクリーンショット 2022-02-02 18.38.24

メタップスクラウドではAWSを利用していて、内容としてはECSを使用してアプリケーションを動かしており、ロードバランシングサービスとしてALBを使用しています。
また、サーバー監視ツールとしてDatadog、エラー検知ツールとしてSentryを利用しています。

スクリーンショット 2022-02-02 18.37.25

結構いろんな言語を使っていたりします。

基本的に自分はWebアプリケーション部分の開発が多いのでRailsを使った開発が多いです。また、記載できていませんでしたがフロントエンドにReactを使っているので、Reactも書いたりしています。
Pythonに関しては全く触っていないのでコスト取得周りはあまり理解できていなかったりします…。
最近はSaaS側のID取得の実装を行なっているのでGoを書くこともありますがRubyとは全く別の言語になるので、少し苦戦しながらも実装しています。

振り返り

今回の発表の振り返りですが「アーキテクチャ解説」といったタイトルで勉強会を行なったのですが、時間も限られていたこともあり、説明が足りなかったかな…とちょっと反省しました。


今回公開したジョブキューシステムではスクレイピングの機能を元に紹介したのですが、現在はユーザー連携機能にてAPIを叩くような機能も実装していたりもしますし、フォームベース認証では拡張機能を用意していたり、モバイルアプリの検討も進めていたりして、いろんな技術、言語、フレームワークを使っているので、技術的に紹介できることはまだまだ多いと思うので別の機会にまたご紹介させてください!


こちらから当日のイベント動画が観れるので、ぜひご覧ください!みんなたまたまメガネをかけてる(笑)


前回のnoteもぜひご覧ください⇩




いいなと思ったら応援しよう!