Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Azureで新サービスやってます/Building a new product on Micr...

Sansan
November 12, 2018

Azureで新サービスやってます/Building a new product on Microsoft Azure

■イベント
Sansan Builders Box 2018
https://jp.corp-sansan.com/sbb2018/

■登壇概要
タイトル:「Azureで新サービスやってます」
登壇者:Sansan事業部 プロダクト開発部 開発マネージャー 神原 淳史

▼Sansan Builders Box
https://buildersbox.corp-sansan.com/

Sansan

November 12, 2018
Tweet

More Decks by Sansan

Other Decks in Technology

Transcript

  1. Sansan Builders Box Agenda - Why Customer Intelligence? - What’s

    Customer Intelligence? - Why Azure? - Why Microservices?
  2. Sansan Builders Box 顧客管理しようにも顧客情報が • 汚い 問い合わせフォーム, アンケート回答, 営業の⾛り書き… •

    ⾜りない 業種・業態は? 売上は? 当社と取引がある? • 分散している CRM / SFA, MA, ERP, 会計, ⼿元のExcel… Customer pain points
  3. Sansan Builders Box 顧客管理しようにも顧客情報が • 汚い 問い合わせフォーム, アンケート回答, 営業の⾛り書き… •

    ⾜りない 業種・業態は? 売上は? 当社と取引がある? • 分散している CRM / SFA, MA, ERP, 会計, ⼿元のExcel… → 名刺管理で⼀定の改善が可能 Customer pain points
  4. Sansan Builders Box - 企業の顧客を統合管理 - いつ - 誰が -

    どの会社の - 誰と会ったのか - ⼈脈DBを簡単に構築 名刺管理とは
  5. Sansan Builders Box - Serverless - Messaging & Pub/Sub -

    Schemaless data - Fulltext search → どのプラットフォームでもマネージドサービスの組み合わせで実現可能 想定するアーキテクチャ設計
  6. Sansan Builders Box Serverless FaaSにおける開発⽣産性が最重要 開発⽣産性: 静的型付け⾔語 > 動的型付け⾔語 ※もちろん「状況に依る」が様々な状況を考慮してこう考えた、という話

    → Cloud FunctionsでのサポートがJavaScript (Node.js) のみなGCPが脱落 (最終的にメイン⾔語としてC#を採⽤しています ) 開発⽣産性
  7. Sansan Builders Box Azureを選んでどうだったか (現場の声) - C#に優しい - ADとの統合で権限管理 -

    Resource Group便利 - Resource Manager秀逸 - Table Storage激安 - DevOps (旧VSTS) 便利 - Durable Functions - Reserved Instance柔軟 - 監視 - メトリックが… - Alertが… - FunctionsのC#以外のサポート - ポータル: 重い、permalinkない - 課⾦周りで罠多すぎ
  8. Sansan Builders Box Conwayの法則を逆⼿に取って組織的スケーラビリティを確保する l૊৫ͷઃܭ͢ΔγεςϜʹ͸ ... ͦͷ૊৫ͷίϛϡχέʔγϣϯߏ଄Λͦͷ··൓ө͠ ͨઃܭʹͳΔͱ͍͏੍໿͕͋Δz (Conwayͷ๏ଇ) →

    逆に⾔うと「システム設計はコミュニケーション構造そのものになる」 要は「強制的に分割可能性を確保する」ことにより 開発チームを増やしても全体の⽣産性が上がらない問題の発⽣を防ぐ Microservicesの⼀般的な⽬的
  9. Sansan Builders Box メリット - 個々のfunctionをいつでも⽌められる - function単位でscale out /

    in & up / down可能 - エラーになった箇所から再実⾏可能 デメリット - 設計がいちいち難しい - 冪等性, 結果整合性など⾮同期分散処理の複雑さのため 基本形: Azure Functionsをmessage queueで繋ぐ
  10. Sansan Builders Box Martin Fowler先⽣の「Microservidesの前提条件」 • 迅速なプロビジョニング • 基本的なモニタリング •

    アプリケーションの迅速なデプロイ めっちゃハードル⾼いやん… Microservices的にやってみての学び
  11. Sansan Builders Box Martin Fowler先⽣の「Microservidesの前提条件」 • 迅速なプロビジョニング → Functions •

    基本的なモニタリング → Application Insights & Monitor • アプリケーションの迅速なデプロイ → DevOps めっちゃハードル⾼いやん… → 意外と何とかなる Microservices的にやってみての学び
  12. Sansan Builders Box 2014年頃から各クラウドベンダーがマネージドサービスによる Microservicesサポートに投資してきた結果、 2018年現在ではだいぶ楽になっている模様 Cloud Native Architecture /

    Kubernetesが盛り上がっているけど サービスが育つまでは使わなくて戦えるんじゃないかな Microservices的にやってみての学び