Cloud computing has taken many industries and enterprises by storm. Everyone is looking into the benefits of cloud computing and how to leverage it for their respective industries.
But, what is in cloud computing for software development?
There are many benefits and opportunities to maximize the agility of the software development process and practices with the help of cloud computing.
The time it takes to provision the testing and staging environments are quite note worthy. The time cycles have a negative impact on the agility of the process. Ideally, we need to ensure that the sync up of the artifact specific configurations such as logging levels, properties, and other resource values such as database links/configurations/settings, user names and passwords need to be propagated and setup across the environments, from development to testing to staging with minimal effort.
Thanks to virtualization it is easier to replicate environments, and since no dedicated hardware, saves costs. But there is more possible beyond mere machine instance replication.
We can provision platform as a service environments for all stages such as development, testing, staging and production. This will make sure, they have all the base services, such as databases, application servers, artifact deployers, service handlers and API managers setup in a consistent manner and ready to go. When the developer is done developing the application or service, the artifact can be moved to the next environment for testing, and all that is required is to point to the testing environment and test the application by the QA team. This is development governance with cloud computing.
Teams can now focus on innovation and explore the contours of technology and business requirements rather than getting stuck in the environment setups and configuration management.
The next level is that, project creation, repository creation, build plans, triggering builds upon commits and deploying artifacts onto the servers upon successful builds can all be automated with a cloud based integrated setup. In other words, continuous integration just got simpler.
Application Life cycle management can then kick in and help manage applications and services from cradle to grave. It is in here that the aforementioned pre-setup PaaS based environments for QA, staging and production matters. When the application is promoted through the life cycle states, the associated process triggers can not only move the artifacts and promote and demote them to and from environments, but also carry out the associated pre and post hook actions to ensure that the environments are properly setup and ready to be operated by the respective roles associated with the life-cycle state, such as Developers, QA and DevOps people.
The key value proposition of this cloud based model is the focused approach of the team on the project at hand and cut down of both cots and time. There are added benefits such as visibility and data at hand on the project to facilitate communication. It becomes much easier for stakeholders to stay informed. In short, the agile model got new set of tools to boost the agile values.
The good news is, this is not just theory. The technology is here already, and you can try it yourself, for example with WSO2 AppFactory.
Comments