Pipelines & Pods: DevOps with Kubernetes

72
1 Pipelines & Pods: DevOps with Kubernetes Burr Sutter (burrsutter.com) @burrsutter - bit.ly/pipes-n-pods http://bit.ly/kubernetes-tutorial http://bit.ly/istio-tutorial http://bit.ly/knative-tutorial

Transcript of Pipelines & Pods: DevOps with Kubernetes

1

Pipelines & Pods: DevOps with KubernetesBurr Sutter (burrsutter.com)

@burrsutter - bit.ly/pipes-n-pods

http://bit.ly/kubernetes-tutorialhttp://bit.ly/istio-tutorialhttp://bit.ly/knative-tutorial

@burrsutter

Burr Sutter (burrsutter.com)● Red Hat’s Global Director of Developer Experience● Featured speaker at technology events around the globe● A Java Champion since 2005● Former President of the Atlanta Java User Group● Founded the DevNexus conference● Always looking for technologies that enable Dev&Ops to

deliver better software, faster

● bit.ly/kubernetes-tutorial● bit.ly/istio-tutorial● bit.ly/knative-tutorial

@burrsutter - bit.ly/pipes-n-pods

Kubernetes, Istio & Knative (and Tekton)

https://www.oreilly.com/live-training/Control-F and search for "burr"

Kubernetes Basics(9 Steps to Awesome)

Istio(Enter the Service Mesh)

Knative(Kubernetes Serverless)

@burrsutter - bit.ly/pipes-n-pods

bit.ly/istiobook

2nd Edition

@burrsutter

DevOps

Self-Service,On-Demand,

Elastic Infrastructure

Automation

CI & CDDeployment

Pipeline

AdvancedDeploymentTechniques

Advanced

Microservices

Journey to Awesomeness

@burrsutter - bit.ly/pipes-n-pods

Your Journey to Awesomeness

Self-Service,On-Demand,

Elastic Infrastructure

Automation CI & CDDeployment

Pipeline

AdvancedDeploymentTechniques

MicroservicesRe-Org to DevOps

@burrsutter - bit.ly/pipes-n-pods

@burrsutter - bit.ly/pipes-n-pods

@burrsutter - bit.ly/pipes-n-pods

@burrsutter - bit.ly/pipes-n-pods

DEV QA STAGE PROD

The Pipeline

@burrsutter - bit.ly/pipes-n-pods

Our Apps

MyApp

@burrsutter - bit.ly/pipes-n-pods

The Application

@burrsutter - bit.ly/pipes-n-pods

Modules

@burrsutter - bit.ly/pipes-n-pods

Microservices

@burrsutter - bit.ly/pipes-n-pods

Microservices

@burrsutter - bit.ly/pipes-n-pods

Microservices

@burrsutter - bit.ly/pipes-n-pods

Microservices

@burrsutter - bit.ly/pipes-n-pods

Network of Services

@burrsutter - bit.ly/pipes-n-pods

Microservices own their Data

@burrsutter - bit.ly/pipes-n-pods

bit.ly/mono2microdb

@burrsutter - bit.ly/pipes-n-pods

Multiple Points of Entry

@burrsutter - bit.ly/pipes-n-pods

Kubernetes Pods

@burrsutter - bit.ly/pipes-n-pods

Pipeline Pod Delivery

@burrsutter - bit.ly/pipes-n-pods

Love Thy Mono

Old School New School

@burrsutter - bit.ly/pipes-n-pods

Love Thy Mono

Every 4 months Every week/day/hour

@burrsutter - bit.ly/pipes-n-pods

@burrsutter - bit.ly/pipes-n-pods

Pod Replicaset/Deployment

Service Label

✓ 1+ containers✓ Shared IP✓ Shared storage (ephemeral)

✓ Shared resources✓ Shared lifecycle

✓ The Desired State - replicas,pod template: health checks, resources,image

✓ Grouping of pods (acting as one) has stable virtual IP and DNS name

✓ Key/Value pairs associated with Kubernetes objects(env=production)

