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

Survival Guide for the Java Architect in the Cl...

Survival Guide for the Java Architect in the Cloud Era

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.

Otavio Santana

April 14, 2021
Tweet

More Decks by Otavio Santana

Other Decks in Technology

Transcript

  1. Otavio Santana @otaviojava Staff Engineer • Java Champion • JCP-EC-EG-EGL

    • Apache Committer • Eclipse Committer • Eclipse Project Leader • Book and blog writer Speaker
  2. 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
  3. 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
  4. 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)
  5. Cloud Trends • Serverless Computing • Quantum Computing • Digital

    Natives • Edge Computing • Containerization continues to reign • Mobile Cloud Computing
  6. Cloud Native “Cloud-native is an approach to building and running

    applications that exploits the advantages of the cloud computing model.”
  7. 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.”
  8. Cloud Native “Independent DURS ultimately comes up in every discussion

    on cloud-native concepts; to independently Deploy, Update, Replace and Scale.”
  9. 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.”
  10. 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.”
  11. Cloud Native A set of good practices to optimize an

    application in the cloud through: • Containerization • Orchestration • Automation
  12. Challenges • Rotes (Http/Cache) • Security (grant access to application

    and database) • Upgrade database and language • Backups • CI/CD
  13. 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 ^ ^
  14. 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.
  15. GitOps • Git as the single source of truth •

    Git is the single place we operate • All changes are observable/verifiable • CI/CD
  16. 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
  17. 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
  18. JVM • Optimizations on GC • Improvements Containers (OCI) •

    Release 6 months • Application Class-Data Sharing (JEP 310)
  19. Metadata • Reflection • Build Time • Java Annotation Processor

    Plug Cold Warm Encapsulation Reflection Java Comp Annot. Proc. Native
  20. Native Image • Native • Serverless • GC • JIT

    Hardware ISA SO JVM App Hardware ISA SO App
  21. 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
  22. 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