When working on tools to increase efficiency for my team at Phase2, one of my favorite sayings is: “make the easy stuff, easy”. That is often easier said than done. Keeping software versions and configuration consistent across the myriad of platforms, operating systems and servers had become a huge challenge. A collection of us set out to make development, integration, staging and also production environments simple, portable and, most importantly, CONSISTENT across team members and environments.
Over the past 18 months we have focused and refined a tool set that we feel really delivers on the promise of simple, portable, and consistent environments with tooling that enables our teams to deliver the highest quality work for our clients. Additionally, we felt that in order for it to reach its potential to help as many of our team members and clients as possible, and in keeping with our company values and open source roots, that we should release it as an open source project. An outrigger helps to stabilize boats to move more swiftly and efficiently through the water. Like the outrigger, our set of developer tools provides the same support to development projects. Today we are releasing Outrigger.
Outrigger is a collection of tools that provide the following support to development projects:
- Seamlessly host complete project environments locally or remotely
- Provide approved, compatible versions of software services
- Provide reasonable default configuration for services, with the ability to override
- Provide “best practices” & tooling that help ensure quality
- Make all environments the same and prevent drift
- Learn, teach and excel at container technology
- Use standard tools and practices, making knowledge gained broadly applicable
How It Works:
Docker is the underlying technology that we have been using for years to attain consistent environments. Additionally, we’ve created a collection of tools and processes for spinning up projects quickly while keeping our teams close to the technical details so they get smarter in the process. Outrigger’s main touchpoint with users is through the underlying rig command line tool. Rig manages the tools that make it easy to host project environments. In addition to rig, Outrigger provides the following:
- Provisioning and management of your Docker environment
- Configurable DNS services for all containers
- Fast, mountable filesystems
- A collection of public images for running everything from databases to web servers
- A build image that contains most of the tools needed for modern web development
- A real-time dashboard to see your project’s resources
Outrigger has delivered a real positive toolset for our team and we are excited to share with the world. With Outrigger we are able to onboard each person on the development team in minutes compared to what used to take days. Project and environment setup that used to take days or weeks, now just takes hours. These lower ramp up costs enable us to deliver clients considerably more value in the same time (or less).
You can get started with Outrigger here http://outrigger.sh and check out the docs at http://docs.outrigger.sh. We have a lot more we are preparing to release, from additional images to generators for project scaffolding and more.