Designing an effective messaging architecture

Azure offers various features and capabilities in order to design and implement messaging solutions. In order to create successful applications and solution architectures on the Azure platform, an effective messaging architecture is key. This will result in robust solutions and applications that can fully benefit from the scaling capabilities that Azure has to offer. It will also result in high performance for your applications and decoupled applications.

Throughout this book, multiple Azure resources are described and you should know by now what each resource is capable of. In the following section, some of them will be covered again from a messaging and integration perspective. This will give an overview and help you make the right decision when designing your messaging and IoT solutions on the Azure platform:

  • Azure Functions versus Logic Apps: You can think of logic apps as workflows that are triggered by an event, and Azure Functions as code that is triggered by an event. So, when your solution requires custom code or custom transformations, choose Azure Functions. Use Logic Apps when your solution needs to connect to other SaaS solutions, such as Office 365, Azure Storage, and SalesForce. It offers a huge amount of connectors to connect using HTTPS out of the box. Also, when a graphical editor is required, choose Logic Apps.
  • Azure IoT Hub versus Azure Event Hubs: Azure IoT Hub offers two-way communication, from devices to Azure and from Azure to devices. It can process millions of events per second and supports multiple device protocols, such as MQTT, MQTT over WebSockets, AMQP, AMQP over WebSockets, HTTPS, and file upload. So, if your solution requires massive event processing and bi-directional communication, choose Azure IoT Hub. Event Hubs only allows one-way communication from devices to Azure. So, when your solution requires only data ingest, Event Hubs can be a more appropriate and cost-effective solution.
  • Azure Functions versus Web Jobs: Like Azure Functions, Web Jobs with the WebJobs SDK is a code-first integration service. The Web Jobs feature of the app service can be used to run a script or code in the context of an App Service web app. The WebJobs SDK simplifies the code you write to respond to events in Azure services. Azure Functions is built on the WebJobs SDK, so it shares many of the same event triggers and connections to other Azure services. Web Jobs supports C#, Java, JavaScript, Bash, .cmd, .bat, PowerShell, PHP, TypeScript, Python, and more (a WebJob can run any program or script that can run in the App Service sandbox). Functions supports C#, F#, JavaScript, Java, and Python. Also, if you need a serverless app model with automatic scaling, want to develop and test your code in the browser, make use of the pay-per-use pricing, and require integration with Logic Apps, you should choose Functions over Web Jobs.

We have now covered how to design an effective messaging architecture. In the next section, we are going to look at implementing autoscaling rules and patterns.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.16.48.181