3. Features Known
● modularity a step towards clean architecture
● single responsibility principle SOLID app!
● distributed deployment model scalable app!
● full isolation of:
○ teams and backlogs bye 30-min meetings!
○ versioning CI increments it when needed
○ repositories a repo per module is faultless
○ documentation small separated docs
○ CI servers concurrent build of everything
○ hardware isolation of JVMs and instances
11. Benefits of Microservices
● Independent of languages true polyglot programming
● Independent of frameworks choose best for purpose
● Independent of datasources SQL, NoSQL, files, streams
● Independent of other microservices except contracts
● Independent of UI frontend guys don't even know you
● Asynchronous speed up your system X times
● Observable monitoring, logging, tracing
● Testable embraces automated testing
16. Companies Evolved To Microservices
● Google
● Netflix
● eBay
● Amazon
● Facebook
Are you
operating on
the same
scale?
● PayPal
● Twitter
● Walmart
● Spotify
● LinkedIn
19. Microservices vs Modularity / Milen Dyankov
Milen Dyankov -
Microservices and
Modularity or the difference
between treatment and cure!
JUG .ru
149 views
Uploaded on May 4, 2017
1:02:08
25. REST API
● Server-side query engine greatly enriches plain REST
● CQRS segregation supports queries and mutations
● Sync/async execution even better in GraphQL 5.0
● Schema as documentation yet another doc for your API
27. Resilience
● Fault-tolerance with fallback no more cascading failures
● Repeatable commands configurable
● Sync/async/reactive execution thanks to RxJava!
● Latency metrics for each call
● Web dashboard see problems on circuits instantly
29. Logging
+ Transparent logging unique request ID across the system
+ All services have logs from API Gateway to DB workers
+ 2K requests/sec ~10K log entries per second
+ Automated request logging on every Hystrix call
30. Monitoring and tracing
+ Hystrix metrics and healtchecks built-in
+ Dropwizard metrics and healthchecks built-in
+ Brave/Zipkin tracing request timespans
+ Metrix from JVM threads, GC, memory, NIO buffers etc.
+ Custom endpoints /ping, /properties etc.
+ AWS monitoring Cloudwatch, RDS, Asgard etc.
+ 3rd party monitoring Kafka/Hermes, RMQ, Icinga,
31. Configuration
Static
● Source configuration files
● Jenkins configurations for
build & deployment
Dynamic
● Git repos for dynamic settings
● Endpoints to rewrite dynamic
settings
32. Testing
● API unit- and IT tests JUnit/Mockito/TestNG
● API load testing JMeter
● API regression testing Chakram JS
● Manual testing