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

Architecting and delivering Java applications i...

Architecting and delivering Java applications in the cloud era

Nowadays, the best company is the one that delivers value quicker to its customers. They seek to spend less, and in consequence, they end up searching for cloud solutions. On the technical side, we have Java, which is the most mature and popular language of the past 25 years. Nevertheless, the most asked questions of the past years are: how do Java and cloud fit together? Does Java still fit the new technology trends or Is it time to deprecate Java to use newer languages such as NodeJS and GO?

With this deck, we presented how the Java language, standards, culture, and ecosystem around it evolved to keep the pace of cloud deployment. Learn how you can maintain your developers' productivity by architecting your Java application aligned with the most recent best practices and recommendations, besides, defining a good integration and delivery scenario for your application lifecycle.

More details can be found at: https://otaviojava.com/2020/11/26/joker-2020/

Karina Macedo Varela

November 26, 2020
Tweet

More Decks by Karina Macedo Varela

Other Decks in Technology

Transcript

  1. Otavio Santana @otaviojava DevRel Engineer + Java Champion + JCP-EC-EG-EGL

    + Apache Committer + Eclipse Committer + Eclipse Project Leader + Book and blog writer Speaker
  2. Karina Varela @kvarel4 Senior Technical Marketing Manager + KIE Contributor

    + MOTU Tech Founder + SouJava Organizer + Instructor + Book and blog writer Speaker
  3. • Individuals and interactions over processes and tools • Working

    software over comprehensive documentation • Customer collaboration over contract negotiation • Responding to change over following a plan Agile
  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-native is an approach to building and running applications that

    exploits the advantages of the cloud computing model.” Cloud Native
  6. “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.” Cloud Native
  7. “In general use, ‘cloud-native’ is an approach to building and

    running applications that exploits the advantages of the cloud-computing delivery model. ‘Cloud-native’ is about how applications are created and deployed, not where.” Cloud Native
  8. “Independent DURS ultimately comes up in every discussion on cloud-native

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

    the cloud through: • Containerization • Orchestration • Automation Cloud Native
  12. • Native • Serverless • GC • JIT vs AOT

    Native image Hardware ISA SO JVM App Hardware ISA SO App
  13. 1. New order created 3. See new paid order event,

    Start execution 2. New order created, process payment Services
  14. 1. New order created 3. See new paid order event,

    Start execution 4. Execution done. 2. New order created, process payment Services
  15. 1. New order created 3. See new paid order event,

    Start execution 4. Execution done. 2. New order created, process payment Order executed, start shipment Services
  16. Continuous Integration Commit Code Frequently Don't Commit Broken Code At

    every change: ↪ Build your... software ↪ Build your... database ↪ Run your tests Fix Broken Builds Immediately Write Automated Developer Test All tests must pass
  17. DevOps With Containers Across the Hybrid Cloud? Source Repository CI/CD

    Engine Dev Container Physical Virtual Private cloud Public cloud
  18. • Codebase • Dependencies • Config • Backing services •

    Build, release, run • Process • Port binding • Concurrency • Disposability • Dev/prod parity • Logs • Admin processes The 12 Factors App
  19. “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?” Microservices Conway's law
  20. Container engines • Know the options: ◦ Standard: Open Containers

    Initiative (OCI) • Team Skills ( Concepts and tool - basics ) • Will you work with containers locally, during the development? • Adding tests for your app, within the container ( i.e. Testcontainers )
  21. Container engines • During the image build time: ◦ Single

    Concern Principle ◦ Self-Containment Principle ◦ Image Immutability Principle
  22. Container engines • During the container runtime: ◦ High Observability

    Principle ◦ Lifecycle conformance principle ◦ Process disposability principle ◦ Runtime confinement principle