We (heart) HipChat, Docker, and Rancher! We wanted to build a ChatOps integration to make Continuous Deployment collaborative and easy. Docker is awesome for building, packaging, and shipping software. Rancher makes Docker orchestration easy and powerful. We wanted to empower teams to be able to monitor their Docker and Rancher based container stacks from within HipChat. We also had the vision to allow teams to deploy new releases of their container services without leaving HipChat.
What it does
Teams have the ability to enable the Cowboy integration into their HipChat room by providing Rancher API keys and specifying the container stacks they want to monitor and manage. The add-on displays a snippet of information on the HipChat room sidebar. When it is clicked, it opens a list view of stacks that are associated with the current HipChat room and displays information related to the number of services and state information. Each of the stacks has an option to view a list of service with information regarding state, Docker image, and the number of containers running as part of the service. The services list has an option that lets you upgrade your service using a new Docker image. At any point of time, Information regarding stacks and services can be sent into the chat room as message cards for teams to collaborate. The cards conveniently link to the Rancher Web UI too.
How We built it
The add-on was created using the HipChat connect framework. The add-on communicates with Rancher via its REST API. NodeJS is used for the backend.
Challenges We ran into
Identifying the most useful subset of Rancher functionality (available from HipChat) with the goal to make the add-on useful and complementary to Rancher’s web interface was our biggest challenge.
We built the FIRST HipChat add-on that allows Docker container orchestration based ChatOps accessible to everyone in the team! We feel that we can make continuous deployments accessible insist of the technical jargons and concepts that Docker and containerization introduces.
What We learned
Docker and container orchestration can have complexities, but it is important to identify the useful subset of functionalities and make them accessible to the team - Regardless of their subject matter expertise.
What's next for Cowboy
We plan to extend support for other container orchestration platforms like Docker Swarm and Kubernetes. Additionally, we plan to add support for broader Rancher capabilities, such as rolling back bad deployments of new services. We are also considering the ability to receive automatic notifications of changes within the service and stack health.