Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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! ○ スケールアウトが自在だからコスパも高い

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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