タグ

ブックマーク / techblog.finatext.com (25)

  • 保険 SaaS「Inspire」の開発スタイル

    こんにちは!Finatextの今中と申します。 FinatextではInspireという保険のオンライン販売のためのSaaSを開発・運用してます。私はこちらでサーバーサイドエンジニアをやっています。 Inspireの開発方針については先日孝橋が書きましたが、今回は以下トピックについてご紹介します! 大切にしている考え方プロジェクトの進め方コミュニケーションなお、これらはInspireに限った話ではなくFinatext全体にも言えることが多いです。ぜひ最後まで読んでいただけたら嬉しいです。 大切にしている考え方Finatextでは全社的に「規律が保たれた自律的組織」を目指しており、いわゆるティール組織と呼ばれる組織構造をイメージするとわかりやすいかもしれません。 参考記事: Finatextのティール組織の取り組みについて 自律的組織を実践する試行錯誤の中で現状どのような取り組みを行なってい

    保険 SaaS「Inspire」の開発スタイル
  • 保険 SaaS 開発における複雑な要件に立ち向かうための開発方針

    はじめにこんにちは、Finatext で保険事業のプロダクト開発に携わっている孝橋( @toshipon )です。 Finatextでは、証券や保険といったいくつかの金融領域でSaaSを提供しています。その中の保険事業では、保険商品の販売や保険業務をオンライン上で円滑に行うためのプラットフォーム「Inspire」を開発・提供しています。 最近では BtoB向けのSaaSが活発に開発されて世の中に多く存在していますが、BtoB向けのSaaSとは特定のドメインの特定の業務を、汎用的なサービスの上で行えるようにすることを想定していると思います。その中でも保険のドメインは各社固有の業務が多くあったり、独自の保険商品の規約が存在するため、SaaSとして如何にシステムに落とし込んで提供するかという難しさがあります。 今回は Inspire における保険SaaSを提供するにあたってサービス設計する中で、

    保険 SaaS 開発における複雑な要件に立ち向かうための開発方針
    toshipon123
    toshipon123 2022/03/14
    SaaS開発における考え方について書きました!
  • マルウェアやコンテンツ改ざんをクラウドネイティブに防ぐ7つの対策

    こんにちは、Finatextの @s_tajima です。 システム運用において、サーバー上でマルウェアを実行されてしまったり、配信するコンテンツを改ざんされてしまうというのは、セキュリティ上大きな脅威と言えます。金融機関、金融サービス提供者としては、当然そのような状況を防ぐ手を打つ必要があります。今回は、Finatextにおけるマルウェア対策やコンテンツ改ざん対策のお話です。 従来のサーバー運用におけるマルウェアとコンテンツ改ざんの脅威と対策従来のサーバー運用においては、 サーバーにSSH等でシェルアクセスできるようになっている (する必要がある) 正当にシェルアクセスの権限を持つ誰かが不正を働くかもしれないシェルアクセスの権限が不正に利用されてしまうかもしれないサーバーのファイルシステムは、実行ファイルも含めて書き込み可能になっている (する必要がある) シェルアクセスやネットワークに

    マルウェアやコンテンツ改ざんをクラウドネイティブに防ぐ7つの対策
  • Platform Teamとしての上場までの約3年を振り返る

    こんにちは、Finatextのエンジニアの @s_tajima です。 先日、弊社は東証マザーズに上場しました。私はFinatextには2019年の2月に入社したので、今日までで約3年間を過ごしたことになります。上場自体は会社にとっての通過地点であり、「金融がもっと暮らしに寄り添う世の中」の実現のためにはまだまだやるべきことがたくさんあるのですが、せっかくなのでこの3年間の振り返りと、これからについて書いてみようと思います。 弊社は、スタートアップとしては珍しいマルチプロダクトの会社で、かつホールディングス制のために複数の子会社があります。今回は、そんな環境で全社的なシステム基盤を担当しているPlatform Teamというチームでやってきたことを紹介します。プロダクト開発の現場とはちょっと性質の違うエンジニアリングが求められる領域ですが、同様のミッションを持っている方々の参考になれば嬉し

    Platform Teamとしての上場までの約3年を振り返る
  • Slack APIを活用した業務自動化事例の紹介

    Finatextの渋谷です。ソフトウェアエンジニアとしてFinatextのサービス開発と社内向けツール運用を担当しています。 Finatextグループの日オフィスは130人ほどの規模ですが専任の情シスはおりません。プラットフォームチーム(組織横断で各チームをサポートするチーム)でコーポレートタスクを分担しています。 組織の拡大に伴い手動では煩雑な作業が増えてきたため自動化を進めてきました。 今回は社内向けツールを日々運用していく上で発生した課題をSlack APIを利用し解決しましたので紹介します。 1. Backlog招待期限を失効させない背景Finatextグループではプロジェクト管理にBacklogを使用しています。 Backlogのユーザー登録はメールを送信し招待します。 メールの有効期限は1週間のため期限内に招待完了せず、Backlogに参加できないことが度々ありました。 期限

    Slack APIを活用した業務自動化事例の紹介
  • スタートアップのエンジニアでもできる!特許出願までの話

    はじめにこんにちは、Finatext で保険事業のプロダクト開発に携わっている孝橋( @toshipon )です。 今回は先日、我々の開発しているプロダクトに関する特許出願をおこなった内容についてのお話を紹介したいと思います。 概要普段スタートアップのエンジニアとして業務を行っている中で、特許に関わる機会があまりなく、馴染みがない方ももしかしたら多いかもしれないのですが、そんなエンジニアの方でもなんとなく特許取れそうかな?と思うアイデアがあったときに実際に特許出願までの流れと、エンジニアが特許出願をすることのメリットについて紹介いたします。 特許出願のきっかけきっかけは、私が社内の slack で何気なくつぶやいた一言がきっかけですが、普段開発している中で、プロダクトのビジネスロジックのコードを眺めていたときに、ふと「この複雑な処理をいい感じに成し遂げてるのは、おそらく今までの保険業界には

    スタートアップのエンジニアでもできる!特許出願までの話
    toshipon123
    toshipon123 2021/05/27
    特許出願までの体験をまとめました🙏
  • ベンチャー新卒2ヶ月のエンジニアが AWS 認定ソリューションアーキテクトアソシエイト資格試験を受けてみた!

    credly.comはじめにFinatext にソリューションアーキテクトとして新卒入社した中川(Twitter: kakitaroou)です! Finatext のソリューションアーキテクトはお客様の課題に合わせた最適なクラウド金融ソリューションを、AWS を用いることで低コストかつ迅速に提供しています。 したがって、我が社のソリューションアーキテクトには顧客の要件に基づき最適な AWS アーキテクチャを設計する能力が求められます。 記事では私が AWS 認定ソリューションアーキテクトアソシエイト資格試験に向けてどのように勉強し、どのような結果を得たかについての軌跡をまとめようと思います! 目次・はじめに・受験の動機・試験勉強概要・試験結果概要・おすすめの勉強法・まとめ・さいごに受験の動機私は特に情報系の学部を卒業したわけではなくクラウドやサーバーサイドの知識があったわけではありません

    ベンチャー新卒2ヶ月のエンジニアが AWS 認定ソリューションアーキテクトアソシエイト資格試験を受けてみた!
  • Springで既存のサーバアプリにモックレスポンス機能を搭載する

    Photo by Joel Holland on Unsplashこんにちは。今年の4月からFinatextにJoinした岩田です。 入社して半月、早速ですがTechBlogを書きます! 今回はSpringで既存のサーバアプリにモックレスポンス機能を搭載する方法についてご紹介します。 なお、ここでのモック機能は単体テストの文脈でよく使われる意味のモックではなく、「実動作環境で、あるリクエストに対して期待するレスポンスを返すようにする機能」 の事を指します。 概要モック機能が必要になるケースは下記のようなケースがあるかと思います。 フロントエンド開発チームがバックエンド開発チームのAPI開発を待たずにアプリの開発、動作確認したい。複雑な状態下(ユーザの状態や時限など)でのレスポンスをEnd to Endテストなどで常に再現したい。これらの課題・要望をSpringを使用しているアプリケーション

    Springで既存のサーバアプリにモックレスポンス機能を搭載する
  • ジュニアエンジニアとして入社してからの1年半を振り返る

    こんにちは。Finatextでエンジニアをしている塚です。 証券プラットフォーム「BaaS」や、それを利用して開発されたアプリケーションのフロントエンドを担当しつつ、現在はバックエンドの実装も行っています。 Finatextに入る前は大手メーカーでSEを3年ほど、その後フリーランスを1年ほどしておりました。フリーランスになってからエンジニアを目指すことを決め、独学でコーディングの勉強を始めています。 ジュニアエンジニアとしてFinatextに入社した私が、約1年半でどの程度成長したのかを振り返りたいと思います。 まず入社当時と現在でどう変わったかがこちらです。 Finatext入社当時コーディングは1人でするのは到底無理。。デベロッパーツールどうやって開くの?rebaseって何?Laravelなら少しだけ知っているVue.js, Go(弊社使用言語)書いたことない ↓1年半経った現在ヘル

    ジュニアエンジニアとして入社してからの1年半を振り返る
  • AWS Amplify で Custom headers を活用したパフォーマンスと脆弱性対策

    はじめにこんにちは、Finatext で保険事業にてプロダクト開発をしている @toshipon です。今回は我々のプロダクトでも活用している AWS Amplify コンソールにおける Custom headers の運用についてお話いたします。 概要Amplify 上で Custom headers を設定する手順についてご紹介いたします。Custom headers は、HTTP レスポンスのヘッダーに指定できる情報を管理するもので、主にデバッグやセキュリティ対策、情報提供に利用されます。 今回は、キャッシュを適切に有効にさせてパフォーマンスを向上させたり、XSSやクリックジャッキング等のWebアプリケーション脆弱性に対処することを目的として利用したいと思います。 また、Content-Security-Policy-Report-Only というセキュリティヘッダー(説明については

    AWS Amplify で Custom headers を活用したパフォーマンスと脆弱性対策
    toshipon123
    toshipon123 2021/04/01
    Amplifyのパフォーマンスとセキュリティ対策について書きました!
  • Athena+Embulk+BigQueryによるアプリケーションログの分析環境構築

    はじめにこんにちは、Finatextで証券プラットフォーム(Brokerage as a Service、以下BaaS)の開発に携わっている石橋(@bashi0501)です。過去のFinatextテックブログではTerraform、CDKとIaCをテーマにした記事しか書いたことがなかったのですが、今回はログの分析活用をテーマとします。 概要弊社の証券事業ではECSによるワークロードを組んでいます。テーマのアプリケーションログについては標準出力したものをawslogsログドライバーが回収してCloudWatch Logsに送信しています。 ログの検索という観点ではCloudWatch Logs Insightsというサービスでかなりリッチにフィルターや集計を行うことができるのですが、ログデータを元にしたユーザーのファネル分析や業務改善(後述します)に活かしていきたいという意図があるため、マ

    Athena+Embulk+BigQueryによるアプリケーションログの分析環境構築
  • swagger-merger を用いた大規模API開発における Swagger 運用

    はじめにこんにちは、Finatext で保険事業のプロダクト開発をしている @toshipon です。今回は以前の Fin-JAWS のイベントで少し紹介させていただいた、我々の現場で取り組んでいる、大規模API開発における Swagger を用いたAPI仕様のドキュメント運用方法について紹介いたします。 概要我々の現場では、API ベースのWeb Application を開発する際に、Swagger を用いて API 設計をしたり、BFFサーバー開発者やフロントエンド開発者とのコミュニケーション手段として活用しています。 ただし、Web Application の規模が大きくなってくると、Swagger の 定義ファイルは肥大化してしまい、メンテナンスが困難になってきます。 今回は、Web Application の規模が大きくなっても耐えうる Swagger 定義ファイルの運用方法を

    swagger-merger を用いた大規模API開発における Swagger 運用
    toshipon123
    toshipon123 2021/03/11
    今度は swagger 運用の tips 的なネタを書きました!
  • Goにおけるテスタブルな時刻の取り回し

    Photo by steve_jon on Unsplashはじめにはじめまして。Finatext で保険サービスの開発(主にサーバーサイド)をしているすがやです。 いきなりですがみなさん時をかけてますか? 私はかけてます。 …時刻を扱う実装というのは、得てして問題を生みやすいものです。 この記事では時刻の取り回しで生じる問題と、弊社のGoでのサーバー実装におけるそれらの問題との向き合い方を説明します。 時間に起因する課題unit testしづらい問題語り尽くされた話題ではありますが、現時刻に依存した実装はunit testしづらいという問題があります。 たとえば単純な例として呼び出し時点が休日であるかを判定するコードがある場合を考えます。 // IsHoliday 休日か func IsHoliday() bool { dayOfWeek := time.Now().Weekday()

    Goにおけるテスタブルな時刻の取り回し
  • AWS CloudWatchシリーズでアプリを監視する

    こんにちは、Finatextの六つ葉と申します。現在、グループ会社のナウキャストが開発中の新サービスのAWSインフラを担当しております。 稿では、AWS CloudWatchシリーズでアプリを監視する方法について延べます。 まず、アプリ体の仕組みを紹介します。 アプリの仕組みこのアプリは、一般的なSPAによるフロントとWebAPIのバックエンドによる構成になります。Fargateに関してはAuto Scalingを設定しています。 アプリの監視システム監視システムは、ログ・通知・死活監視・ダッシュボードの4つの部分で構成されています。 X-Ray、CloudWatch LogsからのアクセスログCloudWatch AlarmsとSNS、ChatbotでのSlack、メール通知Synthetics Canaryからの死活監視CloudWatch Logs InsightやMetrics

    AWS CloudWatchシリーズでアプリを監視する
  • ECS Fargate で S3 bucket を用いた環境変数の運用方法

    はじめにこんにちは、Finatext で保険事業のプロダクト開発をしている @toshipon です。今回は我々の一部の現場で取り組んでいる、ECS Fargate 上で利用する環境変数を、 S3 bucket を使って運用しているお話を紹介いたします。 概要ECS Fargate 上で、アプリケーションコードと同期的に環境変数の更新を行いたい。 そのために、mozilla/sops というファイル暗号化ツールを利用して暗号化した環境変数ファイルをアプリケーションコードのリポジトリで管理し、CI/CD ( Codepipeline ) によるデプロイのタイミングで、環境変数ファイルを復号してS3にアップロードし、ECS task上で S3 から環境変数を参照する仕組みを紹介いたします。 解決したい課題環境変数更新とアプリケーションコードデプロイのタイミングが非同期であることECS Farg

    ECS Fargate で S3 bucket を用いた環境変数の運用方法
    toshipon123
    toshipon123 2021/02/09
    ニッチなネタですが、書きました!
  • GitHub Actionsを機能ごとに分けて管理したかった | by Asai | Finatext | Feb, 2021 | Medium

    Photo by Ash from Modern Afflatus on UnsplashはじめにFinatextでエンジニアをしている浅井です。 弊社では先日「Wealth Wing」という資産運用サービスをリリースしました。 サービスの詳細を知りたい方は、こちらのnoteも合わせて読んでいただければと思います。 Springについてとスクラムの導入については既に他のメンバーが書いているので、 今回はGitHub Actionsについて書いていきます。 概要Wealth Wingの開発チームではGitHub Actionsで ktlintでのフォーマットチェック(以下lint)単体テスト(以下test)シナリオテスト(実際のエンドユーザの動きやバッチ処理の一連の流れを一つのシナリオとして盛り込んだテスト。以下scenario test)を動かしています。 これらの処理に軽く依存関係を持た

    GitHub Actionsを機能ごとに分けて管理したかった | by Asai | Finatext | Feb, 2021 | Medium
  • Wealth Wingにおけるオンラインスクラム導入記

    はじめにこんにちは、Finatextでエンジニアをしている大木です。主に証券プラットフォーム「BaaS」や、それを利用して開発されたアプリケーションのバックエンドを担当しています。 先日、弊社では新たに証券アプリ「Wealth Wing」をリリースしました!Wealth Wingは入金するだけで運用が始まる、全く新しいタイプのお任せ投資サービスです。(ANAグループと連携した新しい資産運用サービス「Wealth Wing(ウェルス ウィング)」とは) Finatextではどのような開発手法を用いるかの判断は、基的にそれぞれのプロジェクトのチームに委ねられています。Wealth Wingの開発プロジェクトでは、以下のようなチーム編成のもと、開発手法としてスクラム開発を取り入れました。(自分はこのバックエンド開発の中の1名として参加していました) 日プロダクトオーナー 1名スクラムマスター

    Wealth Wingにおけるオンラインスクラム導入記
  • Spring + JPAによるアプリケーション構築事例

    Photo by Ash from Modern Afflatus on Unsplashはじめにこんにちは。Finatextでエンジニアをしている山﨑です。 弊社では、先日「Wealth Wing」という資産運用サービスをリリースしました。そのシステムのバックエンドは、Spring + Kotlinを用いてアプリケーションを構築しており、インフラストラクチャ層ではSpring Data JPAを用いています。 稿では、以下のような、Spring Data JPAを組み込んだ場合に発生する課題に対する解決策を、弊社の実例を通して示します。 データベースマイグレーションはどうすべきかIn-Memory DB(H2DB)ではなく、MySQL等を使ってJUnitでテストしたいデータベースアクセスを「書き込み専用」「読み取り専用」で呼び分けをしたい最後に、稿に関するサンプルも添付していますので

    Spring + JPAによるアプリケーション構築事例
  • AWS Lambdaの汎用的なエラー通知を実現するLapperというツールをつくりました

    Lapper is a wrapper programs for Container running on Lambda. (Beta) - Finatext/lapper AWS Lambdaのエラー通知どうするか問題Finatextでは、サーバレスなタスク実行の基盤として、AWS Lambdaを活用しています。 具体的なユースケースとしては、 CloudWatch EventsのSchedule expressionsをトリガーにした、定時処理SQSやS3のEvent NotificationやCloudWatch Eventsの特定のイベントをトリガーに起動する、非定時処理API Gateway等を介したHTTPSリクエストをトリガーにした、Webサーバとしての処理あたりがあります。 Lambdaを使うことによる恩恵はあらためて言及するまでもないと思いますが、非常に便利に使っています

    AWS Lambdaの汎用的なエラー通知を実現するLapperというツールをつくりました
  • DX Criteriaを使って開発体制の改善状況を振り返る

    こんにちは。Finatextでエンジニアをしている@s_tajima です。 この記事は、CTOA Advent Calendar 2020の、12/9の記事です。 弊社では、日CTO協会の出している、DX Criteria を使って自分たちの開発体制についてのアセスメントをしています。 初回は2019年12月頃に実施し、最近あらためて今の状況を確認してみました。 結果として、初回に比べて大きな改善傾向がみられたので、今回はその詳細について紹介します。 尚、今回紹介するアセスメント結果は私が全社の状況を俯瞰することを心がけて実施したものですが、これとは別にチーム単位でのアセスメントをしていたりもします。 アセスメント結果の比較画像2回分のアセスメントの結果を並べた画像をお見せします。 左が2019年12月、右が2020年10月の時点のアセスメント結果です。 結果として、青(=ポジティブな

    DX Criteriaを使って開発体制の改善状況を振り返る