Five Keys to Rebuilding Apps with Microservices
The cloud offers IT organizations an opportunity to break down applications into reusable pieces of functionality called microservices that can be combined and recombined in almost endless variations. This rapid build-and-deploy approach, however, does not “play well” with monolithic existing applications that are wrapped into a single executable file. Making even the smallest tweak to those kinds of applications requires a whole new version of the application be built, tested and deployed – a counter to the improved productivity and efficiency that are hallmarks of microservices-based applications. To move existing applications to the cloud mandates a full rewrite with functionality being broken down into a cloud-native form, such as microservices, event-driven architectures and serverless technologies (such as AWS’s Lambda).
During this rebuild effort, IT organizations need to follow four key principles to leverage the cloud’s benefits:
- Use domain-driven design
- Create guidelines for code libraries
- Resist the urge to share databases between microservices
- Measure performance when scaling
Additionally, IT organizations just starting their cloud migration efforts can learn much from those who have gone before them. A quick Google search reveals comprehensive migration white papers and use cases that can jump-start the effort, such as a step-by-step guide from AWS.
‘Yellow light’ microservices’ first steps
When IT organizations elect to adopt this new microservices architecture, it is wise to proceed with caution. This advice is particularly relevant when selecting the first microservice container to build from scratch. Even experienced IT professionals will find it challenging to learn how to develop and deploy in the microservices environment as they build new containers. Our advice is to decide whether to build either the microservices environment OR the container as a first step – trying to do both will make the task more challenging than it needs to be. It is also recommended that IT leaders work with their teams to select a low-value application as the place to start the microservices-based effort. Customer-facing or business-critical applications contain too much visibility and too much risk to be a first effort.
IT leaders should be confident that their DevOps teams have mastered the basics before assigning them to a complex project that can be overwhelming in its scope and depth. Remember that proficiency with the automated tools that are part of microservices is a table-stakes requirement. Finally, constantly measure the applications’ performances and keep a vigilant eye out if microservices seem to be “thickening” over time.
Taking a deliberate approach in moving to microservices helps ensure that IT professionals can grow into their digital roles with confidence. In addition, a phased approach can help to lessen unrealistic expectations coming from the company’s executive team who may be pressuring this critically important, yet brand new, digital effort to move at a faster-than-normal pace.