Microservices: A stack of blocks for building your business
‘Microservices’ is well on its way to becoming a buzzword. Why? What are they good for? Opinions vary, but that’s only natural. Like most things, they can be used in a variety of ways.
Done right, our experience is that well designed microservices architecture is a key to impressive change all around, from daily team development to product value, and long term business strategy.
Here’s a (very) simple definition: Microservices are small and independent pieces of backend, with individual capabilities, built separately. They can be made to work together seamlessly, and help with speed, stability, flexibility, and scalability.
Now, a more detailed definition, from a forthcoming blog post:
“Microservices are loosely coupled, independently deployable applications that are focused on fulfilling a single cohesive responsibility. The microservices mindset encourages continuous deployment cycles, promotes choosing the right tool for each job, and helps to build a highly fault-tolerant architecture that can be evolved and scaled on a fine-grained level. Implementing a microservice architecture requires a substantial investment in an automated deployment infrastructure.”
Keep reading to find about benefits from a business point of view. A substantial investment is required, but the returns are way beyond.
Good for creativity
For a forward thinking perspective, microservices allow you to move way faster and smarter. If backends could be plug-and-play, they would be it.
Microservices do require a certain level of automation, and getting there requires work. But, they are faster to program and can be written independent of each other, in any language that feels suitable. Regardless, when you add features to a product or combine things, you’ll never have to transform data or rewrite anything.
New user experiences can be built from independently functioning APIs, at lightning speed. Then, data services, for example, can be repurposed across the product portfolio. You can try new things, and keep the ones that make sense. And, for example, make a sizeable web service go live in a month.
Strategically speaking: You can innovate. A modular construction in the core of your product development supports innovation and small teams that make decisions, with ownership. That’s exactly what should be happening, according to both common sense and the zeitgeist of organizational thinking.
Good for business
Making stuff quickly yet well can’t be a bad way to do business. Before you know it, speed and quality also become drivers for foresight capability. That gives you ability to keep up with change, and the market.
(Probably the most commonly agreed upon assumption of an ideal business strategy for the next wave of digitalization, right?)
A modular architecture in the cloud is also a dream in terms of scalability. You can scale just like that, basically. Look at Netflix. They launched in 130 new countries on the same day, without a hitch.
Good for people
In spite of being blatantly obvious, I’ll sum it up so far to tell you why microservices are good for people:
1) Everyone, including you, loves doing exciting and new things that are great for business. Success and good conditions for innovation tend to lead to better morale, authentic enthusiasm, confidence, and happiness.
2) They have been called a key to cultural changes, not just by us, but in many a seminar. This is something we would love to talk about to all business stakeholders, even if it’s just over coffee.
3) Plus, programmers love writing elegant code. What’s more elegant than writing less code that gets used more?
Is there anything microservices are not good for? I turned to Eetu Blomqvist, the CTO of our New York office, for insight.
“As long as you know what you’re doing, not really. That being said, they can make certain things a bit more challenging, like maintaining data integrity and distributed transactions across separate components. But that’s just something that has to be taken into account,” he told me.
“And actually, when building a small and simple product, like one individual mobile app, it might make sense to start with a monolithic backend. But, as soon as the portfolio starts growing, transferring to microservices makes sense, and can be done relatively easily.”
“Everything considered, microservices are not a silver bullet, just a great scalable technological solution. To provide value, the same rule applies as always in software development: You have to do it in a business oriented way. That means designing and building when an actual need is realized, planning too far ahead only causes problems. And, building simultaneously with the frontend is essential to make sure the service matches the needs of the product,” he continues.
Thanks! One more question: Can we help anyone do what Yle is doing?
“Yes. That, and more.”
In addition to Yle, Reaktor has designed and built microservices for clients such as HBO, Stockmann, and Mehiläinen. We have a feeling 2017 is going to be a great year for building houses out of blocks, too.