Several key trends have emerged in the software development industry that enable IT organizations to achieve innovation faster and on a more consistent basis:
1) Agile is a well-established methodology that defines specific roles for team members and embraces short iterative sprints that give yield to highly functional and testable software. Agile places a strong emphasis on speed, predictability and quality of software.
2) DevOps builds upon agile by providing further collaboration and tearing down barriers between development and operations. DevOps emphasizes tighter integration between development and operational teams.
3) the cloud knits agile and DevOps together by providing a highly scalable, low-cost and low-risk platform that makes it easier to deploy agile techniques. Development iterations should ideally be deployed in your cloud infrastructure where testing for usability and scalability should be performed with each sprint.
Let's now look at how the three processes come together in modern app development.
How DevOps Delivers on Agile
Introduced in 2001, agile methodologies taught developers how to break down software development into smaller chunks so as to better align product features with actual market needs and also accelerate feedback loops. Using agile, developers could now produce functioning software code in much shorter iterations.
Agile developers, however, soon encountered one big obstacle: whereas agile helped teams to work more efficiently, downstream processes such as testing and deployment in many cases frustrated key objectives such as faster time-to-market and improved software quality. Newer processes that emphasize streamlining and automating the entire delivery cycle were invented to address these problems. Continuous integration (CI) and continuous delivery (CD) were thus born. CI is the practice of checking code and integrating into a shared trunk multiple times a day, whereas CD is the practice of automating the entire software release process.
DevOps combines cultural philosophies, tools and practices such as CI and CD to increase an organization's ability to deliver new software at a rapid pace. Under a DevOps model, operations and development teams become more tightly integrated instead of working in siloed structures.
Agile and DevOps can ideally be blended to ensure rapid deployment of working software.
Adopting a DevOps Structure From Agile
Adopting a DevOps structure for developers who already use agile methodologies requires little change in the workflow process, because the same focus on rapid deployment exists. The additional expectations by DevOps is that all committed code should be tested automatically and rejected whenever it fails to meet all regression tests.
Agile and DevOps in the Cloud
The agile methodology emphasizes short, rapid iterations of software development rather than perfect final products. DevOps governs how the resulting software is tested, secured and deployed as seamlessly as possible. DevOps is best seen as a complement, rather than an alternative, to agile.
Implementing DevOps is best achieved by constructing tool sets based on cloud computing models, because the cloud gives an ideal platform for automation and repeatability of the entire deployment process. CI workflows can be constructed using a variety of automation tools (such as Jenkins), which build various cloud components that are necessary to serve an application that is configured from a central repository. This ensures that each deployment is identical and minimizes potential for errors.
Automated testing is a critical component of the DevOps toolkit. The focus on testing and infrastructure-as-a-code aligns well with agile's rapid deployment, because it automates the most time-intensive parts of the software release process.
A Flexible Approach
There is no right way to adopt an agile-DevOps-cloud model—you can get started from any angle. The important thing here is to increase your speed to market, responsiveness and shorten the timeframe to respond to an opportunity or a challenge in the marketplace.