This is a guest blog post written by Brett Porter, CTO of MaestroDev, who develop DevOps orchestration tools. In this article, Brett lays out how they’ve used Flowdock as a main communication tool with distributed teams and integrated Flowdock directly into their own products.
MaestroDev is a proud Flowdock customer. Since we began using it early in the year, we have greatly improved the internal visibility of development progress, and streamlined our methods of communication – reducing the number of redundant calls and emails.
The MaestroDev product development team is globally distributed, covering 4 different timezones. Our Flowdock flow is active 24 hours a day with development information and tagged updates for each other. Whether they work face to face, or remotely, Flowdock puts all of our team members on an equal footing, catching up on important discussions as they start their day, and leaving notes about progress for team members whom they may not otherwise be able to meet with immediately.
We have developed Maestro, our enterprise-grade DevOps Orchestration engine, to help enable all members of a software delivery team to be more efficient and collaborative. Maestro introduces Compositions, a reusable definition of a sequence of tools, processes and infrastructure that can be automated and interacted with. Compositions encapsulate best practices and encourage consistency across projects, reducing ramp up time and silos of expertise about infrastructure. Maestro is built to take advantage of modern public and private cloud technology to dynamically scale build, test and deployment infrastructure. This reduces friction between development, QA and operations team members and reduces the wait time for necessary infrastructure. Finally, Compositions and their execution output provide a single source of truth and history about a variety of systems, where team members can keep up to date, participate in decision points, and gather feedback from integrated tools to determine future improvements.
Integrating Flowdock and Maestro for Delivery Visibility
As you can see, Flowdock complements Maestro as a dedicated information flow for communication, notifications and actions. For this reason, we have developed Flowdock integration for Maestro and incorporated it into our delivery workflows.
You can read more about the Maestro Flowdock integration in the Maestro Documentation Guides, and at the plugin’s GitHub project page.
Maestro has integration for a number of different tools available, and at MaestroDev some that we use are:
- JIRA: issue tracking and sprint planning
- GitHub: source control
- Jenkins: continuous integration and automated builds
- Apache Archiva: build artifact management
- Vagrant and VirtualBox: virtual machine for testing and delivery
- Puppet: infrastructure configuration management
With these tools orchestrated by Maestro and information streaming to Flowdock, we’re able to track a change from a JIRA ticket and a commit, through its deployment on a preview instance, automated functional tests and a complete candidate virtual machine image for distribution.
Our primary automated workflow looks like this:
- A commit at GitHub triggers a notification to Flowdock, and triggers a Composition to start the rest of the process
- Maestro ensures a suitable Jenkins job is executed to build the project and publish to the artifact repository.
- Flowdock is notified in the event of success (showing the published RPM version and build number) or failure (showing the full output and error that occurred)
- If it was successful, Maestro concurrently starts Compositions to update the preview instance, and run functional tests
- For the preview instance, we update the RPM version in the Puppet manifest, and trigger a Puppet agent run on the host. Puppet reports back to Flowdock when it is complete, and we know the preview instance is updated with the change
- For functional tests, a virtual machine is started with Vagrant, provisioned with Puppet, and then tests are run via Jenkins using Cucumber and Capybara. If any fail, a notification is sent to the main Flow.
- If the functional tests are successful, then a new virtual machine is produced and a notification sent to the main Flow.
Of course, we have many other such Compositions for sequences including releases, building and deploying Puppet modules, publishing promoted VMs to Amazon S3, and so on – all similarly integrated with Flowdock.
If you’re interested in trying Maestro out for yourself, contact us and we’ll set you up with an evaluation system and several similar pre-configured examples.
Flowdock has become the first thing I check in the morning, and one of the most useful tools I turn to throughout the day to find out what is happening, discuss a solution with a colleague, or just share a link to something fun and interesting. Our thanks go to the Flowdock team for a great product!