Slide 1

Slide 1 text

>_< @zupinnovation zup.com.br Survival Guide for the Java Architect in the Cloud Era Otávio Santana @otaviojava Distinguished Engineer

Slide 2

Slide 2 text

<> @zupinnovation zup.com.br Who am I? Otavio Santana Distinguished Engineer @otaviojava ● Java Champion, Oracle ACE ● JCP-EC-EG-EGL ● Apache and Eclipse Committer ● Jakarta EE and MicroProfile ● CNCF/Linux Foundation/ FINOS Member ● Eclipse Project Leader ● Book and blog writer who

Slide 3

Slide 3 text

<> @zupinnovation zup.com.br Cloud

Slide 4

Slide 4 text

<> @zupinnovation zup.com.br History Agile 2001 DevOps 2010 DevSecOps 2015

Slide 5

Slide 5 text

<> @zupinnovation zup.com.br NIST National Institute of Standards and Technology "Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction."

Slide 6

Slide 6 text

<> @zupinnovation zup.com.br Someone else's problem ● Hardware ● Operations ● Knowledge

Slide 7

Slide 7 text

<> @zupinnovation zup.com.br Success: Faster innovation, without impacting stability

Slide 8

Slide 8 text

<> @zupinnovation zup.com.br More Options... Cloud IaaS Saas Managed Application Services CaaS Managed API Gateways Managed Event Streaming DBaaS Decisions and Processes as a Service Backend as a Service (serverless) PaaS

Slide 9

Slide 9 text

<> @zupinnovation zup.com.br Cloud Trends Cloud Sed ut perspiciatis unde omnis Cloud Ready Cloud Friend Cloud Native

Slide 10

Slide 10 text

<> @zupinnovation zup.com.br Cloud Native Applications

Slide 11

Slide 11 text

<> @zupinnovation zup.com.br Cloud Native “Cloud-native is an approach to building and running applications that exploits the advantages of the cloud computing model.”

Slide 12

Slide 12 text

<> @zupinnovation zup.com.br Cloud Native “Cloud-native is a different way of thinking and reasoning about software systems. It embodies the following concepts: powered by disposable infrastructure, composed of bounded, scales globally, embraces disposable architecture.”

Slide 13

Slide 13 text

<> @zupinnovation zup.com.br Cloud Native “Independent DURS ultimately comes up in every discussion on cloud-native concepts; to independently Deploy, Update, Replace and Scale.”

Slide 14

Slide 14 text

<> @zupinnovation zup.com.br Cloud Native “Cloud-native is more than a tool set. It is a complete architecture, a philosophical approach for building applications that take full advantage of cloud computing.”

Slide 15

Slide 15 text

<> @zupinnovation zup.com.br Cloud Native “Cloud-native technologies empower organizations to build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds. Containers, service meshes, microservices, immutable infrastructure, and declarative APIs exemplify this approach.”

Slide 16

Slide 16 text

<> @zupinnovation zup.com.br Cloud Native Cloud-native is a term used to describe container-based environments.

Slide 17

Slide 17 text

<> @zupinnovation zup.com.br What is the definition for "cloud-native"?

Slide 18

Slide 18 text

<> @zupinnovation zup.com.br Cloud Native A set of good practices to optimize an application in the cloud through: Containerization Orchestration Automation

Slide 19

Slide 19 text

<> @zupinnovation zup.com.br Cloud: Why do we need it? Expectation Reality

Slide 20

Slide 20 text

<> @zupinnovation zup.com.br Challenges

Slide 21

Slide 21 text

<> @zupinnovation zup.com.br Challenges ● Routes ● Security ● Upgrade database and language ● Backups ● CI/CD

Slide 22

Slide 22 text

<> @zupinnovation zup.com.br Trade-off ● Complexity ● Risk ● Cost ● Knowledge management

Slide 23

Slide 23 text

<> @zupinnovation zup.com.br Survival Guide

Slide 24

Slide 24 text

@zupinnovation zup.com.br <> The Flightplan

Slide 25

Slide 25 text

@zupinnovation zup.com.br <> What is a flightplan? ● Route (departure, stops, landing, height) ● Schedule (proposed departure and landing time) ● Aircraft type and identification ● Weather ● Equipments ● Flight crew ● Fuel planning ● ETOPS (Extended-range Twin-engine Operational Performance Standards)

Slide 26

Slide 26 text

<> @zupinnovation zup.com.br What is a flightplan? ● where am I? ● How far I want go? ● Internal conditions ● External conditions ● Budget ● Safety

Slide 27

Slide 27 text

@zupinnovation zup.com.br <> "Where are we?" "Where should we go next?" "How do I get there?" Ask yourself:

Slide 28

Slide 28 text

