Why to Cloud Native

A presentation at Innotech OKC in November 2018 in Oklahoma City, OK, USA by Karthik Gaekwad

Slide 1

Slide 1

Why to Cloud Native Karthik Gaekwad @iteration1 Principal Engineer, Oracle Cloud Innotech OKC

Slide 2

Slide 2

Hello • I’m Karthik Gaekwad • NOT a DBA • https://cloudnative.oracle.com/ • Cloud Native evangelist at Oracle Cloud • Previous: developer on the Oracle Managed Kubernetes Team. @iteration1

Slide 3

Slide 3

Hello • Been in Industry 15 years. • In general, I like building stuff with friends. • A maintainer for Gauntlt- Open source security scanner. • Love Teaching and building community. • Run Devopsdays Austin, Container Days, Cloud Austin. • Chair All Day Devops Cloud Native track. • LinkedIn Learning Author for Learning Kubernetes (and more).

Slide 4

Slide 4

Need an OCI Trial Account? http://bitly.com/ocicloud

Slide 5

Slide 5

My questions for you..

Slide 6

Slide 6

Agenda • What is cloud native? • Where are we today in the cloud native world? • The Cloud Native ecosystem. • Cloud Native adoption. • Challenges.

Slide 7

Slide 7

What is Cloud Native?

Slide 8

Slide 8

What is Cloud Native? “A new computing paradigm that is optimized for modern distributed systems environments capable of scaling to tens of thousands of self healing multi-tenant nodes” -Cloud Native Computing Foundation

Slide 9

Slide 9

Pillars of Cloud Native Continuous Delivery Devops Containers Microservices

Slide 10

Slide 10

Pillars of Cloud Native: Devops “DevOps is the practice of operations and development engineers participating together in the entire service lifecycle, from design through the development process to production support.” -The Agile Admin blog https://theagileadmin.com/what-is-devops/

Slide 11

Slide 11

Pillars of Cloud Native: Devops • Generally based on principles of CALMS • Based on the ideas of Automation, Measurement, Sharing • Emphasis on a Collaborative culture in organizations • Shifting operations more to the left. • Operations teams does more than just “server management” • Uses same techniques as developers for systems work

Slide 12

Slide 12

Pillars of Cloud Native: CD • Origins in the automation segment of Devops • Similar to Continuous Integration • Frequent code commits into source control • Run automated builds against each code commit • Result= Detecting errors quicker • Continuous Delivery • Step 1: Continuous Integration • Release code builds to end users • Result= ship software quicker to end users

Slide 13

Slide 13

Pillars of Cloud Native: Microservices

Slide 14

Slide 14

Microservices Design • Start with Twelve-Factor App design • https://12factor.net • Based on the principals of software design and deployment at Heroku • Development best practice that synergizes with devops engineers

Slide 15

Slide 15

Twelve Factor App • Principles: • Declarative formats for Automation • Clean Contracts with underlying systems • Able to deploy to modern cloud platforms • Keep your prod and dev systems similar • Easily scale up without changes to architecture, tooling, development etc. • 12 factor apps enable easy container integration

Slide 16

Slide 16

Pillars of Cloud Native: Containers • Way to package applications • Fits really well as a packaging strategy for microservices • Not a new concept • Popularized by the growth of Docker, and Kubernetes

Slide 17

Slide 17

Pillars of Cloud Native: Containers Core to Edge Docker Speed Efficiency Agility Kubernetes Phase I Developer Focus Container Adoption Focus Applications Automation Community Developer adoption Dev/Test apps Simple orchestration Individual developers Phase II DevOps Focus Application Deployment DevOps deployment Production apps Advanced orchestration Teams & lines of business Phase III Business Focus (end-to-end) Intelligent Operations End-to-end integration Digital business apps Serverless, DevSecOps, & ML Cloud native enterprises

Slide 18

Slide 18

Developer Trends in the Cloud: Open source Digital Ocean Survey, October 2018 Respondents=4300 https://www.digitalocean.com/currents/october-2018/

Slide 19

Slide 19

Evolution of Development and Deployment Development Process Application Architecture Deployment and Packaging Application Infrastructure Waterfall Monolithic Physical Server Datacenter Agile N-Tier Virtual Servers Hosted DevOps Microservices Containers Cloud ~ 1980 ~ 1990 ~ 2000 ~ 2010 Plan Monito r Now Code Operate Build Deply Test Release

Slide 20

Slide 20

Cloud Native Usecases

Slide 21

Slide 21

Key Container Use Cases Share Container Use Cases Orchestration Use Cases Development 65% Developer productivity; Consistent appstacks in Dev, Test & Production Automated deploys to accelerate application release cadence CI/CD/DevOps 48% Containerized dependencies; Container registries; Rolling updates and reversals Operations 41% Standardized environments for dev, testing and operations Resilient, self-healing systems; High Availability; Elastic Scalability Refactor Legacy Apps 34% Refactor from N-tier to portable containerized applications Run distributed, stateful apps on scale-out infrastructure Migrate to Cloud 33% Move entire appstacks and see them run identically in the cloud Cloud bursting; Reduce infrastructure costs by avoiding over-provisioning New Microservice Apps 32% Create small purpose-built services that can be assembled to scalable custom applications Dynamically manage large-scale microservices infrastructure SOURCE: THE EVOLUTION OF THE MODERN SOFTWARE SUPPLY CHAIN, DOCKER SURVEY 2016

