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

新規事業の開発メンバーが1人→n人に増えるのを支えた技術 / Technology that supported growing number of engineers in new business

Sansan
October 23, 2019

新規事業の開発メンバーが1人→n人に増えるのを支えた技術 / Technology that supported growing number of engineers in new business

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

■登壇概要
タイトル:新規事業の開発メンバーが1人→n人に増えるのを支えた技術

登壇者:
新規事業開発室 加藤耕太

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

Sansan

October 23, 2019
Tweet

More Decks by Sansan

Other Decks in Business

Transcript

  1. View Slide

  2. Sansan Builders Box
    o
    Ih P
    6

    Agenda

    View Slide

  3. &
    2 y6 6yo
    2 o y6
    4 10 6 o
    6 to

    View Slide

  4. View Slide

  5. Sansan Builders Box
    M
    Sansan Eight DSOC CSIRT
    CTO /
    CPO
    150


    View Slide

  6. B2B t
    o
    t 1 4

    View Slide

  7. Sansan Builders Box


    PdM: Product Manager

    View Slide

  8. Sansan Builders Box

    TypeScript , Next.js, React, Redux
    BFF (Backend for Frontend)
    Python, Django

    Kotlin, Ktor

    View Slide

  9. Sansan Builders Box
    o / n
    App Engine
    Frontend
    App Engine
    BFF
    App Engine
    Backend
    Cloud SQL Cloud Storage
    Cloud Tasks
    Cloud Functions
    a
    d
    Stackdriver
    Cloud Build
    CI / CD /
    ConvertAPI

    View Slide

  10. 4

    View Slide

  11. Sansan Builders Box
    6 6 ID:1 6 ID:2 6 Ih 2
    ID:1 6 S
    o 6 6 S
    3,000 6 Ih
    n

    View Slide

  12. Sansan Builders Box
    h 2
    h
    n

    View Slide

  13. Sansan Builders Box
    2019-10
    2019-04
    2018-12
    1
    4
    6
    o

    View Slide

  14. Sansan Builders Box
    1 4
    o he 2
    Ih
    6
    2 6

    View Slide

  15. Sansan Builders Box
    o
    Facebook 6e

    View Slide

  16. M

    View Slide

  17. Sansan Builders Box
    1. 6 r6 6
    2. CI
    3. 8Kotlin9
    4. I
    5. App Engine o
    M

    View Slide

  18. Sansan Builders Box
    6 r6
    6 r6 6
    n 6 r6 Ih
    1
    1.

    View Slide

  19. Sansan Builders Box
    TypeScript
    Prettier
    Python
    Black
    Kotlin
    IntelliJ IDEA r6 6

    View Slide

  20. Sansan Builders Box
    VS Code
    .vscode/settings.json
    IntelliJ IDEA
    Save Actions Plugin
    .idea/saveactions_settings.xml
    n {
    "editor.formatOnSave": true,
    "python.pythonPath": ".venv/bin/python",
    "python.formatting.provider": "black",
    "python.linting.pylintEnabled": false,
    "python.linting.flake8Enabled": true
    }










    />


    View Slide

  21. Sansan Builders Box
    r6 IhPR 6 o
    Ih
    r6 6 6 h
    6 S

    View Slide

  22. Sansan Builders Box
    1. 6 r6 6
    2. CI
    3. 8Kotlin9
    4. I
    5. App Engine o
    M

    View Slide

  23. Sansan Builders Box
    h I
    Cloud Build 8TypeScript9
    1
    2. CI

    View Slide

  24. Sansan Builders Box
    GCP CIy6
    YAML o Ih Docker

    Cloud Build

    View Slide

  25. Sansan Builders Box
    cloudbuild.yaml
    next.config.js
    Cloud Build o t
    steps:
    - dir: frontend-service
    name: 'gcr.io/cloud-builders/nodejs/yarn'
    args: ['install']
    - dir: frontend-service
    name: 'gcr.io/cloud-builders/nodejs/yarn'
    args: ['build']
    const ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin')
    ...
    webpack(config, options) {
    // TypeScript Ih
    if (process.env.NODE_ENV === 'production' && options.isServer) {
    config.plugins.push(new ForkTsCheckerWebpackPlugin())
    }
    return config
    },

    View Slide

  26. Sansan Builders Box
    Cloud Build h
    : https://cloud.google.com/cloud-build/docs/run-builds-with-github-checks
    PS 2 I

    View Slide

  27. Sansan Builders Box
    1. 6 r6 6
    2. CI
    3. 8Kotlin9
    4. I
    5. App Engine o
    M

    View Slide

  28. Sansan Builders Box
    y6 6yo
    6
    S1 o y6 Kotlin
    Python → Kotlin
    1 +
    3. Kotlin K

    View Slide

  29. Sansan Builders Box
    S Ih P

    Ih eh 6
    S h h
    Python Web
    t

    View Slide

  30. Sansan Builders Box

    Standard 2 o


    Google App Engine
    o
    Java 11 (Beta) Java
    Kotlin
    Scala
    Go 1.12 Go
    Node.js TypeScript
    Kotlin
    • 6 h


    https://cloud.google.com/appengine/docs/standard/runtimes?hl=ja

    View Slide

  31. Sansan Builders Box
    a
    Python → Kotlin
    App Engine
    Frontend
    App Engine
    BFF (Python)
    App Engine
    Backend (Kotlin)
    App Engine
    Frontend
    App Engine
    Backend (Python)
    o Kotlin S 2
    Python BFF S
    a
    Before
    After

    View Slide

  32. Sansan Builders Box
    6 P

    View Slide

  33. Sansan Builders Box
    1. 6 r6 6
    2. CI
    3. 8Kotlin9
    4. I
    5. App Engine o
    M

    View Slide

  34. Sansan Builders Box
    →DB→ Ih 6 6
    h 6 S Ih
    aJSON Ih o
    1
    4. o 4

    View Slide

  35. Sansan Builders Box
    o
    Home
    Controller
    Test
    User
    Controller
    Test
    Admin
    Controller
    Test
    DB (PostgreSQL)
    tenant_homecontrollertest
    tenant_usercontrollertest
    tenant_admincontrollertest

    View Slide

  36. Sansan Builders Box
    CI oID
    Home
    Controller
    Test
    Home
    Controller
    Test
    DB (PostgreSQL)
    tenant_e04168c-homecontrollertest
    tenant_de7fbf4-homecontrollertest
    e04168c
    de7fbf4

    View Slide

  37. Sansan Builders Box
    json-fuzzy-match o P
    #uuid #string e 6s6 I
    JSON
    JsonStringAssert.assertThat(response.content).jsonMatches("""
    {
    "id": "#uuid",
    "title": "Example Book",
    "price": "9.99",
    "currency": "USD",
    "amount": 10,
    "timestamp": "#string"
    }
    """.trimIndent())
    https://github.com/orangain/json-fuzzy-match

    View Slide

  38. Sansan Builders Box
    h S h

    View Slide

  39. Sansan Builders Box
    1. 6 r6 6
    2. CI
    3. 8Kotlin9
    4. I
    5. App Engine o
    M

    View Slide

  40. Sansan Builders Box
    6 h
    S h 6 eh h
    GitHub pushIh 2 oIhe
    1
    5. App Engine n

    View Slide

  41. Sansan Builders Box
    GitHub pushIh 2 o 2 n
    n
    https://buildersbox.corp-sansan.com/entry/2019/10/01/110000

    View Slide

  42. Sansan Builders Box
    6 n h 2 h

    View Slide

  43. Sansan Builders Box
    GCP
    o
    3

    View Slide

  44. Sansan Builders Box
    App Engine Flexible oIh
    Flexible 2 n S 1o
    8 r 2o 9 h
    o n Ih 2 o
    S h S P
    6 S
    8 9 PS h e Ih

    View Slide

  45. View Slide

  46. Sansan Builders Box
    h 2

    PS h e Ih
    PS S
    8 9
    2 h S h

    View Slide

  47. Sansan Builders Box
    6
    Ih
    S
    M

    View Slide

  48. Sansan Builders Box
    P h Ih

    View Slide

  49. Pt P

    View Slide

  50. Sansan Builders Box
    We are hiring!!
    https://jp.corp-sansan.com/recruit/midcareer#engineer

    View Slide

  51. View Slide