Mauricio Salatino
@salaboy
Laurent Broudoux
@lbroudoux
SIMPLIFYING CLOUD-NATIVE APP TESTING
ACROSS ENVIRONMENTS
Who we are!
Mauricio Salatino
@salaboy
Laurent Broudoux
@lbroudoux
CNCF Ambassador, Java Champion,
Dapr ecosystem @ Diagrid
Cloud native Architect @ Postman
Microcks founder
Agenda
The Pizza App Demo 🪄
How companies solve these challenges?
Abstract away the complexity of a system behind APIs.
A different approach
Push the problem down to the runtime
Demo 🪄
Great, it runs on Kubernetes, but how do we run this locally
Demo 🪄
Oops… I added a
new service dependency…
DevEx & DISTRIBUTED APPS - WHAT A BURDEN!
$ mvn spring-boot:run
$ ./gradlew bootRun
$ npm run dev
$ ./mvnw quarkus:dev
$ make run
$ docker compose up -d
$ go run main.go
$ ./kafka-server-start.sh
$ postgres -D ~/pg-data
DevEx & DISTRIBUTED APPS - WHAT THE HELL!
The Developer’s Laptop
Service A
Service B
Service C
Database A
Database B
Database C
OK BUT …
LOTS OF COMPLEXITY
LOTS OF POWER / ENERGY
LOTS OF MONEY!
🔥
🔥
🔥
🔥
🔥
🔥
🔥
🔥
🔥
🔥
🔥
🔥
DevEx & DISTRIBUTED APPS -
TAKING SHORTCUTS
FROM DISTRIBUTED APPS to PROMISES to …
Services
& APIs
Promises
Contracts
MICROCKS
Turn Artifacts into light & smart simulations
INGEST
PROVIDE
MOCKS
WELL-KNOWN ARTIFACTS
🧠 SMART MOCKS
API Consumer
and others
MICROCKS
Turn Artifacts into Contract Testing Suite
INGEST
WELL-KNOWN ARTIFACTS
AUTOMATIC TEST SUITE
and others
VALIDATE
REAL API
API v1.2
API v1.1
API v1.0
API Provider
Inner or Outer Loops: Choice is yours!
Setup
Code
Build
Test
Push
Review
Build
Conform-ance
Security
Deploy
Inner loop
Outer loop
Pull/Merge Request
Developer
Team
Microcks
Microcks
Microcks
Demo 🪄
Contract Testing in Action!
Typical approach
Contract Testing in Action!
Microcks approach
✨ : managed by Microcks Testcontainers tests
✨
Usual Testing Nightmares (i) 😱
Typical “light” approach
Usual Testing Nightmares (i) 😱
Microcks approach
✨ : managed by Microcks Testcontainers tests
✨
✨
Usual Testing Nightmares (ii) 🤯
Typical “light” approach
Usual Testing Nightmares (ii) 🤯
Microcks approach
✨
✨
✨ : managed by Microcks Testcontainers tests
Wrap-up
KEY LEARNINGS
for a better Developer Experience!
THANKS!!!
Mauricio Salatino
@salaboy
Laurent Broudoux
@lbroudoux
Feedback is Gold! 💛