« Home
posted on 02.23.2016 posted by Mark Pietrasanta

CI/CD and DevOps within the Cloud

Software development is evolving. Agencies are moving from more traditional development methodologies to those that are able to more directly tie to agency strategy and mission success—thanks, in part, to cloud. Waterfall has evolved to Agile, and Agile to Continuous Integration/Continuous Delivery and Deployment (CI/CD). DevOps is the next step in that evolution.

Agile is a time-boxed approach to software delivery that is fundamentally about dividing a project into small, predictable chunks of work, and reassessing and adapting to changing needs.  CI/CD builds on Agile to automate the entire process from development through to deployment. DevOps builds on CI/CD, as the name would imply, to ensure the development and operations teams are working together, both using CI/CD.

If I could distill CI/CD and DevOps into a single sentence, it would be: “everyone work together, treat everything as code, iteratively develop, and automate everything – continuously”.

When moving to DevOps, one of the key additions to CI/CD is incorporating the operations team. With the foundation of a cloud environment, the operations team can (finally!) treat the infrastructure as code. This allows the team to develop scripts to build environments, and use those scripts to automatically spin up environments and do the environment shakeout and testing through to production. Also, as with everything in CI/CD, all the operations pieces are automated. DevOps ensures the operations team is included and collaborating every step of the way.

That cross-departmental and multi-discipline involvement provides the foundational value to the federal government, as it strategically aligns solution development with an agency’s mission success. Because projects are broken into small chunks and implemented iteratively, agencies can re-prioritize and make changes at any point in the process as end-user or mission needs change. Because the stakeholders are involved throughout, and user metrics are continuously evaluated, the needs of every group can be accounted for. Because the process is automated, those frequent changes can reach users quickly – sometimes within minutes. And finally, in part because all the disciplines are working together, the risk is reduced and the quality is increased significantly.

Getting to CI/CD and DevOps in Three Steps

Any agency that has moved to cloud can begin the migration to a CI/CD and DevOps method of development today.

  • First, embrace Agile, or at least structured iterative development. It often takes a champion inside the organization to tout the advantages: lower costs based on more predictability, less risk in part through ongoing user acceptance testing (UAT), and higher quality through the collaborative and multi-disciplined teams.
  • Second, move toward CI/CD and full automation. Put the structure in place for this kind of development where, for example, code is checked in each night, builds are automatically migrated, and testing is automated. You’ll need tools for this phase—software development management tools, testing tools, automation tools, etc. The good news is that most of these have open-source options, and the cost-savings and risk mitigation that will result from CI/CD will far outweigh the costs of securing and managing these tools.
  • Third, make the final transition to DevOps by having the development and operations teams using continuous delivery and continuous deployment and treating everything, including the infrastructure, as code. (And ideally, move to DevOpsSec by including the Security team in the CI/CD pipeline.)

Remember that Agile and cloud are fundamental to the entire process. Once those are in place, you can start the move to CI/CD and DevOps and start immediately understanding the value in this evolution.

« Home
leave a reply_

Comments are closed.