Continuous delivery while migrating to Kubernetes

Similar documents
Kubernetes: Twelve KeyFeatures

Bitnami s Kubernetes Projects Leverage Application delivery on Next Generation Platforms

Kuber-what?! Learn about Kubernetes

Kubernetes 101. Doug Davis, STSM September, 2017

KUBERNETES IN A GROWN ENVIRONMENT AND INTEGRATION INTO CONTINUOUS DELIVERY

Code: Slides:

A day in the life of a log message Kyle Liberti, Josef

10 Kube Commandments

Deployment Strategies on Kubernetes. By Etienne Tremel Software engineer at Container February 13th, 2017

Scheduling in Kubernetes October, 2017

Building a Kubernetes on Bare-Metal Cluster to Serve Wikipedia. Alexandros Kosiaris Giuseppe Lavagetto

Kubernetes. Introduction

CONTAINERS AND MICROSERVICES WITH CONTRAIL

WHITE PAPER. RedHat OpenShift Container Platform. Benefits: Abstract. 1.1 Introduction

Introduction to Kubernetes

How to Re-Architect without Breaking Stuff (too much) Owen Garrett March 2018

Kubernetes. An open platform for container orchestration. Johannes M. Scheuermann. Karlsruhe,

What s New in K8s 1.3

Developing Kubernetes Services

The Long Road from Capistrano to Kubernetes

gcp / gke / k8s microservices

Note: Currently (December 3, 2017), the new managed Kubernetes service on Azure (AKS) does not yet support Windows agents.

OpenShift 3 Technical Architecture. Clayton Coleman, Dan McPherson Lead Engineers

Important DevOps Technologies (3+2+3days) for Deployment

What s New in K8s 1.3

NGINX: From North/South to East/West

Cloud I - Introduction

An Introduction to Kubernetes

ENHANCE APPLICATION SCALABILITY AND AVAILABILITY WITH NGINX PLUS AND THE DIAMANTI BARE-METAL KUBERNETES PLATFORM

OpenShift Dedicated 3 Release Notes

Kubernetes made easy with Docker EE. Patrick van der Bleek Sr. Solutions Engineer NEMEA

VMware Integrated OpenStack with Kubernetes Getting Started Guide. VMware Integrated OpenStack 4.1

Efficiently exposing apps on Kubernetes at scale. Rasheed Amir, Stakater

Kubernetes deep dive

Disclaimer This presentation may contain product features that are currently under development. This overview of new technology represents no commitme

Microservices. Chaos Kontrolle mit Kubernetes. Robert Kubis - Developer Advocate,

Federated Prometheus Monitoring at Scale

Application Centric Microservices Ken Owens, CTO Cisco Intercloud Services. Redhat Summit 2015

Building an on premise Kubernetes cluster DANNY TURNER

Kubernetes Ingress Virtual Service Configuration

What s New in Red Hat OpenShift Container Platform 3.4. Torben Jäger Red Hat Solution Architect

Services and Networking

Building Kubernetes cloud: real world deployment examples, challenges and approaches. Alena Prokharchyk, Rancher Labs

Life of a Packet. KubeCon Europe Michael Rubin TL/TLM in GKE/Kubernetes github.com/matchstick. logo. Google Cloud Platform

Kubernetes introduction. Container orchestration

More Containers, More Problems

S Implementing DevOps and Hybrid Cloud

How to build scalable, reliable and stable Kubernetes cluster atop OpenStack.

Kubernetes Ingress Virtual Service Configuration

Zero to Microservices in 5 minutes using Docker Containers. Mathew Lodge Weaveworks

Disclaimer This presentation may contain product features that are currently under development. This overview of new technology represents no commitme

Distributed CI: Scaling Jenkins on Mesos and Marathon. Roger Ignazio Puppet Labs, Inc. MesosCon 2015 Seattle, WA

A Comparision of Service Mesh Options

Delivering Kubernetes Apps with Helm. Michelle Adnan Adam

CHALLENGES IN A MICROSERVICES AGE: MONITORING, LOGGING AND TRACING ON OPENSHIFT. Martin Etmajer Technology May 4, 2017

Container Orchestration on Amazon Web Services. Arun

Disclaimer This presentation may contain product features that are currently under development. This overview of new technology represents no commitme


Scaling Jenkins with Docker and Kubernetes Carlos

Continuous Delivery of Micro Applications with Jenkins, Docker & Kubernetes at Apollo

FD.io VPP & Ligato Use Cases. Contiv-VPP CNI plugin for Kubernetes IPSEC VPN gateway

Ingress Kubernetes Tutorial

Accelerate at DevOps Speed With Openshift v3. Alessandro Vozza & Samuel Terburg Red Hat

Implementing SaaS on Kubernetes

Containers, Serverless and Functions in a nutshell. Eugene Fedorenko

Advanced Continuous Delivery Strategies for Containerized Applications Using DC/OS

Cloud providers, tools and best practices in running Magento on Kubernetes. Adrian Balcan MindMagnet Software

Question: 2 Kubernetes changed the name of cluster members to "Nodes." What were they called before that? Choose the correct answer:

Containers Infrastructure for Advanced Management. Federico Simoncelli Associate Manager, Red Hat October 2016

A REFERENCE ARCHITECTURE FOR DEPLOYING WSO2 MIDDLEWARE ON KUBERNETES

DevOps + Infrastructure TRACK SUPPORTED BY

Wolfram Richter Red Hat. OpenShift Container Netzwerk aus Sicht der Workload

Infoblox IPAM Driver for Kubernetes. Page 1

Launching StarlingX. The Journey to Drive Compute to the Edge Pilot Project Supported by the OpenStack

Cloud & container monitoring , Lars Michelsen Check_MK Conference #4

Package your Java Application using Docker and Kubernetes. Arun

Disclaimer This presentation may contain product features that are currently under development. This overview of new technology represents no commitme

Kubernetes Integration with Virtuozzo Storage

Taming Distributed Pets with Kubernetes

Kubernetes: What s New

So, I have all these containers! Now what?

Containers OpenStack. Murano brings Docker & Kubernetes to OpenStack. Serg Melikyan. software.mirantis.com. January 27, 2015

DEVELOPER INTRO

Two years of on Kubernetes

The Art of Container Monitoring. Derek Chen

Service Mesh and Microservices Networking

Infoblox IPAM Driver for Kubernetes User's Guide

Kuberiter White Paper. Kubernetes. Cloud Provider Comparison Chart. Lawrence Manickam Kuberiter Inc

Overview of Container Management

Kubernetes on Openstack

From development to production

DevOps Technologies. for Deployment

UP! TO DOCKER PAAS. Ming

OpenShift Roadmap Enterprise Kubernetes for Developers. Clayton Coleman, Architect, OpenShift

Open Service Broker API: Creating a Cross-Platform Standard Doug Davis IBM Shannon Coen Pivotal

Spark and Flink running scalable in Kubernetes Frank Conrad

100% Containers Powered Carpooling

Docker All The Things

EASILY DEPLOY AND SCALE KUBERNETES WITH RANCHER

Beyond 1001 Dedicated Data Service Instances

Transcription:

Continuous delivery while migrating to Kubernetes Audun Fauchald Strand Øyvind Ingebrigtsen Øvergaard @audunstrand @oyvindio

FINN Infrastructure History Kubernetes at FINN Agenda Finn Infrastructure As A Service Migration of Applications Conclusions and Questions

What is FINN Marketplace Cars, real estate, bits-and-pieces, travel, jobs Norway s second largest website Part of Schibsted

120 developers 350 microservices 1200 deployments pr week 6 minutes (median) from push to deploy

FINN Infrastructure History Kubernetes at FINN Finn Infrastructure As A Service Migration of Applications Conclusions and Questions

Services 3 350 Virtual Machines 10s 100s Developers 40 130 Deployments 1/week 1000/week We have outgrown our infrastructure and deployment system

Continuous Delivery at FINN.no over time

Containers

