If the cloud was once (ever) cutting edge, now the cloud is a sheer necessity for anyone doing anything on the Internet. It has changed the way we architect applications, build IT budgets, grow user bases, even write individual lines of code.
As the Internet continues to evolve, cloud services will become more specialised; but for now, how can you take advantage of the granularity, elasticity and pre-baked-ness of modern cloud services? And, on the flip side, as your applications expand outside blade-boxes and even beyond individual data centres, how do you design applications that treat network links like second generation buses that won’t get hung up if a service a continent away just isn’t working? And what about the applications that store sensitive data on machines whose geolocation and hardware configuration is unknown?
For developers, the cloud presents three kinds of problem space: technical (with a richer stack for application developers to touch directly), organisational (in terms of both staffing and resource planning), and strategic (as infrastructure/backing elasticity couples service with demand more quickly and more closely). We dove into all three problem spaces to collect concrete, immediately implementable solutions in our 2016 Guide to Building and Deploying Applications on the Cloud.
To assemble this 40-page resource, we surveyed more than 700 IT professionals and spoke with a range of industry experts and C-level executives to paint a broad picture of how to build and deploy applications in cloud environments. Some background to our survey demographics:
- 67 per cent of these respondents use Java as their primary programming language at work.
- 76 per cent have been IT professionals for more than 10 years.
- 40 per cent work at companies with more than 500 employees, 16 per cent at companies with more than 10,000 employees.
- At a high level, the respondents reinforced some of our assumptions about public cloud providers: nearly 60 per cent use, or have used, Amazon Web Services – more than twice the percentage of the runner-up, Microsoft Azure. Google Cloud Services were used by about 17 per cent of the respondents.
We also found that most users tended to choose a platform and stick with it. Between last year’s Cloud Development survey and this year’s, the usage rate for all three services had either barely grown (1 per cent growth for AWS), or actually shrunk (2 per cent decrease for Google Cloud Services). So all-in-all it seems that enterprise developers are pretty comfortable with their public cloud providers, as Amazon Web Services continues to be the leading choice.
Perhaps a little less intuitively: the cloud is even more popular for production than for development and testing. We found that 62 per cent of our respondents say they perform production and deployment on a cloud platform, compared to 54 per cent who use the cloud for development. The takeaway from this finding is that deploying applications on cloud platforms can increase availability and make project scaling easier - the 'production ops' side of the cloud promise. We might have thought that the 'no-ops' promise of PaaS would particularly encourage developers to just spin up applications quickly, before committing to metered in-prod deployment (which is, of course, a more significant business decision).
However, as cloud technology continues to mature (consider for example the recent release of Eclipse Che), we think that developers will increasingly use the cloud over the entire application lifecycle.