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

Kubernetes Days - Productive Team with Microser...

Kubernetes Days - Productive Team with Microservices, Serverless, Knative

Avatar for Yoga Hanggara

Yoga Hanggara

March 01, 2022
Tweet

More Decks by Yoga Hanggara

Other Decks in Technology

Transcript

  1. Yoga Hanggara Head of Engineering at Jabar Digital Service Topics

    • Software craftsmanship (clean code, clean architecture) • Agile • DevOps, Cloud Native About me @yohang / +6285729402579 https://www.linkedin.com/in/yoga-hanggara/ [email protected]
  2. Agenda • Introduction: Kubernetes the hard way • What is

    Knative? • Overview, Getting Started, and Case studies • Q&A
  3. Kubernetes is powerful • High Availability • Scalability • Zero

    downtime, rolling updates • Self-healing • etc. Kubernetes dank memes. https://twitter.com/memenetes Kubernetes the hard way
  4. Initial setup checklist: • Bare-metal, VM, to Container (stateful, stateless,

    12-factor apps, etc) • Service orchestration, High availability • Networking • Distributed, persistent storage • Security, Secrets, RBAC • Debugging, observability (logging, metric, tracing) • Read: Kelsey Hightower Kubernetes The Hard Way Kubernetes dank memes. https://twitter.com/memenetes Kubernetes the hard way
  5. How to deploy new app/service: • Pods • ReplicaSet •

    Replication Controller • Deployment • Daemonset • StatefulSet • Job and CronJob • Ingress, etc Kubernetes dank memes. https://twitter.com/memenetes Kubernetes the hard way
  6. Operating is also hard. Routing, traffic management. Observability. Scaling. etc.

    Kubernetes dank memes. https://twitter.com/memenetes Kubernetes the hard way
  7. What is Knative? TL;DR What is Knative? • Abstraction for

    deploy, manage, and operating services/modern workloads in k8s cluster. • Serverless!
  8. Highlights What is Knative? • Stand up scalable, secure, stateless

    services in seconds. • Focused API with higher level abstractions for common app use-cases. • Pluggable components let you bring your own logging and monitoring, networking, and service mesh. • Run Knative anywhere Kubernetes runs, never worry about vendor lock-in. • Seamless developer experience, supports GitOps, DockerOps, ManualOps, etc..
  9. Knative Components What is Knative? Build Serving Eventing • Configurable

    and flexible approach to building source code into containers. • Pluggable approach leveraging Dockerfiles or built templates. • No cross-compiling or need for local build tools. • Support for cached artifacts for faster builds. • Allow your organization to utilize spare capacity for better resource usage. • Higher level abstraction, easy to reason about the object model. • Seamless autoscaling based on HTTP requests. • Gradual rollouts for new revisions. • Integrates networking and service mesh automatically. • Pluggable: connect your own logging and monitoring platform. • Event-driven architecture. • Universal subscription, delivery, and management of events. • Build loosely coupled, event-driven systems with high-level objects. • Declarative binding between event producers and event consuming services. • Scalable from just a few events to live streams. • Custom event pipelines to connect with your own existing systems.
  10. Knative Components: Serving What is Knative? • Rapid deployment of

    serverless containers. • Autoscaling including scaling pods down to zero. • Support for multiple networking layers such as Ambassador, Contour, Kourier, Gloo, and Istio for integration into existing environments. • Point-in-time snapshots of deployed code and configurations. Knative Kubernetes Custom Resource Definitions (CRDs) https://knative.dev/docs/serving/
  11. Service definition What is Knative? apiVersion: serving.knative.dev/v1 kind: Service metadata:

    name: helloworld namespace: default spec: template: spec: containers: - image: gcr.io/knative-samples/helloworld-go env: - name: TARGET value: "Go Sample v1" Magic: orchestrator for Route and Configuration
  12. Deploy new service What is Knative? $ kubectl apply -f

    helloworld-service.yaml $ kubectl get ksvc NAME URL helloworld http://helloworld.default.1.2.3.4.sslip.io
  13. Traffic routing management What is Knative? apiVersion: serving.knative.dev/v1 kind: Route

    metadata: name: helloworld-route namespace: default spec: traffic: - revisionName: v1 percent: 80 - revisionName: v2 percent: 20 Ease the use of modern test and deployment processes, like green-blue and canary deployments.
  14. Knative Components: Eventing What is Knative? Knative Eventing provides tools

    for routing events from event producers to sinks, enabling developers to use an event-driven architecture with their applications. • Standard HTTP POST requests to send and receive events between event producers and sinks. • CloudEvents specifications, creating, sending, and interacting with events from any programming language.
  15. Knative Components: Eventing What is Knative? • Event sources (AWS

    SQS, Kafka, RabbitMQ, etc). • Broker and Trigger • Channel and Subscription • Event registry
  16. 1. Deploy faster without hard-to-find, specialized expertise. Why Knative? •

    Developers like to make things. Happier developers don’t spend their lunch hours on job boards. • Enhance productivity for experts outside the IT department, ex: Data department, etc.
  17. 2. Realize the promise of DevOps. Why Knative? • More

    than breaking silos between developer and operations. • Encourage the use of modern test and deployment processes: Green-blue, canary deployments, etc. • Built-in observability (metrics, logging, tracing).
  18. 3. Create flexibility when choosing cloud vendors • No vendor

    lock-in. • Offers better cost control, auto-scaling (pay-as-you-go). • Open source, strong community support and trust. Why Knative?
  19. Knative: Make your developers more productive Knative components build on

    top of Kubernetes, abstracting away the complex details and enabling developers to focus on what matters. Built by codifying the best practices shared by successful real-world implementations, Knative solves the "boring but difficult" parts of deploying and managing cloud native services so you don't have to. (tedious tasks) For 5-minutes onboarding, try yourself: https://knative.dev/docs/getting-started/ Source: Knative Docs Overview & Getting started
  20. We’re Hiring • Backend Engineer • Frontend Engineer • SRE

    / DevOps Engineer • Software QA • Software Architect • etc. Send your best portfolio to [email protected] Visit https://digitalservice.jabarprov.go.id/karir/