freshidea - Fotolia
AWS' flexibility, rapid deployment and large ecosystem of tools and options combines well with DevOps techniques, which promise to streamline deployment and automate code updates. So a marriage between the technology and the method makes using DevOps in AWS practical for many progressive-thinking cloud users.
But, how do those two entities deliver the agility some organizations want? AWS Elastic Beanstalk supports rolling deployments -- a fairly common DevOps practice -- allowing configuration deployments to work with AWS Auto Scaling. Therefore, there are always a certain number of instances ready and available, even as other aspects of a configuration change. This means, as Elastic Compute Cloud (EC2) instances are updated, the developer stays in control. If an EC2 instance type is changed, the developer can find out if Elastic Beanstalk has updated all instances or is keeping some instances running to serve requests; meanwhile, other instances are updated. AWS OpsWorks, which allows developers to define which instances layers should update when deployments are made, is another example of how the public cloud provider supports the DevOps mindset.
Beyond these examples, many experts agree there's a natural fit with DevOps in AWS -- and a path to agility.
The promise of DevOps "is the ability to deliver quality, supportable, stable features and changes rapidly in order to meet the business needs," said Ed Featherston, director of technology services at Collaborative Consulting, in Burlington, Mass. In his view, DevOps is the overlap of development, QA and operations, supported by the underlying technology. DevOps isn't just technology, though technology is critical in supporting it. DevOps also isn't just a process, though fundamental changes are required in existing development, QA, and operations processes. "Solving the technology and process challenges alone is not enough," Featherson said. "DevOps requires a significant cultural change in most organizations to succeed."
AWS eases DevOps process
Public clouds allow organizations to take advantage of advanced technology they otherwise might not be able to access or afford. AWS' on-demand resources and scalability enable DevOps. Featherston cited four capabilities that result from working with DevOps in AWS:
- It gives development and QA the ability to quickly deploy new environments and configurations needed for new features and functionality. Doing this through AWS allows enterprises to break down environments when they're no longer needed. This also eliminates the need -- and associated cost -- to keep a variety of internal hardware and infrastructure available and mitigates the effect of hardware acquisition delays.
- All teams have the ability to easily test out new deployment packages without affecting the production environment.
- With testing, teams can easily move and deploy to the internal cloud implementation.
- Gives operations the ability to augment resource capacities during periods of peak demand.
But AWS cloud technology does not guarantee implementation of a successful DevOps organization and process; nor does it guarantee agility, Featherson warned. A big mistake companies make is trying to port their on-premises production environments directly into the cloud, hoping to add agility later.
"That doesn't work," said Ben Piper, an author and IT consultant at Ben Piper Consulting in Atlanta. Instead, continuous integration has to start at the development level.
"Start by moving your existing development and staging environments to AWS," Piper said. "Once you're accustomed to the differences between developing in cloud versus on premise, start adding in continuous integration tools, such as Jenkins, and configuration management tools, such as Puppet or Ansible."
"No technology negates the need for good design and planning, and AWS cloud services are no different," Featherson added. In other words, how an organization uses DevOps in AWS requires thought, design and planning.
"If done well, the marriage of DevOps with technologies such as AWS will be successful and provide long-term benefits to the business, allowing DevOps to deliver on its promise," Featherson said.
Automate app deployment with DevOps on AWS
Tools help successful DevOps approach
DevOps can bolster AWS security