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

[J-Spring] Getting Started with Java Developmen...

[J-Spring] Getting Started with Java Development on Microsoft Azure: Handy Tips and Tools for success

Code examples can be found: https://github.com/RafMaia92/j-spring-java-azure

and more details at: www.rafaelmaia.nl

Rafael Maia

June 21, 2023
Tweet

More Decks by Rafael Maia

Other Decks in Technology

Transcript

  1. #jspring2023 Getting Started with Java Development on Microsoft Azure Tips

    and Tools for success. Rafael de Oliveira Maia 21-06-2023
  2. #jspring2023 Agenda • Introduction • The Cloud • Azure Services

    for Java Apps • Demos • Monitoring • Q&A
  3. #jspring2023 About Me • Rafael de Oliveira Maia • Brazilian

    • Backend Chapter Lead at ABN Amro. • Java / DevOps Enthusiastic • Outdoors • Team sports • BBQs
  4. #jspring2023 One Goal for Today: Get you excited to start

    deploying your apps on Microsoft Azure
  5. #jspring2023 • Deployment of Servlets and Java Server Pages (JSP)

    applications on servers like Apache Tomcat and Jetty. • Deployment of Enterprise JavaBeans (EJB) applications on Java EE Application Servers like IBM WebSphere, BEA WebLogic (now Oracle WebLogic), and JBoss. Late 1990s Early 2000s Mid 2000s Late 2000s Early 2010s Mid 2010s Late 2010s Early 2020s 2020s
  6. #jspring2023 • Lightweight frameworks like Spring, Hibernate, Struts etc. •

    Applications were typically packaged as WAR or EAR files and deployed on servers like Apache Tomcat, Jetty, Oracle WebLogic, and JBoss. Late 1990s Early 2000s Mid 2000s Late 2000s Early 2010s Mid 2010s Late 2010s Early 2020s 2020s
  7. #jspring2023 • Applications were developed using Java EE 6 and

    7 standards and deployed on servers like Oracle WebLogic, JBoss, and Glassfish. • By 2010, Java 7 was released, which saw improvements in the language itself and the JVM (Java Virtual Machine), thus boosting performance for Java applications. Late 1990s Early 2000s Mid 2000s Late 2000s Early 2010s Mid 2010s Late 2010s Early 2020s 2020s
  8. #jspring2023 • Rise in the adoption of DevOps practices, leading

    to the popularization of continuous integration/continuous delivery (CI/CD) with tools like Jenkins. • Containerization starts to get adopted using technologies like Docker, leading to a more reliable deployment across different environments. Late 1990s Early 2000s Mid 2000s Late 2000s Early 2010s Mid 2010s Late 2010s Early 2020s 2020s
  9. #jspring2023 • Microservices with Spring boot on Embedded Servers like

    Tomcat and Jetty • Rise of Kubernetes for orchestrating Docker containers • By the end of 2019, Java 13 was released, with newer versions being released every six months. Late 1990s Early 2000s Mid 2000s Late 2000s Early 2010s Mid 2010s Late 2010s Early 2020s 2020s
  10. #jspring2023 • Adoption of serverless architectures • DevOps, CI/CD and

    Infra as Code. • Java is getting better and faster • Cloud-native frameworks for Microservices and Serverless Late 1990s Early 2000s Mid 2000s Late 2000s Early 2010s Mid 2010s Late 2010s Early 2020s 2020s Present
  11. #jspring2023 Tools • Modern IDE (Vs Code / IntelliJ) •

    Azure CLI • Azure functions NPM package • GraalVM • Docker
  12. #jspring2023 List of Service • Azure Kubernetes Service (AKS) •

    Azure Spring Apps • Azure Container Apps • Azure VMs • Azure App Services (Demo) • Azure Functions (Demo) NOT ALL***
  13. #jspring2023 •Managed Kubernetes •Developer Productivity (Azure Dev Space + Azure

    Monitor) •Enterprise Security & Governance •Integrated Developer Tools •Multi-region Availability
  14. #jspring2023 “Using Azure Spring Apps is like owning a pet

    Kubernetes, but it's house-trained. All the fun, none of the mess!”
  15. #jspring2023 Azure Spring Apps • Managed Environment • Kubernetes-based Service

    • Service Registry & Config Server • Distributed Tracing • Blue-Green Deployments
  16. #jspring2023 Azure Container App • Managed Environment • Dynamic Scaling

    • Event-Driven Architecture • Multi-Environment Support • Built-In Security
  17. #jspring2023 Azure VMs • Lift-and-Shift migrations • Full Control of

    the environment • Easy Integration with other azure Services • Running Legacy apps WELL, It is a VM :D
  18. #jspring2023 App Service Plan • Server farm • One or

    more apps running • Define Region, OS, Number and Size of VM’s • Price Tear (Share, Dedicated and Isolated)
  19. #jspring2023 Azure App Services • Multiples languages and frameworks •

    Fully managed production environment • Run in containers • Scale up and high availability • Rich marketplace with standard apps.
  20. #jspring2023 Java Support Java 8 (OpenJDK 8u) with Eclipse Temurin

    binaries. 8 Java 11 (OpenJDK 11u) with Microsoft Build of OpenJDK binaries. 11 Java 17 (OpenJDK 17u) with Microsoft Build of OpenJDK binaries. 17
  21. #jspring2023 Serverless • Cold Start: First execution of a function

    after being idle. Involves loading the function to a new environment, adding latency. • Warm Start: Subsequent executions of the function. The function responds faster as the environment is reused, eliminating the initial loading time.
  22. #jspring2023 Java and Serverless Slower Cold Start than other languages

    Warm start performance is very good New Frameworks like Quarkus and GraalVm reduced memory footprint and startup time