Microservices is a terrible word
When we talk about microservices, we see micro and start to think it’s something that we can count. I can tell you how big it is and I can measure it, and I can put a number on it—like lines of code or number of operations or things like that.
Don’t do that, that’s all wrong.
It’s not quantitative micro, it’s qualitative micro.
Role, responsibility, capability, focus, scope—those things are really hard to measure because every person in the room and every context that you come from—you’re going to have a slightly different answer to this question: How big is too big that it’s time to start decomposing this thing into something that we’re calling microservices?
The best definition of microservices comes from Adrian Cockcroft: “Loosely coupled service-oriented architecture with bounded contexts.”
Microservices: My First Piece of Advice
If you’re smart, don’t try to do microservices on day one.
You should actually start with a monolith. If I could build everything I wanted to build as a monolith and do continuous delivery and be agile and innovate and get all that right, I would because it would be a whole heck of a lot easier than doing microservices.
The Reality of Microservices
Microservices are hard stuff.
Start with a monolith while you’re small, while you can. You’re going to build something new, this is where you want to begin small teams, small monolith, make it 12 factor.
If you have something small, doesn’t matter if it’s a microservice or a monolith or anything else, making something 12 factor and having that contract between application and the platform such that they get along well with one another is relatively easy to do.
It’s a lot harder to take something that’s big and been around for a long time and turn that into a 12-factor app. I’m sure many folks in the room have felt that pain, but we all know that eventually things get bigger.
Microservices: Minimum Requirements
If you can’t do these four basic things, you aren’t ready:
- Provision new environments in seconds or minutes
- Monitor things reasonably well
- Deploy a new line of code very quickly
- Have something that feels like a DevOps culture
Microservices Run Well on Pivotal Cloud Foundry
You have issues that you have to deal with when you start deploying microservices like provisioning new environments and provisioning new code, which is something Pivotal sort of knows how to do in this world. When you bring these two things together: one doesn’t require the other but one can definitely help the other.
Check out the blog post: Deploying Microservice Architectures with Pivotal Cloud Foundry