Kubernetes TermsPersistent

Volume

✓ Network available storage

✓ PVs and PVCs

@burrsutter - bit.ly/pipes-n-pods

Image: quay.io/images/custservice:1.1.0Replicas: 2Labels: customerservice=prod,ci_build=1213ConfigMap: cust_config

@burrsutter - bit.ly/pipes-n-pods

Image: quay.io/images/custservice:1.1.0Replicas: 2Labels: customerservice=prod,ci_build=1213ConfigMap: cust_config

@burrsutter - bit.ly/pipes-n-pods

Dev

Ops

Kubernetes API

@burrsutter - bit.ly/pipes-n-pods

Out-of-the-Box Kinds

kind:ConfigMap

kind:Deployment

kind:Service

@burrsutter - bit.ly/pipes-n-pods

Custom Kinds

kind:ConfigMap

kind:Deployment

kind:Service

kind:VirtualService

kind:ServerlessService

kind:Pipeline

@burrsutter - bit.ly/pipes-n-pods

Even more Custom Kinds

kind:ConfigMap

kind:Deployment

kind:Service

kind:VirtualService

kind:ServerlessService

kind:Pipeline

kind:Kafka

kind:Integration

Strimzi.io

Camel-K

@burrsutter - bit.ly/pipes-n-pods

Even more Custom Kinds

kind:ConfigMap

kind:Deployment

kind:Service

kind:VirtualService

kind:ServerlessService

kind:Pipeline

kind:Kafka

kind:Integration

Strimzi.io

Camel-K

Istio.io

Tekton.dev

@burrsutter - bit.ly/pipes-n-pods

tekton.devistio.io knative.dev

@burrsutter - bit.ly/pipes-n-pods

Istio - Sail(Kubernetes - Helmsman or ship’s pilot)

istio.iobit.ly/istio-tutorial

@burrsutter - bit.ly/pipes-n-pods

Code Independent (Polyglot)

• Intelligent Routing and Load-Balancing• Smarter Canary Releases • Dark Launch

• Chaos: Fault Injection• Resilience: Circuit Breakers• Observability & Telemetry: Metrics and Tracing• Security: Encryption & Authorization• Fleet wide policy enforcement

Next Generation Microservices - Service Mesh

@burrsutter - bit.ly/pipes-n-pods

tekton.devbit.ly/knative-tutorial

@burrsutter - bit.ly/pipes-n-pods

