カンムテックブログ

https://tech.kanmu.co.jp/

カンムテックブログ

フィード

記事のアイキャッチ画像
カンムの機械学習インフラの今 2023 年版
カンムテックブログ
こんにちは。ソフトウェアエンジニアの新田です。こちらは カンム Advent Calendar 2023、8日目の記事です。 昨日はデザイナー torimizuno さんによる バンドルカードの Google Pay デザイン でした。今年のバンドルカードの目玉リリースの1つであるスマホタッチ決済(Google Pay)のデザインについて説明されていて、凄く面白いです。 今回は、カンムの機械学習のインフラ周りについて話します。実はカンムのテックブログでは2年半前に同じテーマの記事があります。この内容からいくつかアップデートがあるので、今回はその差分を重点的に拾っていこうと思います。 tech.…
5ヶ月前
記事のアイキャッチ画像
バンドルカードの Google Pay デザイン
カンムテックブログ
デザイナーのtorimizunoです。 こちらはカンム Advent Calendar 2023、7日目の記事です。 先日の記事はhikkyさんによるSecure W2で証明書を発行してEntra ID CBAを設定する でした。 はじめに バンドルカードは2023年10月に Google Pay に対応しました。 お買い物という日々利用されるシーンのなか、非接触でバンドルカードが使えるようになったことに気づいて迷わず使い始められるよう、デザイナーとして意識したことをご紹介いたします。 とにかく、気づきやすく Google Pay に追加ボタンのレギュレーション上、カードが表示されている画面で…
5ヶ月前
記事のアイキャッチ画像
【デスクツアー】カンムメンバーの在宅環境
カンムテックブログ
これは誰のデスクかな...? こんにちは。Pool開発チームのhataです。 自分は人のデスク環境を観るのが好きです。人のデスク環境は三者三様で、その人らしさや個性が滲み出ており観ていて楽しいんですね。なので、ガジェット系Youtuberがたまに投稿しているデスク環境紹介動画を漁ったりするのが趣味になっています。 カンムでは、オフィス徒歩圏内に住むメンバー以外は全員フルリモートで働いています。自分もその一人で、オフィスは恵比寿にあるのですが、入社して以降ずっと富山県からのリモートワークです。 カンムのかなり自由な働き方を支える、リモートワークやフレックスなどの制度についてはこちらの記事をどうぞ…
7ヶ月前
記事のアイキャッチ画像
ドキュメントを書く時に考えていること
カンムテックブログ
ソフトウェアエンジニアの summerwind です。最近は LLM が自分のふりをして代わりに仕事をしてくれるような仕組み作りを趣味にしています。 先日社内で「ドキュメントをうまく書く方法はありますか?」という質問をもらったのですが、普段ドキュメントを書く時に意識をしている要素のようなものはあるものの、それをちゃんと言語化したことがなかったため、抽象的にしか答えることができませんでした。改めて言語化をしてみるのは面白そうだなと感じたので、今回はドキュメントを書く時に考えていることをいくつか書き出してみたいと思います。 想定する読者を決める ドキュメントを書く時にまず最初にやるのは「そのドキュ…
7ヶ月前
記事のアイキャッチ画像
カード決済のセキュリティ的な問題点とその対策、IC チップの決済とその仕組み
カンムテックブログ
エンジニアの佐野です。カンムはカード決済のサービスを提供しています。カード決済にはいくつかの決済手段があり、マグストライプ、IC、IC非接触(俗に言うタッチ決済)、オンライン決済などの機能が提供可能です。iD のようなスマートデバイスにカード情報を入れてスマホでタッチ決済する仕組みもあります。カンムのプロダクトであるバンドルカードはマグストライプとオンライン決済、Pool はマグストライプとオンライン決済に加えて IC接触決済、IC非接触決済(タッチ決済)を提供しています。今日はセキュリティ的な観点から各種決済手段の特徴や問題点とともに、主に IC 決済の仕組みについて小ネタを交えつつ書いてい…
10ヶ月前
記事のアイキャッチ画像
次なる`pkg/errors`を探して
カンムテックブログ
エンジニアの宮原です。 今回はGoでスタックトレースを取得するライブラリ選定についての記事です。 この記事は 【Gophers Talk】スポンサー4社による合同LT & カンファレンス感想戦で発表したものです。 発表スライドはこちらから確認できます。 この記事の目的 この記事ではpkg/errorsからの移行先を探すための参考情報を提供することを目的とします。 Goのエラーハンドリングのやり方等についてこの記事では触れないこととします。 pkg/errors とはなにか pkg/errorsとは、githubのREADMEを引用すると Package errors provides simp…
1年前
記事のアイキャッチ画像
Go Conference 2023 CTF: 標準ライブラリの利用ミスに関わる脆弱性
カンムテックブログ
セキュリティエンジニアの宮口です。 Go Conference 2023にてCTFの問題を用意させていただきました。 問題はこちらになります。 github.com 本記事では出題の意図、想定解などを解説します。 解けた方も解けなかった方もぜひ読んでみてください! 1. 問題の解説 今回出題した問題は、バンドルカードのような決済系のアプリケーションを想像して作成しました。 ユーザーが出来る操作は限られていて、以下の操作のみ可能です。 パスワードリセット 残高確認 送金 この問題では、残高が9,999,999を超えたときに残高確認APIにアクセスすることでフラグが出力されるようになっています。 …
1年前
記事のアイキャッチ画像
無理なく始めるGoでのユニットテスト並行化
カンムテックブログ
KanmuでPoolを開発しているhataです。最近、ロボット掃除機を買いました。ロボと猫がじゃれている景色はいいですね。 今回はGoのユニットテストの並行化についての記事です。 TL;DR Goのテストは、並行化することでテスト実行時間の短縮やテスト対象の脆弱性の発見などのメリットがある 基本的にはそのままでも最適化されているが、テストコードにt.parallelを記述することでよりきめ細やかな最適化を施すことができる ただし、一定規模以上のアプリケーションへの導入・運用は大変 テストコードを一気に並行化するtparagenというツールや、並行化忘れを防ぐ静的解析ツールがあり、これらを使うこ…
1年前
記事のアイキャッチ画像
カンムは Go Conference 2023 にプラチナGoルドスポンサーとして協賛します
カンムテックブログ
カンムは 2023年6月2日 (金) 開催の Go Conference 2023 にプラチナGoルドスポンサーとして協賛します。 gocon.jp カンムが提供している バンドルカード や Pool のバックエンドは主に Go で開発しており、このイベントを通して Go コミュニティの発展に寄与できればと思っています。 team.kanmu.co.jp セッションに登壇します 今回の GoCon では、Pool のエンジニアである @sho_hata_ がセッションに登壇します! 以下スケジュールで登壇するので、ぜひご覧ください。 10:30 無理なく始めるGoでのユニットテストの並行化戦略…
1年前
記事のアイキャッチ画像
Gmail 管理者検疫に関するアラートをSlackへ通知させたい!
カンムテックブログ
カンムでコーポレートエンジニアをやっているhikkyです。 今回セキュリティチームからの依頼で、GoogleWorkspace(以下GWS)の機能である 「高度なフィッシングと不正なソフトウェアへの対策」 という機能の一部を有効化しました。 しかしこの機能通知がメールのみのため、Slackへ通知させるということを行いました。 この時の内容をせっかくなので、ブログ記事にしてみます。 必要システム この手順を実施するためには以下のシステムが必要です。 GoogleWorkspace Enterpriseエディション以上 Slack有料プラン Google Cloud Cloud Functions…
1年前
記事のアイキャッチ画像
Azure ADを利用したDjango adminのSAML認証
カンムテックブログ
SREの菅原です。 カンムのサービスのバックエンドは基本的にGoで書かれているのですが、一部の内部向け管理画面はPythonのフレームワークDjangoで作成されています。 スタッフがDjango adminページにログインして各種オペレーションを行うのですが、adminページにログインするためにはDjango adminのアカウントが必要です。 社内で使う各種サービスのアカウントは基本的にはAzure Active Directoryを使ったSSOで一元管理されていますが、管理用WebアプリはSAML対応の実装をしておらず、前段のロードバランサー(ALB)でOIDC認証しているものの、adm…
1年前
記事のアイキャッチ画像
「MoT/コネヒト/Kanmu が語るプロダクト開発xデータ分析」を開催しました
カンムテックブログ
カンムの @fkubota です。 2023/1/26に株式会社Mobility Technologiesさま、コネヒト株式会社さまと合同で「MoT/コネヒト/Kanmu が語るプロダクト開発xデータ分析」というイベントを開催しました。ご参加いただいたみなさま、ありがとうございました! kanmu.connpass.com このイベントでは、実プロダクトに機械学習モデルを用いて機能開発・改善を日々行っている3社の機械学習エンジニアが集まり、泥臭く改善を繰り返している現場の苦労や工夫、知見を共有しました。 セッションに登壇しました 弊社からは 僕(fkubota)が「データドリブンな組織の不正検…
1年前
記事のアイキャッチ画像
クエリログを使ったPostgreSQLの負荷テスト
カンムテックブログ
SREの菅原です。 この記事はカンム Advent Calendar 2022の4日目の記事になります。 少し前にサービスで使っているPostgreSQLをRDSからAuroraに移行しました。 Auroraに移行するため色々と作業を行ったのですが、その中でAuroraの性能を測るために行った負荷テストについて書きます。 pgbench まず最初にpgbenchを使って、単純なワークロードでのRDSをAuroraの性能差を測ってみました。*1 以下がその結果です。 MySQLで同様のテストをmysqlslapを使って行ったことがあって、そのときは概ねAuroraのほうが性能が高かったので、同様…
1年前
記事のアイキャッチ画像
開発のためにBoltでSlackボットを作った話
カンムテックブログ
SREの菅原です。 この記事はカンム Advent Calendar 2022の2日目の記事になります。 細々としたことをさせるためのボットをSlackに常駐させるのはよく行われていることだと思いますが、カンムにも kanmukun と kabot という2台のボットが常駐しています。 私の入社当時 kanmukun しかいなかったのですが、あまりメンテナンスされている様子がなく、新しい機能を追加するのが難しかったため、新しく kabot というボットを作成しました。 ボットを作成するにあたって既存のSlackボットフレームワークを利用することを検討しましたが、Hubotはすでにメンテナンスが…
1年前
記事のアイキャッチ画像
「泥臭くも価値を届ける決済の仕組みと工夫 by 10X + CAMPFIRE + Kanmu」を開催しました
カンムテックブログ
カンムの achiku です。 2022/11/30に株式会社10Xさま、株式会社CAMPFIREさまと合同で「泥臭くも価値を届ける決済の仕組みと工夫 by 10X + CAMPFIRE + Kanmu」というイベントを開催しました。ご参加いただいたみなさま、ありがとうございました! kanmu.connpass.com このイベントでは、普及速度が年々加速している「決済」をテーマに、10X・CAMPFIRE・カンムといった決済の中でも異なる役割のプレイヤーが集まり、泥臭くもユーザーに価値を届ける為に行っている現場感たっぷりのエンジニアリングトークをご紹介しました。 セッションに登壇しました …
1年前
記事のアイキャッチ画像
「価値を最大化して素早くユーザーへ届けるための開発フロー〜Figma編〜 SmartHRxKanmu」を開催しました
カンムテックブログ
こんにちは!カンムの小山内です。 2022/11/21に株式会社SmartHRさまと合同で「価値を最大化して素早くユーザーへ届けるための開発フロー〜Figma編〜 SmartHRxKanmu」というイベントを開催しました。なんと100名以上の方にお申し込みいただけたようです。ご参加いただいたみなさま、ありがとうございました! kanmu.connpass.com このイベントでは、日々のプロダクト開発におけるFigmaを活用したスムーズな意思決定、ベストプラクティスの蓄積、開発コラボレーションの実践的なノウハウなどを、SmartHR・カンム各社の実体験をベースにご紹介しました。 またイベント後…
1年前
記事のアイキャッチ画像
クレジットカード決済システムで利用するデータセンターの選定
カンムテックブログ
エンジニアの佐野です。今日はインフラの話です。主に物理インフラの話です。カンムがデータセンター(以下、DC)の選定や契約をした際の勘所について書きます。クラウドと DC の相互接続であったりネットワーク構成や機器のコンフィグレーションなどのテクニカルな話はまた別途書こうと思います。 カンムでは主に AWS や GCP 上にインフラを展開して開発を行っています。メインは AWS、機械学習やデータプロセッシングの一部は GCP です。そして先に書いたとおり DC 契約もしています。基本的にはクラウド中心のインフラ運用ですが DC はビジネスパートナーと専用線接続するための重要な拠点となっていて、シ…
1年前
記事のアイキャッチ画像
「LayerXとKanmu FinTechスタートアップセキュリティ事情」を開催しました
カンムテックブログ
バンドルカードのソフトウェアエンジニアをしている summerwind です。最近は社内で解体屋と呼ばれています。 2022/09/30に株式会社LayerXさまと合同で「LayerXとKanmu FinTechスタートアップセキュリティ事情」というイベントを開催しました。今回のイベントでは創業当時から決済金融系の事業を行ってきた2社が、セキュリティにまつわる事例や知見を共有しました。FinTechとスタートアップの組み合わせならではの苦労や思いなどの話が聞けて、とても有意義な時間になったのではと感じています。 kanmu.connpass.com カンムからは自分を含めて2名のエンジニアが登…
2年前
記事のアイキャッチ画像
「Tech Meetup 〜Goで作る決済サービス〜」を開催しました
カンムテックブログ
こんにちは、カンムでCOOやってます achiku です。 2022/08/04に、株式会社UPSIDERさま・株式会社BASEさまと合同で「Tech Meetup 〜Goで作る決済サービス〜」というイベントを開催いたしました。200名近くの方からお申込いただき、ありがとうございました! upsider.connpass.com このイベントでは、Go言語を使って決済サービスを開発する3社が集まり、セッションやディスカッションで各社の事例や知見を共有しました。Go × 決済という共通点を持つ3社ならではの苦労や裏話を聞ける、とても有意義な時間となりました。ご一緒させていただいたUPSIDERさ…
2年前
記事のアイキャッチ画像
バンドルカードと Pool のカードが 3D セキュアに対応しました
カンムテックブログ
バンドルカードの SRE をしている summerwind です。最近は A Philosophy of Software Design を読んでいます。 タイトルの通り、2022年6月21日からバンドルカードと Pool のカードが 3D セキュアに対応しました。バンドルカードではアプリですぐに発行可能なバーチャルカードを含む全てのカードで対応しているので、気軽により多くの加盟店での決済にご利用いただけるようになりました。 いつもはバンドルカードのインフラやセキュリティといった領域を担当しているのですが、3D セキュアの対応では久しぶりにバックエンドエンジニアとして自分もプロダクト開発に関わ…
2年前
記事のアイキャッチ画像
バンドルカードの本人確認改善の取り組み
カンムテックブログ
デザイナーの@torimizunoです。 この記事では、バンドルカードでの本人確認改善の取り組みについて、プロジェクトチームの活動の一部をご紹介します。 バンドルカードの本人確認とは バンドルカードの本人確認 バンドルカードのバーチャルカードは本人確認不要で利用を開始できますが、リアル+カードを発行する場合は利用上限額が上がるため、本人確認手続きが必要になります。 本人確認手続きの詳細はお伝えできないのですが、手続きの一部として、本人確認書類と撮影した本人確認書類と本人情報をご提出いただき、本人であるかの確認を行います。(以降、「本人確認」と呼びます) 確認及び一定の審査が完了すると、カードの…
2年前
記事のアイキャッチ画像
社内イベント: エディタについて語る会で Vim script と ISO8583 の話をしました
カンムテックブログ
エンジニアの佐野です。最近記事を書いていなかったので小ネタです。先日、菅原企画の社内イベント、エディタについて語る会が催されました。職種にもよりますがカンムでは多くの従業員はオンラインで業務を行っています。たまにはオフラインで交流も...ということで来れる人はオフィスに集まってエディタの話をしつつ軽食を楽しむというコンセプトです。 当日は Vim, Emacs, Visual Studio Code, nano... と様々なエディタのゆるい話から熱い話が語られました。私は Vim の Vim script について話したので今日はそれを記事化します。 0. 私とエディタ 私は長らく Vim …
2年前
記事のアイキャッチ画像
Go Conference 2022 Spring: クイズ ISO 8583 Message Challange の紹介と解説
カンムテックブログ
バンドルカードのバックエンドやインフラを担当しているエンジニアの summerwind です。最近は WebAssembly と JIT に興味があります。 4月23日に開催された Go Conference 2022 Spring ではカンムのメンバーが Go に関する内容で登壇しました。セッションで紹介したスライドは以下で参照できます。将棋プログラミングについては自分もまったく知らない世界の話だったのでとても興味深かったです。 今回のイベントにはカンムもスポンサーとして参加させていただき、今回もオフィスアワーの催しとして Go を使ったクイズ「ISO 8583 Message Challa…
2年前
記事のアイキャッチ画像
カンムは SRE NEXT 2022 にスポンサーとして参加します #srenext
カンムテックブログ
こんにちは!カンムでエンジニア採用を担当している @ayapoyo です。 ついに今週土曜・日曜は SRE NEXT の開催日ですね! 今回はじめての参加になるのでいまからワクワクしております! sre-next.dev ゴールドスポンサーとして協賛します! 今回カンムで初めて SRE NEXT にスポンサーとして参加させていただきます! カンムは運営する『バンドルカード』は500万ダウンロードを突破、2022年には手元の資産形成に活用できるクレジットカード『Pool』をリリース予定と、サービスが拡大していく中でより信頼性の高い決済インフラを構築していくことが求められます。 今回のスポンサーを…
2年前
記事のアイキャッチ画像
カンムのセキュリティ事情
カンムテックブログ
こんにちは、livaです。 カンムでセキュリティエンジニアやってます。入社してから半年程度経った今はPCI DSSの監査準備だったり優先度高めにした施策をOKRに落とし込んで手を動かしたりと慌ただしく動いてます。 初執筆のテックブログでなにを書こうかなと考えていて、3月の末に出たPCI DSSv4がいいかとも思ったんですが、読むだけで一苦労だったので諦めました。あとからゆっくり読みます。 今回はカンムの今と将来のセキュリティ事情を書こうと思います。 入社前の想定 面接や面談時にいくつか課題を聞いていて、大きく2つになるのかなーと考えてました。 1. PCI DSSの運用の課題 カンムはクレジッ…
2年前
記事のアイキャッチ画像
カンムは Go Conference 2022 Spring にスポンサーとして参加します #GoConference #gocon
カンムテックブログ
こんにちは!カンムでエンジニア採用を担当している @ayapoyo です。 ついに今週土曜日は Go Conference 2022 Spring の開催日! 今回もスポンサーとして参加させていただきます。 gocon.jp シルバースポンサーやります ʕ◔ϖ◔ʔ 2021年に引き続き、今回もスポンサーとして Go Conference に参加させていただきます! カンムが展開する "バンドルカード" そして新規事業の "Pool" のバックエンドは Go メインで開発しており、このイベントを通して Go コミュニティの発展に寄与できればと思っています 💳 kanmu.co.jp エンジニアが…
2年前
記事のアイキャッチ画像
カンム流朝会最適化#1 『確率モデル編』
カンムテックブログ
はじめに こんにちは、カンムでバンドルカードの機械学習部分を担当している fkubota です。(ちなみに機械学習エンジニアめっちゃ探してます👀) 前回の記事から日が経ってしまいました。 あれから、沖縄に移住する(2月に)などプライベートで大きめのイベントが多発して忙しく過ごしていました。 そのせいもあり新しい技術に触れるような時間が少なくてなかなかテックブログネタが思いつかなかったのですが、朝会で不便を感じていたのでテックでいい感じにしたろ!と思い立ち勢いで書きます。 前回の記事も朝会についてでした。 カンム流『朝会』をやってみたら予想以上にウケが良かった件 ざっと概要を話すと、 リモートで…
2年前
記事のアイキャッチ画像
カンムにおけるGitHub Projects Beta活用方法
カンムテックブログ
マニアックなSQLに続き2回目の登場、COOの achiku です。 これは カンムでは GitHub Projects (Beta) を利用してプロダクト改善を推進している。Private Betaの時点から使い始めてから約4ヶ月、今の運用に落ち着いてから約2ヶ月程度経過したため、導入の目的、目的を鑑みた運用方法、現時点での状態をまとめる。誰かの参考になれば嬉しい。 ※以降断りのない場合はGitHub ProjectsもしくはProjectsはGitHub Projects (Beta)を指す ※同様に以降断りのない場合はprはGitHub上のPull Requestを指す 前提(2022/…
2年前
記事のアイキャッチ画像
TFLintを使ったterraformのチェックとカスタムルールの設定
カンムテックブログ
インフラエンジニアの菅原です。 カンムはサービスの運用にAWSを使用し、そのリソースの管理にterraformを使用しています。 リソースの定義はGitHub上でコードとして管理されているので、何かリソースを追加する場合はプルリクエストを作成してレビューを受けることになるので、運用のポリシーに反するようなリソースの作成はある程度防ぐことができます。 しかしレビューはあくまで人の目によるものなので、チェックが漏れてしまうこともあります。 また「RDSは必ず暗号化すること」などのルールはCIで機械的にチェックして欲しいところです。 そこでカンムではtflintを導入してチェックの自動化を行うように…
2年前
記事のアイキャッチ画像
ECSとDatadogを使ったネットワーク機器のモニタリング
カンムテックブログ
インフラエンジニアの菅原です。 カンムはバンドルカードというVisaプリペイドカードのサービスを提供していますが、Visaと決済情報をやりとりするためにオンプレミスのサーバと通信しています。 カンムのサービスはAWS上で構築されており、AWSとオンプレミスのサーバの通信はAWS Direct Connectを経由してます。 また、ネットワーク制御のためスイッチとしてCisco CatalystとJuniper SRXを使用しています。 ネットワーク機器は通常のサーバと同様になにかしらの問題が発生することがあるため、SNMPによるメトリクスの収集やSNMPトラップでのイベントの検知が必要になりま…
2年前