As enterprise architects begin to mull the transition of dev and ops with Agile development methodologies, it is important to think about how to streamline the communications between these different groups. This is important for ensuring consistency in the way cloud services are configured and managed across the application development lifecycle. One of the challenges is how to make that consumable for developers.
At Red Hat Summit, Gordon Haff, cloud strategy evangelism manager at Red Hat, based in Raleigh, N.C., said, "There is incredible innovation in the container ecosystem, but it can take a lot of work to pull all these pieces together. There are a lot of ways that DevOps can become a disaster, which can inhibit the company from producing more quickly." Enterprises are looking to use Ansible, an open source tool, to simplify platform as a service and container management platforms.
How Ansible playbook streamlines communication
Ansible was launched when DevOps started take off in 2012. It is often considered a configuration management service. "A more appropriate definition is that it is a platform that allows enterprises to deploy applications and manage environments as a whole," said Todd Barr, general manager of the Ansible business at Red Hat. "We like to say that Ansible is the language of DevOps that supports development, test engineers and operations."
All of the separate teams can leverage an Ansible playbook as the conduit to communicate to enable them to innovate at a quicker pace. "It is powerful not only because it supports configuration management, application delivery and basic configuration management of systems, but because it works in tandem with provisioning larger cloud systems," Barr said.
Once enterprises start automating their processes, the acceleration promised by dev and ops can take off. At his last organization, Barr would spend a nightmarish eight hours deploying new applications. With Ansible, this was reduced into a five-minute deployment time.
The benefits of a common language
Gordon Haffcloud strategy evangelism manager at Red Hat
Ansible playbooks allow business users, developers, testers and operations teams to quickly provision new services. These make it easy for developers to specify how to provision the cloud services for an application that can be consumable by all participants in the software development lifecycle.
Traditionally, developers would write code and implement scripts to build the code and execute test processes. This would be emailed out for code review, which could take weeks. "The key is to automate all of this," Haff said. "There may still be some manual code reviews. As a company sets up [its] DevOps systems, [it] will automate more and more of this."
Some of the promising results of this approach include the following:
- NEC uses Ansible to provide a self-service platform. It uses a survey process, which imports answers into the playbook. This allows developers to provision new virtual machines into their internal clouds. It took two weeks to configure the first three customers of this platform. But after that, the next 500 internal customers took about 10 minutes each to provision.
- Riot Games used Ansible to automate scalability for the popular League of Legends game. All of the network devices are provisioned on bare metal to new network devices that support the deployment. It used to take them four days of on-site work to add new servers. This approach allows them to configure a data center in four minutes remotely using traditional network devices.
- Juniper Networks is working with Ansible to create the infrastructure for a self-service model that streamlines the deployment to public and private cloud infrastructure from a single playbook.
Facilitate culture change
Implementing processes and practices are key. A common language makes it easier to change processes internally. Once better automation is in place, it becomes much easier to align employee practices with enterprise goals.
"One of my views is that culture is an output, rather than an input," Haff said. "It is important to align the incentive with the behavior you want put out. It is not an easy process. A good practice is to put incentives in place to encourage the behavior the enterprise wants to cultivate."
What is the DevOps movement?
Making the DevOps transition easier
Tame your polyglot programming with DevOps