DevOps! Over the past half-decade, the illustrious marriage between Development and Operations has simultaneously become the biggest buzzword in tech since ~The Cloud~, and a critical piece of software engineering and delivery methodology. But to many, the DevOps Lifestyle™ remains a mystery—an agile paradise just out of sight. So what is DevOps, exactly, and where does it all start?
As I unsubtly hinted above, DevOps is, by definition, all about the joining of development and IT operations, with the goal of delivering applications and services quickly, with continuous updates.
To achieve those goals, DevOps teams must use lean methods, aimed at reducing back and forth between development, operations, and customers, ensuring fast feedback through he DevOps pipeline, and ultimately speeding up deployment. Automation is, of course, a key component of those methodologies.
DevOps Starts with Automation
It’s simple: If you want your organization to be lean and agile, then you’d better automate. The longer it takes your developers or IT folks to accomplish routine manual tasks, the less flexible your organization is.
Automation is no longer a luxury in the modern enterprise, it’s a necessity, and it should be in place even if a DevOps transformation isn’t. As the networked world expands, and the borders of corporate networks mesh with the borders of the cloud, and the internet writ large, the number of physical and virtual entities that require management also expand exponentially. To manage all of those resources and tasks manually would be cost prohibitive and virtually impossible, but with automation tools, you are able to amplify the performance on individuals to meet that demand. And for workers, this can be a godsend, as it takes over the dull, repetitive tasks that make up much of their workload, and lets them focus on the business of DevOps.
Continuous Delivery Needs ITs Support
DevOps may mean different things to different companies, or different people, but at its core, DevOps means a company culture that supports and prioritizes continuous delivery.
Continuous delivery is an approach to application development and delivery that emphasizes the ability to deliver application changes updates at a moment's notice. Necessarily, in a continuous delivery environment, applications must always exist in a deployable state.
To achieve this state, development, and operations must be agile and efficient—which means automation is essential.
But that doesn't just mean automation on the development side.
Efficient IT processes are essential to DevOps, and so, IT automation is critical as well. If IT processes are slow and inefficient, it slows the entire delivery pipeline.
Development teams need resources readily available at all times to avoid scheduling conflicts and meet deadlines. IT's primary goal in a DevOps environment is to make sure dev teams don't run into any network, application, and hardware bottlenecks, and to eliminate unnecessary back and forth.
Automation is Important, But Must Start Small
Of course, this is nothing new—If you're in IT, chances are you've automated plenty of tasks before. I would estimate that the vast majority of environments have some level of automation in place, whether it's a simple script or an automated tool like managed file transfer.
But just because someone has written a few scripts doesn't mean they can spearhead a successful automation initiative. Building useful IT automation that saves time, cuts down on errors, and doesn't require a lot of maintenance is a lot harder than one may think.
And, when implementing an automation initiative, it's important not to bite off more than you can chew. Look for a good, low-impact place to start. There's no sense upending your entire environment with a company-wide automation mandate—start small, show success, and build from there.
If you implement end-to-end automation on one workflow at a time, you can methodically remove the weakest links from your processes without being disruptive.