KubeCon EU 2016: Heroku to Kubernetes

26
From Heroku to Kubernetes : A production use case Antoine Legrand Smaine Kahlouch Arkena 2016

Transcript of KubeCon EU 2016: Heroku to Kubernetes

Page 1: KubeCon EU 2016: Heroku to Kubernetes

From Heroku to Kubernetes :A production use case

Antoine Legrand Smaine Kahlouch

Arkena 2016

Page 2: KubeCon EU 2016: Heroku to Kubernetes

2

AGENDA

• Presentation of Arkena

• Former Hosting plateform on Heroku, why to leave ?

• Is kubernetes able to provide similar features as Heroku ?

• Migration steps

• Project lessons

• Deployment tools

Page 3: KubeCon EU 2016: Heroku to Kubernetes

WHO WE AREYOUR TRUSTED MEDIA PARTNER

3

A TDF Group Business Unit

• 16 POPs CDN

• 1 Tbps connectivity

• 400 live radios & 360 live TVs

• 630 hours of On Demand video processed daily

• United Kingdom• Norway• USA

• Finland• Denmark• Poland

• France• Spain• Sweden

13 Offices in 9 Countries

A team of 400 employees

At a glance

Page 4: KubeCon EU 2016: Heroku to Kubernetes

ARKENA OTT / CDN A UNIQUE EUROPEAN PRESENCE, ESPECIALLY FRANCE AND NORDICS

5

Content management

User accounts management

Content processing & protection

Page 5: KubeCon EU 2016: Heroku to Kubernetes

6

HEROKU KEY FEATURES

• No need to worry about the underlying infrastructure

• Easy to scale apps

• Full application stacks are easy to install with Heroku addons

• Easy to iterate from dev to production

Page 6: KubeCon EU 2016: Heroku to Kubernetes

7

CONTEXT

• Our VOD plateform gets increasingly successful with our clients

• The Heroku Costs became significant

• Are we able to keep the same features as Heroku on Bare-Metal ?

Page 7: KubeCon EU 2016: Heroku to Kubernetes

8

FEATURES REQUIREMENTS

• High availability and scalability

• Log management

• Monitoring

• Network performances

Page 8: KubeCon EU 2016: Heroku to Kubernetes

8

KUBERNETES CHOICE

• Kubernetes looked promising

• Deep investigation on kubernetes features

• POC validation

Page 9: KubeCon EU 2016: Heroku to Kubernetes

10

FEATURES REQUIREMENTS

• High availability and scalability

Page 10: KubeCon EU 2016: Heroku to Kubernetes

10

HIGH AVAILABILITY & SCALABILITY

• Pods and Replication controllers

• Quickly increase the number of replicas

• Horizontal pod autoscaling

• Multi datacenters architecture

• Database replication

Page 11: KubeCon EU 2016: Heroku to Kubernetes

12

FEATURES REQUIREMENTS

• High availability and scalability

• Log management

Page 12: KubeCon EU 2016: Heroku to Kubernetes

13

LOGS MANAGEMENT

• Kubernetes DaemonSet

• Log processing

• Reliable transport and storage

• Kibana WebUI

Page 13: KubeCon EU 2016: Heroku to Kubernetes

14

FEATURES REQUIREMENTS

• High availability and scalability

• Log management

• Monitoring

Page 14: KubeCon EU 2016: Heroku to Kubernetes

14

MONITORING

• Kubernetes Health checks

• Shinken servers (alerting)

• Data performances metrics : Influxdb with Heapster

• NewRelic hosted monitoring solution

Page 15: KubeCon EU 2016: Heroku to Kubernetes

16

FEATURES REQUIREMENTS

• High availability and scalability

• Log management

• Monitoring

• Network performances

Page 16: KubeCon EU 2016: Heroku to Kubernetes

16

ARKENA'S KUBERNETES CLUSTER

• 2 distinct kubernetes clusters (1 per datacenter)

• 12 nodes (Total: 288 cpus and 1152G of memory)

• Haproxy loadbalancers

• Multi-tenant database server

• Network plugin: Calico

Page 17: KubeCon EU 2016: Heroku to Kubernetes

19

MIGRATION STEPS FROM HEROKU

1. Deploy application stack on kubernetes

2. Copy Heroku's database on Arkena's db servers

3. Configure Heroku app to use Arkena's database server

4. QA tests (rollback if any problem)

5. Update the DNS

6. Keep both platforms running during a validation period

Page 18: KubeCon EU 2016: Heroku to Kubernetes

23

PROJECT PROGRESS ISSUES

• It's important to involve all teams.

• Not clear recomandations on High availability and upgrade procedure

• Ecosystem tools are still young

Page 19: KubeCon EU 2016: Heroku to Kubernetes

20

KUBESPRAY

• Open Source project to deploy a kubernetes cluster (Baremetal, AWS and GCE)

• Current supported network plugins : Weave, Flannel & Calico. Coming soon : Romana and Opencontrail

• Support most popular Linux distributions (CoreOS, Centos/RHEL, Debian/Ubuntu)

• Continuous Integration tests. About 60 3-nodes clusters per day

Page 20: KubeCon EU 2016: Heroku to Kubernetes

21

KPM APPS DEPLOYMENT

• Deploy full application stack

• Dependency management

• Reproducible and versionned deployment

• Ready to use application registry

Page 21: KubeCon EU 2016: Heroku to Kubernetes

22

KPM KEY FEATURES

• One command line to install an app stack

• Super easy packaging http://kpm.kubespray.io

kpm install heapster

Page 22: KubeCon EU 2016: Heroku to Kubernetes

22

NEXT STEPS

• Ubernetes

• Continuous Deployment (Openshift, DEIS …)

• Network policies enforcement

• Custom metrics Autoscaling

Page 23: KubeCon EU 2016: Heroku to Kubernetes

23

CONCLUSION

• Successful migration from Heroku to Kubernetes on production

• Technical teams are very interested on Kubernetes

• Better resources management

• Greatly reduced infrastructure costs

Page 24: KubeCon EU 2016: Heroku to Kubernetes

24

THANK YOU !

Page 25: KubeCon EU 2016: Heroku to Kubernetes

25

LINKS

Kubespray : https://docs.kubespray.io

Kubespray CI : https://travis.kubespray.io

Kpm : https://github.com/kubespray/kpm

Network benchs : https://smana.kubespray.io

French community : https://www.kubernetes-fr.org

Page 26: KubeCon EU 2016: Heroku to Kubernetes

26

About us

System engineer and Devops

Work ExperienceSmaine is a senior technical lead and devops engineer at Arkena with 10 years experience in Devops, Linux and open source softwares.He built several streaming plateforms (CDN, OTT) and he's currently in charge of the engineering of Arkena's OTT Plateform.Furthermore he's the Ansible Paris meetup organizer and had talks on different topics (Docker, Kubernetes, Ansible).

Smaine Kahlouch Antoine Legrand

Lead software engineer

Work ExperienceAntoine Legrand is a senior software engineer with 7 years experience.He designs and leads the development of Arkena's video-on-demand platform used by large Broadcasters (Tf1, BeIn Sports, Elisa....).He's an open source softwares addict and co-author of kubespray.io project.