Azure SQL Database serverless performance vs PaaS

Mechanics Team
10 min readFeb 8, 2021

--

Icertis hands-on use case

Watch how to implement a serverless architecture in Azure from Azure SQL Database serverless to Azure container instances. Join solution provider Icertis and watch how they use serverless technology from Azure SQL Database serverless to give their customers a customizable, turnkey and scalable contract intelligence platform.

Serverless architecture with Azure SQL Database serverless

The Icertis Contract Intelligence (or ICI platform) is used by the world’s most iconic brands and turns contracts from static documents into strategic advantage by structuring and connecting the critical contract information that defines how an organization runs. The ICI platform is hosted entirely in Azure, but now Icertis has gone to the next step of optimization by incorporating serverless technologies. Monish Darda, Chief Technology Officer for Icertis, joins host Jeremy Chapman to share the architecture of the Icertis platform using Azure SQL Database serverless.

  • Ideal for databases with intermittent usage patterns or extended periods of inactivity.
  • Just-in-time compute only runs as queries come in.
  • Set min-max ranges and define when you want the service to pause.
  • Billing is per second vs per hour using provision compute, reducing costs.

Azure Resource Manager template options:

  • Fully automated and you can integrate it with your current systems of record.
  • Start with single server architecture, then move to enterprise architecture as needed.
  • Add optional services, AI integration, or other SaaS apps.

QUICK LINKS:

01:38 — Architecture of the platform

03:38 — Why serverless?

04:06 — Transition from PaaS into serverless

06:02 — Query performance demonstrations

08:13 — Billing with serverless

08:34 — Azure Resource Manager template options

10:10 — What’s next for Icertis?

11:22 — Wrap up

Link References:

To learn more about Icertis Contract Intelligence platform, check out https://www.Icertis.com

Try the platform for yourself from the Azure marketplace at https://aka.ms/icertisAM

Unfamiliar with Microsoft Mechanics?

We are Microsoft’s official video series for IT. You can watch and share valuable content and demos of current and upcoming tech from the people who build it at Microsoft.

Video Transcript:

- Coming up, we’re joined by solution provider Icertis to learn how they’re using serverless technology from Azure SQL Database serverless to Azure Container Instances to give their customers a customizable, turnkey and scalable contract intelligence platform. So today I’m joined by Icertis CTO Monish Darda. Welcome to Microsoft Mechanics.

- Thanks for having me on the show, Jeremy.

- And thanks so much for joining us today. So if you’re new to Icertis, their contract intelligence platform is used by the world’s most iconic brands and also leading innovators to manage over 7.5 million contracts spanning over a trillion dollars. The Icertis Contract Intelligence, or ICI platform, turns contracts from static documents into strategic advantage by structuring and connecting the critical contract information that defines how an organization runs. Now, the ICI platform goes beyond standard templates and clause libraries and workflow automation and approvals, and it delivers breakthrough contract life-cycle management technology that links entitlements and obligations in any kind of contract to critical business processes. This ensures that all agreements are in compliance, commitments are upheld throughout the contract life cycle, and the intent of every contract is fully realized. So Monish, the ICI platform is hosted entirely in Azure, but now Icertis has gone to the next step of optimization by incorporating serverless technologies.

- That’s right. You could say we were born in Azure 10 years ago. We set out for our platform to be extremely flexible and ready for cloud scale to really suit any organization, from small businesses to the largest corporations in the world, including Microsoft.

- So how have you gone about architecting your platform?

- As with any enterprise platform, our solution has been a mix of API and web front ends, networking, IaaS for compute, containers for our microservices, PaaS services for data and caching, as well as storage and messaging. With critical compliance requirements and a strong security posture, each of our customers gets their own unique instance of our platform services. Our platform has foundational services for contract management, and we also offer modular solutions with a number of business applications that our customers can choose from based on their business needs. This includes AI-infused services at the core, as well as optional AI-driven applications. And we integrate with a growing collection of SaaS-based business apps and services. Due to the extremely sensitive nature of contract data, each customer instance is isolated from others within separate Azure VNETS that can connect to hybrid infrastructure, which can sit in another cloud, or it can even sit on-premise.

