If the cloud was once (ever) bleeding edge, now the cloud is sheer necessity for anyone doing anything on the Internet. It has changed the way we architect applications, build IT budgets, grow userbases, even write individual lines of code. As the Internet continues to lambdify, cloud services will become more specialized; 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 centers, 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 spaces: technical (with a richer stack for application developers to touch directly), organizational (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 Developing 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 on our survey demographics:
- 67 percent of these respondents use Java as their primary programming language at work.
- 76 percent have been IT professionals for more than 10 years.
- 39 percent work at companies whose headquarters are located in Europe, 35% in the USA.
- 40 percent work at companies with more than 500 employees, 16% 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 percent use, or have used, Amazon Web Services – more than twice the number of the runner-up, Microsoft Azure. Google Cloud Services were used by about 17 percent 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 percent growth for AWS), or actually shrunk (2 percent 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 litle less intuitively: the cloud is even more popular for production than for development and testing. We found that 62 percent of our respondents say they perform production and deployment on a cloud platform, compared to 54 percent 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.
These research findings offer hints of a snapshot of developers' current use of *aaS. But our new Guide offers loads more actionable content, including a step-by-step guide for securing cloud applications, a deep dive into AWS deployment, how to become a full-stack engineer on a hybrid cloud, a printable visualization of 'cloud-native' (12-factor) apps, and more. Dig in; tell us what you think. Don’t see something you’d like to know about? Tell us!