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

SouJava - Dapr for Java Developers

Salaboy
February 27, 2024

SouJava - Dapr for Java Developers

for more information visit: https://salaboy.com

Salaboy

February 27, 2024
Tweet

More Decks by Salaboy

Other Decks in Technology

Transcript

  1. @mcruzdev1 Software Engineer at MercadoLibre • Contributing with quarkiverse/quarkus-openapi-ge nerator

    Quarkus extension • Contributing with quarkiverse/quarkus-dapr Quarkus extension • Blog in matheuscruz.dev
  2. Agenda - Introduction - Development challenges - Kubernetes & Containers

    - What are our applications doing 80% of the time? - What is Dapr? Why should I care? - Demo
  3. The challenge to focus on what matters The developer has

    always been concerned about some things in his day-to-day life: 1. Environment runtime 2. Application configuration 3. Infrastructure 4. Libraries and dependencies 5. And more, and more non functional requirements All this to solve business problems!
  4. Before ... - Security - Transaction management - Connection pools

    - Service discovery - Messaging - Load balancing - Standardization evicting vendor lock-in - Etc …
  5. But … - Shared CPU, memory and File System -

    My application depends on the application server's libraries - ClassLoader issues - Difficulty in having a microservices architecture - Bad developer experience, some configurations
  6. No need for an application server - Conventions over configuration

    - Simplicity - One JVM per application - A more favorable environment for microservices - A better development and runtime environment
  7. But … I still need to worry about libraries/dependencies and

    some core services that were once provided by application servers.
  8. But what are our applications doing 80% of the time?

    - How many of your applications are reading or storing data? - How many of your applications are consuming and emitting events? - How many of your applications are calling other services?
  9. The challenge to focus on what matters The developer has

    always been concerned about some things in his day-to-day life: 1. Environment runtime 2. Application configuration 3. Infrastructure 4. Libraries and dependencies All this to solve business problems!
  10. What is Dapr? And why you should care? - Stands

    for: Distributed Application Runtime - Mostly, but not only, a Kubernetes Extension - A CNCF Project, this is important because it means that is supported by multiple companies and community users - Dapr gives developers application-level APIs to interact with other services and infrastructure
  11. Dapr installation Demo - Let’s install Dapr in a Kubernetes

    Cluster - Let’s deploy a simple application to show Dapr in action
  12. Ok, but.. This is way too much for developers! -

    To get this working we need: - A Kubernetes Cluster - Install Dapr - Configure infrastructure to be accessible using Components - Write a lot of YAML
  13. Dapr for Spring Boot and Quarkus - Luckily we have

    integrations with Spring Boot and Quarkus - Java Developers can use the Dapr APIs without the need of a Kubernetes Cluster or even installing Dapr
  14. Takeaways - Dapr decouples the application code from infrastructure -

    While promoting best practices and stable APIs - You can build complex development experiences using tools like Testcontainers