This is message is perhaps quite outdated because you work with a savvy team of developer and you have already moved your development environment to the cloud. After all even just based upon the ‘pay-as-you-use’ benefit of the cloud it is an open and shut case. But, just in case you are among the few who feel shackled to on-premise because of any of the following reasons, it is about time you moved people!
Just to clarify, I am talking about hosting the dev/test environments in the cloud, and not just leveraging some cloud/SaaS development tool. So using GitHub, JIRA, NewRelic or such does not count. What counts is running your dev/test/pre-prod environments in the cloud, such that your testers and support users play there for their verification.
Some “legitimate” reasons often given for not moving the development environments to the cloud:
- Complex suite of applications
- Sensitive Data
- Existing investments in hardware
However, these are really excuses and has a logical solution that needs to be worked out based on your specific context. Like there are many tools that can still let you control access based on your current Active Directory setup. Or, tools that help obfuscate your test data and still retain relationship integrity. The integration problem is likely to be more complex and in the worst case there may be ad-hoc measures that you will have to take that involve resorting to a snapshot of the data or an instance of the app hosted in the cloud.
Finally, the top reason – “our app is really complex and has so many moving parts” – think about it – if so, then greater the pay-off of moving to the cloud because in doing so you are most certainly going to find ways of cleaning up and streamlining something in your dev environment. You will end up decoupling something or automating setting up some environment variables or improving the versioning in your services or so on. It will force you to take on some of the technical debt in your environment housekeeping that you had been delaying forever. Consequently, you will have a better table-set that will reduce the day-to-day waste. The ROI on the effort will be realized quite early.
Once you are in the cloud you are in a position to do so much more. For example:
Performance Testing: You are no longer limited by on-premise hardware and at the mercy of IT gods. And you can provision just for that burst of testing activity. Read my colleague, Steve’s, blog of getting your infra investment just-right (click to read). so succinctly put.
Better collaboration/DevOps: The cloud-based setup is far more likely to be cleaner and leaner, requiring lesser maintenance by developers and IT. Freeing the teams up and enabling better collaboration
More experimentation: With your app in the cloud, you are more likely to experiment with things like containers, automated provisioning, BDD and so on.
Foundational pieces to move Prod: The cloud is ultimately inevitable in most cases. This is your first step.
More energized developers: Even if this is the only benefit that comes out of it. I will take it. There is a positive correlation between energized & engaged developers and quality of product. Making the move will up the game!
In conclusion, the Business decision to move Production into the cloud can be complicated and slow. There are many dimensions to it – compliance, security, real-time integration, disruption, financials, etc. A development team is, at best, just an influencer on that decision. But the test/dev environments are the development team’s territory. So whether it is a monolith or a complex set of applications and services, find out ‘how’ to move. The ‘when’ is now!
Want to know more about Cloud Transformation? Write to me at GKasturi@spiderlogic.com