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

Cloud Run... everything you need without K8S - France DevOps

Cloud Run... everything you need without K8S - France DevOps

Lien France Devops : https://www.francedevops.fr/webinars/cloud-run-tout-ce-quil-faut-sans-k8s
Twitter: https://twitter.com/jlandure/status/1519978014536347649
Linkedin: https://www.linkedin.com/feed/update/urn:li:activity:6925743103995752448/

Docker est arrivé en 2016 en France permettant de packager nos applications facilement. Il a fallu maîtriser les concepts de Docker : commandes, isolation, optimisation des layers etc.

Ensuite, la solution leader d'orchestration Kubernetes est arrivée permettant de scaler ces containers. Pour permettre à K8S de gérer correctement un nom de domaine en TLS, livrer de façon transparente en production, faire du test A/B, il faut là encore retrousser les manches.

Basé sur le projet Open Source Knative, Cloud Run est LA solution parfaite pour déployer des conteneurs et permet de gérer tout ça : autoscaling, gestion du traffic et bien d'autres fonctionnalités !

Faisons un tour des petits plus de cette solution : nous y trouvons la majorité des features d'un Kubernetes sans Kubernetes. Je vous partagerai mon expérience et essaierai de montrer pourquoi les solutions Serverless & Cloud Run sont l'avenir.

2e4c5b50c932d746d0a060047df5f6f9?s=128

Julien Landuré

May 03, 2022
Tweet

More Decks by Julien Landuré

Other Decks in Programming

Transcript

  1. Cloud Run… everything you need without K8S France DevOps

  2. Julien Landuré @jlandure jlandure.dev Google Developer Expert - Cloud CTO

    Group - Zenika GDG Cloud Nantes & DevFest Organizer devfest.gdgnantes.com
  3. Back to the future...

  4. App Engine in 2010

  5. App Engine One of the first PaaS Limited runtimes Need

    specific libraries Vendor lock in Easy deployment Custom domain name Traffic splitting between versions Embed a stateful solution (datastore) Automatic CDN Scaling from 0 to N
  6. Value x Complexity

  7. App Engine

  8. Containerization

  9. Docker in 2016

  10. Docker Universal package manager Dockerfile syntax Installation of Docker &

    CLI Daemon options & linux concepts Security Open Source Reproductible & ephemeral concepts Work with any runtime Start containers quickly Very Popular: many images & cloud services available
  11. Value x Complexity

  12. None
  13. 2017: AKS & EKS 2016: Kubernetes adoption by CNCF 2015:

    GKE 2014: Kubernetes 2013: Docker 2008: LXC 2007: cgroups
  14. Orchestration

  15. Kubernetes in 2018

  16. Kubernetes Container orchestration at scale New concepts: pods, services etc.

    Yaml syntax Popular: well documented Supported by all cloud providers Made to solve scaling issues Pet vs Cattle Desired State vs Actual State
  17. Value x Complexity

  18. Wait! Kubernetes can do so much...

  19. Kubernetes… again Container orchestration at scale Automated rollouts and rollbacks

    Health checking Load Balancing Custom domain & traffic splitting with Traefik Service Mesh with Istio Scale from 0 with Knative or KEDA Runtime security with Falco Upgrade components Stateful objects Backup Security IAM Pricing
  20. Value x Complexity

  21. Kubernetes

  22. Serverless

  23. Cloud Run in 2019 Cloud Functions App Engine Cloud Run

  24. Cloud Run One of the first serverless container solution HTTP

    only (gRPC) Need IaC to deploy a complete infra Container contract - Listen on 0.0.0.0 - HTTP server must start < 4 min - Request time < 60 min - Stateless - No background activity Pricing Model Easy deployment Custom domain name Traffic splitting between versions Portability of containers Buildpacks available Scaling from 0 to N No vendor lock in with Knative
  25. Value x Complexity

  26. Serverless computing refers to the concept of building and running

    applications that do not require server management. It describes a finer-grained deployment model where applications, bundled as one or more functions, are uploaded to a platform and then executed, scaled, and billed in response to the exact demand needed at the moment. Serverless definition https://github.com/cncf/wg-serverless/tree/master/whitepapers/serverless-overview
  27. Value x Complexity

  28. Cloud Run

  29. Virtual Machine OS Application Runtime Application Virtual Hardware Dedicated Server

    OS Application Runtime Application Virtual Hardware Containers OS Application Runtime Application Virtual Hardware Functions Functions Functions Application Platform OS Application Runtime Application Virtual Hardware Functions Serverless OS Application Runtime Application Virtual Hardware Functions Infrastructure Container Platform Function Compute Engine Kubernetes Engine App Engine Cloud Functions On-Premises Serverless Zone Physical Hardware Cloud Run
  30. Containers Any language Any library Any binary Ecosystem of base

    images .js .rb .go .py .sh … 0 1 0 1 0 0 1 1 1
  31. Cloud Run Fully managed, deploy your workloads and don’t see

    the cluster. Cloud Run on Anthos Deploy into Anthos, run serverless side-by-side with your existing workloads. Knative Everywhere Use the same APIs and tooling anywhere you run Kubernetes with Knative. Serverless containers with Knative & Cloud Run
  32. Container contract Listen on 0.0.0.0 on port $PORT (default 8080)

    HTTP server must start < 4 min (timeout → 504) Request time < 60 min (default → 5 min) Stateless (in-memory file system, doesn’t persist) Computation only within request (No background activity)
  33. Container resources 1 vCPU per container instance (configurable to 4vCPU)

    512 MiB of memory up to a max of 8 GiB (configurable) 80 concurrent requests per container (configurable 1-1000) 1000 max containers by default (configurable 1-1000) Access to a Metadata Server Sandboxed by gVisor
  34. Pay per use CPU / Memory / Requests 100ms Pay

    per use
  35. Good fit? Constraints? Good fit Stateless HTTP request-response workloads Scale:

    way up, down to zero, bursty Any runtime: any language, any dependencies, etc Constraints Must use containers No background tasks
  36. Demo 🤞

  37. • Cloud Run covers the majority of app use cases

    • One of the TOP project Google Cloud • Replacement of my beloved App Engine • Interoperable (supported by Knative/eventing) • Superior Dev Experience (local emulator & buildpacks) My point of view
  38. Serverless trends State of Serverless 2020 report

  39. • 👍 Kubernetes and Serverless can support each other •

    😱 Serverless container solutions are the future Cloud Run is one of the TOP project Google Cloud Release of AWS App Runner & Preview of Azure Container Instance • 💪 The right tool to do the right thing • 🤔 Find your way: more a Dev (Serverless World) or an Admin (K8S World) To sum up
  40. Thank You! Julien Landuré @jlandure jlandure.dev