10
Design Patterns, Microservice Architecture and Mulesoft Prepared by: René Lucena Date: 08/15/2016 Presented By: Mountain State Software Solutions LLC

microservices in mulesoft

Embed Size (px)

Citation preview

Design Patterns, Microservice Architecture and Mulesoft

Prepared by: René LucenaDate: 08/15/2016

Presented By: Mountain State Software Solutions LLC

Design Patterns, Microservice Architecture and MuleSoft

Prepared by: René Lucena

• What is a “Microservice”?- New way to create corporate applications, where applications are

broken down into smaller, independent services, that are not dependent upon a specific coding language.

In simple terms just a small, strong, very reliable little piece of software.

Design Patterns, Microservice Architecture and MuleSoft

Prepared by: René Lucena

• What is Microservice architecture/Microservice application network?

-“A microservices architectural style leverages the ideology of developing a single application as a suite of small, narrowly focused, independently deployable services. Those services are encapsulated for specific business capabilities and are deployed independently using a fully automated mechanism. Additionally, each microservice runs in its own process.”

Design Patterns, Microservice Architecture and MuleSoft

Prepared by: René Lucena

• What is a Monolithic application?- A single-tiered software application in which the user interface and data access

code are combined into a single program from a single platform. A monolithic application is self-contained, and independent from other computing applications.

- In simple terms one HUGE, hard to manage, uncontrollable thing.

Design Patterns, Microservice Architecture and MuleSoft

Prepared by: René Lucena

• What happens to Monolithic applications?- The large monolithic code base intimidates developers, especially ones who are new

to the team. The application can be difficult to understand and modify. As a result, development typically slows down. Also, because there are not hard module boundaries, modularity breaks down over time. Moreover, because it can be difficult to understand how to correctly implement a change the quality of the code declines over time. It’s a downwards spiral.

- In simple terms a big mess.

Design Patterns, Microservice Architecture and MuleSoft

Prepared by: René Lucena

Is the difference between monolithic applications and microservices clear

enough?...Just to make it easier to remember :

Design Patterns, Microservice Architecture and MuleSoft

Prepared by: René Lucena

• What are we going to do about all this (for the time being)?- Keep applications as lean as possible

- Application should be able to deploy independently

- Project teams need to easily discover services as potential reuse candidates. These

services should provide documentation, test consoles, etc so re-using is significantly easier

than building from scratch.

- Evaluate if business functions may need to become their own microservice. For example

sgas-batch-billing, think about separating complex business functions (like aria account

creation and update), customers, etc.

- CAREFULLY EVALUATE new business functionality that your jira tasks demands, also be

careful when coupling to an existing service. Discuss or consult a tech lead/architect to see

if new microservice needs to be created especially if you are not sure where your code is

supposed to go.

Design Patterns, Microservice Architecture and MuleSoft

Prepared by: René Lucena

• The Result:

• With each other’s help and everyone’s participation we are going to drive towards using microservice architecture during design review meetings and pull requests.

• Example of bad practice: adding additional coupling to this application

Design Patterns, Microservice Architecture and MuleSoft

Prepared by: René Lucena

• References:https://www.mulesoft.com/resources/api/microservices-vs-monolithic

https://www.mulesoft.com/resources/api/what-are-microservices

http://www.whishworks.com/blog/api/microservices-with-mule/

http://microservices.io/patterns/monolithic.html

http://www.slideshare.net/SteveSfartz/building-microservices-55458071

http://www.slideshare.net/alvarosanchezmariscal/stateless-authentication-for-microservices

http://www.coscale.com/blog/comparing-microservices-and-monolithic-applications-from-the-pers

pective-of-monitoring

https://www.mulesoft.com/lp/whitepaper/api/microservices-best-practices

https://www.mulesoft.com/webinars/api/microservices

Design Patterns, Microservice Architecture and MuleSoft

Prepared by: René Lucena