Microservice architecture case study

21
Microservice Architecture By Rudra prasad Tripathy 29 th April

Transcript of Microservice architecture case study

Page 1: Microservice architecture case study

Microservice Architecture

By Rudra prasad Tripathy

29th April

Page 2: Microservice architecture case study

Contemporary technologies

l SOA/ESB

l EAI

l Layers/tiered/component architecture

Page 3: Microservice architecture case study
Page 4: Microservice architecture case study

Gartner pattern

Page 5: Microservice architecture case study

Principlesl Componentization via Servicesl Organized around Business Capabilitiesl Products not Projectsl Smart endpoints and dumb pipesl Decentralized Governancel Decentralized Data Managementl Infrastructure Automationl Design for failurel Evolutionary Design

Page 6: Microservice architecture case study

Use case

Desktop

Mobile

RESTController

Spring core

Business processworkflow RDBMS

Searchservice

1 2

3 4

5

6

7

NGNIX

Page 7: Microservice architecture case study

Use casel The use case doesn't have spring integration, but using spring

controller.l Spring controller can access JPA service in case of Http service

operation without core. l Workflow services also can be accessed directly.l Spring security can be integrated to make it API Gateway.

Page 8: Microservice architecture case study

Contemporary technologies

l SOA/ESB

l EAI

l Layers/tiered/component architecture

Page 9: Microservice architecture case study

Componentization via Services

• component is a unit of software that is independently replaceable and upgradeable.

• One main reason for using services as components (rather than libraries) is that services are independently deployable

• A service may consist of multiple processes that will always be developed and deployed together, such as an application process and a database that's only used by that service.

Page 10: Microservice architecture case study

Organized around Business Capabilities

• Conway's Law• Cross team dependency• Smaller services make it easy for small teams working on this without much

dependency on other teams. The boundry is easy to define

Page 11: Microservice architecture case study

Products not Projects

Microservice proponents tend to avoid PROJECT model.

• The product mentality, ties in with the linkage to business capabilities

• Smaller granularity of services can make it easier to create the personal relationships between service developers and their users.

Page 12: Microservice architecture case study

Smart endpoints and dumb pipes

• Avoiding approaches that stress putting significant smarts into the communication mechanism itself.

• Applications built from microservices aim to be as decoupled and as cohesive as possible.

• Messaging over a lightweight message bus.

Page 13: Microservice architecture case study

Decentralized Governance

• One of the consequences of centralized governance is the tendency to standardize on single technology platforms.

• Teams building microservices prefer a different approach to standards too.

• Perhaps the apogee of decentralised governance is the build it / run it ethos popularised by Amazon.

• Patterns like Tolerant Reader and Consumer-Driven Contracts

• Centralized governance can be achived through API GATEWAY.

Page 14: Microservice architecture case study

Decentralized Data Management

• At the most abstract level, it means that the conceptual model of the world will differ between systems.

• As well as decentralizing decisions about conceptual models, microservices also decentralize data storage decisions.

• Choosing to manage inconsistencies in this way is a new challenge for many development teams,

Page 15: Microservice architecture case study

Infrastructure Automation

• Many of the products or systems being build with microservices are being built by teams with extensive experience of Continuous Delivery and it's precursor, Continuous Integration.

• Managing microservices in production.

• Promotion of working software 'up' the pipeline means we automate deployment to each new environment.

Page 16: Microservice architecture case study

Design for failure

• A consequence of using services as components, is that applications need to be designed so that they can tolerate the failure of services.

• ince services can fail at any time, it's important to be able to detect the failures quickly and, if possible

• Synthetic monitoring.

• Unified monitoring

Page 17: Microservice architecture case study

Evolutionary Design

• Agile pattern• Evolving architecture

Page 18: Microservice architecture case study

Tools and techniques

l Apache camell Jboss fusel WSO2

Page 19: Microservice architecture case study

Technology changes support

• Maturity in DevOp

API management tool

Maturity in REST approach.

Asynchronous capability

Page 20: Microservice architecture case study

Reference

• Martin flower.

Page 21: Microservice architecture case study