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

Разворачиваем приложение в AppEngine

Разворачиваем приложение в AppEngine

Александр Хаёров (Ingram Micro, unit-manager) @ Moscow Python №40

Поделится техническим докладом с кодом и командами и покажет, как развернуть свой первый проект в GAE. Продемонстрирует, как адаптироватьDocker Cats vs Dogs voting application к разворачиванию в PaaS и проведёт слушателей по процессу разворачивания.

Видео: http://www.moscowpython.ru/meetup/40/razvorachivaem-prilozhenie-v-appengine/

Moscow Python Meetup

November 24, 2016
Tweet

More Decks by Moscow Python Meetup

Other Decks in Programming

Transcript

  1. Our application Voting-app GET / voting-app POST / vote: a

    rpush voter_id, vote •Flask (python 2.7-alpine) •Gunicorn •Redis (TCP)
  2. New project on cloud.google.com Install Google Cloud Platform SDK (gcloud)

    runtime: python27 api_version: 1 threadsafe: true handlers: - url: / script: app.app - url: /static static_dir: static Create app.yaml file
  3. ⇒ gcloud app deploy --project catsdogsvote You are about to

    deploy the following services: - catsdogsvote/default/20161120t203231 (from [example-voting-app/vote/app.yaml]) Deploying to URL: [https://catsdogsvote.appspot.com] Beginning deployment of service [default]... File upload done. Updating service [default]...done. Deployed service [default] to [https://catsdogsvote.appspot.com] goto https://catsdogsvote.appspot.com
  4. Collecting Flask (from -r requirements.txt (line 1)) Using cached Flask-0.11.1.tar.gz

    … Running setup.py install for Flask ... done Running setup.py install for Redis ... done Running setup.py install for gunicorn ... done Successfully installed Flask Jinja2-2.8 MarkupSafe-0.23 Redis Werkzeug click gunicorn itsdangerous-0.24 ⇒ virtualenv ./env && pip install -r requirements.txt #fixme Create appengine_config.py from google.appengine.ext import vendor vendor.add('env/lib/python2.7/site-packages') ⇒ gcloud app deploy --project catsdogsvote
  5. rps-instances/time t, secs rps 1k 100 Count: 321612 Load: line(1,

    1000, 10m) const(100, 5m) HTTP codes Count Percent 200 - OK 65.2% (430490) 500 - Error 32.2% (212734) ??? - Error 2.6% (17306) workload 300 600 created instances 183 Response time distribution time, s quantile 12000 100 5000 87 1000 71 500 63 350 41 150 4