Slide 1

Slide 1 text

Playing with Java µservices on Kubernetes Nebrass Lamouchi – ENSI Tunisia, November 2018 Workshop

Slide 2

Slide 2 text

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 X: What’s next ?

Slide 3

Slide 3 text

Nebrass? Ø Technical Leader chez ONEPOINT Ø Membre de la NetBeans Dream Team Ø OWASP Project Leader depuis 2013 Ø Two Books author J Ø@NebrassLamouchi Øgithub.com/nebrass

Slide 4

Slide 4 text

Part 1: The Monolithcs Era • Introduction to an actual situation • Presenting the context • How to solve these issues?

Slide 5

Slide 5 text

Part 2: Coding the monolith • Presenting our domain • Coding the application: Spring Boot & Java 8 J • Building & Deployment • Limitations ? L

Slide 6

Slide 6 text

Part 3: Microservices Era • Why µservices? Really ? • Making the switch • Spli8ng 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 !

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

Part 5: Meeting & Implementing the µservices concerns and patterns • Service discovery and registration • Externalized configuration • Circuit Breaker • Database per service • API gateway • CQRS & Eventsourcing • Log aggregation • Distributed tracing • Audit logging • Application metrics • Health checks

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

Part 7: Packaging µservices in containers • Docker • Packaging a µservice in a Docker Container • Docker orchestra3on ? • Limita3ons L

Slide 11

Slide 11 text

Part 8: Falling in ❤ with container orchestrator: KUBERNETES " • Kubernetes Architecture • Kubernetes Core Concepts

Slide 12

Slide 12 text

Part 9: 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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

No content