Slide 1

Slide 1 text

Building and Operating
 Cloud-Native Applications Michael Hausenblas @mhausenblas
 Developer Advocate, Red Hat
 2018-02-16, PHP Conference, London

Slide 2

Slide 2 text

Hit me up on Twitter: @mhausenblas 2 • Developer Advocate @ Red Hat (Go, Kubernetes, OpenShift) • Developer Advocate @ Mesosphere • Chief Data Engineer @ MapR • Applied research (IE/AT) • Nowadays mainly Go (Python, Node, PHP, Java, C++) • Dev turned ops $ whois mhausenblas

Slide 3

Slide 3 text

Hit me up on Twitter: @mhausenblas 3 admin SRE developer QA architect PM PHB

Slide 4

Slide 4 text

https://unsplash.com/photos/m0wptz8vYpw motivation

Slide 5

Slide 5 text

Hit me up on Twitter: @mhausenblas 5 https://www.pexels.com/photo/people-running-during-daytime-33703/ out-perform competition

Slide 6

Slide 6 text

Hit me up on Twitter: @mhausenblas 6 https://pixabay.com/en/logistics-stock-transport-shipping-852936/ ship around the clock!

Slide 7

Slide 7 text

Hit me up on Twitter: @mhausenblas 7 togetherness

Slide 8

Slide 8 text

https://unsplash.com/photos/3y1zF4hIPCg tenets

Slide 9

Slide 9 text

Hit me up on Twitter: @mhausenblas 9 AIA Automation Immutability APIs

Slide 10

Slide 10 text

Hit me up on Twitter: @mhausenblas 10 • Manual == brittle & error-prone • Playbooks? • Agility? • Bus factor? Automation

Slide 11

Slide 11 text

Hit me up on Twitter: @mhausenblas 11 Immutable infrastructure

Slide 12

Slide 12 text

Hit me up on Twitter: @mhausenblas 12 Immutable infrastructure • Good old pets vs cattle • Idempotence?! • Increased reproducibility

Slide 13

Slide 13 text

Hit me up on Twitter: @mhausenblas 13 APIs The API (not the implementation) is important! Examples: • HDFS • GraphQL • Kubernetes API

Slide 14

Slide 14 text

Hit me up on Twitter: @mhausenblas 14 APIs • Decoupling • Open, standardized?! • Declarative?

Slide 15

Slide 15 text

https://unsplash.com/photos/osSryggkso4 technologies

Slide 16

Slide 16 text

Hit me up on Twitter: @mhausenblas 16 • Cloud Native computing • Containers & container orchestration • Service meshes • Data meshes • Observability Technologies

Slide 17

Slide 17 text

What is ‘Cloud Native’?

Slide 18

Slide 18 text

Hit me up on Twitter: @mhausenblas 18 Cloud Native Computing Foundation (CNCF) cncf.io

Slide 19

Slide 19 text

Hit me up on Twitter: @mhausenblas 19

Slide 20

Slide 20 text

Hit me up on Twitter: @mhausenblas 20 Maybe not … twitter.com/mhausenblas/status/879752918131519488

Slide 21

Slide 21 text

Hit me up on Twitter: @mhausenblas 21 Where did it come from? Dan Kohn, CNCF

Slide 22

Slide 22 text

Hit me up on Twitter: @mhausenblas 22 Starting point: twelve factor apps 12factor.net

Slide 23

Slide 23 text

Hit me up on Twitter: @mhausenblas 23 … and beyond • portability between environments • appropriate unit of deployment such as a container or a function • typically dealing with distributed systems • elasticity—workload-dependent auto-scaling 301.sh/cloud-native-def-wip

Slide 24

Slide 24 text

Hit me up on Twitter: @mhausenblas 24 Portability • Avoid platform lock-in • Enable hybrid cloud deployments • multi-cloud • on-premises and cloud

Slide 25

Slide 25 text

Hit me up on Twitter: @mhausenblas 25 Unit of deployment • Physical servers • VMs • Containers • Functions

Slide 26

Slide 26 text

Hit me up on Twitter: @mhausenblas 26 Distributed systems • Scale out on commodity hardware • Fallacies of distributed computing
 en.wikipedia.org/wiki/Fallacies_of_distributed_computing • Stateful services shard inherently

Slide 27

Slide 27 text

Containers & Container Orchestration

Slide 28

