Building an End-to-End CI/CD Pipeline
This series of blogs and videos will explore how NetApp HCI satisfies the requirements of the DevOps Continuous Integration (CI) and Continuous Delivery (CD) pipeline.
Learn more about NetApp HCI.
What is DevOps?
DevOps is a set of software development practices that combine software development (Dev) and information-technology operations (Ops) to shorten the systems-development life cycle while delivering features, fixes, and updates frequently in close alignment with business objectives.
As DevOps is intended to be a cross-functional mode of working, those that practice the methodology use different sets of tools—referred to as "toolchains"—rather than a single one.
What is a CI/CD Pipeline?
Continuous Integration (CI) and Continuous Delivery (CD) embody a culture, set of operating principles, and collection of practices that enable application development teams to deliver code changes more frequently and reliably. The implementation is also known as the CI/CD pipeline and is one of the best practices for DevOps teams to implement.
Addressing the CI/CD Pipeline with NetApp HCI
Figure 1: DevOps CI/CD Pipeline - Use the navigation panel (at the right) to learn more about each of the components of the CI/CD pipeline.
Configuration management refers to the process of setting up the virtual infrastructure for a DevOps CI/CD pipeline. Automation of the infrastructure configuration is a key tenant in DevOps where automation tools such as Ansible and Puppet are widely used to perform the required automation steps.
Automate configuration on your Virtual Infrastructure:
A source repository is where the “code” is stored throughout the CI/CD pipeline. Developers “check-out” code to make changes, test the changes and “check-in” the code to be built and deployed. Examples of source repositories that will be referenced in the DevOps video/blog series include jFrog and Bitbucket.
Choose and setup a Source Repository:
In order to develop code in a CI/CD pipeline, a code and binary management system must be defined. The management system defines the practices for developing and introducing code into the pipeline. Tools such as Artifactory help in managing this process for DevOps.
Behind the scenes of Artifactory and HCI:
Once code is developed and tested, it must be built before it can be deployed. The commit phase of the CI/CD pipeline addresses how the code it committed into the code management system and built so that it can be deployed.
Setup your CI pipeline and Run your first builds:
Testing is a critical component in any development process. In a CI/CD pipeline, testing is performed at the development phase as well as part of the “acceptance” of code prior to deployment.
Deployment of code occurs once the code has been developed, tested and built. Once built and verified, code can be deployed into a production or pre-production environment.
Deploy blue/green environments with Kubernetes:
Once code is deployed into the production environment, it can be utilized to meet a customer use case. This topic will touch on how the DevOps CI/CD pipeline introduces code into production to solve a business need.
Data Protection, and DR to any place: on premise, off premise and the Cloud:
Throughout the lifecycle of a CI/CD pipeline, analysis and metrics surrounding the code provide an effective means of evaluating the performance and effectiveness in meeting a business need. This section will touch on metrics and analytics using tools such as ServiceNow (as a self-service portal) and Cloud Insights.
Metrics are king:
ServiceNow for a self-service Portal:
Using Cloud Insights:
Feedback is a fundamental tenant of a successful CI/CD pipeline. At every point in the pipeline, feedback is given to ensure that the code is meeting the expectations. There are a variety of feedback options including, but not limited to, email, reports, blogs, source management notifications and execution logs.
Communicate status to your developers: