Slide 1

Slide 1 text

ENTERPRISE CLOUD NATIVE IST DAS NEUE NORMAL

Slide 2

Slide 2 text

| CODE DAYS 2020 | Enterprise Cloud-native ist das Neue Normal | @LeanderReimer #cloudnativenerd #qaware 2 Mario-Leander Reimer Chief Software Architect QAware GmbH

Slide 3

Slide 3 text

| CODE DAYS 2020 | Enterprise Cloud-native ist das Neue Normal | @LeanderReimer #cloudnativenerd #qaware 1996 3

Slide 4

Slide 4 text

| CODE DAYS 2020 | Enterprise Cloud-native ist das Neue Normal | @LeanderReimer #cloudnativenerd #qaware 2000 4

Slide 5

Slide 5 text

Bild: Jupiterimages – gettyimages.de

Slide 6

Slide 6 text

Bild: Berkozel – gettyimages.de

Slide 7

Slide 7 text

Bild: NatalyaLucia – gettyimages.de Dev Ops

Slide 8

Slide 8 text

https://commons.wikimedia.org/w/index.php?curid=2223771

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

| CODE DAYS 2020 | Enterprise Cloud-native ist das Neue Normal | @LeanderReimer #cloudnativenerd #qaware 2020 10

Slide 11

Slide 11 text

| CODE DAYS 2020 | Enterprise Cloud-native ist das Neue Normal | @LeanderReimer #cloudnativenerd #qaware 11 By Simon Wardley #EEA @swardly https://twitter.com/swardley/status/1143463178396979200?s=03

Slide 12

Slide 12 text

| CODE DAYS 2020 | Enterprise Cloud-native ist das Neue Normal | @LeanderReimer #cloudnativenerd #qaware 12 https://www.loodse.com/blog/why-you-should-go-cloud-native-in-2020

Slide 13

Slide 13 text

NOPE, IT'S ALL BAD. SO THIS IS CLOUD NATIVE? YOU KNOW WHAT? IT'S NOT HALF BAD.

Slide 14

Slide 14 text

NATÜRLICH IST NICHT ALLES EITEL 
 SONNENSCHEIN IM CLOUD NATIVE LAND. 
 CLOUD NATIVE SOFTWARE ENTWICKLUNG IST KOMPLEX!

Slide 15

Slide 15 text

| CODE DAYS 2020 | Enterprise Cloud-native ist das Neue Normal | @LeanderReimer #cloudnativenerd #qaware Don’t do this! This is not a good idea! 15 A Structured Monolith Component A Component T Component ? Microservice A Microservice T Microservice ? REST REST REST

Slide 16

Slide 16 text

picture alliance / United Archive 8 Fallacies of Distributed Systems 1. The network is reliable 2. Latency is zero 3. Bandwidth is infinite 4. The network is secure 5. Topology doesn’t change 6. There is one administrator 7. Transport cost is zero 8. The networks is homogeneous

Slide 17

Slide 17 text

| CODE DAYS 2020 | Enterprise Cloud-native ist das Neue Normal | @LeanderReimer #cloudnativenerd #qaware 1. The network is reliable Problem: Netzwerk-Aufrufe werden fehlschlagen. • Circuit Breaker und Retries sind eine Lösung, aber oft ein Pflaster. • Service Meshes können helfen, bringen aber zusätzliche Komplexität und Overhead. Istio, Linkerd, Maesh, et.al. -> Service Mesh Interface (SMI) • Nutze Event-driven Architecture (EDA) für lose gekoppelte Systeme. Neue Herausforderungen: Protokolle, Delivery Garantien, Message-Codierung • Es muss nicht immer Kafka sein. Zahlreiche spannende CNCF Projekte z.B. CloudEvents, OpenMessaging, NATS, Pulsar, … 17 https://landscape.cncf.io/category=streaming-messaging&format=card-mode&license=open-source

Slide 18

Slide 18 text

| CODE DAYS 2020 | Enterprise Cloud-native ist das Neue Normal | @LeanderReimer #cloudnativenerd #qaware 2. Latency is zero Problem: Netzwerk-Aufrufe haben eine Verzögerung. Das n+1 Problem. • Schicke alle benötigten Daten mit möglichst wenigen (1) Requests. • Es gibt Alternativen zu REST: GraphQL, effiziente Binärprotokolle, gRPC. • Umsetzung von B4F und API-Gateway Patterns für Server-side Daten-Aggregation. • Inversion of Control: Nutzung von Pub/Sub Mechanismen, Server-sent Events, Web Sockets, Local Storage • Die Daten müssen näher zum Client. Nutzung von Availability Zones, Content Delivery Networks und intelligentes Caching. 18 https://landscape.cncf.io/category=remote-procedure-call&format=card-mode&license=open-source

Slide 19

Slide 19 text

| CODE DAYS 2020 | Enterprise Cloud-native ist das Neue Normal | @LeanderReimer #cloudnativenerd #qaware 4. The network is secure Problem: Das Netzwerk ist unsicher. 
 „Running workloads in the cloud is easy - doing it securely and in a compliant way is hard.“ • Security by Design -> Continuous Security -> Continuous Compliance. • Layered-Security Ansatz: Absicherung auf Netzwerk, Infrastruktur, Plattform und Anwendungsebene. Free eBook. • 4C’s of Cloud Native Security
 https://kubernetes.io/docs/concepts/security/overview/ • Zero Trust per Default: mTLS zwischen Services per Service Mesh und SPIFFE. • Compliance per GitSec und Phylake -> Open Policy Agent (OPA), Aquasec, Istio, Falco 19 https://landscape.cncf.io/category=security-compliance&format=card-mode&license=open-source

Slide 20

Slide 20 text

| CODE DAYS 2020 | Enterprise Cloud-native ist das Neue Normal | @LeanderReimer #cloudnativenerd #qaware The 4C’s of Cloud Native Security 20 Cloud Cluster Container Code https://kubernetes.io/docs/concepts/security/overview/#the-4c-s-of-cloud-native-security

Slide 21

Slide 21 text

| CODE DAYS 2020 | Enterprise Cloud-native ist das Neue Normal | @LeanderReimer #cloudnativenerd #qaware Code • Apply Defensive Programming Practices: Educate and Read • Statische Code Analyse: Google Error Prone, Sonar, et.al. • 3rd Party Dependency Security: Trusted Repositories (Nexus, Artifactory), Build Tool Integration (OWASP Plugins) • Dynamic Probing Attacks als Teil der CI/CD Pipeline: Headless OWASP Zed Attack Proxy, Crashtest Security Suite • Zero Trust Mindset: Access over TLS only, limited port ranges 21

Slide 22

Slide 22 text

| CODE DAYS 2020 | Enterprise Cloud-native ist das Neue Normal | @LeanderReimer #cloudnativenerd #qaware Container • Disallow Privileged Users. • Build minimal images. Consider Distroless. • Use Trusted Registries and Trusted Images. • Container Vulnerability Scanning und OS Dependency Security als Teil der CI/CD Pipeline mit Tools wie Claire • Image Signing and Enforcement: CNCF Projects (TUF and Notary) are useful tools for signing container images and maintaining a system of trust, IBM’s Portieris can be used for enforcement. 22 # Start by building the application. FROM golang:1.12 as build WORKDIR /go/src/app ADD . /go/src/app RUN go get -d -v ./... RUN go build -o /go/bin/app # Now copy it into our base image. FROM gcr.io/distroless/base COPY --from=build /go/bin/app / CMD ["/app"]

Slide 23

Slide 23 text

| CODE DAYS 2020 | Enterprise Cloud-native ist das Neue Normal | @LeanderReimer #cloudnativenerd #qaware Cluster • Sowohl die Komponenten des Clusters selbst auch die Applications-Komponenten müssen gesichert werden. Empfehlung: Nutze einen Managed Cluster as a Service Dienst. • Application secrets management (and encrypting them in etcd at rest) 
 https://kubernetes.io/docs/concepts/configuration/secret/ • Pod Security Policies: 
 https://kubernetes.io/docs/concepts/policy/pod-security-policy/ • Quality of Service (and Cluster resource management) 
 https://kubernetes.io/docs/tasks/configure-pod-container/quality-service-pod/ • Network Policies: 
 https://kubernetes.io/docs/concepts/services-networking/network-policies/ • TLS For Kubernetes Ingress:
 https://kubernetes.io/docs/concepts/services-networking/ingress/#tls 23

