Nearly every company today embraces cloud. According to the 2017 State of the Cloud Survey by Right Scale, 95 percent of organizations use cloud in some fashion. Cloud market is growing so rapidly that, according to Forrester, revenue from public cloud platforms, business services, and SaaS will grow 22 percent annually, reaching $236 billion by 2020! 

Evidently, cloud is the future, if not the present, of software. However, software development itself — including tools for building, testing and deploying software applications — has been lagging behind. Many organizations have been reluctant to adopt cloud development tools due to concerns about reliability and security.

Over the last few years, though, many vendors have taken the challenge to address these concerns. Vendors of cloud-based development tools have made major investments to upgrade hardware, improve monitoring, reconfigure network infrastructure, and optimize database configuration far beyond what operations teams who deploy internal tools are able to provide. Now, cloud-based tools provide 99.9 percent reliability (or better) in the cloud.

Cloud security has also seen major improvements with features such as 2 factor authentication (2FA), Universal Second Factor (U2F), granular access permissions, and IP Whitelisting available on most tools. Support for SOC2 compliance in the cloud is another growing trend. 

Adopt cloud-based software development or be left behind
There are many reasons why organizations should consider cloud-based software development. First, there is growing familiarity with managing cloud workflow as many applications are already in the cloud, such as document sharing, email and chat collaboration.

Second, software developers are clamoring for their applications to run in the cloud. The war for top talent is intense, and old-school techniques using on-premise tools will not attract the talent organizations need to be competitive.

Finally, many current trends in software development – such as DevOps and Continuous Delivery – are contingent upon cloud services.

That means that companies will either adopt cloud for software development or get disrupted by competitors who do.

Other benefits of software development in the cloud
At its core, cloud software development is just faster. If organizations are using cloud tools, they have no software or hardware to install or upgrade whenever there is a new release or a security concern. Within minutes, they get access to a robust source code collaboration and management solution. The tools are integrated with best of breed software so they don’t have to deal with any complex setup.

Most importantly, they can ship code in quick iterations. As the team grows, so does the number of commits and builds, which means that organizations can scale up or down without any additional investment in hardware, software, or people to maintain development tools.

Cloud-based development trends
Several software trends are accelerating the adoption of cloud-based development:

  • Microservices: Microservices-based applications are assembled from a set of modular services. The shift from monoliths to microservices is influencing the thought process of developers. They need to have access to the entire stack during the development and testing phases.
  • Polyglot: In this brave new world of microservices, more applications are built using multiple languages and polyglot technology. Gone are the days where an application was coded in just one language targeting a single stack.
  • Cross-platform: The next big change came in the form of cross-platform compatibility. Many applications target a variety of desktop environments, browsers, mobile devices, tablets, and even wearables. Existing tools are insufficient to develop cross-platform apps.

These trends are increasing complexity in build and test environments, which in turn slows staging and production deployments. Instead of using a single repository and test suite, modern applications are being composed of multiple repositories, each with their own build, test and deploy workflows expressed as code within the repository. More frequent releases and the engineering necessity of repeatable builds have made it vital to automate the entire build and test process. Automation has become such a necessity that software teams cannot do without continuous delivery for complex software systems.

Continuous delivery will further accelerate cloud-based software development
Having application and continuous delivery pipeline in the cloud in one integrated platform reduces the need to switch between tools, cuts down on complexity, and gives organizations a big competitive edge. To deploy apps to the cloud, modern tools and techniques like continuous delivery in the cloud allow engineers to focus on shipping features instead of managing applications. Modern software creation tools monitor health of the code, so that developers can fix issues sooner and ship better code, faster.

The next big cloud migration is coming
Not long ago, organizations needed to buy and maintain their own CI/CD hardware and software. Now, teams can rent steps of the pipeline as a service (test grids, static analysis, security scanning, and more) in the cloud. Software development in the cloud was unthinkable recently, but now the momentum has shifted following the rapid migration of applications to the cloud. To build for the cloud, organizations should build in the cloud. Businesses should modernize the way they build and ship software or get disrupted by new fast-moving competitors. 

About Rahul Chhabria

Rahul Chhabria is principal product manager, Bitbucket Cloud, Atlassian (@rchhabs)