Microservices Architecture: Building 'SMART' & 'Agile' Software

Preview:

Citation preview

Microservices Architecture

Building 'SMART' & 'Agile' Software

Sabby Gupta {Product Architect -> Zaloni Inc.}

1

What’s in it for me?

2

3

History

2010s2000s1990s1980s< 1970s

Netflix, Amazon,Google manage theirgrowth - apis, devops,distributed paradigm

SOA, Mobile, Efficiency & Cost savings, Agile, CI/CD

LISP, PROLOG, ERLANG, SMALLTALK

Web Services -Microsoft lead, DCOM/CORBA

Actor Model (Carl Hewitt) and human services (do one thing right)

4

Microservice architectural style is an approach to developinga single application as a suite of small services, each runningin its own process and communicating with lightweightmechanisms, often an HTTP resource API. These services arebuilt around business capabilities and independentlydeployable by fully automated deployment machinery. Thereis a bare minimum of centralized management of theseservices, which may be written in different programminglanguages and use different data storage technologies.

~Martin Fowler~

6

Compare to SOA?

● Horizontal vs Vertical Design

● Reusability

● Governance Standards

○ Web Services (WS-*),

XML, HTTP, SOAP etc

● EAI - ESB Focus - Smart Pipes

● Popularity of containers

● SOA DONE RIGHT

(opinionated way)!! 7

Technical Value

8

Technology Heterogeneity

9

Ease of deployment

10

Composability

11

Resilience

Bulkheading - manage failure without having it cascade throughout

the services participating in the workflow

12

Scaling

13

Optimizing for replaceability

14

Organizational Value

15

Organizational Alignment

“Any organization that designs a system

(defined more broadly here than just information

systems) will inevitably produce a design whose

structure is a copy of the organization’s

communication structure.”

~Melvin Conway~

If you have four groups working on a compiler,

you’ll get a 4-pass compiler.

~Eric S. Raymond~16

Sample Reference Architecture

17

Development & Ops Process

18

Microservice Architecture

https://jhipster.github.io/microservices-architecture/

19

Principles of Microservices 20

Principle 1 - Business Domain Modelling & Responsibilities

Order

Customer

Bonus

Program #

Delivery

Customer

Delivery

Address

Delivery

Service Type

Billing

Customer

Billing

Address

Tax Rate

21

22

Principle 2 - Automation

23

Principle 3 - Encapsulate & Aggregate

24

Principle 4 - Autonomy / Self-Service

25

Dumb Pipes, Smart Endpoints

26

Principle 5 - Deploy Independently

Service :: Host Consumer Driven Contracts Versioning

27

Principle 6 - Api First Design

Documentation

28

Principle 6 - Api First Design

Service Discovery

29

Principle 7 - Failure Isolation

Bulkheading

Circuit Breaker

30

Principle 8 - Devops

Log Aggregation

Stats Aggregation

Service Ops Correlation

31

Principle 9 -Organizational

Culture & Psychological

Safety

~Peter Drucker~

32

Silver Bullet?

- Invest in aligning teams toservice architecture

- Invest in understanding andmodeling business domain

- Invest in infra automation

- Invest in automated testing

- Invest in ContinuousDelivery

- Invest in API First Design

- Will experience hockey stickgrowth in microserviceadoption

- OK to start monolithic andmove to microservices

33

Thanks!

Contact us:

Zaloni Inc

633 Davis Dr, Durham, NC

27709

sgupta@zaloni.com

@sabygupta

https://www.linkedin.com/in

/sabyasachigupta/

34

Recommended