• Governed by the Continuous Delivery Foundation (cd.foundation)• Contributions from Google, Cloudbees, IBM, Pivotal, Red Hat and more• Originated from the Knative Build subproject• Build your linux container images in-cluster• Automate deployments• Defines new Kinds via CRDs: Pipeline, Task • Reusable Tasks (https://github.com/tektoncd/catalog)

• git clone• mvn, bazel, s2i (python, ruby, etc)• "docker build" (buildah, kaniko, makisu)

Pipelines - Tekton

@burrsutter - bit.ly/pipes-n-pods

Pipeline

Pipelines, Tasks, Steps, Resources

Task

Step

Step

Task

Stepgit image cluster

Task

Step

Step

PipelineResource

PipelineResource

@burrsutter - bit.ly/pipes-n-pods

@burrsutter - bit.ly/pipes-n-pods

• Blue/Green part of base Kubernetes/OpenShift• Percentages not based on pod count - Canary Deployment• Smart Canaries• Dark Launch

Istio Traffic Control

@burrsutter - bit.ly/pipes-n-pods

Blue/Green Deployment

@burrsutter - bit.ly/pipes-n-pods

DEVELOPMENT QA STAGING PRODUCTION ROUTER USERS

BUILDSCM

Blue/Green Deployment

@burrsutter - bit.ly/pipes-n-pods

DEVELOPMENT QA STAGING PRODUCTION ROUTER USERS

BUILDSCM

Blue/Green Deployment

@burrsutter - bit.ly/pipes-n-pods

Blue/Green Deployment

DEVELOPMENT QA STAGING PRODUCTION ROUTER USERS

BUILDSCM

@burrsutter - bit.ly/pipes-n-pods

Blue/Green Deployment

DEVELOPMENT QA STAGING PRODUCTION ROUTER USERS

BUILDSCM

@burrsutter - bit.ly/pipes-n-pods

DEVELOPMENT QA STAGING PRODUCTION ROUTER USERS

BUILDSCM

Blue/Green Deployment

@burrsutter - bit.ly/pipes-n-pods

DEVELOPMENT QA STAGING PRODUCTION ROUTER USERS

SCM

Blue/Green Deployment

@burrsutter - bit.ly/pipes-n-pods

DEVELOPMENT QA STAGING PRODUCTION ROUTER USERS

SCM

Blue/Green Deployment

x

@burrsutter - bit.ly/pipes-n-pods

DEVELOPMENT QA STAGING PRODUCTION ROUTER USERS

SCM

Blue/Green Deployment

@burrsutter - bit.ly/pipes-n-pods

CanaryDeployment

@burrsutter - bit.ly/pipes-n-pods

@burrsutter - bit.ly/pipes-n-pods

DEVELOPMENT QA STAGING PRODUCTION ROUTER USERS

SCM

Canary Deployment

@burrsutter - bit.ly/pipes-n-pods

DEVELOPMENT QA STAGING PRODUCTION ROUTER USERS

SCM

Canary Deployment

@burrsutter - bit.ly/pipes-n-pods

DEVELOPMENT QA STAGING PRODUCTION ROUTER USERS

SCM

Canary Deployment

@burrsutter - bit.ly/pipes-n-pods

DEVELOPMENT QA STAGING PRODUCTION ROUTER USERS

SCM

Canary Deployment

@burrsutter - bit.ly/pipes-n-pods

DEVELOPMENT QA STAGING PRODUCTION ROUTER USERS

SCM

Canary Deployment

@burrsutter - bit.ly/pipes-n-pods

DEVELOPMENT QA STAGING PRODUCTION ROUTER USERS

SCM

Canary Deployment

@burrsutter - bit.ly/pipes-n-pods

DEVELOPMENT QA STAGING PRODUCTION ROUTER USERS

SCM

Canary Deployment

@burrsutter - bit.ly/pipes-n-pods

DEVELOPMENT QA STAGING PRODUCTION ROUTER USERS

SCM

Canary Deployment

@burrsutter - bit.ly/pipes-n-pods

DEVELOPMENT QA STAGING PRODUCTION ROUTER USERS

SCM

Canary Deployment

@burrsutter - bit.ly/pipes-n-pods

DEVELOPMENT QA STAGING PRODUCTION ROUTER USERS

SCM

Canary Deployment

@burrsutter

Dark

Active

Dark Launch

@burrsutter

DEVELOPMENT QA STAGING PRODUCTION ROUTER USERS

BUILDSCM

Dark Launch

@burrsutter

DEVELOPMENT QA STAGING PRODUCTION ROUTER USERS

BUILDSCM

Dark Launch

@burrsutter

Dark Launch

DEVELOPMENT QA STAGING PRODUCTION ROUTER USERS

BUILDSCM

@burrsutter

Dark Launch

DEVELOPMENT QA STAGING PRODUCTION ROUTER USERS

BUILDSCM

@burrsutter

DEVELOPMENT QA STAGING PRODUCTION ROUTER USERS

BUILDSCM

Dark Launch

@burrsutter

DEVELOPMENT QA STAGING PRODUCTION ROUTER USERS

SCM

Dark Launch - Mirroring

@burrsutter

DEVELOPMENT QA STAGING PRODUCTION ROUTER USERS

SCM

Dark Launch - Monitoring the Mirror

X

@burrsutter - bit.ly/pipes-n-pods

http://bit.ly/9stepsawesomehttp://bit.ly/kubernetes-tutorialhttp://bit.ly/istio-introhttp://bit.ly/istio-tutorialhttp://bit.ly/serverless-kubehttp://bit.ly/knative-tutorial (includes Tekton)

Resources