Slide 24

Slide 24 text

| CODE DAYS 2020 | Enterprise Cloud-native ist das Neue Normal | @LeanderReimer #cloudnativenerd #qaware 5. Topology doesn’t change Problem: Netzwerk Topologien ändern sich ständig. • Abstraktion der physischen Netzwerk-Struktur. Nutzung von DNS oder Discovery Services wie Eureka oder Zookeeper. • Cloud-native API Gateways sorgen für zusätzliche Location Transparency. • Cattle, not pets. Treat Clusters Like Cattle. Immutable Infrastructure. • Regelmäßige Chaos-Tests zur Überprüfung der Robustheit: Netflix Chaos Monkey, kube-monkey, Chaos Toolkit, Gremlin, … 24 https://landscape.cncf.io/category=chaos-engineering&format=card-mode&license=open-source

Slide 25

Slide 25 text

| CODE DAYS 2020 | Enterprise Cloud-native ist das Neue Normal | @LeanderReimer #cloudnativenerd #qaware 6. There is one administrator Problem: Diese 1 Person die alles weiß gibt es nicht (mehr). • Jeder im Team ist für den Release Prozess verantwortlich. Frühzeitiges involvieren aller beteiligten Stakeholder. • Klare Definition der DevOps-Topologie, Rollen, Verantwortlichkeiten, SLOs und SLAs. • Manuelle Änderungen an der Infrastruktur sind tabu! GitOps heißt das Stichwort! • Weave Flux: https://github.com/weaveworks/flux • Automatisierte CI/CD Pipeline: Tekton Pipelines, Spinnaker, Argo CD, JenkinsX, … • Seales Secrets: https://github.com/bitnami-labs/sealed-secrets 25 https://landscape.cncf.io/category=continuous-integration-delivery&format=card-mode&license=open-source

Slide 26

Slide 26 text

| CODE DAYS 2020 | Enterprise Cloud-native ist das Neue Normal | @LeanderReimer #cloudnativenerd #qaware 26 
 DevOps Anti-Types, e.g. DevOps Team Topologies, e.g. https://web.devopstopologies.com DevOps Team Silo Dev Don’t Need Ops Rebranded SysAdmin Dev and Ops Collaboration Fully Shared Ops Responsibilities SRE Team (Google Model) DevOps Advocacy Team Ops as Infrastructure-as-a-Service DevOps as External Service

Slide 27

Slide 27 text

| CODE DAYS 2020 | Enterprise Cloud-native ist das Neue Normal | @LeanderReimer #cloudnativenerd #qaware Improve your inner development loop and the Cloud Native DevEx of your teams! 27

Slide 28

Slide 28 text

| CODE DAYS 2020 | Enterprise Cloud-native ist das Neue Normal | @LeanderReimer #cloudnativenerd #qaware 28 vs. https://www.datawire.io/guide/development/development-environments-microservices/

Slide 29

Slide 29 text

| CODE DAYS 2020 | Enterprise Cloud-native ist das Neue Normal | @LeanderReimer #cloudnativenerd #qaware 29 vs. https://www.datawire.io/guide/development/development-environments-microservices/

Slide 30

Slide 30 text

| CODE DAYS 2020 | Enterprise Cloud-native ist das Neue Normal | @LeanderReimer #cloudnativenerd #qaware 30 vs. https://www.datawire.io/guide/development/development-environments-microservices/

Slide 31

Slide 31 text

| CODE DAYS 2020 | Enterprise Cloud-native ist das Neue Normal | @LeanderReimer #cloudnativenerd #qaware 31 vs. https://www.datawire.io/guide/development/development-environments-microservices/

Slide 32

Slide 32 text

