|
From time to time, we tolerate business processes that don’t work as well as we’d like. It’s easy to complain about a process that is slow, clunky, or just plain broken until you try to build one yourself. It’s simply easier said than done. So, how broken must a process be to spawn an entire social movement? That was the state of application release in 2009 when the DevOps movement emerged. DevOps pioneers realized that the gap between application development and operations was killing their businesses and making IT look incompetent. DevOps throws out the old silo boundaries and applies much-needed common sense: dDeeply collaborate and communicate; reduce the scope – , and increase the tempo – of service change; automate to eliminate manual errors and wasted time. During the first two years of DevOps, the pioneers were carving out new, ad-hoc tools to help do this. But as the pragmatic majority prepares to follow the same path, what’s the right way to make this process actually work? Fortunately, this isn’t the first revolution against inefficient process. The revolution The resolution began with modern manufacturing and the elimination of broken supply chains. However, more recently, the application development world has gone through its own revolution, discarding the lumbering dinosaur of waterfall development for nimble, warm-blooded agile development. So what can DevOps learn from this recent IT revolution?
Looking to Agile Development Automation for Inspiration Several such pairings are directly relevant to DevOps.
Automatic Build and Test
Modular Components from Shared Repositories
Automatic Dependency Management Today, development teams let automatic tools such as Maven, Ivy, and Gradle take care of that problem. Simply name an open-source Java component, and Maven can download it and all of its compatible dependencies for your project. This is not just a convenience. Automatic dependency management enables agile development by making it possible to use many interrelated components.
Distributed Version Control Put these four examples together, and it’s clear why you couldn’t just drop today’s agile methodology on the development tools of the early 1990’s. We needed better automation, not just better ideas. So how does all that apply to DevOps?
Agile Automation for DevOps
Automatic Build and Test Automatic build and test is clear in a software development context. But what does it mean in the context of maintaining Exchange servers on Windows 2008 or Oracle 11g servers on Linux? That’s where automation is evolving fastest. DevOps needs automation that extends the continuous integration pipeline to continuous deployment. Simple scripts are too brittle and take too long to build. The right answer, which we’ve seen from a recent spate of automation startups, is model-driven system construction. Automatic build and test becomes straightforward when there’s a machine-readable model for a complete system. Without a model, it’s anyone’s guess whether two deployments will come out the same way.
Modular Components from Shared Repositories
Automatic Dependency Management Traditionally, updating or swapping out system components (such as a middleware library or even an OS security patch) required weeks of manual effort. With the rise of modern, dependency-aware system automation, that task becomes pushbutton easy.
Distributed Version Control Without flexible version control — or worse, without any version control, as IT operations is accustomed to running — parallel rapid change is simply impossible. Model-driven system construction must enable not only automatic build and test, but also deep version tracking, merging, and rollback for complete systems. These changes in automation and process pair up identically for DevOps and for agile development: Process Value Automation Rapid change cycle Build and test Recycling of existing data Shared component repositories Rapid architecture assembly Automatic dependency management Individual self-direction Distributed version control
Cloud is the compelling event that makes the old processes untenable. Cloud can sound complicated, but every exposition of cloud value comes down to agility. Agility is the key benefit of cloud, and thus it is a direct response to the challenge of DevOps. The rise of cloud is the rise of DevOps.
That’s how DevOps — and the key automation areas of automatic build and test, modular components, dependency management, and distributed version control — will go mainstream. Today, practical use of cloud is a bright differentiator for enterprises that made it work, and so is DevOps. Neither will stay in the land of early adopters for long.
About the Author
Shawn Edmondson is Vice President of Product Strategy at rPath, the application engine provider for the private cloud. With seventeen years of experience in the software industry, he has served multiple roles in software engineering, engineering management, and product management, primarily at startup software companies. Shawn joined rPath from HP Software (formerly Opsware, Inc.), where he held several roles for the Opsware Server Automation product line, including product management for virtualization and compliance as well as engineering management for reporting and content delivery. Prior to Opsware, Shawn managed software development at Masergy, Inc., a startup network service provider in Texas, and at TenFold Corp., an enterprise application framework startup in San Francisco. Shawn holds a BA degree in Computer Science from Harvard College.
Set as favorite
Bookmark
Email this
Hits: 1242 Trackback(0)Comments (0)
|






