Cloud Platform for Independent Software Vendors (ISVs) – Amazon Web Services vs. Microsoft Azure vs. Google Cloud Platform vs. Salesforce – Details

This is a continuation of this post on evaluating cloud platforms for independent software vendors. In that post we identified the following as the most important criteria for selecting a Cloud Platform for ISVs.

Development Focused

  • Programming language support
  • Application servers (and containers)
  • Database services (SQL)
  • NoSQL database services
  • Object/File storage services
  • Analytics services
  • Multi-tenancy

Operations Focused

  • High availability support
  • Data centers in multiple geographies
  • Scalability

Distribution and Monetization Focused

  • Support for application marketplace
  • Integration with platform user management and single sign-on
  • Easy application installation
  • Ability to leverage platform billing

The following provides details on how each Cloud Platform performs against listed criteria.

Programming Language Support

Developers like diversity. More the better when it comes to programming language support. And standards based support for popular languages is a MUST. Developers reluctantly adopt a non-standard platform specific language and only when there is a compelling reason.

Amazon Web Services Google Cloud Platform Microsoft Azure Salesforce
Programming Language Support Excellent Excellent Very Good OK
  • Amazon clearly is the champion here with support for Java, PHP, Ruby, Javascript, iOS, Android, Python and .NET.
  • Google is not too far behind with good support for Java, PHP, Python and Go
  • Microsoft Azure is generally considered a .NET cloud, but the new App Service is certainly getting more open for other languages and runtime environment. And the development tools are outstanding.
  • Salesforce development is primarily done with Apex, which works very well with Salesforce platform. Non-standard, but well integrated with their platform.

Application Servers and Containers

The ideal scenario is that the cloud platform provides a scalable application server environment that developers can use to develop, test and run their applications easily. And this application server environment via use of standard languages and SDKs can use other platform services to develop and run a full-fledged software application. Kind of like the iOS + iPhone/iPad symbiotic relationship, only for the Cloud platform.

Amazon Web Services Google Cloud Platform Microsoft Azure Salesforce
Application Server(s) Excellent Excellent Very Good OK
  • Amazon with Elastic Beanstalk is clearly the champion here with support for Java, PHP, Ruby, .NET, Python, Go and .NET.
  • Google is not too far behind with Google AppEngine. In many ways the AppEngine type of computation service is ideal because of its support for standards oriented development model (JPA..) and tight integration with many supporting services, including BigTable among others.
  • Microsoft Azure’s App Service has also made a lot of progress in a very short time. And Microsoft’s development tools (Visual Studio) have always been the best in the business.
  • Salesforce is the oddball here because of multi-tenant platform architecture and use of APEX. The application server (that runs apps) is barely visible and built into the Salesforce platform itself. The app server and the platform promotes Salesforce-ish development model with tight integration to the underlying Salesforce data model and services. It could be reasonable platform if the ISV application were an extension of Salesforce processes, especially around CRM. But the platform may be too limited and too expensive for a generic ISV application.

SQL Database Services

Every ISV application more or less needs an SQL Database.

Amazon Web Services Google Cloud Platform Microsoft Azure Salesforce
SQL Database Services Excellent Very good Excellent N/A
  • Amazon – RDS, Oracle, SQL Server, Aurora.. You name it, they have it.
  • Google’s Cloud SQL is a welcome addition to the platform and well integrated with the AppEngine environment
  • Microsoft Azure has one of the best SQL databases in SQL Server.
  • Salesforce does not provide a real database that you can pull, push and get the most out as part of your application. It has a concept of object, master-detail relationships, etc. But that is not a real database.

NoSQL Database Services

NoSQL databases are here to stay. For a variety of use cases and data types (events, etc.) NoSQL is a better option than SQL.

Amazon Web Services Google Cloud Platform Microsoft Azure Salesforce
NoSQL Database Service Excellent Excellent excellent N/A
  • Amazon’s DynamoDB is the granddaddy and started the whole NoSQL movement
  • Google’s BigTable is the behemoth of NoSQL. It is also well integrated with Google AppEngine and its object model.
  • Microsoft is new to this with DocumentDB as part of Azure
  • You are out of luck with Salesforce

