34
Microservices Architecture Building 'SMART' & 'Agile' Software Sabby Gupta {Product Architect -> Zaloni Inc.} 1

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

Embed Size (px)

Citation preview

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

Microservices Architecture

Building 'SMART' & 'Agile' Software

Sabby Gupta {Product Architect -> Zaloni Inc.}

1

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

What’s in it for me?

2

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

3

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

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

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

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

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

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

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

Technical Value

8

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

Technology Heterogeneity

9

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

Ease of deployment

10

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

Composability

11

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

Resilience

Bulkheading - manage failure without having it cascade throughout

the services participating in the workflow

12

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

Scaling

13

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

Optimizing for replaceability

14

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

Organizational Value

15

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

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

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

Sample Reference Architecture

17

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

Development & Ops Process

18

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

Microservice Architecture

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

19

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

Principles of Microservices 20

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

Principle 1 - Business Domain Modelling & Responsibilities

Order

Customer

Bonus

Program #

Delivery

Customer

Delivery

Address

Delivery

Service Type

Billing

Customer

Billing

Address

Tax Rate

21

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

22

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

Principle 2 - Automation

23

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

Principle 3 - Encapsulate & Aggregate

24

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

Principle 4 - Autonomy / Self-Service

25

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

Dumb Pipes, Smart Endpoints

26

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

Principle 5 - Deploy Independently

Service :: Host Consumer Driven Contracts Versioning

27

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

Principle 6 - Api First Design

Documentation

28

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

Principle 6 - Api First Design

Service Discovery

29

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

Principle 7 - Failure Isolation

Bulkheading

Circuit Breaker

30

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

Principle 8 - Devops

Log Aggregation

Stats Aggregation

Service Ops Correlation

31

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

Principle 9 -Organizational

Culture & Psychological

Safety

~Peter Drucker~

32

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

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

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

Thanks!

Contact us:

Zaloni Inc

633 Davis Dr, Durham, NC

27709

[email protected]

@sabygupta

https://www.linkedin.com/in

/sabyasachigupta/

34