| CODE DAYS 2020 | Enterprise Cloud-native ist das Neue Normal | @LeanderReimer #cloudnativenerd #qaware Zahlreiche Tools helfen dabei den Inner Development Loop einfacher und effizienter zu machen. 32 • The Rise of the IDE: Plugins, Plugins, Plugins. Beispiele: Cloud Code, OpenShift Extension • Squash enables easy remote debugging of running microservices in Kubernetes und OpenShift from within your IDE. • Kustomize, Draft, Skaffold, oder Tilt für Continuous Development.
 Die verschiedenen Entwicklungs-Phase werden zusammenfasst in einem CLI Command. Der Entwickler Workflow wird vereinfacht. https://tilt.dev https://draft.sh https://skaffold.dev

Slide 33

Slide 33 text

| CODE DAYS 2020 | Enterprise Cloud-native ist das Neue Normal | @LeanderReimer #cloudnativenerd #qaware Skaffold Workflow and Architecture 33 $ skaffold init
 $ skaffold dev Demo repository https://github.com/lreimer/jakartaee8-java11

Slide 34

Slide 34 text

| CODE DAYS 2020 | Enterprise Cloud-native ist das Neue Normal | @LeanderReimer #cloudnativenerd #qaware Telepresence ermöglicht die schnelle lokale Entwicklung von Microservices gegen eine remote Kubernetes Umgebung. 34 Laptop Source Code Lokaler Service Telepresence Client IDE Remote Kubernetes Cluster Telepresence Proxy Service A Service B Database Queue https://www.telepresence.io 2-way Network Proxy

Slide 35

Slide 35 text

| CODE DAYS 2020 | Enterprise Cloud-native ist das Neue Normal | @LeanderReimer #cloudnativenerd #qaware Serverless is the next logical evolution in Cloud Native Software Development 35

Slide 36

Slide 36 text

Kein Server ist einfacher zu verwalten, als kein Server! Werner Vogels, CTO, Amazon

Slide 37

Slide 37 text

| CODE DAYS 2020 | Enterprise Cloud-native ist das Neue Normal | @LeanderReimer #cloudnativenerd #qaware –https://landscape.cncf.io/ „Serverless computing refers to a new model of cloud native computing, enabled by architectures that do not require server management to build and run applications. It leverages a finer-grained deployment model where applications, bundled as one or more functions, are uploaded to a platform and then executed, scaled, and billed in response to the exact demand needed at the moment.“ 37

Slide 38

Slide 38 text

| CODE DAYS 2020 | Enterprise Cloud-native ist das Neue Normal | @LeanderReimer #cloudnativenerd #qaware 38 Functions as preferred Serverless application programming model.

Slide 39

Slide 39 text

| CODE DAYS 2020 | Enterprise Cloud-native ist das Neue Normal | @LeanderReimer #cloudnativenerd #qaware Hybrid Architecture Use Cases • Kombination von Microservice Architektur mit EDA • Nutzung von Function Services für Event-getriebene Use Cases • Reduzierter Ressourcen-Verbrauch per Scale-to-Zero • Integration in bestehende Enterprise PaaS Umgebung 39 Shared Enterprise PaaS Microservices Function Services FaaS Platform X Y Z F1 F2 Fn DevOps S1 S2 Sn L M T

Slide 40

Slide 40 text

| CODE DAYS 2020 | Enterprise Cloud-native ist das Neue Normal | @LeanderReimer #cloudnativenerd #qaware 40

Slide 41

Slide 41 text

• Fission ist eine schnelle und komplette Platform mit Unterstützung für viele Sprachen. • Knative ist eine K8s-basierte Plattform um Serverless Workloads zu bauen und zu betreiben. • Kubeless ist einfach und leichtgewichtig. • Nuclio ist super schnell, mit kleinem Footprint und vielen Triggern. • OpenFaaS ist sehr populär mit einer aktiven und guten Community. Schnell. ARM Support. • Kyma positioniert sich als komplette Enterprise Serverless Platform mit vielen Features. • https://github.com/lreimer/the-big-faas-lebowski

Slide 42

Slide 42 text

ENTERPRISE CLOUD NATIVE BUZZWORD

Slide 43

Slide 43 text

OUR CLOUD NATIVE FUTURE IS SO BRIGHT, WE NEED SHADES.

Slide 44

Slide 44 text

& Mario-Leander Reimer Chief Software Architect, QAware GmbH [email protected] https://www.qaware.de https://speakerdeck.com/lreimer/