I recently saw a job posting at a major tech company that asked for “minimum 12+ years' experience in Kubernetes administration and management.”
If you’re familiar with the platform, you can see the problem right away. Kubernetes is only 6 years old. Time travelers only need apply.
While this was surely a simple oversight, it actually sheds some light on one of the problems that companies face when implementing a microservices-based architecture. They need people with a lot of experience to do something that is relatively new.
As we help customers successfully deploy microservices-based applications, we see common threads that tie them together. Assembling the right team and overcoming the skills gap is just one of them.
I have compiled a list of the keys to winning at microservices below – some key best practices, and ways to build the right team - to help you along your way.
- Go small or go home. When developing microservices, start small. By that I mean you should create the smallest reusable components that you possibly can. This may seem limiting to have single-use services. It is actually incredibly powerful. It allows you, or your customers, to use a single microservice across multiple applications and industries.
- Plan ahead. Since microservices-based architectures can be quite complex, with many different moving pieces, be very careful to plan out the entire interaction between services from end to end. Make sure that you don’t leave anything out. It may force you to rethink the way that many microservices interact with each other.
- Beware vendor lock-in. While cloud providers offer flexible subscription plans, that’s only one dimension of vendor lock-in you need to watch out for. You also need to avoid getting locked into cloud vendor technologies and platforms in a rapidly changing market. If you choose a cloud partner, don’t automatically elect to use their tools and platforms. They may work well in their own cloud environments, but there is no guarantee outside of that.
- Serving your customers. Once you have developed a set of microservices, make sure you are capturing all of their value. If built right they can be used in multiple applications. Make sure they are delivered in a way that is tailored to the client. Think “context-aware.” As appropriate, make the microservices available as APIs so they can be easily used by third parties.
How to build an effective team
- Be realistic. Build an app that is commensurate with your team’s experience. That is, don’t bite off more than you can chew (even small microbites). If your team is just embarking on a microservices-based app, start with a modest project as a way to learn, grow and demonstrate value. Find a creative and experienced leader – but don’t expect her to have as much experience in microservices as you’d like. It’s the reality of emerging technology.
- Go small to go small. We recommend creating small teams – even “squads,” as Spotify calls them – to develop each individual microservice. Each led by an ambitious project owner, the squads should operate like mini startups to build fast - moving from one microservice to the next in a matter of weeks, or even days.
- Mimic the best. Sometimes it’s best to look at how other projects have been organized to understand what works. In the case of microservices, one place to turn is the open source model. Since open source projects are highly decentralized and have lots of moving pieces, consider working this way. Have a small team develop the code, and extended teams push in changes.
As the microservices landscape continues to evolve, we will all learn more about how to make the most of them. Soon we will all have 12+ years of experience (without time travelling) - and will have the scars to prove it. Until then, do what you can to make the most of this time of learning and experimentation. And, of course, find a partner and platform that can help you manage the microservices chaos.
Learn more about winning with microservices by clicking below.