Businesses today operate in highly competitive, unforgiving markets. Speed to market, operational efficiency and infrastructure costs have become the bellwethers of profitability, sustainability and growth. DevOps lies at the core of each of these, serving a critical role in a company’s operating strategy.
Applications, specifically business logic applications, are the backbone of a company. Downtime in business-critical applications can lead to product delays, cost increases, sales losses and negative earnings performance. So how do business infrastructure teams keep up with the increasing speed and volume demands from the application developers? Is it a technology problem or a process problem? The answer is that it can be both. Because technology acts as the central nervous system for all modern business operations, inefficient or improper application of IT can limit business performance. Infrastructure teams must streamline and automate their processes to maximize the capability of their technology, and DevOps is the way to make that happen.
Many organizations have already adopted DevOps methodologies as part of their application configuration and application release management activities. This means that development and operations teams are closely collaborating on the planning, creation, verification, packaging, release, configuration, monitoring and management of application assets. Customers may have hundreds—or even thousands—of custom-built or commercial-off-the-shelf (COTS) applications, as part of their business operating infrastructure. To support this new generation of applications, infrastructure teams are challenged to provide scalability, robustness, speed and agility, while simultaneously reducing the company’s dependency on hardware from their existing data centers (on- and off-site).
In legacy environments, implementing Infrastructure-as-Code (IaC) is a challenge. The challenge lies in a company’s culture or standard operating protocols where infrastructure teams are not involved in the up-front, developmental stage, a process methodology known as ‘Agile’ development. IaC requires systems engineers to operate according to Agile principles and processes such as working in weekly/biweekly sprints, new script learning, (helpful in automation of deployments) and changing inventory and testing processes. Below is an example of IaC applied as part of the Agile process.
The infrastructure team at one of Tech Data’s healthcare customers was tasked with fulfilling the infrastructure requirements for 300 custom ‘homegrown’ applications, in addition to nearly 2,000 COTS applications. A team of eight Windows and Unix system administrators with bash/shell scripting skills faced the monumental task of supporting several thousand operating system (OS) permutations and bundled software configurations. Traditional OS management and deployment processes could not be scaled to support the new charter. Executive sponsorship was required to prioritize the team’s availability to focus on a solution.
A predefined set of goals and objectives were identified and the Tech Data and customer teams collaborated on a plan to change the existing processes, adopting new tools and training. After nearly four months, the Tech Data team led the infrastructure team in the DevOps methodology and deploying Infrastructure-as-Code. One example of automating workflow was in the deployment of new OS golden images when an update was released by the vendor. Using a combination of open source, commercial tools and custom scripts, the patches were programmed to be applied automatically on a developmental OS, promoted to QA. As the image instance moved from developer to QA engineer, developers were blocked from accessing the image while being tested by QA engineers. By prohibiting access, QA engineers were able to test a stable version of the application without development updates. This process of removing access at the completion of each stage of the workflow, was an intentional action to preserve the process and integrity of the application. Similarly, once the image instance moved from QA to Production environment, only the infrastructure administrators had access to that instance of the image. While the image transitioned to higher environments, it also was checked into a code repository to ensure that the appropriate changes and change submission information, was captured. The team was able to quadruple their support matrix, significantly reducing the time required for OS patches.
The success of this outcome was observed by other organizations. To support the growing needs of the business and application teams, these organizations also needed to adopt the Agile processes used by application developers. By synchronizing infrastructure release cycles to application releases, and using the same version-control methodologies deployed by application developers, infrastructure teams and engineers can provide solutions (on-site or in the cloud) with the same flexibility, speed and cost effectiveness as application developers. This agility now allows infrastructure teams to deliver infrastructure as code.
Do your customers need to evaluate their infrastructure processes to see if they are suited for Infrastructure-as-Code (IaC) deployments? Are your customers struggling with migrating infrastructure or application workloads in a hybrid environment? Tech Data offers Cloud assessment, migration, consulting services and more, and may be able to assist with your needs. For more details, please reach out to firstname.lastname@example.org or contact your local Tech Data representative.