Micro Focus is now part of OpenText. Learn more >

You are here

You are here

How to use ChatOps to drive container deployments

public://pictures/davidl.jpg
David Linthicum Chief Cloud Strategy Officer, Deloitte Consulting
 

It's the latest trend: Anything that has “Ops” appended to it is cool, trendy--and sometimes even helpful. You have DevOps, which is changing the way teams build and deploy software, then there's CloudOpsSecOps, and now ChatOps. The latter, as is turns out, is more than helpful to DevOps teams.

ChatOps of course, refers to the integration of online chat systems with software development and operations tools. For the uninitiated, TechBeacon offers a detailed explanation of ChatOps. But what's more compelling for your team's productivity are the potential applications of ChatOps around the processes of container development, deployment, and operations. 

The why: When containers met ChatOps

The reasons to leverage containers, and several benefits for DevOps teams, as you can see below.

Containers offer ...ChatOps provides ...

Portable deployment of applications as a single object.

Ability to locate and share containers that can be leveraged on different platforms. 

Reusable components.

Ability to collaborate on the containers, as well as information about containers that can be shared.

A public registry for sharing containers.

Ability to share information about containers that can be reused by developers using repositories such as GitHub and other Docker-related registries.

The ability to track changes and do revision control at the container level. 

Ability to be programmed to automatically track changes and to be leveraged to drive a process and communications. 

A growing tools ecosystem.

Emerging ability, along with chatbots, to integrate with most container-based development tools.

 

Table 1: The advantages of containers, and how ChatOps helps to deliver those benefits. 

Container developers can gain value from ChatOps, whether they are advertising the potential reuse of a container image they work on or are looking for an image to reuse in order to save time and money. 

A typical container-related ChatOps conversation might go like this:

Jerry: I need an image with a service that’s able to invoke a temp read from an X909-connected thermostat. 

Jenny: I saw one in the public repository. The link is here.

Jerry: Saw that one. It needs to be an internal resource due to compliance issues. 

Jenny: Then use this one, but it will require some modification. The build script and test script are attached, just click to invoke. A bot will ask you to check the resulting new image, and code, back in the local repository. We will all be notified automatically when that happens. Good luck. 

Jerry: Invoking your build script now. 

A few things occurred here in the course of just three minutes. Jerry has made a requirement known to the entire team, and got a quick response from Jenny. She assisted Jerry, providing links, scripts, and other things he might nee. Each could be invoked directly from within the ChatOps tool, since it is integrated with the team's external Dev tools. This process is much more efficient than long email threads or in-person meetings. 

There is also adherence to a common process. Since the ChatOps tool does minor governance of Dev approaches and processes, it ensures that those developers who are collaborating using ChatOps to build, test, and deploy the containers do so in the same way, using the same tools. This promotes consistency as well as collaboration. 

Chatbots are key here, considering that they can automate much of what humans often forget, such as checking the code back into the repository, maintaining an audit trail, or ensuring that the results of issues with the development process are communicated with the team. 

The how of ChatOps and container development

The devil is always the details, and that’s especially true when integrating container development with ChatOps. Before starting the process you need to understand both your container build process (and supporting tools) and how things flow from place to place. Only then can you begin to build your ChatOps processes and select the right tools. 

Typically, container development follows the macro process:  

Installation, or finding the image in the local or public repository

This step can often provide the most ChatOps value to the process of building and deploying containers. 

Picking the right container to run, or picking the right container to reuse, is where most container developers fall down. 

This is not new. Back in the object reuse days, we were supposed to see much higher efficiency in terms of reuse, but that did not materialize. Why? Because developers had a “not invented here” approach to development. They weren't exposed to the value that reuse can bring, nor had they any way of closely collaborating with their teams to understand what they could actually reuse. 

Dealing with changes

You need to compare image tags, pull images, and restart the container. Again, chatbots and integration with other container development tools will alert others of what’s going down and what was found, and the rest of the team can offer help, if needed, or even contribute directly to improving the container image. 

This is another important aspect of ChatOps and containers, considering that continuous improvement does not happen without a great deal of coordination. Not only coordination with developers who may be working on the same containerized system, but with users who can get into the game as well. 

While bringing users into the ChatOps process could result in some unneeded distractions, some DevOps shops saw direct benefits from the resulting reduced latency in information flow from users to developers and IT operations. In many cases, developers get wrong instructions from those who interact with users. When they have a bidirectional path of communications, those instances are greatly reduced. 

Committing and executing

To build an image for an application you start with a base image of the core OS. To do built the image with containers, you typically would run Docker. Specifically, you install and configure the necessary tools, and then use the Docker “commit” command to save the container as an image. Finally, you can push it to the public Docker image registry or keep it private.

Here ChatOps becomes a great component to have, considering that the entire team will be aware of what’s occurring and will be bound into the process as needed. The idea is to do everything with complete transparency to the team, but do not over-communicate. If you do, your team will ignore the chats, just as they ignore email spam. 

When you set up ChatOps, make sure that you have tightly integrated it with your container development, testing, and deployment tools. You need to select ChatOps tools, such as Slack and others, with an eye on tool set integration. Many developers who have moved to container development did not see ChatOps coming and had to reset their ChatOps tool sets to take advantage of this new approach. 

ChatOps offers more reward than risk

Bringing ChatOps and containers together is a new space, for both ChatOps and containers. Because of that, the processes, best practices, tools, and approaches are likely to change a great deal within the next year. However, this does not mean that you should stay on the sidelines. Just consider the benefits you just read above.

You could be saving as much as $10,000 a week, per developer, just by using ChatOps.

It’s okay to make a lot of mistakes early on, as long as you’re learning. 

Also, adoption of ChatOps should roll out one team at a time. When enterprises deploy anything all at once, it often causes confusion and resentment, and that can lead to distrust of the concept and tools, so go slow. 

Finally, success with ChatOps and container development depends on having tight integration with your development tools, including tools for coding, testing, deployment, and so on. Without it, ChatOps won't deliver the benefits you expect. And considering the needs of container design, Dev, and deployment, tight integration is even more important. 

Get ChatOps. Get started.

At the end of the day, the ChatOps evolution is about bringing brains into your Dev and Ops mix. You've worked with technology to improve development over the last 20 years, but now the close collaboration between humans and the automation of things can vastly improve productivity for DevOps teams.

So should ChatOps become part of every development shop that works with containers? Absolutely. The benefits outweigh both the costs and risks. This is one version of “Ops” that delivers. 

Keep learning

Read more articles about: Enterprise ITIT Ops