Limiting yourself to a single provider ignores the power and flexibility of the cloud. While our journey may begin in on place, our travels will take us on a expedition across providers to find the best of breed services. And that’s OK.
How Did I Get Here?
I began my cloud journey a little over three years ago. In that time I soaked up training materials, samples projects and delivered production level implementations. In that time I largely confined myself to Amazon Web Services (AWS).
I did this partly because AWS offered everything I needed and partly because AWS’s sweet spot is Linux friendly languages such as Java, Python and Node.Js. While I’m proficient in these technologies, they aren’t really my bread and butter. I desired to return to my “native” language of C# and .Net.
.Net offers some of the best developer tools around and I’ve heard more than one Java developer begrudgingly admit that Visual Studio is great IDE. Likewise Microsoft, who doesn’t have the best track record with the open source community, is not the same Microsoft of the 1990s. Significant portions of .Net are open source as well as a phenomenal tool called VS Code.
Why the Change?
Two things prompted the change:
- DotNet Support on AWS
- A New Dev Team
.Net Support on AWS
Despite .Net Core’s ability to run on Linux, there are a few limitations when utilizing services such as AWS Elastic Beanstalk. I ran into a few issues that I was ultimately able to work around. However the more concerning aspect was the inability to leverage elastic compute in the same manner for .Net Framework projects.
While DotNet Core continues to mature, IT shops with existing .Net Framework projects are not a the point where they can make a 100% transition to the new technology stack. Further , as with cloud migrations, it may not make sense to fully re-write existing .Net applications. Given this and lack of a platform as a service option for traditional .Net, AWS is essentially a partial solution.
A New Dev Team
A few months ago I was offered the opportunity to move back to my .Net roots and join a team that is in process of migrating to the cloud. The catch? The cloud was Azure.
Azure has always been on my personal roadmap and I’ve used serveral services for a few proof of concept (POC) projects. However POC and production are two different animals. Over the course of the next few months and years I expect to learn the intricacies of Azure cloud deployments.
Though my cloud journey diverges toward Azure, rest assured that my work with AWS is far from over. AWS continues to roll out new an innovative services at a breakneck pace. Multi-cloud deployments are more than a buzz word they are a reality. Why should anyone limit themselves?
As engineers, operators and IT managers we should look for best of breed technologies and use them at our discretion. The flexibility to do so comes from clean design principals and willingness to explore and evaluate the services landscape rather than default to our favorite cloud provider because it’s comfortable.
Rest assured that the teams at Google, Microsoft and Amazon are relentlessly working to one-up one another. Our challenge is not finding a suitable solution, it’s keeping pace with the rate of change.