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

App Engine 2nd generation runtimes

App Engine 2nd generation runtimes


Guillaume Laforge

July 30, 2019


  1. App Engine Standard 2nd generation runtimes Guillaume Laforge Google Cloud,

    Developer Advocate @glaforge
  2. Popular Languages Node.js, Java, Ruby, Go, Python, PHP Application Versioning

    Host multiple versions of your app Create dev, test, staging, prod environments Google App Engine a powerful serverless platform, to build apps that scale automatically Fully Managed Fully managed environment Focus on code, App Engine manages infra Monitoring, Logging & Diagnostics Stackdriver for application diagnostics, debugging and monitoring Traffic Splitting Route incoming requests to different app versions A/B testing, Incremental feature rollouts Application Security Access rules with App Engine firewall Custom domains with managed SSL/TLS certs Popular Languages Fully Managed Monitoring, Logging & Diagnostics Application Versioning Traffic Splitting Application Security
  3. From… to... 2008 2019

  4. Second Generation Runtimes More idiomatic code bases More portable applications

    More up-to-date runtimes </>
  5. gVisor Sandbox https://gvisor.dev/

  6. More idiomatic code bases Past limitations are gone! Python •

    Use Python 3 instead of Python 2 • Any Python web framework • Install arbitrary 3rd party dependencies (incl. native) • Access the file system • Spawn background threads • Use Google Cloud client libraries </>
  7. More idiomatic code bases Past limitations are gone! Java •

    Use Java 11 instead of Java 8 • Any web framework (incl. non-Servlet based) • No more class whitelist (Java2D, threads, sockets…) • XML configuration → YAML configuration • Customize entrypoint ◦ JVM fine-tuning, executable JARs </>
  8. More portable applications Old App Engine built-in APIs ⇒ standalone

    cloud solutions • Datastore → Cloud Datastore, Cloud Firestore, Cloud SQL • Blobstore → Cloud Storage • Cron → Cloud Scheduler • Task Queues → Cloud Tasks • Logging → Stackdriver Logging • Memcache → Cloud Memorystore
  9. More up-to-date runtimes And double the memory! Python 2.5 /

    3.7 Java 8 / 11 ß Node.js 10 PHP 5.5 / 7.2 / 7.3 Ruby 2.5 ß Go 1.11 / 1.12
  10. Java 11 Micronaut Apache Groovy PostgreSQL Demo #1

  11. Node.js with Headless Chrome Demo #2

  12. Ruby on Rails Demo #3

  13. Thank you! cloud.google.com/appengine @glaforge