emahiro/b.log

Drastically Repeat Yourself !!!!

Kyash meetup #2 Server Sideに参加してきた。

※ 公開していいところをザクッとメモった備忘録です。

Date/Place

2018/07/31@Kyash

kyash.connpass.com

開発環境をDockernizeした話

技術スタック

  • ServerSede:go
  • MicroService
  • AWS

開発環境の構築手順書

  • 手順書が実際の状況とsyncしていない。
  • AWSは編集後自動でバイナリにしてほしい。
    • GAEとかはできるけどAWSはできない。

Dokcerの構造

  • 各コンテナにIPを割り振っている。
  • DBにアクセスするときはIP制限をかけている。

Realize

Docker化してよかったこと

  • 構成管理をコード化
  • コマンド一発ですべての環境が立ち上がる。
  • Imageの共有

今後やりたいこと

  • AWSに直でアクセスしている箇所とかDocker化したい。
  • データ入りのDB Imageを提供できるにしていきたい。(一部なっている)

Kyashのシステム全容

Kyashはクレジットカードのissuer(発行者)でもある。 オーソリングとかクリアリングの業務について説明してもらった上で、

実際のシステム全容

  • WebAPI
  • フロントエンドプロセッサ(クレカ決済周り)-> ここ、HTTPじゃなくて独自のTCP喋っているらしく、ゴリゴリに実装しているらしいです。
    • VISA
    • QuickPay

が前段にいて、後ろにMicroservice群がいる。

決済、送金時自動チャージ

※ ここは非公開でした。

パネルディスカッション

※ 全部は載せてません。(追いきれなかったり、非公開情報もあり)

テストについて - 外部環境とのやりとり。 - 基本はmock。 - 外部とは繋がない。

  • リリース頻度とか?

    • 決められたリリースは2週間に一回。
    • サーバーサイド周りはサクサクリリースしてる。
  • 運用面

    • お問い合わせとか丁寧に応えるよね。
  • 負荷面

    • サーバー側はGoで書いてるのであんまり負荷という面はない。
    • DB側の最適化が足りてなかった。
  • APIドキュメントの運用は?

    • いい感じで運用はできてない。
    • 今はmarkdownAPIで管理している。
    • クライアント側はViewに集中している。
    • API部分はアプリエンジニアも書いていった方がいい?
      • アプリエンジニアもAPIのサービスを書いていったりもしている。
  • GoのFWは?

    • ginとかechoとか。
    • 標準のnet/httpを使ってるケースが多い。
    • GRPCに寄せていってる最中。
  • PosgreSQLの理由

    • 歴史的経緯
  • 新しくしたい部分とか?

    • GRPC化はしていきたい。
    • APIDocsもprotoファイルが大体できるし。
  • マイクロサービスの辛かったところ

    • マイクロサービスの切り方を変えようとしても、既存のアセットがガツガツ変わっていくので、結局マージできなかった...
  • APIは公開しないのか?

    • API公開は一プロダクトを出すのに等しい
      • ドキュメント
      • フォーラム

その他

お寿司美味しかったです。 オフィス見学させてもらえました。ルンバが掃除してて可愛かったです。。

社内のホワイトボードのクレジットカードのビジネスモデル全般からKyashのビジネスモデルをPMの方に俯瞰して説明してもらえました。
この領域、色んなプレーヤーが出揃いつつあるけど、みんなそれぞれ解釈を持ってキャッシュレスの世界に貢献していてとてもいい印象を受けました。

感想

とにかく少人数で回している事実がすごかったです。 そして結構公開ギリギリにことも話してくれたり、普段自分の使っているサービスの裏側を知るのはやはり面白いですね。

それにしてもクレジットカードビジネスの仕組み理解してなくて、ここを共通の業務知識として知った上で開発していることは本当にすごいと思いました。

そして最後にこれからもKyashをガンガン使っていこうと思いました。

kyash.co