Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Survival Guide for the Java Architect in the Cloud Era 2022

Survival Guide for the Java Architect in the Cloud Era 2022

Let's be very honest, cloud computing cannot be learned in one day. There are several architectural challenges to deploying your application, such as which framework to choose, reflection or reflectionless, native or non-naive. We also have the operational challenges such as backups, CI/CD, and much more.
This presentation explains how to make some of these design choices and the tradeoffs to consider when building applications to run in a virtual cloud environment.

C8709f1d7ae6cc5f057e37e01d6e28db?s=128

Otavio Santana

April 20, 2022
Tweet

More Decks by Otavio Santana

Other Decks in Technology

Transcript

  1. >_< @zupinnovation zup.com.br Survival Guide for the Java Architect in

    the Cloud Era Otávio Santana @otaviojava Distinguished Engineer
  2. <> @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
  3. <> @zupinnovation zup.com.br Cloud

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

  5. <> @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."
  6. <> @zupinnovation zup.com.br Someone else's problem • Hardware • Operations

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

  8. <> @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
  9. <> @zupinnovation zup.com.br Cloud Trends Cloud Sed ut perspiciatis unde

    omnis Cloud Ready Cloud Friend Cloud Native
  10. <> @zupinnovation zup.com.br Cloud Native Applications

  11. <> @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.”
  12. <> @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.”
  13. <> @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.”
  14. <> @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.”
  15. <> @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.”
  16. <> @zupinnovation zup.com.br Cloud Native Cloud-native is a term used

    to describe container-based environments.
  17. <> @zupinnovation zup.com.br What is the definition for "cloud-native"?

  18. <> @zupinnovation zup.com.br Cloud Native A set of good practices

    to optimize an application in the cloud through: Containerization Orchestration Automation
  19. <> @zupinnovation zup.com.br Cloud: Why do we need it? Expectation

    Reality
  20. <> @zupinnovation zup.com.br Challenges

  21. <> @zupinnovation zup.com.br Challenges • Routes • Security • Upgrade

    database and language • Backups • CI/CD
  22. <> @zupinnovation zup.com.br Trade-off • Complexity • Risk • Cost

    • Knowledge management
  23. <> @zupinnovation zup.com.br Survival Guide

  24. @zupinnovation zup.com.br <> The Flightplan

  25. @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)
  26. <> @zupinnovation zup.com.br What is a flightplan? • where am

    I? • How far I want go? • Internal conditions • External conditions • Budget • Safety
  27. @zupinnovation zup.com.br <> "Where are we?" "Where should we go

    next?" "How do I get there?" Ask yourself:
  28. 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
  29. <> @zupinnovation zup.com.br Richardson Maturity Model

  30. <> @zupinnovation zup.com.br Glory of Cloud Level 1: Initial Level

    2: Automated Level 3: Observable and Modifiable Level 4: Optimized Level 0: None
  31. Flightplan Level 00: None There's no cloud adoption not the

    usage of any practices in development and deployment cycles.
  32. <> @zupinnovation zup.com.br Level 0: None Methodology

  33. 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.
  34. <> @zupinnovation zup.com.br Level 1: Initial • Risk vs Cost

    • Complexity
  35. 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.
  36. <> @zupinnovation zup.com.br Level 03: Observable and Modifiable Observable Modifiable

    Testable Reversible Transparency Security
  37. <> @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
  38. 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.
  39. <> @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)
  40. <> @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
  41. <> @zupinnovation zup.com.br Old, but gold

  42. <> @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
  43. @zupinnovation zup.com.br <> Best Practices in Software Architecture in the

    Cloud era
  44. 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.
  45. <> @zupinnovation zup.com.br Thank you! Otávio Santana @otaviojava Distinguished Engineer

    @ZupInnovation Q&A