In this entry of our series of DevOps on the AWS cloud, we take look at building a strong DevOps culture.
Picture the seemingly impossible: a DevOps world where cloud customers are not stressed, executives are happy with the go-to-market strategy, and buyers evangelize your service’s high value.
What if a “Good Place” is possible, and you really can achieve it? It is, and you can, if you adopt agile DevOps processes and the right tools to go with them.
If DevOps Agility Were Easy, Everyone Would Be Doing It
The DevOps Good Place requires investing in people and technology to start, and not every organization has the knowledge or will to do it. If they do, they train and mentor their DevOps teams for clear communication and smooth workflow. They also invest in the technology to automate the process from code to testing, deployment, and change management.
Agility is a crucial factor in successful DevOps. Agile practices mean that a company cost-effectively accelerates the go-to-market strategy with faster development and testing and does a better job at updating and maintaining software quality. At the same time, an agile operations team works closely with developers to keep systems performing, manage resources, and ensure security and compliance.
Agility and the CI/CD Pipeline
Continuous integration and continuous deployment (CI/CD) pipelines are foundational to agile DevOps teams. The pipeline is highly automated, which simplifies development and operations. DevOps teams can concentrate on business requirements and higher-quality code as well as fast deployment and better portability.
- Continuous integration. CI is a coding approach and practice that enables developers to make incremental changes without compromising existing code, and to observe version control. CI is vitally important to releasing applications that run seamlessly on different platforms and in different environments.
- Continuous delivery. CD automates delivery of the finished code to different infrastructures, ensuring better quality control and shortening delivery times.
- Continuous testing. Although there is no “CT” in the CI/CD term, continuous testing is an integrated practice in the pipeline. Tests identify errors in new code integration—for example, slowdowns, insecurity, and vulnerabilities. Automated continuous testing quickly and efficiently spins up copies of the production environment and releases the resources as soon as the test is done.
Agile DevOps in the Cloud
The cloud’s reach and flexibility are important to agile DevOps, and both cloud providers and storage vendors are actively developing new automations and services.
AWS offers DevOps support with several of its offerings. AWS uses the term “modernization” to describe how DevOps can transform applications into software that is agile, elastic, and highly available. These modernized applications take full advantage of the cloud to gain agility, ease of deployment and management, and flexibility.
Popular AWS offerings that benefit agility include AWS CloudFormation and AWS CodePipeline. CloudFormation serves DevOps by providing configuration templates of AWS resources such as Amazon Elastic Container Service (Amazon ECS), Elastic Compute Cloud (Amazon EC2), and Simple Storage Service (Amazon S3). Users can configure AWS stacks quickly and reliably without depending on a specialized cloud engineer.
AWS CodePipeline manages continuous delivery of released software on AWS, which simplifies CD management. Users can integrate with popular DevOps tools such as GitHub, Jenkins, or AWS CodeDeploy to visually control applications from coding and testing to deployment.
NetApp and Agile DevOps on AWS
NetApp® agile DevOps tools complement AWS DevOps. For example, AWS Quick Starts automate stack creation on AWS. NetApp offers AWS Quick Starts for NetApp Cloud Volumes ONTAP®. And NetApp leverages native AWS services such as AWS CloudFormation in NetApp Cloud Volumes Service for AWS as part of a larger CloudFormation-driven framework.
NetApp also automates management and orchestration, software testing, and containers for agile DevOps on AWS.
Management and Orchestration
Cloud Volumes Service enables DevOps teams to build more quickly and efficiently. Teams can use agile tools to integrate with Cloud Volumes Service through its RESTful API. Cloud Volumes Service can turn out to be up to 20 times faster than inherent public block storage and is highly customizable. And Cloud Volumes Service restores snapshots much faster than EC2, including restoring large snapshots to multiple environments in parallel.
The CI/CD pipeline benefits from immediate file services and the ability to rapidly spin up and spin down clones by using NetApp Snapshot™ technology. This same technology protects production data with NetApp high availability and data synchronization.
Software Testing Automation
Cloud Volumes Service supports Snapshot copies and cloning for agility in testing. NetApp FlexClone® thin-cloning technology rapidly creates writable clones of existing data for testing. Multiple clones of the same source file exist concurrently. DevOps adds, updates, and deletes volumes without affecting primary storage. When testing is done, the team deletes the clone to free up all its resources.
Developers can provision copies of real-time production data or code sets in under a minute.
Containers package an application’s operating environment, including the OS, configuration, and resources. They are highly agile at packaging data, which greatly decreases deployment time and development costs when you’re porting an application across different infrastructures.
But container technologies, including market leader Kubernetes, have a distinct drawback: They do not automatically protect persistent data. To add data protection and disaster recovery capabilities to containers, third-party software is necessary. NetApp has solved this problem with NetApp Kubernetes Service (NKS), a proprietary Kubernetes distribution service. NetApp also uses NetApp Trident on Kubernetes clusters, so DevOps can use ONTAP persistent storage for containers on premises and in the cloud.
NetApp is not stopping there. The key to improving containers is developing stateful containerized applications. In Kubernetes, stateful applications are able to freely move data and all associated data services — including data protection and disaster recovery — across multiple public and private clouds. DevOps can flexibly deploy containerized applications anywhere and move them at will, without losing data and data services.
NetApp is innovating its container offerings this year with a major new stateful offering: Project Astra. Astra, which will replace NKS and incorporate Trident, will enable DevOps to use any Kubernetes distribution on any cloud. With Astra, you will achieve true container portability.
DevOps teams will be able to freely use Cloud Volumes ONTAP to manage and protect persistent containerized volumes. ONTAP provides multiple data protection features such as backup and restore based on Snapshot copies, high availability for Kubernetes persistent volumes across Amazon Zones with Cloud Volumes ONTAP high-availability (HA) configurations, efficient, block-level data replication with Netapp SnapMirror® software, and FlexClone data cloning for fast, space-efficient clones for agile DevOps testing.
This is the second blog in our DevOps Series, here is our previous blog. For more detailed information on DevOps with NetApp on AWS you can view this webcast titled; Running Cloud-Native Applications On AWS? Also you can read about Cloud Volumes Service or start a free trial of Cloud Volumes ONTAP.
Additional posts focus on solving pain points, building a successful deployments, and real-world examples of DevOps in the cloud. For more in our series check out the complementary entries on A Strong DevOps Culture, Agile DevOps, A New Approach to Development, and 10 Challenges and Solutions for DevOps.