Upgrade & Secure Your Future with DevOps, SRE, DevSecOps, MLOps!
We spend hours on Instagram and YouTube and waste money on coffee and fast food, but wonât spend 30 minutes a day learning skills to boost our careers.
Master in DevOps, SRE, DevSecOps & MLOps!
Learn from Guru Rajesh Kumar and double your salary in just one year.
Source-Â enterprisersproject.com
The first reaction non-development IT people have when seeing their companyâs microservice is very similar to a parent looking at their childâs art. âOh! Itâs aâŚwhat is this? A microservice? Wow⌠well, isnât that something! I like how the blue, green, and red make a nice brown colour. Letâs put this on the refrigerator.â Of course, that art could be the beginnings of the next Frida Kahlo if only the parents understood. Likewise, we need to make certain that others in the company understand how microservice architecture can benefit the entire company.
Sadly, one large area of friction around microservice adoption is that deployment is often neglected until the last moment. This causes delays, organizational thrashing, and a feeling that microservices are not worth it.
Here’s the good news. With specific steps, development and DevOps teams can prepare for releases and enable the ideal âyou build it; you run itâ process for microservices. Weâll structure this preparation using the metaphor âReady, Aim, Fire,â which is the microservice approach to âa stitch in time saves nine.â
Ready:
First, identify the dependencies of the microservice, and include the technology stack. Deploying a container in Kubernetes will be far more complicated (especially if you donât have Kubernetes infrastructure in production) than a simple WAR file that runs on Tomcat and speaks via a RESTful API. You also might be refactoring a monolithic application and pulling out functionality that will be in a separate microservice used by the now slightly less monolithic application. Of course, that creates a dependency for the older application.
Second, prepare a list of all the steps needed for deployment. My developer friends, âjust throw WAR file on my laptopâ or âcf pushâ is not a list of steps. Creating this list of steps will require discussions with DevOps teams, site reliability engineers (SREs), database administrators (DBAs), and security teams to identify all the corporate and technical hoops to jump through. Yes, this will be difficult and a bit out of a developerâs wheelhouse; it will require engagement with others in the company to create an exhaustive list of steps. It is very much worth the effort in breaking down silo walls.
Third, identify which steps are already automated, those that can be automated, and those that wonât be automated. You canât adopt âyou build it; you run itâ without having a push-button deployment to all environments, including production. It might be necessary to have someone else push the ârelease to productionâ button. But, you need to make certain that will be automated and completely hands-off for those people. If not, you shouldnât even bother with a microservice⌠unless you are engaging in resume-driven development.
Aim:
Now that you have a list of release dependencies, a list of release steps, and have identified areas to automate, now itâs time to plan the work. Begin with the biggest rocks and work down. If the longest step takes two weeks to perform based on ticket history, start thinking of how to get that two weeks down to seconds. Do we need to automate approval or the actual work? Who is the leader that needs to agree on the change to seconds and how can they support you? This step is more about project management work than anything else. Find the blockers and devise a plan to remove them. Lather, rinse, repeat.
Make sure to include âbuild vs. buyâ discussions in this step. Will you be handcrafting your own DevOps tooling for your microservice or will you leverage your monolith existing tools? Should you upgrade your DevOps tools for the monolith with an eye for the future microservices? With steps Ready and Aim completed, you will have a clear list of requirements that you can use for building or buying your necessary tools.
Fire!
Finally, we can begin to execute. The first version of your automation should be used in development. As it matures and becomes battle-tested, you can then release it to the next stage, maybe dev integration testing or first level testing. Continue to improve and release it along with the code, or at least in parallel. Just like your application, youâll need to test and improve your new deployment mechanism. Communicate early and often to help stakeholders not only get comfortable with the change but to allow for evangelism along the way. You will find it helpful to remind stakeholders why this change is a good thing and how the company will benefit.
Don’t forget to celebrate and improve
Remember to use the first production push of your new microservice as a reason to celebrate. That is a very big step and represents a lot of hard work. Also, remember to reflect on what the team has learned from failures to continue to improve.
Microservices and DevOps are two things that should go hand in hand, but to move to a âyou build it; you run itâ process, you will need buy-in and insight from everyone who touches releases today. By performing some preliminary work with your microservice releases, you can avoid unknown unknowns and deliver not only great software but also a great way to manage and execute the deployment process.