Microservices as the future of software architecture?
Microservices are gaining ground as the future answer to modern software architecture. But what are microservices actually? How do they differ from monoliths? And what are the advantages? Get the answers in this blog post, written on the basis of AWS re:Invent 2019, which takes place in Las Vegas from the 2nd to the 6th of December.
Why do we attend AWS re:Invent
In Denmark, we are known for our enthusiasm for Microsoft. That's why it's no surprise that Microsoft Azure is firmly implanted on the cloud market in Denmark, holding 60 % of the cloud solutions. The second place is held by AWS with only 6 % of the Danish market (Computerworld.dk). But on the world stage the situation is different. Here AWS (RightScale 2019 State of the Cloud, Flexera) dominate. So there is good reason to keep up with the latest development and participate in this year's AWS re:Invent in Las Vegas, Nevada, USA. The latest knowledge about cloud, microservices and how businesses can move from a monolithic software architecture to microservices software architecture will be presented here. We will share that knowledge in this blog post, which will be updated during the conference. It is our colleagues Rasmus Hagemann, Director & Head of Self-service and Cloud solutions, and Jacob Dalgaard, CTO, who are the messengers.
Know-how from AWS re:Invent 2019
AWS know-how. Monday 2 December
"On the first day of AWS re:Invent we have both been al the way down in the technical details and all the way up in the stratospheres of higher organisation. We have dived into the components of EC2 and learned how to put together resources for the specific needs and how to optimise costs. We have heard how Amazon is successful in organising their delivery organisation into small so-called 2-pizza teams, still ensuring high quality and a cohesive solution. Another very interesting session was when AWS explained how to optimise costs by using the various cloud components correctly. " – Rasmus Hagemann, Director & Head of Self-service and Cloud solutions, and Jacob Dalgaard, CTO.
AWS know-how. Tuesday 3 December
"In Tuesday's sessions, the focus was very much on modernisation. We saw how AWS specifically broke a classic web application into serverless microservices, and we walked away with a lot of good approaches to the challenge. We also got an answer as to why you should spend the energy moving your old monoliths in the cloud at all? Firstly, Microsoft has announced that .Net core will be their preferred solution in the future. Therefore, it will at some point become necessary to rewrite solutions to keep them supported. Secondly, a lot of money can be saved, both on licenses and operating costs, if you manage to choose the right components in the cloud." – Rasmus Hagemann, Director & Head of Self-service and Cloud solutions, and Jacob Dalgaard, CTO.
AWS know-how. Wednesday 4 December
"Today we were inside the engine room of both Uber and Airbnb. Uber told us how they use AWS Batch to run simulations on the software they are developing for their self-driving cars. Although they own a huge facility where they can test the cars in real situations, it would take ages to expose the cars to the many imaginable scenarios they may face. So they have built a giant simulation engine that can test the software in the various situations. Something as simple as a right turn in a junction can go wrong in a lot of ways, depending on how other drivers behave. The engine can simulate the same situation with many different variables and describe in which cases the software would fail.
Airbnb related how they had built fraud detection to reduce the number of suspicious bookings, and how they used Amazon SQS queues to secure the decoupling of the components and thus a scalable solution. Although the vast majority of all major companies have a digital transformation plan, there are still a lot of legacy systems and technical debts. In an end of the day panel debate, it was discussed how much these systems are preventing the company from transforming. " – Rasmus Hagemann, Director & Head of Self-service and Cloud solutions, and Jacob Dalgaard, CTO.
AWS know-how. Thursday 5 December
"Thursday has offered new impressions and interesting presentations. One of the more technical ones was when two AWS solution architects related how software architecture has changed with the introduction of cloud platforms. Based on the "7 Best Practice Principles for Architecting the Cloud", they took us through very specific cases from their own clients and projects. It's super interesting how differently an architect has to think when applications are to be built in the cloud. The 7 principles are:
- Design for failure and nothing fails
- Build security in every layer
- Leverage different storage options
- Implement elasticity
- Think parallel
- Loose coupling sets you free
- Don't fear constraints
We also heard about how LEGO is transforming its old e-commerce platform into a scalable serverless solution. The motivation for LEGO was when they were down for 3 hours during Black Friday 2018 due to legacy systems that could not keep up. This year, the bottlenecks were moved to scalable components, and the webshop itself was 100 % serverless. The product database itself and other backend components were still placed in the old solution, but since they were not challenged in 2018, they could remain there. The transformation is a great example of not having to move an entire legacy platform at once. It is often more advantageous to move the exposed parts first and then quietly move the rest in small chunks." – Rasmus Hagemann, Director & Head of Self-service and Cloud solutions, and Jacob Dalgaard, CTO.
What are microservices?
Microservices is software architecture built from a collection of smaller services, each of which runs their own processes and communicates with each other via the API. According to Google Trends, the interest in microservices began to really accumulate in 2015 (Google Trends). However, it is especially with the prevalence of Cloud that microservices has gained even more legitimacy as new software architecture.
Monolith vs. microservices
A monolith is what we today characterise as a 'classic' IT solution where all parts of the software are in one indivisible component. All processes are closely linked and treated as one single service. When making improvements, changes or updates to a monolith, it is done by updating the entire system at once. The opposite is true for microservices. Here, the architecture means that improvements, changes and updates are made in each microservice without updating the entire system. That is clever, as it minimises the risk of downtime, but also in terms of reducing any troubleshooting. With a microservice architecture, companies can choose the tools that fit each task. Due to their individual technical set-up, companies can more frequently deliver new features and updates to end users.
Advantages of microservices
There are many advantages to using microservices as software architecture. Here's a selection:
- The business needs are center stage
- The company can choose the best tool for each task
- Better communication between different systems
- Faster time-to-market for new features
- Endless scaling options
- Business processes become much simpler
- The company will have a flexible software architecture that can be further developed for years
At Kraftvaerk we have an overview of a wide range of microservices available in systems like Azure, AWS and Google Cloud Platform. We also offer to develop unique microservices that can cover your company's needs. Want to know more?