Slide 1

Slide 1 text

>_< @zupinnovation zup.com.br Survival Guide for the Java Architect in the Cloud Era Otávio Santana @otaviojava Principal Engineer Bárbara Rossalli @brossalli Tech Lead

Slide 2

Slide 2 text

<> @zupinnovation zup.com.br How am I? Otavio Santana @otaviojava Principal Engineer ● Pas Jean Valjean ● Java Champion ● JCP-EC-EG-EGL ● Apache Committer ● Eclipse Committer ● Eclipse Project Leader ● Book and blog writer

Slide 3

Slide 3 text

<> @zupinnovation zup.com.br How am I? Bárbara Rossalli @brossalli Tech Lead ● DevsJavaGirl ● CharlesCD ● JavaNoroeste ● GmTech ● Backend Developer ● Blog writer

Slide 4

Slide 4 text

<> @zupinnovation zup.com.br Cloud

Slide 5

Slide 5 text

<> @zupinnovation zup.com.br Agile ● Individuals and interactions over processes and tools ● Working software over comprehensive documentation ● Customer collaboration over contract negotiation ● Responding to change over following a plan

Slide 6

Slide 6 text

<> @zupinnovation zup.com.br Breaking down the silos ● DevOps a. NoOps ● BizDevOps Great wall of China

Slide 7

Slide 7 text

<> @zupinnovation zup.com.br Cloud "Cloud is somebody else's problem" Jacob Peter Gowy's The Flight of Icarus (1635–1637)

Slide 8

Slide 8 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 9

Slide 9 text

<> @zupinnovation zup.com.br Cloud Types ● Hardware ● Operations ● Knowledge

Slide 10

Slide 10 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 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 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 14

Slide 14 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 15

Slide 15 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 16

Slide 16 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 17

Slide 17 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 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

<> @zupinnovation zup.com.br Challenges

Slide 21

Slide 21 text

<> @zupinnovation zup.com.br Challenges ● Rotes ● 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 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 25

Slide 25 text

<> @zupinnovation zup.com.br Infrastructure as Code ● Alignment with DevOps ● Speed and efficiency ● Consistency

Slide 26

Slide 26 text

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

Slide 27

Slide 27 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 28

Slide 28 text

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

Slide 29

Slide 29 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 30

Slide 30 text

<> @zupinnovation zup.com.br Circle Deploy: The evolution of deployment ● Intelligent and simple segmentation ● Multiple parallel releases of the same application ● Improvements: ○ Best test hypothesis ○ Solve bug faster ○ Easier development process ○ More reliable releases

Slide 31

Slide 31 text

<> @zupinnovation zup.com.br Circle Deploy: The evolution of deployment This kind of deployment makes it possible to create a segment with your clients' specific characteristics At the same time, submit several versions of the same application to test this circle of users.

Slide 32

Slide 32 text

<> @zupinnovation zup.com.br CharlesCD: the deployment in circles on Kubernetes clusters “The concept behind the tool goes back to the theory proposed by the biologist Charles Darwin (1809-1882), in which evolution goes by the adaptation to a new environment. In the development scenario, this evolution goes by constant improvements on the applications to build and test hypothesis in order to implement more reliable releases.”

Slide 33

Slide 33 text

<> @zupinnovation zup.com.br What is CharlesCD? OPEN-SOURCE NATIVE Lorem Ipsum DOLOR SIT AMET Lorem Ipsum DOLOR SIT AMET Lorem Ipsum DOLOR SIT AMET C/D

Slide 34

Slide 34 text

<> @zupinnovation zup.com.br Continuous Deployment

Slide 35

Slide 35 text

<> @zupinnovation zup.com.br Easy and sophisticated creation of implementation strategies using circles

Slide 36

Slide 36 text

<> @zupinnovation zup.com.br Monitoring the impact of each version through predefined metrics

Slide 37

Slide 37 text

<> @zupinnovation zup.com.br And more... ● Automatic circle promotion by metrics ● Webhook notification ● Workspaces ● User management or IDM configuration ● Integrations: Azure ECR, DockerHub, Amazon ECR, GCR ● Deploy on fridays! :)

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

@zupinnovation zup.com.br <> Zup at TDC

Slide 40

Slide 40 text

No content

Slide 41

Slide 41 text

<> @zupinnovation zup.com.br Thank you! Otávio Santana @otaviojava Principal Engineer @ZupInnovation Bárbara Rossalli @brossalli Tech Lead Q&A