- And that VNET means that contract intelligence infrastructure is going to feel on-premises then to any of the connected systems. and your solutions have evolved from PaaS-based data services to incorporate more serverless technologies. But can you explain more what’s behind that?

- Yeah, so in the not too distant past, we did provision customer environments with a fixed tier of Azure SQL Database. Contract operations, as you can imagine, can be highly seasonal depending on a number of factors like fiscal calendars, sales cycles, industry types. Also the average user will use the platform for just a few hours a day, and it is very intermittent usage usually. So we did typically start with Azure SQL Database at the P1 level, and you can scale it up and down with automation. But those scale operations incur some downtime, and they’re still running, even if you aren’t using them, so it doesn’t make sense to keep that compute running. And even if you could scale things all the way down to the lowest tier, we would still end up running compute.

- Right, so you had a really strong rationale then for taking a serverless approach?

- We did. We shifted our database deployment approach to serverless for just-in-time compute so that it only runs as queries come in with Azure SQL Database serverless. This eliminates idle compute with a very nifty query-on-demand database backend.

- Right, that makes a lot of sense there because serverless is ideal for databases with more intermittent usage patterns or maybe extended periods where there’s not any activity. But how easy was this transition then from PaaS into serverless?

- It wasn’t as difficult in this case, primarily because this is just a compute tier. So the primary conditions for us are the virtual course, memory and IO needed for these intermittent operations. In fact, thinking about this felt harder than actually doing it. From an architectural perspective, you could see that we had leveraging Azure Blob storage and Azure Cache for Redis, that doesn’t change in both the PaaS and now the new serverless configuration. And setting up the database in Azure is pretty much the same, whether it’s provisioned with PaaS or provisioned with serverless. The main difference is that you set min-max ranges and define when you want the service to pause with serverless. So here, for example, you can see the controls for provision DTUs and data max size. And if I click on serverless here, you’ll see minimum and maximum parameters for the number of virtual calls you need, which could vary from as low as 0.5 calls to as many as 40. We start out with one minimum usually, and eight maximum to balance performance and cost for typical load. The auto-pause delay for as low as one hour to seven days, which we normally keep it at one hour, given the load characteristics we have, and then the back single data size up to one TB. We typically use a minimum of 50 gig. For an existing customer that’s using provision compute, we built an automated way to check the DTU database size and performance tiers from P1 to P11, over a period of time. And it’ll move the provision database DTU model to serverless, matching what’s needed for compute. So if you’re new to the vCore model, to give you an idea, 125 DTUs with premium is about one virtual core. The networking configuration is the same regardless of database type, so there was nothing to change there. And of course everything was totally tested and validated and the move has been just a success on all fronts.

- Okay, so I know that a lot of people watching are probably asking now is the query performance, is it better or worse than it would have been on average using serverless? Are there any noticeable delays, like maybe cold start versus provision compute?

- This is a common question, but to be honest, the average query times actually went down from what we observed before, between 10 to 15%, with cost going down by 50 to 75%. By providing more vCores when they are actually needed and incurring zero costs when they’re not, this is a good balance between performance and cost and it leads to happier customers when certain load spikes happen. In fact, let me show you a report that will trigger an operation on a serverless instance. So most of our reports are run in advance, but if I run this one called CLM Activity Report Direct, it’s directly pulling from the live data using our serverless compute. So as you can see, it takes a few seconds to load. Now that it’s up, I’ll change the frequency to Day Wise, which modifies our query, and then choose Month Wise so it brings in more data. That’s a small demonstration to show that the user experience isn’t compromised. There was a small delay to load at first, but it’s still faster than it would have been running P1 provision compute.

