When I first heard about microservices, I wasn’t sure what they were or how they could help me. After all, I already had a server that hosted our WordPress-based blogs, and I was using the AWS free tier to host our websites.
Why would I need another server running the same software, and what was the benefit of splitting my codebase into many small services?
I quickly discovered the benefits of microservices when I researched the technology. Here are some of the things that I found.
One of the main reasons I chose to investigate microservices is because I wanted to know if the technology was feasible for our growing company. We’re a digital agency that provides marketing services and technology to brands, publications, and websites. Our clients often have complex requirements, and we didn’t want to hit a wall because we didn’t have the resources to keep scaling our server infrastructure.
The good news is that microservices makes it easy to add resources as needed. If we decide to add another web server or storage solution in the future, all we have to do is spin up another Docker container and we’re good to go!
Similarly, if we want to add a new API or migrate to a new platform, we can use a tool like MigrateDB to make the process painless.
Another advantage of microservices is that it makes it easy for developers to work together. When you have a monolithic application, it can be difficult for developers to understand each other’s roles and responsibilities. This often leads to frustrating miscommunications and lots of work being thrown away because the code isn’t connected correctly.
With microservices, you have smaller pieces of code that can be reused across applications. This makes it simpler for developers to understand each other’s roles and responsibilities, and it also makes it easier to find who’s responsible for any given feature. In our growing agency, we have several independent teams that each have their own applications. It would be difficult to keep track of who’s responsible for what feature if we kept everything in one place.
This also means that our developers are constantly working on different pieces of the puzzle, which makes it easier for them to understand the bigger picture. While this isn’t always the case, having a decentralized architecture where each application has its own identity makes it simpler for everyone to understand what’s going on.
It Has Its Disadvantages
Now, I want to be clear about something. Despite the benefits of microservices, you shouldn’t choose this technology simply because it’s what’s popular or because it solves a problem you have. If you decide to go ahead with microservices, you need to do so because it’s the best solution for your specific needs.
Just because a technology is popular doesn’t mean it’s the best option for everyone. Like anything else, there are different uses-cases and situations where different tools or technologies shine. If your needs aren’t being met by the technology you have right now, it’s not necessarily the end of the world. You can still use what you have to develop an MVP, prove the concept, and then rebuild with the proper tools for the job.
For example, if you’ve been using AWS for your site hosting needs and decide that this is a suitable solution for your company, you can still use it to develop an MVP for your microservices-based application. Once you’ve proven the concept, you can switch to a different hosting solution (e.g., Linode) and begin to migrate your applications to the next best platform.
It’s important to do your research before you make a decision. If you’re not sure what microservices are or why you should use them, this is a great place to start. There are many different opinions about the best way to use the technology, and how it should be implemented, so it’s critical to find the right answer for your specific situation. You may also want to consider looking at other technologies or platforms that offer similar benefits.