Editor’s note: This article was contributed to Cloud Wars by Jiri Kram, a solution architect who studied Fintech at MIT and specializes in cloud computing and blockchain. He is a highly respected commentator on LinkedIn, where he originally published this piece on May 6. This article marks Jiri’s third appearance on Cloud Wars; you can see his first two Cloud Wars articles here and here. While Jiri is a good friend of Cloud Wars, the views expressed are his, and do not necessarily reflect the views of Cloud Wars. In particular, I think there is almost no chance that Jiri’s idea of Keith Block returning to Oracle or going to Microsoft will come to pass, and I think there’s an equally tiny likelihood for Jiri’s idea that Thomas Kurian will have Google Cloud develop a database designed to compete with Oracle’s. But multiple views make for interesting debates, so with those qualifiers made, we invite you to enjoy this latest set of provocative ideas from Jiri Kram.
Can Salesforce keep growing despite the crisis? That’s a billion-dollar question. And it doesn’t have a straightforward answer. Salesforce has enjoyed so far 35% growth, and the future looks rosy. Can this trend sustain in an environment when IaaS is outgrowing any other cloud category? And how do the Cloud Wars between AWS / Microsoft / Google / Oracle affect Salesforce? Let’s dive in and see what challenges and strategic options Marc Benioff is facing.
Will Salesforce say sayonara to Oracle?
In 3 years, it will be exactly ten years after Salesforce signed a deal with Oracle. Ever since then, there were various attempts to test if Salesforce can run without Oracle database foundation. These attempts led in creation and acquisition of many new services Einstein, MuleSoft, Commerce Cloud, Marketing Cloud, Pardot, Quip, Heroku that wasn’t built on top of Oracle. Thus, creating a situation when 50% of Salesforce (Sales Cloud, Service Cloud, Force Platform) runs still use Oracle database and java, while the rest use mix of AWS and Azure. The only question is if Salesforce will manage to migrate schema to other databases.
Let’s explore Salesforce’s options
- Stay on Oracle and migrate to Oracle Autonomous Database
- Migrate Oracle databases to AWS RDS for Oracle
- Migrate Oracle databases to AWS Aurora or AWS Postgres
- Create a hybrid deployment use AWS RDS for Oracle for some workloads and move to AWS Aurora, DynamoDB or Postgres
- Deal with Thomas Kurian
1. Staying on Oracle and migrate to Oracle Autonomous Database
This option is possible, due to Keith Block’s departure from Salesforce. If Oracle hires Mr. Block, he would be able to close the deal with Marc Benioff for extending or expanding the Oracle contract. Although it may sound to many unrealistic, technically, this option is the lowest risk for Salesforce. Problem with Oracle database foundation of Salesforce is a simple fact. Beyond core products like Sales Cloud, Service Cloud and Force Platform, there is also AppExchange that contains around 3,500 applications from many vendors. Given all these applications uses in some way shape or form Oracle technologies (schema = objects, fields; security model = profiles, roles, permission sets, OWD; logic = apex / oracle application express; UI = visualforce / oracle JSP). Migrating all of those to some other platform might be very risky, so if Keith Block ends up at Oracle, then it is likely he would attempt this deal.
2. Migrate Oracle databases to AWS RDS for Oracle
This option is also very tempting because Salesforce already has experience with this setting. For example, the Canadian data centre is running on AWS and therefore, it’s likely that Salesforce would be able to deliver Oracle-based schema they are using AWS RDS (Relational Databases Service) for Oracle. Given that AWS now supports all versions of Oracle database including 19c, which was the last version before starts delivering Autonomous Database, RDS should be sufficient for Salesforce purpose.
Why? Salesforce licensing deal with Oracle signed in 2012 contained ten years deal but without Oracle Autonomous Database, which didn’t exist by then. AWS RDS now supports all major version 11g, 12c, 18c and 19c so it’s possible this could be sufficient for Salesforce. It’s also relatively safe move, as there is no major change, the primary impact is data centre is operated by AWS and not by Salesforce team, so all maintenance like patching, upgrading, scaling and so of the database wouldn’t need to be done by Salesforce team. This could both reduce Salesforce’s operating cost and help them innovate faster because they would benefit from any development on the AWS side.
3. Migrate Oracle databases to AWS Aurora or AWS Postgres
Similar to the previous scenario, here Salesforce would be using AWS RDS but instead running licensed Oracle databases. They would start using either AWS own relational database Aurora or Postgres, which Salesforce already uses in Heroku. My guess is that Salesforce is more likely to use Aurora, because Amazon uses this relational database themselves for the most challenging workloads, which previously ran on Oracle. Aurora, unlike using RDS with Oracle, would also come with the benefit of single cost per database. In case Salesforce would be using RDS for Oracle, here cost of such infrastructure would also be influenced by license cost from Oracle. If Oracle would increase maintenance or any other fees for running Oracle outside of Oracle approved infrastructure (see “Oracle license audit”), you can quickly see that running Oracle on AWS might come with some challenges to consider.
So if Salesforce’s Oracle workloads would be migrated to AWS Aurora, then Salesforce would gain an advantage in controlling the cost of the database. If this is done successfully, Salesforce would be able to reduce own cost while price same and thus increasing margin and attractiveness for investors. The only problem is the migration of AppExchange. It’s possible to imagine the migration of core Oracle-based services like Sales Cloud and Service Cloud. But the migration of Force Platform, which has many millions of apps build on top of it and is bundled to commercial offers via AppExchange, might not be so smooth.
4. Create a hybrid deployment use AWS RDS for Oracle for some workloads and move to AWS Aurora, DynamoDB or Postgres
I believe that the Salesforce engineering team will opt for this. The reason is straightforward. Unlike the big bang approach (e.g. let’s take everything and migrate to Aurora), in this scenario, moving off Oracle is phased. Salesforce would likely split migration as follows: 1) workloads that require a relational database, 2) workloads that can use NoSQL database, 3) workloads that are currently in a relational database but doesn’t need to database.
Then they would differentiate further: 1) workloads that require a relational database but are using capabilities that can be recreated in Aurora, 2) workloads that are bind to other Oracle technologies and that are not easy to replicate in Aurora.
After that hybrid deployment would be stood up; 1) Oracle workloads are first migrated to AWS RDS for Oracle, 2) After that some Oracle workloads are migrated to Aurora some stay on Oracle, 3) Workloads migrated to Aurora are tested and if there is no technical issue, it will start to run in parallel, means APIs will be slowly transition from Oracle RDS to Aurora, 4) If transition to Aurora is successful, RDS Oracle instances will be stopped and kept as backup, 5) Meanwhile workloads that could be converted to NoSQL will be switched to DynamoDB and run in parallel with those in RDS, 6) When conversation is successful DynamoDB will be replacing in selected API connectivity to previous RDS, 7) When transition from RDS to Dynamo is completed then RDS is stopped and kept as backup, 8) Some feature programmed in Java and PL SQL as workarounds on older versions of Oracle database could be developed externally for example using AWS Lambda functions, 9) Same as with RDS new Lambda functions replacing previous code for Oracle will be tested and run in parallel with Oracle, 10) After its clear Lambda functions can replace custom development done in Java for Oracle, then Lambda will start to replace Oracle in APIs, ultimately replacing it.
Yes, this will be a long and complicated journey, but many other AWS customers did it, and so it’s technically possible. Once again, however, the main problem is the logistics around AppExchange as the transition from Oracle to AWS can’t impact a running application. Imagine the scenario when Vlocity, Veeva, Apttus, FinancialForce, nCino, ServiceMax and other ISV applications would have any piece of code pointing to Oracle and thus leading to stop instances.
5. Deal with Thomas Kurian
This option is improbable, but it’s not impossible. Thomas Kurian came from Oracle, and his primary goal is to replace Oracle. To do this, he will have to beat Oracle at its own game – database. Google currently doesn’t have a database that could be equal to Oracle or AWS Aurora. So it’s likely Kurian will develop a brand new database with his strategic hires from Oracle and will challenge Larry Ellison in the market.
Having Salesforce as a reference would be not just a big boost for Google capabilities, but also a highly strategic message. Kurian would steal the most critical SaaS application in the world running on Oracle. And of course, Google sales are full of ex-Oracle people that would use this to visit every single strategic Oracle client and offer them alternative to both AWS Aurora and Oracle.
Thomas Kurian is brilliant, and he loves winning. Challenging Larry in his own game could be too tempting for Thomas not to think about. For Google, there might also be another thing in play: many top Salesforce dealmakers were hired by Google, and so there is a direct link between both companies. Besides, Google can buy Salesforce in case they would feel Amazon would consider it. And, let’s not forget Keith Block can join any of players mention above Oracle (to make a deal with Salesforce), AWS (to make a deal with Salesforce to fight Oracle) or Google (to help Thomas Kurian making a deal with Salesforce to challenge AWS and Oracle).
One more thing…
Some say Keith Block could join Microsoft and, thus, would be the one controlling Salesforce on infrastructure level could be Azure. Impossible? Do you remember Marketing Cloud already runs on Azure?
Back to you, Marc and Keith.
Jiri’s first Cloud Wars article: To Combat COVID-19, a Retail App Becomes a ‘Smart Quarantine’ Solution
Jiri’s second Cloud wars article: The 10 Most-Valuable Industries in the Wake of COVID-19
Subscribe to the Cloud Wars Newsletter for in-depth analysis of the major cloud vendors from the perspective of business customers. It’s free, it’s exclusive and it’s great!