- Nice, but can we see an example where this might be a little bit more pronounced?

- Yeah, sure thing. I’ll actually show you my user stress test with a stored procedure. On the left, you’ll see a fixed tier SQL P1 instance, and on the right is the serverless instance. Now pay attention to the Client Seconds/Iteration field. I’ll give the fixed tier instance a headstart and hit go. Then let’s start the serverless instance on the right. And I let that run 10 iterations, and we have sped this up to save time of course. You’ll see that the average response time, our Client Seconds/Iteration field for this query on SQL Azure Database P1 is around 34 seconds whereas if you look on serverless database, the average time is around six seconds. So user impact was positive in terms of performance, but even more importantly, there were a lot of other benefits. We didn’t have to spend as much time on capacity planning and balancing cost per customer.

- Right, and the scaling here, as we saw earlier with the different ranges, it’s automated within those ranges that we set before.

- And another big difference is that billing with serverless is per second versus per hour using provision compute. And that itself ends up reducing costs, especially given the usage patterns we typically see. In fact, the savings are often that around 70% sometimes versus provision compute.

- Right, so there’s a lot of upside here. And you mentioned before that your platform is provisioned via Azure Resource Manager templates. So what are the options then here?

- Yes, it’s fully automated and you can integrate it with your current systems of record. We use Azure Resource Manager templates, they’re great. They provide item potency, they’re declarative and they are repeatable for consistency. Everything is fully orchestrated and integrated with our DevOps process. We have two standard configurations. The first for smaller customers is a single server with additional PaaS services. We provision the resource group and virtual network with the virtual machine that runs those services, the UI, the API, and the search, the Redis Cache, the SQL Database serverless, the Blob storage and Service Bus. This takes about 90 minutes to deploy from start to finish. The second is an enterprise architecture, larger customers. The main difference is that we build for a much larger scale by expanding number of VMs from one VM to a dedicated virtual machine skillset for each workload. We run search on the cluster of VMs and we add load balancing to the app and within our search service. The enterprise architecture takes around two to three hours to deploy, and you can start with a single server architecture and then you can move to the enterprise architecture once you need it.

- Right, and then from there, you can add things like, optional services, AI integration or other SaaS apps, right?

- That’s right. You can add business apps and experiences to expose our functionality in Microsoft 365 with Microsoft Teams and Word, and with other systems like Dynamics 365 and Salesforce. We also have data connectors available to integrate with apps like Adobe Sign and many more.

- Okay, this is really a great level of flexibility, but what’s next then on the horizon for Icertis?

- We started with Azure SQL Database serverless, but we’re expanding our serverless investments further using Azure Container Instances and functions to deliver more AI and machine learning-based services. One example is the OCR, the optical character recognition service we have for digitizing tens of thousands of documents with a printed or file-based documents. So if there are 10,000 documents with 100 pages each for example, you’re talking about a process that would take months, even with tabulization that would take days. And with serverless, we can split the document down into individual pages for bundle processing. With the combination of Azure Functions for durable activities and orchestration, along with the farm of 1,000 Azure Container Instances, we can get that same processing time down to a few hours. And since it’s all compute charged by the second, the cost is the same without the associated provisioning, automation or even monitoring hassles. That’s the true promise of the cloud realized for serverless. And we’re looking for more and more options to bring serverless technology to the Icertis contract intelligence platform.

- Thanks Monish for sharing how you’re going about implementing a serverless architecture in Azure for the Icertis contract intelligence platform. But, so for anyone who’s watching and wants to learn more, what do you recommend?

- Well, checkout icertis.com to learn more about Icertis contract intelligence platform. You can request a demonstration or contact our team, and you can try our platform for yourself from the Azure marketplace at aka.ms/icertisAM.

- Thanks again Monish, and also thank you for watching us on Microsoft Mechanics. And be sure to subscribe to our channel if you haven’t already, and we’ll see you soon.

--

--