This blog is a high-level extract of a talk “Serverless iPaaS in Azure” by Dan Toomey at Mexia. It explored exactly how Microsoft Azure iPaaS allows customers to build their own powerful, event-driven integration solutions.
The serverless platform offerings in Microsoft Azure such as Logic Apps, Azure Functions, Service Bus, API Management, and Event Grid constitute iPaaS. We’ll go into more detail in this blog.
What is iPaaS?
Serverless iPaas in Microsoft Azure is a way for enterprises to outsource their integrations for on-site IT systems and cloud applications.
Some dismiss it as a marketing buzzword, but iPaaS (which stands for Integration Platform as a Service) enables customers to develop, deploy and manage integrations between disparate applications, in different locations, with multiple vendors.
While iPaaS has traditionally been restricted to the cloud-based software suite, a new hybrid iPaaS has been developed that can connect cloud applications with on-premises software – one example of this is Serverless iPaaS in Microsoft Azure.
In the simplest terms, Microsoft Azure provides a platform for building and deploying integrations within the cloud and integrating your cloud applications with your on-premise enterprise systems.
Challenges faced by Enterprises to adapt iPaaS
A large-scale operation like the enterprise requires so much planning, investment and forward-thinking, that it’s been difficult to grow in an agile way.
Capacity-planning took place years in advance. Companies consequently lose out on vital software solutions like SaaS for their operations, which was also due to security concerns.
This extensive forward-planning and investment need was traditionally a major sticking point for enterprises when they need to scale up or down effectively. It restricted their ability to remain competitive and respond to market demand.
The cost of maintaining and hosting data centers and servers was also hugely prohibitive. This emphasis on hardware is resource-intensive and difficult to scale. Servers going down was a constant problem, resulting in the delay of important projects and placing a cap on growth potential.
That’s not to mention the need to recruit and develop staff with a specialist skill set to maintain these systems. If that skillset was lacking in-house, security policy also meant it was extremely difficult to onboard external staff. It was difficult to get developers up and running with your API due to all the red tape.
With the rise of models like Software as a Service (SaaS) and the Internet of Things (mobile connected devices) becoming the norm for business, enterprises were falling behind with integration.
Evolution of the cloud and iPaaS
The iPaaS method of delivering integrations is now helping enterprises and other large-scale companies to operate with far more agility, and to adopt more flexible development practices.
Using the iPaaS model, enterprises do not need to purchase, install or maintain any hardware or middleware in order to grow. They can simply pay on demand for the resources they need, scaling up or down as necessary.
Now, the enterprise can outsource hardware like servers and middleware like Service Bus to an iPaaS solution from Microsoft Azure.
Instead of hosting your own data center, you can simply pay Microsoft for cloud services – or use an alternative cloud solution like Amazon AWS or Google Cloud.
In case you have multiple applications in different environments around the globe (which you undoubtedly will), iPaaS allows you to connect them all together more easily.
What are the benefits of Microsoft Azure iPaaS?
Microsoft Azure iPaaS changes the integration game for the enterprise. With the ability to scale on demand, companies can obtain the computing resources they need at the appropriate time. This relieves some of the pressure for capacity planning concerns.
Azure takes care of the servers, software, and integration for you. All you have to do is deploy your application.
Serverless in Microsoft Azure means you can write less code and plan for unlimited scale. Microsoft hosts all the servers in the data centers around the world for maximum speed and uptime.
Logic Apps in Azure are the way you can integrate with many applications in the Microsoft ecosystem, from applications in Azure to the Microsoft suite outside of Azure, and external third-party applications (think Slack and DropBox). Integrate with a wide range of applications with a few clicks of a button.
Far from being a black box, you also have lots of flexibility to customize your integrations with Azure Functions. You can write your own code for efficiency and tag it onto your Logic Apps so you’re not restricted by a prescribed way of doing things.
Azure’s Event Grid means you can monitor events in your systems and that can notify under certain predefined circumstances. You can also use the graphical user interface to program scripts to execute automated responses after being triggered, freeing your staff to concentrate more important things.
Security is a huge concern for the enterprise and iPaaS is very secure. The way that Azure has integrated means that the system operates within a secure environment and you can control your network, while simultaneously allowing employees to use SaaS applications and IoT. It’s compliant with the rules of the GDPR and other policies like HIPAA etc
You can use Azure API Management to publish APIs to external and internal customers that are ready to go. Minimise your time to launch by creating consistent and modern API gateways for your current back-end services hosted in any location.
Rest assured your APIs are secure and protected from abuse and overuse, with insights available for usage and health. Automate and scale developer onboarding to help get your API program up and running fast.
What is Serverless?
In enterprise software development, usually, you devote a huge portion of resources to handle questions around scaling, hosting, and monitoring servers.
Far from implying there are no servers, Serverless in Azure means that your developers don’t have to worry about servers. The server infrastructure is managed for you in the cloud, so you as the customer can remain serverless.
Serverless applications are billed as a pay-as-you-go model based on your consumption. If you don’t use your application, you aren’t charged. With servers taken care of, developers are free to focus on the primary business problem, which is the logic of the solution.
You are also charged every time when you execute a script. This informs how you should write your code to make it more efficient, resulting in less code. For example, every time you execute a loop, you pay for it. Although it’s a fraction of a cent, this soon adds up.
Integration is more efficient and cost-effective this way because rather than every company has to set up its own data centers, Microsoft takes care of all this for you. You focus on developing your application and deploy the code to Azure using serverless iPaaS.
As you need to scale, the platform allocates more resources automatically. This can speed up development time and give you an edge against your competitors.
Deploying your applications and not worrying about where they are deployed is good. Needs don’t determine the output – you’re responding to market demand instead of software and hardware requirements.
Azure Logic Apps
Azure Logic Apps are the key component of Microsoft Azure Serverless. The advantage of deploying on Azure is that you can integrate with the many applications in the Azure Logic Apps ecosystem, including ones from major third-party providers.
There are at least two hundred “connectors”, including third-party SaaS applications, with more being added all the time. You do not have to worry about building your own APIs because everything is integrated for you within the Logic Apps.
You can also integrate with applications in the Microsoft Azure suite like Service Bus, as well as Microsoft products outside of Azure like Office 365 and Skype.
Using Logic App Flow Controls, you can program your integrations as you see fit without having to code.
Example integration in Microsoft suite
If you’re working with Microsoft BizTalk Server, you can take advantage of BizTalk Server connector in Logic Apps. Similarly, BizTalk Server can work the other way by connecting to and communicating with Logic Apps using the Microsoft BizTalk Server Adapter.
Example of programming Logic Apps
Imagine the scenario of someone checking the size of a Virtual Machine set up in their system. You can write a script for this with the Logic Apps GUI.
Set up logic to tell you when one of your developers increases the size of his or her Virtual Machine. So, specify a trigger limit, and whether the VM exceeds your policy for maximum size. After setting up your Logic App, you’ll receive an email to alert you whenever this happens. You can take action accordingly.
Azure Functions is how you would host your own code on Azure. Functions allow you to run small pieces of code, or “functions,” in the cloud in an efficient manner. Write only the code you need to solve a particular problem, and don’t worry about creating a whole application or the infrastructure to run it.
Write your application code in your chosen language (supported by Azure) using Visual Studio, then deploy it in Serverless to work instantly. You may also want to write your own code to modify a Logic App and make it more efficient for your system.
You can use your preferred languages such as C# or node.js. Here’s a table demonstrating supported languages, and comparing Logic Apps with Functions:
Use Functions to process data, integrate your systems, work effectively with the IoT, and build simple APIs and microservices. Example tasks for Functions include image or order processing, file maintenance, or any repetitive, schedule-based task.
Functions integrate with Azure Event Grid and Azure Service Bus, which we’ll go into next.
Azure Service Bus & Azure Event Grid
Azure Service Bus is good for tasks like order processing or financial transactions because it treats the messages securely. However, sometimes Service Bus can be slow due to the way it is set up.
To combat this latency, Service Bus has recently been rolled out with a new capability to integrate to Azure Event Grid. Service Bus queues or subscriptions with a low volume of messages now no longer need a receiver that polls for messages continuously.
Instead, Service Bus can send events to Event Grid when it has queued messages, or a subscription and no receivers are present. With this feature, you can use Service Bus in reactive programming models to handle fluctuations in demand.
This makes your integrations very scalable and you won’t require so many resources to scan for messages.
Event Grid sends out notifications that an event has happened with no data included in that notification (apart from the fact it has happened). It contrasts with Service Bus because the message size limit is much smaller, due to the absence of data about the event. It’s a way of sending messages to multiple subscribers which will wait to pick up messages.
Integrating Service Bus and Event Grid is a powerful and efficient way of connecting your different applications using Azure.
Azure API Management
Azure API Management is accessed through the Azure Portal, a centralized interface where you can create and maintain APIs in a secure and efficient way.
Use API Management to:
- Separate out your code for partners from internal systems that need to be kept private.
- Create a fast onboarding process for external and internal developers
- Good authentication for developers working with your APIs
- Put policies in place to restrict access on multiple levels, and comes with many predefined policies out-of-the-box
- Inbuilt protection from attacks with throttling
With this platform, you can connect securely to back-end services which are built and running on any technology stack. Your API doesn’t to be hosted in Azure to benefit from this feature.
API Management is available worldwide and you can use it to scale up and down on demand. You’ll have reliable service delivery regardless of traffic growth or spike. There are also lots of different ways to authenticate securely for your ease of access.
Create your serverless apps using Microsoft Visual Studio with Visual Studio Team Services (VSTS in the cloud) and Team Foundation Services (TFS on-premises). Rapidly develop and deploy cloud applications with Continuous Integration and Continuous Delivery in your favorite IDE.
VSTS and TFS are Microsoft’s DevOps solutions for serverless in Azure. If your project requires developing an app in .NET, Java, Node, PHP, or Python app, targeting app services, virtual machines, or containers in Azure, it’s supported with iPaaS. You can set up your own highly customizable CI/CD pipeline to deliver increased customer value, and work across cloud and on-premise for hybrid solutions.
Customers can use the Logic App connector for Microsoft Visual Studio to prepare for CI/CD and automate more of your workflow. You can design your own logic apps in Visual Studio. Hosting your own custom scripts in Azure Functions is another way to design your own workflows.
Every commits and pull request you make to your Git repository can execute using VSTS and TFS. Therefore, this approach helps with merge conflicts by improving development team collaboration.
Azure Monitoring and Management
Azure has multiple services and tools that work together to provide complete Azure Serverless management and monitoring for not only your applications running in Azure but also in other clouds and on-premises.
All the capabilities illustrated below can be utilized for better Azure Serverless Monitoring.
Management is the way that you approach tasks and processes required to maintain your business applications and the resources that support them.
These services work together to collect, analyze, and act on data received from your cloud applications and the associated Azure resources. They also work to monitor critical on-premises resources in order to provide a hybrid monitoring environment.
Azure alerts notify you immediately of critical conditions in your system that require your attention. Azure dashboard pulls data together from different sources into a handy single pane that you can share with colleagues.
Comparison with AWS and Google services
The major tech companies are currently competing with each other to provide the best iPaaS services.
These offerings are:
- Microsoft Azure
- Amazon Web Services (AWS)
- Google Cloud
But how does Azure shape up compared to similar services like Google Cloud and Amazon AWS?
Integration is all about working with shared standards and obtaining buy-in from different parties. A company like Microsoft, Amazon (AWS) or Google is in a good position to coordinate with many different companies and provide comprehensive services. Third parties are actively showing interest in working with companies like these to become part of their ecosystem.
Microsoft is competitive with Google and Amazon to deliver hybrid cloud and on-premise solutions using Serverless in iPaaS. Azure Functions means you are always in control of writing code when you need to, while Logic Apps empowers semi-programmers to write more powerful scripts.
With Azure, you can work within the Microsoft ecosystem – an imperative for companies that are already invested heavily in Microsoft and keen on their various Office365 tools (like Excel spreadsheets). You can also integrate effectively with many popular third-party SaaS apps and more through the Logic Apps. So you do not restrict to Microsoft’s offering.
You can extend your existing system capabilities with Azure in a way that wouldn’t be possible with Google or Amazon. Although each will be more effective in different scenarios.
Final remarks on Serverless iPaaS
iPaaS means outsourcing some of your integrations infrastructure to the cloud so that each of your applications can communicate quickly, securely and efficiently – without you investing in more hardware and middleware.
With Serverless in Microsoft Azure, you don’t need to employ any more staff and or develop any skills to manage all of this technology right now. It’s all done for you and your developers can focus on mission-critical projects and your business applications. Certainly, Azure is reliably efficient and secure! So you don’t have to worry about capacity or compliance in the race to market.
Azure enables you to choose to have a mixture of on-premise and cloud-based applications which integrates into one system. Customise iPaaS however you want, make your operations work for you, and monitor everything from the same dashboard.
Enterprises can adapt as flexible as young start-ups with the help of iPaaS.
You can watch the video here.