Saturday, November 20, 2021

Azure Paas and serverless services you don't want to miss as an ISV

We collaborate with Independent Software Vendors on a daily basis to improve their solutions with the help of Microsoft Azure Platform. During this journey we come across a wide range of Azure services that will add value to the customer solution. Azure is quite extensive but there are some services we come across often, have a proven track-record and add great value to the customer solution. 

So why Platform as a Service?
Platform as a Service within Azure comes with a wide range of benefits. For example: Microsoft provides well documented and extensive SDKs and lifecycle management tooling to support these services. Additionally, you will only manage the platform and security, monitoring and support are available by default and features such as automated scaling and back-up are available out-of-the-box.

From these services we managed to compile a top 5 list with must-have services that will greatly enhance your solution in terms of availability, scalability and costs.


Web Apps
Azure Web Apps are a part of the App Services portfolio that Azure provides. App services provide you with a platform to deploy Web Applications, API’s and Bots. With most of our ISV partners we started with modernizing the traditional platform such as IaaS configurations with IIS or Apache and deploy them as Azure Web Apps. With the right configuration and minor adjustments, transitioning to a Azure Web App requires minimal effort  and in most the benefits are amazing. Automated updates, no more operating system management, built-in security features, scalability and a great SLA on just a single instance of the Azure Web App.

Azure Web Apps can run almost anything from .Net to NodeJS applications and the available extensions allow for so much more.

As a sidenote we do advise the implementation of Application Insights when deploying to Web Apps. We experienced that Web Apps work best when programming language best practices are used. With Application Insights, bottlenecks can be identified during the testing fase (prior to production deployment) and combined with the detailed logging from the Web App management console (Kudu) we can exactly pinpoint which pieces of code require adjustment to further optimize the solution to run on Azure Web Apps.


Logic Apps
Logic Apps can be used to add complex workflows to automate your business logic. However, we also experienced that Logic Apps are great for the “low hanging fruit”. The stuff you want to automate but isn’t just yet can often be automated relatively easy with the use of Logic Apps as Microsoft has provided numerous default connectors for widely available SaaS solutions. If there is no default connector available for your solution, there is room for customization (in combination with Azure Functions if you will). With Logic Apps you can literally automate your workflow by clicking the right steps together and connect to the required resources. 


Azure Functions
Azure Functions are based on App Service and have a single purpose: Execute on demand. With off the shelf HTTP Triggers and endpoints (REST API), all you need to focus on is the development of the processing you want to take place. For example: automatically convert Word documents to PDF files as soon as files are stored by the system or query the cognitive services API to automatically run text through the sentiment recognition. You can pretty much build anything you want on Azure Functions as long as you keep in mind that these are short lived. The function will eventually shutdown until it is being triggered again. You will only be billed based on consumption. If there is nothing to be processed; no costs.

Even though Azure Functions are generally categorized as being a part of the Serverless proposition (just as Logic Apps). They are very similar to Web Apps as they run on the same Platform (Azure App Services). The key difference here is that Azure Functions are solely focused on performing or executing a specific set of code and you can truly focus on development, whereas Web Apps still require management of the actual platform (which you probably want to adjust the settings so they fit your solution perfectly).

Azure SQL 
Azure SQL is the go-to database solution for relational databases. As most ISVs we’ve come across have a history of using relational databases, Azure SQL is a great solution that provides an out of the box database with numerous security features and options in terms of scalability. Especially when you have multiple customers who require multiple databases the Elastic Pools feature can greatly lower the financial impact.

Azure SQL has an extremely high availability by default but if required, geo-replication is also available to scale across multiple regions. Migrating to Azure SQL often requires minimal changes on the application side as only the connection string will change.

To further improve your database performance, Azure SQL comes with built-in intelligence that taps into the power of machine learning to analyse your database and provide you with valuable recommendations. Microsoft provides multiple strategies to migrate your database to Azure. You can choose to use the Database Migration Services, import the database yourself or use one of the many other options to copy your data to Azure SQL and get started.


Azure Service Bus
Add reliability to your message queueing, data stream and decouple your application with Azure Service Bus. In short: Azure Service Bus is a multi-tenant cloud message services provided by Microsoft and is great for asynchronous operations. Service Bus supports multiple protocols (AMQP, SBMP and HTTP) High availability and geographic scaling are enabled with literally a press of the button. The use of Azure Service Bus can be as simple as message queueing, but more complex topologies are definitely supported with the use of Topics and Subscriptions, which allow publish/subscribe scenario. Topics can have multiple, independent subscriptions. A subscriber to a topic can receive a copy of each message sent to that topic.

Service Bus also comes with a set of advanced features such as auto-forwarding, dead-lettering, auto-delete and duplicate detection. Features which no longer require a complex implementation of a traditional Enterprise Service Bus (ESB), because Azure provided the implementation for you. All you need to do is use it.

No comments:

Post a Comment

Get max value for identity column without a table scan

  You can use   IDENT_CURRENT   to look up the last identity value to be inserted, e.g. IDENT_CURRENT( 'MyTable' ) However, be caut...