Scheduling: Where should my container run? Lifecycle and health: Keep the container running despite failures Discovery: Where is my container now? Monitoring: What is happening with my container? Auth{n,z}: Who can do what with my container? Aggregates: Compose containers into jobs Scaling: Manage variable load

FINN Infrastructure History Kubernetes at FINN Finn Infrastructure As A Service Migration of Applications Conclusions and Questions

master api-server controller-manager scheduler kubelet kube-proxy docker On premise The hard way before it was cool Private cloud to bare metal Google container engine node kubelet kube-proxy docker node kubelet kube-proxy docker node kubelet kube-proxy docker https://en.wikipedia.org/wiki/file:geisel-library.jpg (Ben Lunsford, CC BY-SA 2.0)

Google Container Engine Extremely easy cluster provisioning Less ops overhead Might be harder to integrate with existing infrastructure Latency (Legal)

FINN Infrastructure History Kubernetes at FINN Finn Infrastructure As A Service Migration of Applications Conclusions and Questions

FIAAS Finn Infrastructure As A Service

FIAAS - Solving FINN.no s problems

26% Current adoption rate of FIAAS at FINN

Layering business applications Kubernetes On-premise Google Container Engine Platform Services Helm pipeline platform services Business Applications FIAAS pipeline kubernetes

load balancer Contracts app a v2 user traffic app-config deployment deployment metrics app a v1 logs load balancing service discovery node service discovery scaling secrets healthchecks app b v3 logs met + rics persistent disk

Kubernetes manifests vs. fiaas.yaml 147 loc --apiversion: extensions/v1beta1 kind: Deployment metadata: annotations: deployment.kubernetes.io/revision: "81" generation: 168 labels: app: finnlet-server fiaas/deployed_by: "20161013140423" fiaas/version: o5m3dbca9u0m1ds2mlqgprsv3v name: finnlet-server namespace: default spec: replicas: 10 selector: matchlabels: app: finnlet-server strategy: rollingupdate: maxsurge: 1 maxunavailable: 1 type: RollingUpdate template: metadata: annotations: prometheus.io/path: /internal-backstage/prometheus prometheus.io/port: http prometheus.io/scrape: "true" creationtimestamp: null labels: app: finnlet-server fiaas/deployed_by: "20161013140423" fiaas/version: o5m3dbca9u0m1ds2mlqgprsv3v name: finnlet-server namespace: default spec: containers: - env: 9 loc --version: 2 replicas: 10 ports: - target_port: 8080 healthchecks: liveness: http: path: /internal-backstage/health/ The contract between applications and infra More flexibility in changing underlying infra Convention over configuration Smart defaults in code - not templates

$ git push Deployment Deployable config file: fiaas.yaml image: $team/$app:$version Fiaas deploy daemon - operator Process Package deployable Pipeline post to kafka topic Deploy daemon subscribes to topic Deploy daemon creates k8s resources build is done Travis CI Pipeline deploy this docker image using this fiaas.yml apiserver create resour ces fiaas deploy daemon deployment is done & all pods are healthy

Observability Logging Elasticsearch fluentd Kibana Metrics Prometheus Grafana Generic app dashboard fiaas-canary

FINN Infrastructure History Kubernetes at FINN Finn Infrastructure As A Service Migration of Applications Conclusions and Questions

Adapting apps 12 factor health checks resource constraints secrets ingress

https://flic.kr/p/85vwwp Washington Department of Transportation CC BY-NC-ND 2.0

app.k8s.svc.finn.no finn.no/app slb HAproxy managed by puppet app.k8s.svc.finn.no finn.no/app k8slb HAproxy ingress controller unleash feature toggles legacy infra User traffic ingress kubernetes

Feature toggles migrate percentages of user/client traffic at the load balancer at the client

Useful metrics response time per call response status per call resource usage app specific metrics

Conclusions

Questions? Øyvind Ingebrigtsen Øvergaard @oyvindio oyvind.overgaard@gmail.com Audun Fauchald Strand @audunstrand audunstrand@gmail.com