At WWT, making complex technologies work together seamlessly is our business. Based in St. Louis, World Wide Technology (WWT) is a systems integrator with hundreds of clients across industries, including many Fortune 100 companies. Our clients count on WWT to help them make smart technology investment decisions, integrate products from various leading enterprise IT vendors, and implement solutions that help deliver impactful business outcomes.
As Product Owner of Applications within WWT’s IT operations department, my role is to deliver a platform that allows developers to create business services, enterprise applications, and related offerings they need to do their jobs. These include the types of applications every business needs to succeed, like email and document management, but also more innovative applications that help differentiate WWT from the competition.
A key application that has taken advantage of Pivotal Cloud Foundry’s (PCF) capabilities is the WWT ATC Portal. The World Wide Technology ATC (Advanced Technology Center) is a collaborative ecosystem to design, build, educate, demonstrate, and deploy innovative technology products and integrated architectural solutions for WWT customers, partners, and employees. In order to help WWT’s customers leverage lab capabilities, the ATC Portal offers customers the ability to securely launch on-demand, hands-on lab environments in the ATC from anywhere and at any time.
One of the keys to developing differentiating software is release velocity. With rapidly evolving market conditions, it is critical to quickly develop new software, get it into the hands of users, and just as quickly iterate and improve the software based on real-world user feedback and data.
Our internal WWT IT development teams were struggling to rapidly deploy new applications using our legacy technology stack and deployment methodologies. Deploying code often took weeks due to manual handoffs between IT groups as well as the troubleshooting processes involved once code was deployed.
WWT IT set a goal to better enable our business by delivering differentiating software faster, and with higher quality. Achieving this goal required us to modernize our application infrastructure stack and introduce automated software delivery pipelines. It also led us to embrace a DevOps mindset to break down the barriers and code handoffs between IT groups.
Laying the Foundation with PCF
After evaluating our options, we decided to deploy Pivotal Cloud Foundry, a modern cloud-native platform from Pivotal that is purpose-built to drive developer productivity and increase release velocity. We considered going with open source Cloud Foundry but determined the enterprise capabilities of PCF and the support services from Pivotal was a better option for WWT for several reasons.
Namely, PCF offers a smaller barrier to entry on several fronts that allowed the team to deploy a fully functional Cloud Foundry stack faster and more consistently than had we used the open-source version. One of the elements of PCF that most excited us was PCF Ops Manager, which provides a set of APIs and a graphical interface to manage the deployment and upgrade of PCF components. While there is a bit of a learning curve for those new to it, PCF Ops Manager, in conjunction with BOSH, streamlines the process of provisioning and deploying PCF itself, meaning we were up and running with PCF in just a matter of weeks. PCF Ops Manager also integrates with Concourse, enabling operators to roll out software platform updates with zero-to-minimal downtime, which reduces our continuing operational costs for the platform.
PCF, in combination with other components, also provides WWT with a highly available environment across multiple data centers for disaster recovery purposes. To accomplish this, we deployed PCF in conjunction with F5 Viprion devices to provide both LTM and GTM capabilities for our application stack.
Our entire PCF stack (Table 1 and Figure 1) was deployed on virtual machines running on dedicated VMware instances, which in turn is running on Cisco UCS infrastructure. The combination of technologies provides our IT operations teams a flexible and highly redundant environment because of the infrastructure-focused software-defined capabilities within the stack.
Table 1
Figure 1
Driving Developer Productivity
From a developer productivity perspective, PCF enables release velocity by abstracting away many infrastructure concerns that traditionally take up valuable developer time and mental energy. This includes dependency management, load balancing, container orchestration, logging, and auditing, all tasks that the platform handles with minimal developer intervention required.
PCF also integrates with various continuous integration/continuous delivery tools. CI/CD uses automation to ensure that new application code is rapidly tested, secured and readied for deployment. Automation reduces manual handoffs between disparate groups, a common bottleneck in the traditional software delivery process. This gives teams flexibility to ship code to production on-demand based on business requirements rather than being confined to predefined release windows due to the limitations posed by traditional infrastructure and middleware.
Our CI/CD tool of choice at WWT is Jenkins, an open source automation server. The other components we chose for our pipeline were GitHub Enterprise, Artifactory, ServiceNow and custom developed deployment API called Scout (See Table 2). With PCF deployed, we set about integrating PCF, Jenkins and these other components to develop a highly automated software delivery pipeline to speed up release velocity.
Table 2
But creating an automated software delivery pipeline on PCF was only part of the solution. We also had to develop new workflows in order to take advantage of the automation capabilities of the new pipeline, particularly to support continuous integration, a practice for repeatedly integrating, building and testing software. The following diagram outlines the workflow for the CI portion of the delivery pipeline (See Figure 2).
Figure 2
The following diagram outlines how we move code in the release and deployment cycle. A release is a collection of individual deployments that occur together, moving changes through to the test and production environments (See Figure 3).
Figure 3
As we deployed the CI/CD pipeline, we also quickly recognized that managing access logs in a container-based environment was more challenging than it had been in a traditional server-based application environment. To overcome this shortfall, we deployed Splunk as a centralized logging platform for both the PCF infrastructure stack as well as the applications that are running in PCF. This has given developers quick and easy access to their custom written logs, which allows them more visibility into the day-to-day operations of their applications.
Since the delivery pipelines and workflows were introduced, our development teams have dramatically increased release velocity and are able to self-provision and deploy applications. Today, WWT developers average over 140 builds and deployments daily. In the past, a single release took weeks to deploy.
Realizing Rapid Release Velocity
Today, WWT developers are able to build and release new, differentiating software to its stakeholders at a pace never before possible thanks to PCF and our new, automated software delivery pipelines. Release velocity is up, as is developer morale. Developers want to spend their days writing great software that gets released and into the hands of users quickly, and that’s what PCF in combination with other enterprise components enables. And ultimately, it’s WWT clients that benefit from all this innovation.