One of the most productive ways to become a better developer is to learn from the successes and failures of others. It is encouraging to see more companies are opening their doors, sharing their stories on how they built their products, and their infrastructure. Recently at APIdays in Sydney, Australia, Runscope Co-founder and CEO John Sheehan shared insights into our experiences building a microservices-based product. We’ve boiled his talk into six key lessons for anyone thinking about building microservices in their organization.
1. Invest in infrastructure
We believe microservices are really a combination of Service Oriented Architecture (SOA) and DevOps. So before building out microservices, consider this warning: if you’re not willing to invest in DevOps infrastructure, then microservices are likely to cause pain.
2. Start small
Runscope started with only two services, but now has more than 40, all cooperating to deliver the Runscope features our users love. Microservices is a long-term investment in flexibility that is best introduced early in a project.
3. The "micro" is up to you
One of the most common questions we hear is, how big is micro? Unfortunately there is no precise answer to the question. The most useful guidance, despite being vague, is simply to try and limit a microservice to perform one single job.
4. Divide and conquer
It is common sense that managing small systems is easier than managing large systems. Smaller systems that interact with each other using HTTP can be combined to solve large problems. By ensuring that these services are independently deployable and share no resources, they can be independently scalable and built to tolerate network failures.
5. Benefit from people-oriented architecture
The same principles that bring benefits to the system architecture also spill over to the human aspects of software development. Teams can focus on single services, reducing the cognitive load for learning, problem solving and adding features. New developers have an easier time learning how systems interact because they all follow the HTTP uniform interface, which is not only functionally agnostic, but also language agnostic.
6. Consistency overcomes complexity
Often the net benefits of dividing large problems into smaller ones are lost due to the increased complexity of integrating components. However, in this case Runscope has been able to leverage the uniform integration interface to build Smart Client and Smart Service tooling to eliminate much of the integration pain. The end result is a net win for Runscope’s employees who can deliver our customers reliable features faster than ever.
Watch John’s full talk from APIdays to learn more about Runscope’s microservices infrastructure and how you can take these lessons to your business. See how Runscope can help you monitor the health of your own microservices by signing up for free.