Amazon Web Services vs. Azure

Since 2012 we have been developing enterprise apps in the Amazon Web Services environment and generally speaking we love it.

Our partner, BlinkMobile, takes care of all the Amazon infrastructure, monitoring and management so our back-end developers can focus their energy on building the APIs and microservices that our front-end developers can consume in apps they build for clients.

Apparently, AWS deploys about 200,000 updates each month so we are never short of new innovations to work with.

In mid-2017 we decided to give Microsoft Azure a go.

Not because we were unhappy with AWS in any way, but rather because some of our most significant clients were consolidating their infrastructure and migrating workloads to Azure.

So in order to continue developing enterprise apps for them, we needed to learn and embrace the Azure stack.

So how did they compare?

On the surface, our developers saw no changes since they are mainly using Ionic and Angular JS for front-end development.

However, the technical architecture is quite different and means that the way we build the mediation layer and integrate with internal systems of record and handle identity/authentication was considerably different.

AWS is very granular and you really need to know all the individual components and virtual servers, unless you have a partner like BlinkMobile who does all this.

Azure, on the other hand, appears to have clustered their infrastructure into logical modules which can be consumed as services so the development team has to spend less time on infrastructure and can spend more time developing.

For example, the Azure mediation layer appears to be a collection of pre-built modules that can be provisioned through a single console.

This means you can add AD integration, notifications, orchestration, queues and logging to your project without building and testing those individual services.

Azure appears to be more of a “platform as a service” whereas AWS appears to be a collection of technical services that need to be assembled first.

Both have unique pricing strategies, with some anomalies and we are still working out how we forecast the lifetime cost of an enterprise app where some services are charged by time, some by data throughput, some by data stored and some by geographic regions etc.

The total cost may only become apparent when we have production apps deployed for industrial scale.

We are on a steep learning curve with Azure but the first 2 projects have been successful from a technical perspective and we are looking forward to many more.