This is part of a series of blog posts in which various CloudBees technical experts have summarized presentations from the Jenkins User Conferences (JUC). This post is written by Steve Harris, SVP Products, CloudBees about a presentation given by Mario Cruz of Choose Digital at JUC Boston.
Choose Digital is a longstanding CloudBees customer, and Mario Cruz, founder and CTO has been a vocal supporter of CloudBees and continuous delivery. So, it was fun to have a chance to hear Mario talk about how they use continuous delivery to fuel innovation at Choose Digital at the recent Jenkins User Conference in Boston (slides, video).
Mario began by talking about what Choose Digital does as a business. They host millions of music downloads, along with movies, TV shows, and eBooks, that they offer as a service in a kind of “white label iTunes”. Choose Digital’s service is used by companies like United, Marriott and Skymall to offer rewards. Pretty much all of this runs on CloudBees and is delivered using Jenkins as their continuous delivery engine.
The thesis of Mario’s presentation is that innovation is really the next evolution of continuous delivery. From my perspective, this is probably the biggest strategic advantage a continuous delivery organization gets from its investment. Still, it’s hard to quantify, and it can come across as marketing hot air or the search for unicorns. Being able to experiment cheaply and quickly, with low risk, and have an ability to make data-driven product choices are huge advantages that a continuous delivery shop has over its more traditional competition. Fortunately, Mario is able to speak from experience!
To set the stage, he covered Choose Digital’s automation and testing processes. They are a complete continuous delivery shop - every check-in kicks off a set of tests, and if successful, deploys to production. Everything is automated using Jenkins and deployed to CloudBees. They are constantly pushing, constantly building, and their production systems are “never more than a couple of hours behind”. The rest of Mario’s talk was about the practices, both operational and cultural, they have used to get to this continuous delivery nirvana. Some of Choose Digital’s practices include:
- Developer control. They follow the Amazon “write the press release first” style. Very short specs identify what they want to achieve, but the developer is given control over how to make that happen; i.e., specs identify the “what” not the “how”, so that developers are in control and empowered. But, this requires…
- Trust. Their culture and processes disincentivize the need for heroes, and force a degree of excellence from everyone. For that to work, they need a…
- Blameless culture. Tools like extensive logging and monitoring give everyone what they need to find and fix issues quickly and efficiently.
- Core not context. They ruthlessly offload anything that is not core to their business. Mario talked about avoiding “smart people disease”, where smart people are attracted to hard problem solving, even if it’s not what they should be doing. By offloading infrastructure, and even running of Jenkins, to service providers who are specialists in their area, Choose Digital has been able to stay hyper-focused on their business and quickly improve their offerings. In particular, that means…
- No heavy lifting. Just because you’re capable and might even be great at some of the heavy lifting to support infrastructure or some technical area (like search), that’s not what you should be doing if it’s not a core part of the business. This is one of the main reasons Choose Digital is using CloudBees and AWS services.
- Responsibility. If you write code at Choose Digital, you are on call to support it when it’s deployed. To me the goodness enabled by this simple rule is one of the biggest wins of the as-a-service continuous delivery model (everything at Choose Digital is API-accessed by their customers).
- Use feature flags. Mario went into some detail about how Choose Digital uses feature flags to enable them to deliver incrementally, experiment, do A-B testing, and even interact with specific customers directly and in proofs of concept.
“Once you make every developer in the room part of what makes the company’s bottom line move forward, they’ll start thinking like that.”
In a lot of ways, that’s what continuous delivery is all about. It’s great to have customers who walk the walk and talk the talk. Thanks, Mario!