Azure Artificial Intelligence Services
Design for IoT
Design Messaging Solution Architectures
Design Media Service Solutions
The course is part of these learning paths
This course is focused on creating practical solutions using Azure technologies in areas such as AI, messaging, the Internet of Things, and video media. This will require familiarity with dozens of Azure solutions.
This course will take you through all of the relevant technologies and ensure you know which ones to pick to solve specific problems. This course is for developers, engineering managers, and cloud architects looking to get a better understanding of Azure services.
Whether your app deals with artificial intelligence, managing IoT devices, video media, or push notifications for smartphones, Azure has an answer for every use case. This course will help you get the most out of your Azure account by preparing you to make use of many different solutions.
Design solutions using Azure AI technologies
Design solutions for IoT applications using Azure technologies
Create a scalable messaging infrastructure using Azure messaging technologies
- Design media solutions using Azure media technologies and file encoding
People who want to become Azure cloud architects
General knowledge of IT architecture
Messages are one of the fundamental building blocks of software systems. So what exactly is a ‘message’? At a basic level, messages represent system state. Messages have a sender and a receiver. A typical message will be formatted with a body, representing its content, and additional metadata for things like origin, destination, authentication, authorization, timestamp, and encryption. Messages can come in the form of sensor data from an IoT device. They can come from user input on a website or game. They can be generated by an analytics pipeline outputting the results of some workflow to a downstream system. The key thing to understand is that messages represent real world information. For that reason we have to treat them carefully. We have to care about order and we can’t afford to drop them.
This is why software teams are so wary of making changes to servers that deal with ingesting or storing messages. If you have ever worked for a startup, you may have had this experience. Your deployment system, say Amazon Cloud Formation or something like it, is really great for stateless services that can be torn down and relaunched without losing data. But once something stateful needs an upgrade, something like a database, or Redis, or Kafka, things get sticky.
To reduce the pain, good messaging systems should have a few features. They should be resilient. They should be scalable. They should be capable of carefully tracking message order. They should have good security. And finally, they should be easy to integrate with various clients - both consumers and producers of messages. Now, just for clarification, by “resilient,” I mean that you need a messaging system that can survive minor failures. You want something that can be deployed on multiple servers and possibly across multiple regions. By “scalable” I mean that you need something that can process messages quickly and can be easily expanded by adding more hardware if necessary.
Apache Kafka meets all of these requirements. An internally developed proprietary system in theory could do. Now, happily, you can also save yourself some time by using Azure’s messaging solutions and get all of the above features right with your Azure account.
So now that we have some context around messaging and messaging systems, I want to briefly go over push notifications. Push notifications are messages that pop up on mobile devices, usually in the upper area. They look like SMS text messages but are transmitted via the internet only to users of the relevant app. So when you send a message to someone via Google Hangout or Facebook Messenger, the little notification that person receives is a push notification.
Push notifications are an integral part of any cloud based software application. They are one of the key ways we can alert users to important changes and solicit critical user feedback. Being able to create a stable, performant push notification system is an extremely useful skill if you are on a development team. And that, my friends, is precisely what we’re going to do in the coming lessons.
So, now that we’re all up to speed on messaging and push notifications, it’s time to take a deep dive into the world of Azure messaging solutions. Good luck and see you there.
About the Author
Jonathan Bethune is a senior technical consultant working with several companies including TopTal, BCG, and Instaclustr. He is an experienced devops specialist, data engineer, and software developer. Jonathan has spent years mastering the art of system automation with a variety of different cloud providers and tools. Before he became an engineer, Jonathan was a musician and teacher in New York City. Jonathan is based in Tokyo where he continues to work in technology and write for various publications in his free time.