Slide 22

Slide 22

New Technology?? Must Adopt!!

Slide 23

Slide 23

Business and Engineering

Slide 24

Slide 24

The Business Case for Cloud Native • Quicker Time to Deliver • Modernizing present day applications • Develop new applications quickly • Improve speed of innovation

Slide 25

Slide 25

Quicker Time To Deliver • Containers + Microservices allows for a common language between your development and operations teams • Shared Understanding… • Allows for IT in general to practice a devops culture • Less friction between various teams in the organization • Practicing Continuous Delivery allows you to ship faster • Process of making changes becomes easily • Reduces perceived risk of making changes

Slide 26

Slide 26

Modernizing present day applications • Shipping applications in containers reduces dependencies on underlying infrastructure • As a result, previous on premise applications can be exported to the cloud. • Kubernetes provides a single unified platform to deploy containers across all your infrastructure

Slide 27

Slide 27

Develop new applications quickly • Rich technical ecosystem. • Large community • Kubernetes and CNCF slack has over 35k people • Plenty of meetups in many different cities • Based on opensource • Developers can read the source code of platforms they are using • Easier to find developers who want to work on newer technologies

Slide 28

Slide 28

Improve speed of innovation • Cloud Native brings a new culture, technology and processes to accelerate innovation in organizations. • Devops, CI/CD, Containerization modernizes your existing development teams • Allows them to go much faster than before.

Slide 29

Slide 29

CNCF Trail Map https://landscape.cncf.io/images/landscape.pdf

Slide 30

Slide 30

Challenges

Slide 31

Slide 31

Top 5 challenges to cloud native adoption… Monitoring Security Lack of Training Cultural Challenges Complexity 0 5 10 15 20 25 30 35 40 45 Percentages https://www.cncf.io/blog/2018/08/29/cncf-survey-use-of-cloud-native-technologies-in-production-has-grown-over-200-percent/

Slide 32

Slide 32

Other Challenges • Storage (30% down from 41%) • Networking (30% down from 38%) • Reliability (17% down from 20%) • Logging (25% down from 32%) • Scaling (20% down from 24%) Technical Challenges Decrease https://www.cncf.io/blog/2018/08/29/cncf-survey-use-of-cloud-native-technologies-in-production-has-grown-over-200-percent/

Slide 33

Slide 33

Kubernetes & Cloud Native Challenges • Managing, maintaining, upgrading Kubernetes Control Plane • API Server, etcd, scheduler etc…. • Managing, maintaining, upgrading Kubernetes Data Plane • In place upgrades, deploy parallel cluster etc…. • Figuring out container networking & storage • Overlays, persistent storage etc… - it should just work • Managing Teams • How do I manage & control team access to my clusters? • Security, security, security Source: Oracle Customer Survey 2018

Slide 34

Slide 34

Where do I start? Some strategies…

Slide 35

Slide 35

Silos • Heavily siloed organizations can benefit from a devops mindset • Use containers as a way to break down silos in your engineering orgs

Slide 36

Slide 36

Releasing Code • Step 1: Invest in Continuous Integration • Step 2: Continuous Delivery

Slide 37

Slide 37

Orchestration? Your company/organization manages containers with:

Slide 38

Slide 38

Slide 39

Slide 39

Biggest Lie: “Kubernetes is easy”

Slide 40

Slide 40

Kubernetes is complex • Use a Kubernetes Managed Service • Like Oracle Container Engine for Kubernetes, Google Kubernetes Engine etc • Benefits: • Enables developers to get started and deploy containers quickly. • Gives DevOps teams visibility and control for Kubernetes management. • Combines production grade container orchestration of open Kubernetes, with control, security, IAM, and high predictable performance of cloud infrastructure • Manage what you really need to manage

Slide 41

Slide 41

Kubernetes is Complex OCI Registry OCI Container Engine for Kubernetes Cluster Management Encryption for Data in Transit (SSL) and at Rest HA - 3 Masters/etcd across 3 ADs OKE Dashboard in OCI Console Customer’s OCI Account/Tenancy VM based Clusters and Nodes Bare Metal Clusters and Nodes Oracle Cloud Infrastructure Oracle Managed Customer Managed 4 1

Slide 42

Slide 42

End to End Workflow… Any CI/CD - ie Jenkins, Oracle Pipelines, etc. • Container Native: Standard Upstream Kubernetes; Fully Managed Lifecycle; Integrated Registry Build • Developer Friendly: Simple, Streamlined User Test Interface; REST API; Helm, and DNS Built-in Test Test OCI Registry OCI Container Engine for Kubernetes Push VCN AD 1 AD 2 • Enterprise Ready: Oracle Cloud Infrastructure Performance; Highly Available; Secure with OCI Access Controls AD 3 LB Exposed Kubernetes Service K8S Cluster PV VM Pods BM Node Pool Node Pool 42

Slide 43

Slide 43

Take It slow… Greenfield OR Strangler application patterns

Slide 44

Slide 44

KEEP CALM AND KUBE ON @iteration1