extinction of dinosaurs -> rise of microservices

24
Extinction of Dinosaurs -> Rise of Microservices

Upload: winchell-vance

Post on 01-Jan-2016

43 views

Category:

Documents


0 download

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 Presentation

TRANSCRIPT

Extinction of Dinosaurs -> Rise of Microservices

© 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

Decentralized Data Management

vs.

© Tieto Corporation

Decentralized Conceptual Model

Implementation details

© Tieto Corporation

Component types

• Clients• Business

components• Handlers• Data access

components

© Tieto Corporation

Single component design

© Tieto Corporation

Single component modules

• Schema• OXM• Component• Server

© 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?

Thank you!! !

© 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

© Tieto Corporation

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