How Cloud Helps Agility
|Eric Naiburg in Enterprise Wednesday, September 9, 2015|
Most software development groups, whether they are within large Fortune 500 enterprises or the small shop around the corner, are looking to become more agile. You’ll notice I said the word “more” as many are already following a large portion of the elements of agility and are much further along than they were just a few years ago, but the goal to improve is always there.
With the agile movement, however, we have seen a higher demand on operations to deliver software more quickly and with more flexibility. Often the infrastructure can get in the way of quick and frequent changes. It goes beyond just the hardware itself, leading to a lack of operations resources or prioritization to make changes happen.
So, how do organizations become more agile in today’s ever-changing operating environment?
How the cloud can help agility
By leveraging cloud architectures, a development team can quickly spin up or down resources for testing and deployment. As development teams begin their efforts, they don’t have to wait for provisioning of servers and databases, they can just leverage cloud environment tools to provision what they need and get started deploying with fewer headaches.
This doesn’t mean that an operations person shouldn’t be part of your agile team, but it takes a lot of the pressure off of them to be in the middle of every aspect of provisioning and allows operations to focus on what brings real value to the business:
- Performance optimization
- Responding to and resolving issues
- Putting the right hardware in place or working with their cloud vendor(s)
Starting with the basics, for a development team to move more quickly, they need to be able to quickly and easily deploy test environments. Once deployed, they need to be able to deconstruct them and build them up again. This is where virtualization first began and what lead to its popularity, long before anyone was talking about the cloud. Now, the cloud gives us the ability to expand virtualization beyond testing, into production.
Through cloud and modern configuration management technologies, we can create templates that include operating systems, application servers, databases, all of the configurations and much more and then quickly deploy these into an environment and be up and running.
Sample Agile Process Flow
Once the environment is ready, using these same configuration management technologies, we can deploy the application components and make quick and easy adjustments as required. This doesn’t mean ignoring process and protocol, which is greatly needed, especially when it comes to security and compliance, but it enables us to move faster and with more freedom – the essence of agile.
Templates and Cloning
Many cloud providers give you the ability to take existing virtual machines and create templates for reuse or clone existing virtual machines for immediate reuse. This plays very well when trying to work in an agile environment because you no longer have to wait on deployments of your configuration, you can just click a button and go.
By leveraging these templates, a development team can take on some of the responsibilities that often lie within the operations organization. That said, development is not operations and we need to remember that. If the operations team helps setup the templates, this takes some of the pressure off of them and can speed time to testing and sprint completion. Operations still needs to be involved and certainly should be a part of the agile team, the idea however is to lessen dependencies, while increasing team efficiency.
Beware of the Unused Cloud
When it comes to one of the biggest wastes of cloud related expenses, you don’t have to look any further than unused or unneeded, but turned on instances. In an agile environment when teams are spinning up cloud instances for testing and prototyping, you MUST remember to turn those instances down or off when you are finished with your task.
A great benefit of the cloud is the ability to quickly spin up and down instances, increase resources on those instances and have the exact environment you need, available at a moment’s notice. But, if you don’t keep track of what has been spun up, you will quickly see your bills going up and benefit going down.
A best practice to follow in this instance is to have a team member responsible for the environments, use tools usually provided by the cloud vendor to see what instances are up and running and evaluate on an ongoing basis the need for the instances and turn off anything that isn’t needed at the time. Don’t forget, with vendors that support the templates and cloning, you can quickly spin back up and be testing in minutes, reducing the cost of running the environment continuously, while speeding your time to testing.
Agile software development is no longer a “nice to have”, it is a “must have” and the more effective we can make our teams in delivering the software that our businesses need, as quickly as possible with the highest quality, the better off we will be. With the increased use of the cloud, we can become even more agile, but it comes both risks and rewards.
Remember that the cloud is just another technology and doesn’t replace the need for operations to be part of your agile team and doesn’t mean that you no longer need to be involved in your environments. What it does bring however is speed to testing, freedom to deploy and ease of reuse. All major factors of agile software delivery.
If you have any questions or would like to chat further about anything related to cloud hosting, please feel free to shoot me an email.
And if you are looking for a cloud hosting option that understands agile software development, I’d be glad to talk about that as well. At INetU, we take a consultative approach from the beginning, ensuring that your systems are architected for performance, reliability and the industry’s highest level of security. Each of our customers is assigned a Chief Hosting Officer who proactively supports your systems for today with an eye toward your future business needs.
We treat your business as if it was our own. Which it is, because we are hosting your most critical resource.
Read more: https://www.inetu.net/
This content is made possible by a guest author, or sponsor; it is not written by and does not necessarily reflect the views of App Developer Magazine's editorial staff.