Extinction of Dinosaurs Rise of Microservices Dinosaurs What

  • Slides: 24
Download presentation
Extinction of Dinosaurs -> Rise of Microservices

Extinction of Dinosaurs -> Rise of Microservices

Dinosaurs • What were they like? • • Big Heavy Clumsy Ancient • Why

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

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

Monolith vs. Microservices • Monolith • All functionality in single process • Scales by replicating the monolith © Tieto Corporation • Microservices • Every element of functionality in a separate process • Scales by replicating services

What is it? “Java, the Unix way” -- James Lewis @ 33 rd Degree

What is it? “Java, the Unix way” -- James Lewis @ 33 rd Degree 2012 “Fine grained SOA” -- Adrian Cockcroft (Netflix) © Tieto Corporation

What is it? • Set of small services • Separate processes • Lightweight communication

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

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

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

Decentralized Data Management vs. © Tieto Corporation

Decentralized Data Management vs. © Tieto Corporation

Decentralized Conceptual Model © Tieto Corporation

Decentralized Conceptual Model © Tieto Corporation

Implementation details

Implementation details

Component types • Clients • Business components • Handlers • Data access components ©

Component types • Clients • Business components • Handlers • Data access components © Tieto Corporation

Single component design © Tieto Corporation

Single component design © Tieto Corporation

Single component modules • • Schema OXM Component Server © Tieto Corporation

Single component modules • • Schema OXM Component Server © Tieto Corporation

Integrations • Interface versioning • Tolerant Reader • “Be conservative in what you do,

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. Order.

Supporting functions • Logging & traceability • Unique Process Call ID • salsa. Order. Manager#enter. Order. Product. Manager#validate. Order • Client Trace ID • 4 aacef 0 f 2 a 69469 d: -36 fc 953 d: 1449 aee 3 f 22: 5730 • Monitoring • JMX & Rest • Info, stats, probes • Centralized configuration © Tieto Corporation

Pros vs. Cons Summary Pros Cons • Microservice is „small“ • Can be deployed

Pros vs. Cons Summary Pros Cons • Microservice is „small“ • Can be deployed independently • Development scalability • Improved fault isolation • Eliminates long-term commitment to a technology • Complexity of distributed system © Tieto Corporation • • 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

Questions? About microservices and things we do, carnivorous plants, chameleons, crickets, ground worms or dinosaurs?

Thank you!!!

Thank you!!!

Frameworks • • • JCore Spring, Spring WS Hibernate / JPA Embedded Jetty Liquibase

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

Decentralized Governance • Use right language for the job • Tools prior written-down standards • Checkstyle, Find. Bug, Sonar. Qube © Tieto Corporation

Organized around Business Capabilities “Any organization that designs a system will produce a design

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

Traditional organization • Focus on technology layer • Changes lead to cross team projects • Logic is forced to “home” layer – logic everywhere © Tieto Corporation

Infrastructure & Automation • Git on Gerrit • Every component is separate project •

Infrastructure & Automation • Git on Gerrit • Every component is separate project • Build pipeline • Gerrit -> staging -> peer reviews -> merge build • Automate deployments and testing • System “configuration” verification and propagation © Tieto Corporation