We’ve all heard that Continuous Integration (CI) and Continuous Delivery (CD) are a major part of the DevOps release cycle. The question is – how do we get to a point where we can make full use of the advantages offered by CI/CD processes? This will also require minor tweaks or major modifications for the workload (i.e. applications) passing through the pipeline. A majority of the work to make the applications ready for full utilization of CI/CD processes will be around mapping the library dependencies for the application in question, and for modularizing various functions of the application such that they can be developed and released independently without impacting other code sections.
Another major benefit of having modular code being developed by different teams is that it can be automatically tested as it gets deployed. Smaller code releases are preferable over larger patches, especially when you need to go through integration testing with other code sections that may or may not have been updated. It also matters how your cloud infrastructure is implemented. For example, if you are pooling testing or development resources, you may have limited capacity to make progress in parallel.
The next step then is to determine the code dependency between various sections, and how changing code in one section, or changing a commonly used library version, can affect other functionality. Determining this web of dependency can be a daunting task depending on the complexity of the application, and the overall purpose that the application delivers to the business. Multiply this by hundreds or thousands of applications that you may have in your environment. This code maintainability evaluation exercise can be very beneficial if you want to have multiple teams work on different sections of the code. On the other hand, if the web of dependencies is not understood in detail, it can lead to massive repercussions for other application functionalities unintentionally.
Associates at Keyva have helped multiple organizations assess their application readiness and helped with application modernization. These include things like refactoring code for existing applications, adding a wrapper over current applications so they can be consumed easily by DevOps processes, and more. Keyva also uses code analysis and application discovery tools from CAST software in conjunction with an analysis of your CMDB to provide you a wholistic view of the application dependency mapping. If you’d like to have us review your environment and provide suggestions on what might work for you, please contact us at firstname.lastname@example.org
Anuj joined Keyva from Tech Data where he was the Director of Automation Solutions. In this role, he specializes in developing and delivering vendor-agnostic solutions that avoid the “rip-and-replace” of existing IT investments. Tuli has worked on Cloud Automation, DevOps, Cloud Readiness Assessments and Migrations projects for healthcare, banking, ISP, telecommunications, government and other sectors.
During his previous years at Avnet, Seamless Technologies, and other organizations, he held multiple roles in the Cloud and Automation areas. Most recently, he led the development and management of Cloud Automation IP (intellectual property) and related professional services. He holds certifications for AWS, VMware, HPE, BMC and ITIL, and offers a hands-on perspective on these technologies.
Like what you read? Follow Anuj on LinkedIn at: https://www.linkedin.com/in/anujtuli/