Slide 1

Slide 1 text

Otavio Santana @otaviojava Survival Guide for the Java Architect in the Cloud Era member of KI group

Slide 2

Slide 2 text

Otavio Santana @otaviojava Staff Engineer ● Java Champion ● JCP-EC-EG-EGL ● Apache Committer ● Eclipse Committer ● Eclipse Project Leader ● Book and blog writer Speaker

Slide 3

Slide 3 text


Slide 4

Slide 4 text

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 5

Slide 5 text

Breaking down the silos ● DevOps ○ NoOps ● BizDevOps Great wall of China

Slide 6

Slide 6 text

Cloud "Cloud is somebody else's problem" Jacob Peter Gowy's The Flight of Icarus (1635–1637)

Slide 7

Slide 7 text

NIST "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." National Institute of Standards and Technology

Slide 8

Slide 8 text

Cloud Types ● Hardware ● Operations ● Knowledge

Slide 9

Slide 9 text

Some of the Options Cloud PaaS IaaS CaaS SaaS Managed Application Services Managed Event Streaming Managed Database Managed API Gateways Managed Integration Decisions and Processes as a Service Backend as a Service (serverless)

Slide 10

Slide 10 text

Cloud Trends ● Serverless Computing ● Quantum Computing ● Digital Natives ● Edge Computing ● Containerization continues to reign ● Mobile Cloud Computing

Slide 11

Slide 11 text

Cloud Trends ● Cloud ● Cloud Ready ● Cloud Friend ● Coud Native

Slide 12

Slide 12 text

Cloud Native Applications

Slide 13

Slide 13 text

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

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

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

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

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

Cloud Native Cloud-native is a term used to describe container-based environments.

Slide 19

Slide 19 text

Cloud Native A set of good practices to optimize an application in the cloud through: ● Containerization ● Orchestration ● Automation

Slide 20

Slide 20 text


Slide 21

Slide 21 text

Challenges ● Rotes (Http/Cache) ● Security (grant access to application and database) ● Upgrade database and language ● Backups ● CI/CD

Slide 22

Slide 22 text

Trade-off ● Complexity ● Risk ● Cost ● Knowledge management Use cloud ready SaaS services Complexity Cost Risk High Med - High Low Migrate existing workloads into cloud Build new apps cloud ready ^ ^

Slide 23

Slide 23 text

Tips ● Use Managed Services --- Please - Dan Moore ● Why every Engineer Should Be a cloud Engineer - Michelle Brenner ● KISS It -- Chris Proto ● Source Code Management for Software Delivery - Tiffany Jachja ● Containers aren't Magic - Katie McLaughlin ● It's Ok if you're not running Kubernetes - Mattias Geniar.

Slide 24

Slide 24 text

Infrastructure as Code ● Alignment with DevOps ● Speed and efficiency ● Consistency

Slide 25

Slide 25 text

GitOps ● Git as the single source of truth ● Git is the single place we operate ● All changes are observable/verifiable ● CI/CD

Slide 26

Slide 26 text

The Best Practices

Slide 27

Slide 27 text

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

Old, but gold

Slide 29

Slide 29 text

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


Slide 31

Slide 31 text

JVM ● Optimizations on GC ● Improvements Containers (OCI) ● Release 6 months ● Application Class-Data Sharing (JEP 310)

Slide 32

Slide 32 text

Metadata ● Reflection ● Build Time ● Java Annotation Processor Plug Cold Warm Encapsulation Reflection Java Comp Annot. Proc. Native

Slide 33

Slide 33 text


Slide 34

Slide 34 text

Native Image ● Native ● Serverless ● GC ● JIT Hardware ISA SO JVM App Hardware ISA SO App

Slide 35

Slide 35 text

35 Demo Time

Slide 36

Slide 36 text


Slide 37

Slide 37 text

What makes us strong We are bringing passion and eXpertise into the team. High Coding standards Reliable and proven processes and quality testing Continuous Innovation Senior/Junior split 1:2 enables room for innovation Integration in KI group Strong backing and steady exchange with experts Flexible work style Individual and flexible, fully acustomed to our clients

Slide 38

Slide 38 text

What makes us special Member of KI group – home of entrepreneurs, solvers & creators. © xgeeks | 02/12/2020 38 Software and data Human resources Business models, processes and company building Experiences, design & lifestyle Investments and ecosystems

Slide 39

Slide 39 text

Thank you Otávio Santana Staff Engineer, Xgeeks Join us!! @xgeeksio