$30 off During Our Annual Pro Sale. View Details »

Playing with Java Microservices on Kubernetes - ENSI 2020

Playing with Java Microservices on Kubernetes - ENSI 2020

Nebrass Lamouchi

January 04, 2020
Tweet

More Decks by Nebrass Lamouchi

Other Decks in Education

Transcript

  1. View Slide

  2. Agenda
    • Part 1: The Monolithics Era
    • Part 2: Coding the monolith
    • Part 3: Microservices Era
    • Part 4: Applying DDD to the code
    • Part 5: Mee@ng & Implemen@ng the µservices concerns and paDerns
    • Part 6: Building the standalone µservices
    • Part 7: Packaging µservices in containers
    • Part 8: Falling in ❤ with container orchestrator: KUBERNETES ”
    • Part 9: Applying the Kubernetes Style
    • Part 10: Mee@ng Azure ☁
    • Part X: What ’s next ?

    View Slide

  3. Nebrass?
    • Senior Software Engineer at Microsoft
    • Groundbreaker Awards 2019 Winner
    • Former de la NetBeans Dream Team
    • OWASP Project Leader depuis 2013
    • Two Books author

    View Slide

  4. Part 1: The Monolithcs Era
    • Introduc)on to an actual situa)on
    • Presen)ng the context
    • How to solve these issues?

    View Slide

  5. Part 2: Coding the monolith
    • Presenting our domain
    • Coding the application: Spring Boot & Java 8
    • Building & Deployment
    • Limitations

    View Slide

  6. Part 3: Microservices Era
    • Why μservices? Really ?
    • Making the switch
    • SpliIng the Monolith: Bombarding the domain
    • Mee)ng the Domain Driven Design:
    • Context Domain
    • Model
    • Ubiquitous Language
    • Bounded contexts
    • Bombarding the codebase
    • Dependencies and Commons
    • En))es !
    • Refactoring Databases !
    • Transac)onal Boundaries !

    View Slide

  7. Part 4: Applying DDD to the code
    • Applying BoundedContexts to Java Packages
    • The birth of the commons package
    • The birth of the configuration package
    • Locating & breaking the BC Relationships
    • Locating the BC Relationships
    • Breaking the BC Relationships

    View Slide

  8. Part 5: Meeting & Implementing the µservices
    concerns and patterns
    • Service discovery and registra)on
    • Externalized configura)on
    • Circuit Breaker
    • Database per service
    • API gateway
    • CQRS & Eventsourcing
    • Log aggrega)on
    • Distributed tracing
    • Audit logging
    • Applica)on metrics
    • Health checks

    View Slide

  9. Part 6: Building the standalone µservices
    • Global Architecture Big Picture
    • Implementing the μServices

    View Slide

  10. Part 7: Packaging µservices in containers
    • Docker
    • Packaging a µservice in a Docker Container
    • Docker orchestra)on ?
    • Limita)ons

    View Slide

  11. Part 8: Falling in ❤ with KUBERNETES
    • Kubernetes Architecture
    • Kubernetes Core Concepts

    View Slide

  12. Part 9: Applying the Kubernetes Style
    • Discovering the Kubernetes style
    • Revisi)ng our Cloud PaYerns aZer mee)ng Kubernetes
    • Service Discovery and Registra)on
    • Load Balancing
    • Externalized Configura)on
    • Log aggrega)on
    • Health check API
    • API Gateway
    • Distributed Tracing

    View Slide

  13. Part 10: Applying the Kubernetes Style
    • Discovering the Kubernetes style
    • Revisiting our Cloud Patterns after meeting Kubernetes
    • Service Discovery and Registration
    • Load Balancing
    • Externalized Configuration
    • Log aggregation
    • Health check API
    • API Gateway
    • Distributed Tracing

    View Slide

  14. Part 11: What’s next ?
    • RedHat OpenShift ?
    • Google Kubernetes Engine
    • Azure Kubernetes Service
    • Amazon Elastic Kubernetes Service
    • IBM BlueMix Cloud

    View Slide