Build resilient systems at scale
May 27–29, 2015 • Santa Clara, CA

The principles of microservices

Sam Newman (Independent)
3:30pm–5:00pm Wednesday, 05/27/2015
Tutorial
Location: Ballroom CD
Average rating: ****.
(4.90, 39 ratings)
Slides:   external link

Prerequisite Knowledge

This talk will cover some of the challenges associated with developing distributed systems, and as such any prior experience in this area will help. That said, the talk should be accessible to any technologist with server-side experience.

Description

Microservices are small services with independent lifecycles that work together. There is an underlying tension in that definition – how independent can you be when you have to be part of a whole? I’ve spent much of the last couple of years trying to understand how to find the right balance, and in this talk/tutorial I’ll be presenting the core seven principles that I think represent what makes microservices tick.

After a brief introduction of what microservices are and why they are important, we’ll spend the bulk of the time looking at the principles themselves, wherever possible covering real-world examples and technology:

  • Modelled around business domain – using techniques from domain-driven design to find service boundaries leads to better team alignment and more stable service boundaries, avoiding expensive cross-service changes.
  • Culture of automation – all organisations that use microservices at scale have strong cultures of automation. We’ll look at some of their stories and think about which sort of automation is key.
  • Hide implementation details – how do you hide the detail inside each service to avoid coupling, and ensure each service retains its autonomous nature?
  • Decentralize all the things! – we have to push power down as far as we can, and this goes for both the system and organisational architecture. We’ll look at everything from autonomous self-contained teams and internal open source, to using choreographed systems to handle long-lived business transactions.
  • Deploy independently – this is all about being able to deploy safely. So we’ll cover everything from deployment models to consumer-driven contracts and the importance of separating deployment from release.
  • Isolate failure – just making a system distributed doesn’t make it more stable than a monolithic application. So what do you need to look for?
  • Highly observable – we need to understand the health of a single service, but also the whole ecosystem. How?

In terms of learning outcomes, beginners will get a sense of what microservices are and what makes them different, whereas more experienced practitioners will get insight and practical advice into how to implement them.

Photo of Sam Newman

Sam Newman

Independent

Sam Newman is a developer at ThoughtWorks, where he’s been working for over ten years. During that time he’s worked extensively with the cloud and continuous delivery, especially preoccupied with understanding how to more easily deploy working software into production.

Sam is the author of O’Reilly Media’s Building Microservices. Learn more. http://oreil.ly/1KTYJ3h

For the last few years he has been exploring the capabilities of microservice architectures, and is the author of Building Microservices which will shortly be available from O’Reilly. As well as consulting for ThoughtWorks and working as an architect for our their internal systems, he also speaks frequently at conferences.

Comments on this page are now closed.

Comments

Sam Newman
05/28/2015 7:18am PDT

You can find the slides for the session here: http://www.slideshare.net/spnewman/principles-of-microservices-velocity

Husain Shambhoora
05/28/2015 4:10am PDT

Is there a link to the presentation?