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
Vidéo : https://www.youtube.com/watch?v=kszDwRlU3ho
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.

Julien Landuré

May 03, 2022
Tweet

More Decks by Julien Landuré

Other Decks in Programming

Transcript

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

    Group - Zenika GDG Cloud Nantes & DevFest Organizer devfest.gdgnantes.com
  2. 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
  3. 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
  4. 2017: AKS & EKS 2016: Kubernetes adoption by CNCF 2015:

    GKE 2014: Kubernetes 2013: Docker 2008: LXC 2007: cgroups
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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)
  13. 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
  14. 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
  15. • 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
  16. • 👍 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