extinction of dinosaurs -> rise of microservices
DESCRIPTION
Extinction of Dinosaurs -> Rise of Microservices. Dinosaurs. What were they like? Big Heavy Clumsy Ancient Why did they extinct ? Massive asteroid impact Catastrophic effect on an environment Haven‘t adapted fast enough They didn't have a space program ;-). A little bit of context. - PowerPoint PPT PresentationTRANSCRIPT
© Tieto Corporation
Dinosaurs
• What were they like?• Big• Heavy• Clumsy• Ancient
• Why did they extinct?• Massive asteroid impact• Catastrophic effect on an
environment• Haven‘t adapted fast enough• They didn't have a space
program ;-)
© Tieto Corporation
A little bit of context
• Enterprise Applications• Client-side user interface
• HTML pages and javascript• Running on user’s machine
• Server-side application• Handle HTTP requests• Execute domain logic• Access database• Select and populate HTML
• Database
© Tieto Corporation
Monolith vs. Microservices
• Monolith• All functionality in single
process• Scales by replicating the
monolith
• Microservices• Every element of functionality
in a separate process• Scales by replicating
services
© Tieto Corporation
What is it?
“Java, the Unix way” -- James Lewis @ 33rd Degree 2012
“Fine grained SOA” -- Adrian Cockcroft (Netflix)
© Tieto Corporation
What is it?
• Set of small services• Separate processes• Lightweight
communication• Organized around
business capabilities• Independently
deployable• Scalable
© Tieto Corporation
Services not Libraries
• Component – independently replaceable and upgradeable• Libraries
• Components linked in a program• Called using in-memory function calls
• Services• Independently deployable and runnable• Called using web service request or RMC – more expensive• More explicit component interface
© Tieto Corporation
Dumb pipes and smart endpoints
• Dumb pipes• Lightweight communication
• HTTP or lightweight messaging• “Be of the web, not behind the web” -- Ian Robinson
• Smart endpoints• As decoupled and cohesive services as possible• Doing routing and choreography decisions
© Tieto Corporation
Component types
• Clients• Business
components• Handlers• Data access
components
© Tieto Corporation
Integrations
• Interface versioning• Tolerant Reader
• “Be conservative in what you do, be liberal in what you accept from others.” -- Jon Postel
• Consumer-Driven Contracts• Error Handling
• Client vs. Server exceptions
© Tieto Corporation
Supporting functions
• Logging & traceability• Unique Process Call ID
• salsa.OrderManager#enterOrder.ProductManager#validateOrder
• Client Trace ID• 4aacef0f2a69469d:-36fc953d:1449aee3f22:5730
• Monitoring• JMX & Rest• Info, stats, probes
• Centralized configuration
© Tieto Corporation
Pros vs. Cons Summary
Pros• Microservice is „small“• Can be deployed
independently• Development scalability• Improved fault isolation• Eliminates long-term
commitment to a technology
Cons• Complexity of distributed
system• Testing• Inter-service communication• Distributed transactions• Coordination between teams (?)
• Management and deployment complexity
• Resources consumption
Questions?About microservices and things we do, carnivorous plants, chameleons, crickets, ground worms or dinosaurs?
© Tieto Corporation
Frameworks
• JCore• Spring, Spring WS• Hibernate / JPA• Embedded Jetty• Liquibase• Constretto
© Tieto Corporation
Decentralized Governance
• Use right language for the job• Tools prior written-down standards
• Checkstyle, FindBug, SonarQube
© Tieto Corporation
Organized around Business Capabilities
“Any organization that designs a system will produce a design whose structure is a copy of the organization's communication structure.”
-- Melvyn Conway, 1967
© Tieto Corporation
Traditional organization
• Focus on technology layer• Changes lead to cross team projects• Logic is forced to “home” layer – logic
everywhere