Slide 28 text

Hit me up on Twitter: @mhausenblas 28 Containers 101 containerz.info … a process group on steroids using namespaces, cgroups, and a copy-on-write filesystem

Slide 29

Slide 29 text

Hit me up on Twitter: @mhausenblas 29 Container orchestration

Slide 30

Slide 30 text

Hit me up on Twitter: @mhausenblas 30 Container orchestration kubernetes.io • Container lifecycle management • Declarative, state-driven • Extensible, modular API • Robust, flexible, scalable

Slide 31

Slide 31 text

Service Meshes

Slide 32

Slide 32 text

Hit me up on Twitter: @mhausenblas 32 Service meshes istio.io • Traffic management • Monitoring & tracing • Policy enforcement • Service identity and security • No app code changes

Slide 33

Slide 33 text

Data Meshes

Slide 34

Slide 34 text

Hit me up on Twitter: @mhausenblas 34 Data meshes

Slide 35

Slide 35 text

Hit me up on Twitter: @mhausenblas 35 Data meshes dotmesh.com • Data state management across microservices • Operating on a filesystem level • Externalize snapshotting • Troubleshooting, debugging

Slide 36

Slide 36 text

Hit me up on Twitter: @mhausenblas 36 Data meshes www.youtube.com/watch?v=eJkns4jBU_0

Slide 37

Slide 37 text

Observability

Slide 38

Slide 38 text

Hit me up on Twitter: @mhausenblas 38 • Monitoring • Logging • Distributed tracing Observability

Slide 39

Slide 39 text

Developing Cloud Native

Slide 40

Slide 40 text

Hit me up on Twitter: @mhausenblas 40 Current state build artefacts build tooling runtime config code creds CI/CD pipeline |||| code repo binary bare metal server/VMs

Slide 41

Slide 41 text

Hit me up on Twitter: @mhausenblas 41 The cloud native way build artefacts build tooling runtime CI/CD pipeline |||| code repo container container orchestrator +
 service mesh config code creds container image manifest container runtime manifest service mesh manifest container
 registry

Slide 42

Slide 42 text

Hit me up on Twitter: @mhausenblas service mesh manifest container runtime manifest container image manifest 42 Cloud native dev & ops maturity model code, config, creds service mesh container orchestrator container registry repo CI/CD artefacts tooling

Slide 43

Slide 43 text

Hit me up on Twitter: @mhausenblas 43 Development setups remote local cluster dev cluster dev cluster dev dev cluster pure off-line proxied live pure on-line

Slide 44

Slide 44 text

Hit me up on Twitter: @mhausenblas 44 Development setups www.telepresence.io vapor-ware.github.io/ksync/ www.openshift.org kubed.sh kedgeproject.org ksonnet.io Minikube Minishift Docker Community Edition for Mac and Windows

Slide 45

Slide 45 text

Function-as-a-Service

Slide 46

Slide 46 text

Hit me up on Twitter: @mhausenblas 46 Serverless is spelled `F` `a` `a` `S` (Function-as-a-Service)

Slide 47

Slide 47 text

Hit me up on Twitter: @mhausenblas 47 Landscape

Slide 48

Slide 48 text

Demo

Slide 49

Slide 49 text

Hit me up on Twitter: @mhausenblas 49 Challenges • Fast-moving ecosystem • Observability • Security • Organizations

Slide 50

Slide 50 text

Resources

Slide 51

Slide 51 text

Hit me up on Twitter: @mhausenblas 51

Slide 52

Slide 52 text

Hit me up on Twitter: @mhausenblas 52 • What is Cloud Native?
 http://container-solutions.com/what-is-cloud-native/ • Understanding Cloud Native Infrastructure
 https://www.infoq.com/articles/cloud-native-infrastructure • What is a Service Mesh, and Do I Need One When Developing Cloud Native Systems?
 https://skillsmatter.com/skillscasts/10668-looking-forward-to-daniel-bryant-talk • CNCF Webinars
 https://www.cncf.io/community/recorded-events/ Articles

Slide 53

Slide 53 text

Hit me up on Twitter: @mhausenblas 53 For developers … some.ops4devs.info

Slide 54

Slide 54 text

plus.google.com/+RedHat linkedin.com/company/red-hat youtube.com/user/RedHatVideos facebook.com/redhatinc twitter.com/RedHatNews learn.openshift.com