We’re three quarters through 2015 and I already know I will remember this year as one that had a big impact on my career. This is the year when cloud computing finally clicked for me. My understanding of cloud infrastructures went to new heights because I was given the opportunity to productize Riverbed SteelCentral AppInternals in the Azure marketplace. Through this experience I gained practical skills for managing cloud assets with Azure SDKs and command-line tools but I also learned what factors make a cloud platform easy to use for both software development and software distribution.
Which platforms are generating the most user engagement?
One of the most important factors enabling consumer adoption of a cloud platform is documentation. Over 50% of my time working with Azure involves command-line interfaces (CLIs) because I found them to be the most efficient way to manage cloud resources. However, since new capabilities are constantly being introduced to cloud platforms documentation can sometimes be lacking or incomplete. So a thriving community of crowd sourced Q&A such as Stack Overflow and sanctioned evangelism such as Microsoft’s Channel 9 have been essential for me to stay productive. In fact, Stack Overflow is so popular that it’s a good place to see how developers are engaging with cloud platforms of all kinds. I performed this query on Stack Exchange to measure user engagement for a few popular cloud platforms, as shown below.
This visualization is an enlightening way to assess the grassroots momentum of cloud platforms. It’s evident that the quantity of technical information being exchanged for Azure and AWS is on a skyward trajectory. So, either those developer communities are growing like crazy or users are really just asking way too many questions!
How does cloud adoption affect technical debt?
Being a member of the cloud user community can feel like belonging to an exclusive club that vendors coddle as they try to entice consumers to their platform. Free credits are one of the ways they get you to bite. Good documentation and developer enablement are another. The barrier to entry is universally low because vendors know some small percentage of hobbyists will graduate into enterprise-level paying accounts. The upside to enabling hobbyists must be huge when you consider how hard it is to move cloud native applications and data off any given platform. Initially, lock-in may not appear to be a particularly high risk since the fundamental concepts behind IaaS and PaaS are generally consistent across platforms. For example Azure, Softlayer, and Rackspace each provide 20 to 30 commands for managing virtual machines but those similarities end when you look beyond VM management and consider the full set of CLI capabilities. The following figure shows how much CLIs vary between vendors.
Why do these differences across cloud APIs matter? Because they make applications built on those APIs less portable. The ability to ‘write once, run anywhere’ is a key differentiator when choosing technologies for software development but platform independence is not a characteristic cloud providers often talk about.
As our core business strategies become more dependant on cloud services it’s important to build insurance against vendor lock-in by asking questions such as:
- How deeply are my cloud applications dependant on proprietary cloud services?
- How can I transfer important business data to alternative cloud storage solutions?
- Am I managing cloud assets with automation that cannot be easily ported to alternative platforms?
How can organizations grow in-house cloud expertise?
Proficiency with cloud services is an increasingly relevant skill in the IT workforce. A few years ago I started exploring PaaS with side projects in Heroku and Openshift because those platforms made it easy to deploy code but Riverbed’s partnership with Microsoft enabled much more personal growth than what I could have achieved within the confines of PaaS. Like AWS and Google AppEngine, Azure hosts a wide range of cloud services. This has made it a great place to become familiar with all that the cloud offers and I’ve benefited from having easy access to lead Azure engineers at conferences such as Microsoft Ignite and Visual Studio Live. My regional Azure user group has also been an effective place to learn from experts.
‘For the things we have to learn before we can do them, we learn by doing them.’ ― Aristotle
I believe organizations wishing to exploit the cloud can achieve great results by empowering individuals to discover and experience cloud platforms first hand. Having used Azure in depth, I’ve become familiar with how the cloud technology landscape is changing and how new platform features can benefit Riverbed. Now, whether this knowledge enables me to profit from side projects in PaaS remains to be seen, but the discovery process sure is fun!