Object Storage Services

For many applications that deal with multimedia data file/object storage capabilities are a key and primary requirement. Cost-effective storage and access is also just as important.

Amazon Web Services Google Cloud Platform Microsoft Azure Salesforce
Object Storage Service Excellent Very Good Very Good N/A
  • Amazon’s S3 is the most mature object storage offering in the market. You can’t go wrong with it.
  • Google’s Cloud Storage service is also compelling.
  • Microsoft’s awkwardly named Blob Storage does the job too.
  • If file storage and serving is a primary requirement of your application you might want to skip Salesforce.

Analytics Services

Analytics is usually less in practice (pivot tables) than what it portrays (statistics) to be. But for the case of this comparison we will primarily look at capabilities for multi-dimensional data analysis and self-service business intelligence tools.

Amazon Web Services Google Cloud Platform Microsoft Azure Salesforce
Analytics Services Excellent Very Good Excellent OK
  • This is getting repetitive. Amazon is again one of the leaders with Redshift and newly unveiled QuickSight
  • Google’s BigQuery is pretty good. But lack of good self-service business intelligence tools makes it less compelling.
  • What’s not to like about SQL Data Warehouse and Power BI
  • Salesforce’s Wave Analytics is the most recent addition to the platform. But is seems most useful for reporting and analytics related data in Salesforce. It is less attractive for general purpose analytics

 

Multi-tenancy

If you are an ISV I suspect you want your application to be used by more than one customer. Multi-tenancy consideration (or not) then becomes a strategic aspect of how you support multiple customers. Multi-tenancy is also an important aspect of SaaS product development, architecture, operations and security.

Depending on the cloud platform that you select it may or may not be important for you to consider from a development and architecture standpoint. For example, if you are developing applications for Salesforce platform there is no need for you to worry about Multi-tenancy because the platform is itself multi-tenant. Each customer of Salesforce operate in their own tenant space and any third party ISV application when adopted by customers is tightly bound to the tenant space and its objects. Google AppEngine supports the concept of multi-tenancy, but then your application has to explicitly take into account. AWS and Microsoft Azure do not support the notion of multi-tenancy and it is up to you to architect and operate the multi-tenant version, which can be quite complicated from a development perspective, of your application. Of course, you can use VMs, containers and host of other approaches to make multi-tenancy possible and with ease these days. In the end and for this shootout we like the Salesforce’s approach (you will see why once you finish reading the whole post) the best, although the platform is only appropriate for simple applications.

Amazon Web Services Google Cloud Platform Microsoft Azure Salesforce
Multi-tenancy N/A Very Good N/A Excellent

 

High Availability

High availability of the platform and its core services (like SQL, Object Storage, etc.) are fundamental to how you can achieve high availability for your own ISV application. All of the platforms have proven to be excellent.

Amazon Web Services Google Cloud Platform Microsoft Azure Salesforce
High Availability Excellent Excellent Excellent Excellent

 

Data Centers in Multiple Regions

The Kerfuffle around Safe Harbor and regulations in various countries make it necessary that certain types of data be resident in the region or country. The makes it necessary that the cloud platform have data centers in as many regions/countries as possible.

Amazon Web Services Google Cloud Platform Microsoft Azure Salesforce
Data Centers in Multiple Regions Excellent Good Excellent OK

 

Scalability

For some applications scalability is a major concern. Imagine you were developing a Netflix or a Dropbox, you would expect the Cloud Platform to offer highly scalable foundational services (Object storage, NoSQL service, etc.).

Amazon Web Services Google Cloud Platform Microsoft Azure Salesforce
Scalability Excellent Excellent Excellent N/A

 

Kris Gorrepati

My 2 cents on Supply Chain Management, Manufacturing, Design, New Product Development, Software Engineering, and related topics.

Leave a Reply

Your email address will not be published. Required fields are marked *