The software development process for large application teams is evolving in an effort to reduce overall project time and improve schedule accuracy. Projects are more complex than ever, especially when you include the mix of deployment options for a modern enterprise application. With Agile software development of cloud-based applications, developers (DEV) are now taking on the additional responsibility for the deployment of their applications during the build and test phases of a project. This transition in responsibility means that developers now co-own the operational aspect of how the various DEV/TEST environments are architected, setup and managed. This has led to the rise of Amazon Web Services and other public cloud offerings given that developers cloud quickly deploy their own applications, many times with little to no oversight.
Individual developers often don’t have the time (or patience) to deal with governance issues or the overhead of managing anything more than their individual features. Developers want quick and simple access to available services and don’t want to be burdened with the related accounting and management issues. While developers know what’s needed to support new features in a release of their applications, they care little about costs, system limits and other infrastructure constraints, unless it’s a release requirement. They essentially want to spend as little time as necessary to get the required infrastructure ready to use with each release.
VMware is providing the tools to make IT and developers more successful and efficient. Today, individual tools exist to support the release pipeline, manage all of the cloud services and maintain service catalogs. As we have already discussed earlier in this blog series, automation is making the entire cloud management process simpler to setup and administer. It is also getting easier to coordinate all of the moving parts and reduce the complexity of a hybrid cloud infrastructure. For teams developing on-prem, hybrid and SaaS-based software solutions, the methods to provision the resources will be different, depending on the use case. With a consolidated service request process and template-based catalog items, it becomes possible to shorten the entire development release cycle.
In “Infrastructure as Code – The developer’s point of view”, we discussed various aspects of the journey to managing a software defined datacenter (SDDC) as Code and the methods to parameterize the infrastructure. Once the infrastructure is defined as code, it becomes possible to automate more and more of the deployment process. Developers understand how to create, debug and manage code. By bringing the infrastructure definition into the equation as one more element of the code, it becomes possible for an application development team to codify infrastructure changes into the normal release cycle.
As application features are developed against the product roadmap, additional resources (i.e. compute, network, storage) may be required to support the release of the new feature. Adding the infrastructure requirements to a build manifest as one more artifact simplifies the entire build/test process and ensures that that it can be automated and that it is repeatable. The cycle-time required from build to system ready can be reduced tenfold!
Across all of the types of application architecture, including on-prem, hybrid and cloud-based or SaaS applications, the resulting infrastructure can morph to support the new needs of the latest application release.
Some of the biggest advantages of managing a SDDC as Code will flow to large enterprise application development teams who are building or maintaining large applications. When these teams are able to integrate revisions alongside their feature development, the entire build and test process can be automated. The end result is that substantial project time can be recovered. In addition, this capability will lead to improved developer morale, more accurate project schedules and stable product releases.
In the next blog, we’ll take a look at how VMware has used this concept internally to achieve positive results for one of the largest development teams within the company.
Other Blogs in this Series
- Managing the SDDC as Code (Intro)
- Infrastructure as Code – The Developer’s Point of View
- Managing the SDDC as Software
- Managing vRealize as Code