JAN WILLIES Global Kubernetes Lead at Accenture Technology jan.willies@accenture.com CLOUD-NATIVE APPLICATION DEVELOPMENT/ARCHITECTURE SVEN MENTL Cloud-native at Accenture Technology ASG sven.mentl@accenture.com
SNEAK PEEK Microservices Docker Kubernetes Helm Cloud-native Demo App We will touch on these topics with the goal to provide a sense for what cloud-native entails. Some prior knowledge about containers and Microservices might be helpful, but is not assumed. We will spend a little bit of time on the terminal and you might see source code. Don't say we didn't warn you ;)
DEV AND OPS Image from: https://turbonomic.com/blog/on-turbonomic/it-operations-application-owners-why-cant-we-be-friends/
OUTSIDE VIEW http://vote.containercluster.net/ http://result.containercluster.net/ https://github.com/dockersamples/example-voting-app
THE APP A Python webapp which lets you vote between two options A Redis queue which collects new votes A.NET worker which consumes votes and stores them in A Postgres database backed by a Docker volume A Node.js webapp which shows the results of the voting in real time https://github.com/dockersamples/example-voting-app
MICROSERVICES ARCHITECTURE Many smaller and loosely coupled services, divided by multiple projects Organized around business capabilities and not around technology layers Best-of-breed data store for a service s requirements over shared data store Microservices are deployed independently Lightweight communication between services instead of intra-process communication Allows polyglot programming API Interface Business Logic Data Repository Order Service API Interface Business Logic Data Repository Shipping Service
CHANGE REQUEST COMING IN.. CR: Change the left background color to green and the right background color to red on the results screen. Marketing department figured out that by using a green color on the results screen for the option the company would like to win and a red color for the option we would like to loose the voting behavior can be influenced positively (whatever that means).
RECAP: WHAT IS A CONTAINER Image from: https://www.docker.com/what-container#/virtual_machines
RECAP: BENEFITS OF CONTAINERS AGILITY COST SAVINGS PORTABILITY SECURITY DEPLOY AND SCALE IN MINUTES Accelerate deployment times Seamless scalability IT efficiency OPEX AND CAPEX SAVINGS Infrastructure optimization and consolidation Reduce VMs and OS licensing costs Accelerated path to cloud APP PORTABILITY IN MINUTES No changes to existing environment Frictionless dev to prod workflow Cloud portability SECURE APPS AT SCALE Secure app isolation Application trust across the lifecycle Vulnerability and thread scanning Production deployments in 7 minutes, fully automated (*) 1:3 to 1:5 reduction in the number of VMs/servers (*) Migrate application across hosts and providers without even modifying the container Full control for building, packaging, shipping and running applications on a common runtime and management plane (*) sources: Accenture client implementations
DEV WORK DONE CLOUD-NATIVE RIGHT? Image from: http://www.developermemes.com/2013/12/13/worked-fine-dev-ops-problem-now/
CONTAINERS NEED TO BE MANAGED Image from: https://hbfs.wordpress.com/2011/10/11/the-complexity-of-containers/
KUBERNETES TO THE RESCUE According to https://kubernetes.io/:
KUBERNETES CONCEPTS What is a Pod? Collection of containers Unit of scheduling Shared Resources Network Namespace PID Namespace Volumes There are many others Image from https://kubernetes.io/docs/concepts/workloads/pods/pod-overview/
MANIFESTS https://github.com/kubernetes/ website/blob/master/docs/userguide/nginx-deployment.yaml
HELM Chart: Collection of Kubernetes resource files Repository: Collection of released Charts, queriable via HTTP/REST Release: A chart installed in a Kubernetes Cluster becomes a release. Commands helm search helm install helm list helm repo add, list, remove, index
CLOUD NATIVE NARROW DEFINITION Micro-services oriented Container packaged Dynamically managed
CLOUD NATIVE COMPUTING FOUNDATION
DISRUPTIVE OR EVOLUTIONARY? From the keynote A Brief History of the Cloud at LinuxCon Europe 2016 by Dan Kohn, Executive Director of the Cloud Native Computing Foundation