fun times with microservices

30
MicroServices By Christo Crampton, Tangent Solutions @toast38coza

Upload: christo-crampton

Post on 26-Jul-2015

217 views

Category:

Engineering


4 download

TRANSCRIPT

MicroServicesBy Christo Crampton, Tangent Solutions

@toast38coza

Some definitions …

–Adrian Cockroft

“Loosely coupled service oriented architecture with bounded contexts.”

–Adrian Cockroft

‘ "fine grained SOA." In a microservices architecture, an application is comprised of a

number of small, independent composable services that interact by way of an external

published protocol, such as REST, or a messaging service.

Each service is focused on an individual targeted business capability, and thus its scope is

minimized. For functionality out of scope, the microservice calls out to other microservices via

the published protocol.

Each microservice should not depend on other microservices: It can be deployed, scaled, and

managed independently with no effect on other microservices.’

“..an approach to developing a single application as a suite of small services, each running in

its own process and communicating with lightweight

mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by

fully automated deployment machinery.”

- Martin Fowler

Microservices

• Are a suite of small, lightweight services

• Which, Interact over lightweight protocol

• Built, around business capability

• Independently deployed, scaled and managed

Why go micro?

So what’s wrong with the monolith?

Eugene Dvorkinhttp://eugenedvorkin.com/seven-micro-services-architecture-advantages/

Traditional productivity curve

Time/size

Productivity

Microservices

Time/size

Productivity

Benefits

Small easy to understand codebase

Easy to deploy

Easy to scale

Reduced risk for innovation

Stay agile at Scale

Get Started• Build your next business capability as a small

service (or extract a capability into a small service)

• Make it awesome

• Re-use your experience

• Get better with each iteration

• Profit

Fork us

• https://github.com/TangentMicroServices

• http://eepurl.com/98-Cj

Resources - Reading List

• http://martinfowler.com/articles/microservices.html

• http://www.slideshare.net/adrianco/architectures-for-high-availability-qconsf

• http://www.activestate.com/blog/2014/08/microservices-and-paas-part-i

• http://www.activestate.com/blog/2014/08/microservices-and-paas-part-ii

• http://www.activestate.com/blog/2014/08/microservices-and-paas-part-iii

• http://www.activestate.com/blog/2014/08/microservices-and-paas-part-iv

• http://jimplush.com/talk/2015/02/28/microservices-allow-for-localized-tech-debt/

• http://www.slideshare.net/parikhk/restli-and-deco

• http://www.slideshare.net/adriancockcroft/dockercon-state-of-the-art-in-microservices

• https://engineering.groupon.com/2013/misc/i-tier-dismantling-the-monoliths/

• http://www.infoq.com/news/2014/06/soundcloud-microservices

• http://eugenedvorkin.com/seven-micro-services-architecture-advantages/

• http://www.slideshare.net/LappleApple/gilt-from-monolith-ruby-app-to-micro-service-scala-service-architecture?related=1

Questions?

c. Hafnarfjorour

The following slides weren’t in the

presentation, but might still be interesting …

Resources - People and Organizations

• Martin Fowler and Thoughtworks

• Adrian Cockraft and Netflix

“MicroServices move the complexity from the code to the infrastructure.”

Build competencies

Why micro services?

• Scalability, agility and speed

• Smaller batches

• Localize Technical Debt.

• Iterative

• The technology is here

It’s not all unicorns and roses

What makes MicroServices good is also what makes them difficult.

First impressions and lessons learned

• Keep it simple to start with

• Security / Authentication: system libraries

• Building, testing, reporting, monitoring etc is easier if you focus on a smaller set of tools

• Have fun with it