Storing code in the cloud: Yes or no?
A list with the words "yes - no - maybe" image via Shutterstock
Generally speaking, there are many advantages of cloud storage. In terms of development, when code is stored in the cloud rather than in a locally hosted server, all of the advantages of cloud storage of regular documents can be applied to your codebase. But there’s more than just passive storage, too.
Cloud computing is undoubtedly one of the biggest things to happen in the IT world in recent years, and it has quickly emerged as a preferred method of safe and convenient data and document storage. Spending on cloud services is rapidly increasing, with experts estimating a global revenue jump from $80 billion in 2015 to $167 billion in 2020, yet adoption rates of cloud computing aren’t quite where we’d expect.
So why is this? Interestingly, there are some sectors where cloud computing hasn’t taken off quite as rapidly as in other industries, and one of these sectors is software development. Pair programming in the cloud is becoming increasingly popular (even despite detractors’ cases against it, such as the ‘watch the master’ argument), but outside of pair programming, is the cloud a good choice for developers? Is it safe? Is it a sensible solution to store code in the cloud? Yes.
Cloud storage for developers
Generally speaking, there are many advantages of cloud storage; there’s no need to manage data, or the infrastructure required, yourself, it’s simple to share information between multiple sites, and there’s fast access to your data from wherever, whenever. In terms of development, when code is stored in the cloud rather than in a locally hosted server, all of the advantages of cloud storage of regular documents can be applied to your codebase.
But there’s more than just passive storage, too. Having code stored in the cloud opens up doors to utilizing a number of cloud-based development tools, such as TravisCI for continuous integration or Codacy for static analysis. Cloud-based version control providers like BitBucket offer high level change management features, such as pull request management through their web UIs. Tools indirectly related to development can also be made more useful by your adoption of cloud development services.
If your developers use a team chat application such as Slack, or Hipchat, they can be integrated with popular cloud servers meaning your developers can be kept up-to-date with notifications of check-ins, build progress and unit test status. Additionally, when using a distributed version control system (DVCS) such as Git or Mercurial, a cloud-hosted DVCS provider fits into code workflow in exactly the same way as any locally-hosted instance would. This, of course, means it can be integrated transparently to your developers while providing all the benefits of cloud storage.
Your development teams may have a few valid concerns about code storage in the cloud, but these worries don’t necessarily mean that cloud storage is a bad option. A common issue during development, using any version control system, is that there is a risk of check-in collisions. Making your code readily accessible to more developers only increases the chance of collisions, and the likelihood that your developers will have to spend their valuable time working through changesets. The solution? Effective use of version control features like branching, and ensuring that developers follow good practices such as frequent, small commits and regular pulls.
Another concern is connectivity issues and access problems. A good solution is to set up a local node which mirrors the remote server, which your developers can use in the event of a loss of connectivity. DVCS are structured around this usage model and make it simple to do.
Making it worth
With appropriate planning, cloud storage for code can be a very convenient option . However, it is important to remember that it’s not just about cloud storage; it’s about secure cloud storage. Select a cloud services provider carefully, choosing one that’s right for your industry. Code related to government projects, for example, should only be stored on appropriately certified services, like Amazon’s AWS GovCloud or Microsoft’s Azure Government, for example. Overall, a properly designed and implemented code-based cloud storage can offer great productivity gains for your development teams, along with many other benefits for IT professionals.