Scaled Agile Framework (SAFe) Business Process Management Maturity Model Consumer Cloud Maturity Richardson Maturity Model CMMI Information technology Project Management Business Processes Diverse DESCRIPTION Kubernetes Maturity Model Cloud Maturity Model Portfolio, Programme and Project Mgmt Maturity Model (P3M3) Process Management in Hospitals Maturity Model for Knowledge Management Strategic Benefits People Capability Maturity Model CMM Social media Innovation

Slide 29

Slide 29 text

<> @zupinnovation zup.com.br Richardson Maturity Model

Slide 30

Slide 30 text

<> @zupinnovation zup.com.br Glory of Cloud Level 1: Initial Level 2: Automated Level 3: Observable and Modifiable Level 4: Optimized Level 0: None

Slide 31

Slide 31 text

Flightplan Level 00: None There's no cloud adoption not the usage of any practices in development and deployment cycles.

Slide 32

Slide 32 text

<> @zupinnovation zup.com.br Level 0: None Methodology

Slide 33

Slide 33 text

Flightplan Level 01: Initial There's some level of cloud adoption, although, automation and observability are low or inexistent. Level 00: None There's no cloud adoption not the usage of any practices in development and deployment cycles.

Slide 34

Slide 34 text

<> @zupinnovation zup.com.br Level 1: Initial ● Risk vs Cost ● Complexity

Slide 35

Slide 35 text

Flightplan Level 01: Initial There's some level of cloud adoption, although, automation and observability are low or inexistent. Level 02: Automated Deployment of software and infrastructure becomes automated and therefore repeatable. Usage of CI/CD practices becomes natural on cloud environments. Level 00: None There's no cloud adoption not the usage of any practices in development and deployment cycles.

Slide 36

Slide 36 text

<> @zupinnovation zup.com.br Level 03: Observable and Modifiable Observable Modifiable Testable Reversible Transparency Security

Slide 37

Slide 37 text

<> @zupinnovation zup.com.br GitOps = IaC + PRs + CI/CD Git as the single source of truth Git as the single place we operate All changes are observable/verifiable

Slide 38

Slide 38 text

Flightplan Level 03: Observable and Modifiable New apps born targeting the cloud. Existing environment can be easily monitored and troubleshooted. Automation is naturally part of the app lifecycle. Level 01: Initial There's some level of cloud adoption, although, automation and observability are low or inexistent. Level 02: Automated Deployment of software and infrastructure becomes automated and therefore repeatable. Usage of CI/CD practices becomes natural on cloud environments. Level 00: None There's no cloud adoption not the usage of any practices in development and deployment cycles. Level 04: Optimized Hybrid cloud is used without affecting monitoring and observability - technical and business KPIs exists. All previous levels applies.

Slide 39

Slide 39 text

<> @zupinnovation zup.com.br Tips Use Managed Services, Please (Dan Moore) It's Ok if you're not running Kubernetes (Mattias Geniar) Why every Engineer Should Be a cloud Engineer (Michelle Brenner) Source Code Management for Software Delivery (Tiffany Jachja) Containers aren't Magic (Katie McLaughlin) KISS It (Chris Proto)

Slide 40

Slide 40 text

<> @zupinnovation zup.com.br The 12 Factors App 1. Codebase 2. Dependencies 3. Config 4. Backing services 5. Build, release, run 6. Process 7. Port binding 8. Concurrency 9. Disposability 10. Dev/prod parity 11. Logs 12. Admin processes

Slide 41

Slide 41 text

<> @zupinnovation zup.com.br Old, but gold

Slide 42

Slide 42 text

<> @zupinnovation zup.com.br Microservices “Certainly, we always read great things about the microservices architectures implemented by companies like Netflix or Amazon. So let me ask a question: how many companies in the world can be Netflix and Amazon?” Conway's law

Slide 43

Slide 43 text

@zupinnovation zup.com.br <> Best Practices in Software Architecture in the Cloud era

Slide 44

Slide 44 text

Flightplan Level 03: Observable and Modifiable New apps born targeting the cloud. Existing environment can be easily monitored and troubleshooted. Automation is naturally part of the app lifecycle. Level 01: Initial There's some level of cloud adoption, although, automation and observability are low or inexistent. Level 02: Automated Deployment of software and infrastructure becomes automated and therefore repeatable. Usage of CI/CD practices becomes natural on cloud environments. Level 00: None There's no cloud adoption not the usage of any practices in development and deployment cycles. Level 04: Optimized Hybrid cloud is used without affecting monitoring and observability - technical and business KPIs exists. All previous levels applies.

Slide 45

Slide 45 text

<> @zupinnovation zup.com.br Thank you! Otávio Santana @otaviojava Distinguished Engineer @ZupInnovation Q&A