DevOps Digest 103: Starting Our Journey
Do You Do DevOps?
DevOps is not one size fits all. I’ve seen organizations apply what seem like universal DevOps axioms only to be deeply disappointed and walk away from the entire project as a result.
Plenty of organizations still depend, sometimes crucially, on complicated legacy applications. You cannot purchase an all-in-one DevOps toolkit and drop a monolithic monster into it for magical results. A multi-million-line, legacy C++ application is different than a web application and requires altering your approach and expectations.
The good news, however, is that legacy applications arguably stand to benefit most from DevOps. However, it’s essential to view the overall DevOps project as a journey and never let perfect become the enemy of good. Even if you cannot automate everything right away, automate whatever you can. Pluck the low-hanging fruit first, then head toward the dainties in the upper branches.
Continuous integration (CI) is always a good place to start. Jenkins, and other tools, make it easier than ever before to automate your build process. If you have a solid build environment, can kick off a build with a command line, and employ a version control system, you should be able to easily automate your build process with a CI tool.
In fact, you may already be doing DevOps and simply know it by another name. Plenty of organizations rely on home-grown tools for automating parts of the build process, steps in testing, or deployment. If you already have such means, but don’t yet have those bits of automation slaved to a dedicated CI tool, you’re positioned to take the next steps into a larger DevOps world.
Get the build working. Iron out the kinks. If nothing else, you’ll have immediate feedback on a publicly visible dashboard and catch build-breaking bugs faster than ever before. That alone can pay significant dividends.
Don’t be surprised if you find along the way that your version control system (VCS) can’t handle the load — VCS aren’t a one-size-fits-all solution either. It’s one thing to manage files and contributors for small projects, but not every VCS can store large build artifacts or millions of files. If you find your VCS holding you back, it’s probably time to look for something new.
This probably sounds daunting, but take heart: the more progress you make, the more reliable and repeatable your releases will become. And along the way, the cycle time from commit to high-quality release will shrink. That’s always a win-win.
Common DevOps Goals
There are, nevertheless, some common goals toward which all may labor, ones we will embrace throughout our journey.
First and foremost is the value in bringing contributors together. We’re all on the same team. So, it’s not helpful for developers to write code in narrowly defined silos, throw it over virtual walls, and expect operations to do the dirty work of building, testing, packaging, deploying, and maintaining the resulting application. The you-build-it-you-run-it motto is right on the money. The more your personnel see themselves as part of a team, the better they’ll work together toward winning. And of course, giving them the right tools is a big part of that process, as we’ll see.
Driving down your build cycles is equally important. The more you iterate before launch, the better your product will typically be. Faster build cycles mean more iterations. With complete automation, faster build cycles mean faster release cycles, all of which translates into happier customers and a sharper competitive edge.
Testing, validation, and other quality assessments provide a level of confidence, and perhaps legal indemnification in heavily regulated industries. The more you automate these processes, the more you can elevate your own comfort level while driving costs down, compressing calendars, and eliminating uncertainty. It isn’t easy, as we’ll see later, but the benefits of automation — reliability, repetition, speed to delivery — are usually overwhelmingly worth the effort, not to mention the boost in confidence you customers will place in your products and services.
Securing and maintaining the history of your development journey and final destination can be very useful, even crucial for heavily regulated industries. Traceability, or maintaining object hashes and a digital chain of custody can be similarly important in surviving compliance audits. Systems that give you powerful integration tools are invaluable in supporting older releases and integrating work across releases.
Finally, Planning in advance for disaster. The question isn’t whether your systems are going to fail, only when and how badly. Having high availability, coupled with a solid (and regularly exercised) recovery plan, is arguably the best way to avoid organizational extinction.
You Ask, We Answer
As I previously mentioned, this is your roadmap to creating a successful DevOps pipeline. Don’t understand something? Just ask. Need to dive a little deeper? Send an email to email@example.com with your questions. Then, stay tuned for a live Q&A webinar at the end of this series.Get DevOps Digest Sent to your Inbox
You don’t need to remember to check back with us each week. Instead, get the digest delivered directly to your inbox. Subscribe to our 25-week DevOps Digest and we’ll get you where you need to go, one email at a time.
Catch up on DevOps Digest: