The intersection of global scale, cloud and other modern technologies as well as agile software development has led the IT industry to a set of principles and approaches called “DevOps.” DevOps brings a modern approach to the culture, processes, tools and practices necessary to continuously produce high-quality and high-value products (and services) in today’s rapidly evolving world.
This change is partly due to companies like Facebook, Amazon, Netflix and Google, which are reaching hundreds of millions of people. At the same time, these companies are rapidly innovating, especially within cloud technologies, which provide the underpinnings necessary to reach these massive audiences. The convergence of global reach and the rapid evolution of the enabling technologies is forcing software development, IT operations, and business models to change and evolve.
The development within private industry has led many government agencies to explore or embark on the cloud migration journey. Some are still considering a cloud migration while others are busy migrating. A few agencies are even fully cloud operational. Of the groups that are partially operating in the cloud, most are not realizing the expected cost savings and scalability or have not realized the true potential that is far beyond the savings from fewer servers and less data center space.
A similar story exists for agile software development in the government. Since February 2001, when 17 software developers met at the Snowbird resort in Utah and developed the manifesto for Agile Software Development, agile has been slowly creeping into software development and government IT cultures.
Agile has been often stymied by the realities of traditional IT organizations and the siloed approach, where people are kept in separate development groups. While many have found some success with agile, there is a strong argument to be made that most have not realized its true potential.
Most organizations have experienced the negative issues associated with waterfall software development, including the pattern of disconnected groups into their own silos. This can create long periods of time to release software. In response, many of those organizations transitioned from waterfall to agile software development to address business needs and to be more adaptable and produce more frequent results. While helpful, this effort still left the same groups operating in silos struggling to successfully launch new software. This severely limited the promise of agile development.
The advent of cloud technologies and a truly global economy sparked the evolution of agile into the principles and practices referred to as DevOps. From software architecture and design to systems administration and support, the term “DevOps” refers to a style of management and implementation that places an emphasis on automation and iterative delivery of software while also empowering team members to own or contribute to portions of the software delivery process that were previously inaccessible due to silos within an organization.
DevOps tools and practices focus on reducing time to release and making it possible to extend the frequent iterations of agile into infrastructure and data environments. DevOps is inseparable from both agile software development and cloud computing principles. Success is measured by how quickly an organization can leverage infrastructure and assemble data to support software development and delivery. DevOps success is also measured by the speed, frequency, and quality of software/product releases.
DevOps teams are often a combination of development and operations talent with few if any barriers between the successful deployment, monitoring, and updating of production applications and the teams that create them.
Just for fun: Watch the History of DevOps