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

5 years with Google App Engine

Yosuke
June 08, 2016

5 years with Google App Engine

appengine ja night #33のLTでの発表

Yosuke

June 08, 2016
Tweet

More Decks by Yosuke

Other Decks in Technology

Transcript

  1. 5 years with Google App Engine
    (GAEを5年本番運用して)
    Yosuke Suzuki
    Nikkei Inc.

    View Slide

  2. Who am I ?
    Yosuke Suzuki ( @yosukep )
    Python Engineer @ Nikkei Inc.
    Private work: Go / ReactNative / Pebble

    View Slide

  3. GAE in nikkei.com 日経電子版でのGAE利用
    ● 2011~
    ● Small application backends
    ○ スマホアプリのバックエンドとか小さめのサービスのAPI
    とかで利用
    ○ ただし、1日100万リクエスト以上をさばいているのもある
    ● Internal tools
    ○ 社内ツール用に利用、Slackへの通知

    View Slide

  4. Serverless? サーバーレスって???
    ● Without servers, we cannot do anything サーバーなかったら何もできないのでは
    ● "Serverless" is a buzzword?
    ● What important is that we can get servers in a second when we need them
    ○ 重要なのは必要なときに必要なサーバーをすぐに調達できる
    こと
    ○ GAE scales out in a second!
    ○ スケールアウトが自在だからコスパも高い

    View Slide

  5. Scale out くどいですがスケールアウトがすごい
    ● It takes a minute to start up a VM instance VMだと1分はかかりますよね
    ○ GAE/Python or GAE/Go scales out in a second
    ニュースサイトは、朝や昼にアクセスが集中するが勝手に対応してくれる
    3 instance ~ 15 instances, automatically managed

    View Slide

  6. Versions == Blue-Green Deployment
    ● Easy to check new features on production environment
    ● Rollback in seconds? これは割と時間かかるときも
    ● 同じこととを他社クラウドで実装しようとしたらけっこう手間
    かかった

    View Slide

  7. TaskQue ≒ Lambda + SQS
    ● Easy and scalable batch system 勝手にリトライしてくれて、決めた範囲で
    適当にスケールアウトしてくれる
    ● SQSだと値だけを積む感じだけど、処理と値を一緒に登録できる
    ● Lambdaもいいけど、TaskQueでだいぶ前からやってたこと

    View Slide

  8. Other features
    ● Easy admin authentication
    ○ 簡単なツールを作るときにすごい便利
    ○ API書いてJSでCRUD作るとか
    ● Dynamic image transforming
    ○ =s320-c って付けると長辺320の正方形で返す
    - url: /admin/.*
    script: _go_app
    login: admin
    secure: always
    app.yamlにこれ書くだけ
    https://lh3.googleusercontent.
    com/X3c0jAiFsXSWaXNEVXNvrnTfxx0M9Ib1lEA5bqdcLBO1
    f8PEbpOyCRqDKtxVs5PjcfvFPIsfb8OaulkC4g=s320-c

    View Slide

  9. Conclusions
    ● GAE has almost features we need to operate servers
    efficiently
    ○ GAEにはDevOpsで語られるような機能はほとんどある
    ■ CircleCIとか適当なCIサービス連携も簡単
    ○ しかも、何年も前から
    ○ 時代が追いついてきた

    View Slide

  10. Need improvement
    ● Latency
    ○ 東京からだと往復で最低で 300msec 追加される
    ○ 東京リージョンまだ?
    ● Python3
    ○ 来ない? Flexibleだけ?
    ● Datastore is fantastic but…
    ○ ありもののFW/アプリがそのまま動かない
    ○ クエリできるKVSだと思っておくのが無難

    View Slide

  11. We're hiring
    s.nikkei.com/saiyo
    ● APIエンジニア(Python/Elasticsearch/Machine Learning)
    ● フロントエンドエンジニア(ES6/Node.js)
    ● iOSエンジニア
    ● データ分析

    View Slide