Microsoft Azure platform Demystified - Part One & Two

Posted by: Kunal Chandratre , on 8/2/2016, in Category Microsoft Azure
Views: 62061
Abstract: The Microsoft Azure Platform is huge. This article provide some quick access information and important links about all the services that are offered on Azure.

The Microsoft Azure platform is a cloud computing platform which provides a wide variety of services to build scalable applications. Over the years, the Azure platform has matured and is evolving at a rapid pace compared to any other cloud platform in the market. Numerous services and features are being added to the Azure platform on a constant basis. This also creates a challenge. How does one keep track of the capabilities that Azure services are offering?

This article is an attempt to provide some quick access information, important links and other necessary details about all the services that are offered today (as of this writing) on Azure.

Want this guide in a PDF format? This article is published from the Free DNC MagazineDownload this magazine from here or Subscribe to this magazine for FREE and download all previous and current editions.

Consider this article as a one stop solution to get crisp and to the point information about all services present on Microsoft Azure as of today.

Editorial Note: Due to the sheer length of this article, we will divide it into two parts. In the first part, we will cover Compute, Web & Mobile, Data & Storage, Analytics and IoT services. The second part Azure Platform and its AWS equivalent - Part two contains: Networking, Media & CDN, Hybrid, Identity, Developer and Management services.

Let’s get started

Half Century crossed!!

Yes, you read it correct. As of today Azure offers 50+ services. By the time this article is published, there could have been a couple of more services released in private preview or even in General Availability.

We can divide these services into 11 categories at a high level. Here’s a Chart that represent which categories are rich in terms of Azure services count.

azure-categorization

In this article, we will try and address the following aspects of each service per category –

1. What is the intent of Service

2. Amazon Web Service (AWS) equivalent service name. [Yes, most of the times I get queries regarding equivalent services between Azure and Amazon so thought of adding it here, wherever applicable.]

Two deployment models in Azure

Before going any further I would like to first highlight an important aspect of Azure deployments. As of today, services on the Azure can be deployed either by using –

1. Azure Service Management (ASM) or Classic model

2. Azure Resource Manager (ARM) model

Classic model is the older way of doing deployments, whereas ARM is the future. Classic focuses more on the “How” part of Azure provisioning and deployments, whereas ARM focuses on the “What” part of Azure provisioning and deployments.

In Classic model, you were managing each Azure resource individually, whereas in ARM, you manage all the resource grouped under “Resource Groups” entity which make the management tasks simpler and easy.

Going forward, in this article, we will not separate the service information as Classic and ARM, but only focus on the intent of the service. The deployment models changes are mostly with respect to management and provisioning semantics.

Compute Services

The Compute services category has in total 7 Azure services as shown here –

 

azure-compute

Virtual Machines

 

virtual-machine  vm-symbol-only

Virtual Machines (VMs) is an IaaS offering. A VM is used to provision Windows and Linux virtual machines as per the requirements. The service has pre-built images created by Microsoft, partners and community. As you provision VMs, you have complete control over the OS. Although that’s an advantage, it also means it is your responsibility to do management of VMs, such as OS upgrades.

Azure Virtual Machines can be provisioned from Gallery images or custom developed images. The underlying data disks and OS disks are always preserved in Azure Page blob hence the VMs are persistent. Using Powershell, Azure portal, CLI or REST API; users can provision the VMs either in classic or ARM model.

Amazon Web Service (AWS) equivalent service name – EC2

Cloud Service

Azure cloud service is a PaaS offering from Azure and specifically designed for hosting web applications, background processing applications [similar to traditional windows service applications] and Azure IaaS workloads i.e. Virtual Machines. These services can be deployed using only the Classic model. Cloud services don’t support ARM deployments.

Cloud Service in Azure is a container under which applications run. The web application in cloud service is termed as “Web Role” whereas background processing applications are termed as “Worker Role”.

Key differentiator between cloud service roles and IaaS VM provisioning is that the VMs that you get as a part of role instances, are ‘not persistent’. That means if you make any role instance changes on VM like creating text file on C drive, it will go away in case roles get recycled. So state and data will not be permanent. Whereas, VMs of IaaS workload provisioned in cloud services are ‘persistent’. That means any changes to data and state will be permanent with exception of D drive, which is a temporary drive.

Amazon Web Service (AWS) equivalent service name – Elastic Beanstalk.

VM Scale Sets

Traditionally horizontal scaling in Azure VMs is supported but the major hurdle is “pre-configuration of VMs”. Unless you already have some VMs pre-configured, auto scale is not possible. In addition to this, the scale number is limited to pre-configured VM count. To overcome this problem and free yourself from pre-configuration of VMs for scalability, VM Scale Sets can be used.

Amazon Web Service (AWS) equivalent service name – Auto Scaling

Remote Apps

remoteapp

Remote apps is an Azure service which can be used to provide remote access to applications independent of devices and platforms. The foundation behind the Remote app is Microsoft Remote Desktop Services with cloud enablement. The remote apps today have the Office application pre-configured, plus you can also run custom desktop applications on them. VNET connectivity and domain join support makes it a powerful choice for running enterprise applications with full control over application topology. Basically you can deploy a windows app today in remote apps, and can access it on any type of device. If you are interested in Azure Remote apps, read my article Run Desktop applications in the Cloud using Azure Remote Apps [http://bit.ly/dncm25-azure-remote-apps]

AWS equivalent service name – AppStream

Azure Batch

azure-batch

Azure Batch is a High Performance Computing solution (HPC) on Azure. It is also known as “Big Compute”. As the name indicates, this service is for scenarios where you need huge computing power, but not necessarily scenarios where you need big I/O performance and disk capacity [In such case you may think about Big Data – Hadoop]. When the task is “Intrinsically or embarrassingly parallel” it should be considered as a good candidate for Azure Batch.

Intrinsically parallel means a perfectly parallel problem where no effort is needed to divide the problem into a number of tasks for processing in parallel. These are the problems where no dependency is present on other tasks and no communication is required between the tasks running in parallel. For example - Media encoding and transcoding, Image rendering and processing.

AWS equivalent service name - No equivalent service in AWS exists as of this writing.

Service Fabric

service-fabric

Service Fabric is based on “Microservices Architecture”. As of today, we build enterprise level web applications based on a 3-tier architecture where in the UI, Business Layer/ Data Access Layer, and Database are separate; but in true nature of implementation, they are still tightly coupled and monolithic. In contrast to traditionally divide and build an application in 3 tiers, a microservice application is divided in independent components which are called as “Microservices”. The emphasis is on the fact that applications should be comprised of small enough services which truly reflects its single purpose, such that every micro service implements a single function. Every service has REST contracts defined so that other services can communicate and share the data. In a way, you are achieving a great level of loose coupling in the application.

So the Microservices architecture implementation is nothing but “Service Fabric”. This has inbuilt support for massive scale, hybrid deployment model, 24x7 availability and most importantly, support for DevOps to manage health based upgrades and automatic rollbacks.

AWS equivalent service name - No service exists today.

Container Service

container-service

Basically a container is an isolated place where application runs without affecting rest of the system, and vice-versa. Containers are future of virtualization techniques. The current virtualization techniques are of hardware virtualization, whereas container is OS virtualization.

Azure container service can be used to create a cluster of virtual machines that are pre-configured to run a containerized application. Today ACS allows you to create cluster of “Docker Swarm” and “Apache Mesos”. A major use of the Azure container service I see in the future is in implementation of MicroServices based offerings.

AWS equivalent service name - EC2 Container Service, EC2 Container Registry

Web and Mobile

Probably this is the most confusing category because Azure Service names in this category are similar to each other. This category has a total of 5 services as shown below -

 

azure-webandmobile

The confusion usually happens with the following service names –

1. Mobile Apps, Mobile Service and Mobile Engagement

2. API Apps, App Service and API Management

I hope there will be no confusion once you understand the intent below.

App Service

app-service

Earlier, Azure Web Sites and Mobile Services were provided as a separate service on Azure. To cater to the needs of “Cloud first, mobile first” strategy, Microsoft renamed Web sites and mobile services to Web Apps and Mobile Apps respectively and brought them under one umbrella service called as “App Service”.

On top of this, Microsoft also added two new services under “App Service” named as “Logic/ Workflow Apps” and “API Apps”. Now in the near future, “Azure Functions” will also get added as a part of the App Service. So in essence, App Service can be viewed as follow –

Web Apps + Mobile Apps + Logic Apps+ API Apps + Functions = App Service

App Service provides powerful capabilities such as built in DevOps, Continuous integration with Visual Studio Team Services/ Github, staging and production slots, automated patching and so on.

AWS equivalent service name - Auto Scaling

Web Apps

web-app

Web Apps service is a PaaS offering on Azure and specifically used for hosting web applications. The difference between various offerings used today for web application hosting is as follows –

image

So Web Apps is a hosting provider solution on Azure similar to other hosting providers where you can create apps from the Gallery for various platforms like Drupal, Wordpress, Joomla, ASP.Net MVC and so on.

Unlike Worker Roles of cloud services where the application runs on dedicated VMs, the background jobs in Web Apps are called Webjobs that run in the same context of Web App, and you are not charged anything extra for it. Web Apps should be your first choice when you are planning to host a web application. If any of the application scenarios are not getting fulfilled with Web Apps capabilities, then you can explore options of Cloud Service roles and virtual machines.

AWS equivalent service name - Elastic BeansTalk

API Apps

api-app

API Apps is about hosting your REST APIs. Using this service you can easily create, consume and call APIs that are developed in any framework like ASP.NET Web API or similar. You can also bring your existing APIs as-is irrespective of the language in which it has been created. The key features offered are Authentication, CORS support and API metadata.

You can make the API app hosted REST APIs available for your internal consumption or you can publish them on Azure Marketplace and some make revenue out of it. For example, let’s say you create a REST API for getting address information of a person based on his name within a city, then it can be used in any type of application and you can charge on a per call basis. Just a thought!

AWS equivalent service name - No service exists today.

Mobile Apps

mobile-app

Mobile Apps on Azure App Service is nothing but a MBaaS (Mobile Backend as a Service) offering. Earlier, building Mobile Apps was never easy as there were so many infrastructure configurations required like database, notification services, setting up single sign-on, other authentication services and so on.

Mobile Apps makes all of these services available on your fingertips. It offers various services such as

- Authentication and Authorization [using Azure AD, social providers etc.]

- Data access [mobile friendly OData v3 data sources linked to Sql Azure, SQL on VM, NoSQL providers such as Table Storage, Mongo DB, Document DB]

- Offline sync between data on device and backed data store

- Push notifications capabilities using Azure Notifications Hub

- Development SDKs for native development on iOS/ Android/ Windows, Cross platform development using Xamarin, hybrid application development using Apache Cordova and so on.

AWS equivalent service name - Mobile Hub

Mobile Services

This service is superseded by Mobile Apps service and its intent has already been described above.

Logic Apps

logic-app

Logic apps can help a technical user or developer to build an automated process execution and workflow, using visual designer. The best part is you don’t have to write a single line of code for scenarios which are pre-built into logic apps.

Logic app has “Managed API” connectors like Yammer, SMTP, Sharepoint Online, Outlook, OneDrive, Office 365, CRM Online and so on which can be used in building any type of workflow application in Azure portal itself.

There are “Hybrid connectors” also available to have connectivity with SAP, Oracle, DB2 and so on. The connectors are nothing but Azure API Apps whose focus is only on connectivity. So essentially you can create your own API App and have it used in creating logical workflows and business process automation using Azure Logic apps. In that case, it can be called as “Custom connector”.

AWS equivalent service name – Lambda

Azure Functions

functions

As the name indicates, it is a solution for running small pieces of code having single responsibility and you are charged per execution. Azure function can contain code that will get triggered by an event.

In my opinion, in future, Functions will form various components of Microservices [an event driven independent service architecture] built on Azure.

These functions can also be helpful in filling the gaps of Logic app implementation. Most of the times, developers were running into cases where Logic App Workflow Definition Language was reaching its limitations. In such cases, writing custom API App and adding it to Logic app, was the only option. Azure functions can fit into these gaps.

AWS equivalent service name - Lambda

API Management

api-management

A common architecture pattern for all modern apps today is to expose business logic through APIs and expose endpoints over HTTP using REST protocol. This approach enables the consumption of APIs from any language using any platform. Although building a REST API is fine, but to make them scalable, secure and policy enabled, is difficult and this is where API Management comes into the picture. There are 3 main components –

1. API Gateway:

Responsible for accepting API calls and route them to backend services, Verify API keys and JWT tokens, enforce usage quota and rate limits, caching, logging, monitoring.

2. Publisher portal

This is an administrative interface where we can setup API program. It can be used to define API schema, package API as a product, setup usage and access policies, analytics.

3. Developer portal

Provides access to developers for management where they can read API documentation, try API sample from the console itself, get API keys, access analytics for their own purpose.

AWS equivalent service – API Gateway

Mobile Engagement

mobile-engagement

This service offers various features so as to maximize user retention and monetization. It is a SaaS offering on Azure which can be used to get data-driven insights in application usage, real-time user segmentation, in-app messaging and notifications. This service is specifically for digital marketers, however at the same time it can be used by mobile app owners as well who want to increase the usage, user retention, and monetization of mobile apps.

Few scenarios where Mobile engagement can be used are as follows –

1. Welcome campaign – This can be used to encourage account creation for users by providing welcome invitation and multi-language capabilities.

2. Rating boosts – Send a message to users and encourage them to provide ratings. This directly increases the popularity and discovery of the app in market.

3. Sorry – Send automated messages to users on app crash and errors that affect them directly. This influences user retentions directly and users can be patient till you fix the problem.

Similarly, there can be many such scenarios where Mobile engagement can be a useful feature.

AWS equivalent service – Mobile Analytics

Data and Storage

This category has 9 services as shown below –

data-storage

Document DB

documentdb

DocumentDB is a NoSQL document database-as-a-service offering which stores all the information in JSON format. Those who have worked with Mongo DB can relate DocumentDB as an offering from Microsoft Azure in the NoSQL space. DocumentDB enables complex queries using SQL syntax based language, supports transactions across documents with a familiar programming model of writing stored procedure, user defined functions, triggers written in JavaScript etc. Along with JavaScript support, it offers all the operations with REST APIs.

AWS equivalent Service – DynamoDB

SQL Azure Database

azure-sql-database

This is a PaaS offering for SQL database. Some people also term it as “Database as a Service”. Being a PaaS offering, you don’t have access to the underlying server but you can communicate via endpoints. This is available in 3 tiers – Basic, Standard, and Premium.

Depending on the chosen tier, you get Performance units. This is not similar to SQL server running on VM hence you can’t configure SSRS, SSIS, SSAS, SQL agent etc. on it. Moreover cross-database queries and distributed transaction is also not supported.

At the same time the High Availability, backup and Disaster Recovery strategies of SQL Azure database is awesome and completely automated. It reduces a lot of headaches on the maintenance part. Today various tools and options are available by which you can migrate from on-premises SQL server to SQL Azure DB offering or vice versa which makes this offering very powerful and suitable for production workloads.

AWS equivalent service – RDS.

Redis Cache

azure-cache-including-redis

Azure Redis Cache is based on the popular open source Redis Cache. Most of the cache offerings usually deal with only key-value pair for storing and retrieving information from cache. On the other hand, Redis supports data types on which you can perform atomic operations like append, increment, union and difference, sorting etc. which may not be possible with traditional cache offerings. The most popular use of Redis cache is seen in storing session information in ASP.NET web applications.

AWS equivalent service – ElastiCache.

Managed Cache Service

This service will be deprecated in Nov 2016 and the alternative is to use REDIS Cache offering on Azure.

Storage

storage-azure

Azure storage offers various storage services for your business needs. It is a massively scalable data store and can store data consisting of hundreds of Terabytes. It provides 4 types of storage options –

1. Blob Storage –

storage-blob

This stores unstructured data. It can be text or binary data. This is also referred as Object store and has two types –

a. Page Blob – Used for storing backed Vhd files of Azure VMs. Targeted for Random read/ write operations.

b. Block blob – Used for storing any type of file or binary data. Targeted for sequential read/ write operations.

2. Table Storage

storage-table

Stores structural dataset and is a NoSQL key-value pair based store.

3. Queue Storage

storage-queue

Provides reliable messaging solution which can be used in various integration scenarios.

4. File Storage

azure-files-service

A File Storage option for applications using standard SMB protocol. This is specifically used for making file storage available as local drive in virtual machines. Blob storage is accessed over HTTP and can’t be mounted/ accessed as local drive; this is where Azure files help.

AWS equivalent Service -

image

StorSimple

storsimple

StorSimple is a cloud integrated storage product that allows users to store heavily used data on-premises or locally, and put older and less active data on Azure. SotrSimple is a Virtual Storage Array solution. Basically, it is a software version of storage that can run independent of dedicated hardware, in a VM or cloud services.

StorSimple uses the concept of “Storage Tiering”. The data is arranged in logical tiers depending on the age, usage and relationship to other data. Data that is the most active (termed as hot data) is stored locally using SSD(Solid State Drives), the data used occasionally (termed as warm Data) is stored on HDD (Hard disk drives) locally or in data center on premises, and less active data (cold data) is moved to Azure.

AWS equivalent Service – Storage Gateway.

Search

azure-search

Search is the primary requirement of any application because it’s simple, powerful and requires no training to use. However providing search option can be challenging for developers and to build your own search engine involves too much effort. Even if we think about 3rd party search tools, they are expensive and configuration/ installation required is too much. So typically a search service is needed where developers don’t have to manage anything but can be used directly in applications running on premises or in cloud. This is what Azure Search provides.

It can be used for search operation on SQL Azure Database, SQL server on VM and DocumentDB or NoSQL store running on Azure VM. It is important to note here that Azure search is entirely focused for developers. It can’t be used directly by end users from the UI. Everything today about Azure search needs to be implemented using REST API or SDK and application developers are free to create UI of their choice and need.

AWS equivalent service – ElasticSearch Service.

SQL Data Ware House

sql-data-warehouse

This is a “Data warehouse as a service” offering from Azure. This service is built on Massively Parallel Processing (MPP) architecture. The purpose of the service is similar to the purpose of any data ware house system but this adds cloud enablement. So you can push data from various different sources like SQL/ NoSQL and can run the analysis, queries on it to get meaningful data and outcome out of it. Most importantly, the query language is Transact SQL which most developers are already familiar with.

The “Azure SQL Data Warehouse” can be used with other tools like PowerBI for visualizing data, Azure Data factory for event processing, Machine Learning for predictive analysis, HDInsight for analytics service, and for similar tools in the future.

AWS equivalent service – Redshift.

SQL Stretch Database

sql-stretch-database

SQL Server 2016 added a new feature in its release which enables you to store a portion of a database in Azure, which is known as Stretch database. You can move Warm and Cold data from on-premises to Azure, and the moved data remains online for a query from the application, which may not be the case with traditional cold data storage options.

To identify which database and tables are good candidates for stretch database implementation, you can use “Stretch Database Advisor” tool of SQL server 2016.

AWS equivalent service – None.

Analytics

Following are the services which are part of the Analytics category on Azure –

analytics

HDInsight

hdinsight

HDInsight is the Azure cloud implementation of the Apache Hadoop technology stack which is a popular solution for Big Data analysis.

Big Data refers to any large body of digital information which can contain data collected from various sources. Some examples include Aero plane Black Box data, Social Media data, Stock market data, Search engine data, Power grid data, e-commerce data, sensor data from industrial equipment and so on. Big data can be historical (stored data) or real time (streamed directly from the source).

To use this data and to come up with usable, actionable presentation, we need analysis tools capable of handling such massive amounts of data. Apache Hadoop is an open source popular framework which offers various tools to perform such Big data analysis.

Hadoop being open source, many companies have created their own stack of Hadoop offering called as Hadoop distribution. Out of these, a popular distribution is HortonWorks.

HDInsight uses HortonWorks Hadoop distribution and offers entire Hadoop eco-system components as cloud enabled on Azure platform.

AWS equivalent service – Elastic MapReduce (EMR).

Machine Learning (ML)

machine-learning

Data has secrets when it is presented in a big volume. This big volume data can be examined to find patterns. Ultimately these patterns can help you to solve a problem, predict future events in advance and get prepared for it. However examining such a big volume of data to identify patterns is a complex job and this is what is made easy by Azure Machine Learning.

So typically machine learning uses computers to learn from existing data in order to forecast future behaviors, outcomes and trends. In short, it provides “Predictive Analysis” to make applications and devices smarter.

Azure ML not only provides tools to model predictive analytics, but also provides a fully managed service that you can use to deploy your predictive model as a web service and monetize it.

AWS equivalent service – Machine Learning

Data Factory

data-factory

Analytical data scenarios always have many moving parts and various inflow points. For example, building data inside data warehouse needs interaction with various systems and a variety of locations like cloud and on-premises, to get the data. It is possible to establish this process manually, but if the same process needs to be done on a regular basis, then it is a good candidate for automation. Azure Data Factory lets you automate this data collection process based on schedule and from various sources like SQL Server PaaS, SQL Server on premises, Azure blob, tables, HDInsight Hadoop systems and so on.

So essentially, Azure Data Factory is for movement of data between sources termed as “Data movement activities” and on top of that, you can run Analytics termed as “data transformation activities” using tools such as HDInsight hive, Pig, streaming or Azure Machine Learning. So data factory is not for storage of data, but for movement, and if required, transformation.

AWS equivalent service – Data Pipeline.

Data Catalog

azure-data-catalog

Data Catalog is basically a data discovery service. The purpose of the data catalog service is to provide a way to identify the data sources and then search them in an organized way.

As a part of the registration process, users registers the data sources from which metadata structures gets extracted automatically, whereas actual data remains in the data source. Once the metadata is in catalog store, users can take actions like search, filter, annotate, and add additional information about data sources and metadata, and so on. Additional information added to data sources helps those who have just joined the system/ organization to identify the intent of the data source.

AWS equivalent service – None.

Data Lake Store

data-lake

Data Lake Store is a repository on Azure that holds all the data in its raw format. This way Data scientist, Data analysts can store data of any shape, size and can perform all types of processing and analytics across platforms and languages. On top of it, the data stored in Data lake store can run Hadoop, HDInsight or Data Lake analytics to find patterns of data.

The difference between Data Lake and SQL Data Warehouse –

Azure SQL Data Warehouse enables you to store the data in a structured manner and is coupled to one or more schemas.

In Azure Data Lake, the incoming data is stored as-is in raw format, and analysis is done on top it with various tools.

AWS equivalent service – Kinesis Analytics.

Data Lake Analytics

azure-datalake-analytics-portal-version

HDInsight involves creating a cluster. In case you want to run only parallel data analysis applications without worrying about clusters, then you can use Azure Data Lake Analytics service. Unlike HDInsight, a user here just specifies resource configuration required for running a query, and automatically those resources are provisioned and destroyed after processing is complete.

It supports a new language developed by Microsoft called as U-SQL which is combination of SQL and C# and can operate over structured and relational data.

AWS equivalent service – Kinesis Analytics.

Power BI

power-bi

Power BI is a cloud based analytics service that builds visualizations, perform ad-hoc analysis and develop business insights from data.

The best part of Power BI is the rich support for integration with Azure services. To name a few, Power BI can read data and provide visualizations from various azure services such as Machine Learning, Stream Analytics, HDInsight, SQL Azure DB, Azure Storage, Event Hubs and so on.

AWS equivalent service – QuickSight.

Internet of Things (IoT)

Following is the diagram highlighting services present in the category of IoT -

 

azure-iot

Machine Learning (ML)

ML is also categorized as an IoT service and we have already covered it in the “Data & Storage” category.

Stream Analytics

stream-analytics

The essence of streaming data is the speed at which it is generated, and if it is not analyzed immediately, then value of that data is lost. Example of real time data streaming are sensors on an oil well, fitness tracker on the wrist, toll payment devices in cars. These systems generate a lot of useful data and new data is produced constantly. This is the world we are living in, and IoT presents a number of opportunities for the same.

A traditional way can be to store the data and then process it at a later stage, but this may not be useful and can be too slow for many useful applications. So processing of continuous incoming data is required in such scenarios. This is where Stream Analytics can be used.

Azure Stream Analytics is an event processing engine. The event or data can be incoming from one stream or multiple streams like sensors, applications, devices, operational systems, websites and variety of other sources. A developer can use Stream Analytics Query Language which is a subset of T-SQL to issue queries on the incoming data. Each time new data arrives, the query runs and provides an output and this time duration window can be specified while creating the query in stream analytics. Hence Stream analytics queries on a slice of incoming stream rather than querying on the entire table of relational systems.

AWS equivalent service – Kinesis Analytics.

Notification Hub

traffic-manager

Smartphones and tablets have the ability to “notify” users when an event has occurred. These are called as “Push Notifications”. These notifications are pushed to devices even if the corresponding app is not active on the device, and this way the user engagement with app can be increased drastically. So “Push Notifications” is a vital component.

These notifications are delivered through platform specific infrastructure called “Platform Notification System (PNS)”. For example, to send notifications to a windows store app, the developer must leverage “Windows notification service”. To send notifications to iOS devices, the developer must leverage “Apple Push Notification Service (APNS)”. These platform specific infrastructures do not offer support for broadcast, personalization and so on.

To avoid the headache of using different notification services depending on the platform, Azure Notification Hub provides a common interface along with other features to support push notifications across each platform.

AWS equivalent service – Simple Notification Service.

Event Hub

event-hubs

Event hub is an extension to traditional capabilities of service bus Queues and Topics.

The Service bus Queue and Topics use “Competing Consumers” model in which each consumer attempts to read from the same queue. This competition ultimately leads to scaling limits. On the other hand, Azure Event hubs works on “Partitioned Consumer Pattern” where each consumer reads only specific subset or partition. Using this strategy, Event Hubs adds massive scaling capability for ingesting data.

Working with streaming data commonly requires buffering of messages. Without buffering, you will miss the messages. Event hubs provides this buffering capability where message can be stored until they are processed.

I found an interesting and self-explanatory image highlighting difference between Event hubs and Service bus Queue/ Topics on Brent’s (@BrentCodeMonkey) blog

eventhubdifference

Image source: https://brentdacodemonkey.wordpress.com/2014/11/18/azures-new-event-hub/

So the major difference between topic/queue and event hub is of “Scale”.

AWS equivalent service – Kinesis Firehose, Kinesis Streams.

IOT Hub

iot-hub

Stream analytics, HDInsight Storm, Spark streaming etc. services allows to create software that process streaming data. However none of them provide buffering capability which is a common scenario in case of IoT. Without buffering capability, data will be lost. To address this situation, Azure IoT hub service can be used.

IoT is based on Azure Event hubs and at the same time it allows features to talk back to devices generating data which is not possible with Event hubs.

Azure equivalent service – IoT.

Read Part Two here - Azure Platform and its AWS equivalent - Part two

Conclusion

In this article, we took an overview of the services offered in the Microsoft Azure Platform. We covered Compute, Web & Mobile, Data & Storage, Analytics and IoT services. The second part of this article Azure Platform and its AWS equivalent - Part two contains information about Networking, Media & CDN, Hybrid, Identity, Developer and Management services.

This article has been editorially reviewed by Suprotim Agarwal.

Absolutely Awesome Book on C# and .NET

C# and .NET have been around for a very long time, but their constant growth means there’s always more to learn.

We at DotNetCurry are very excited to announce The Absolutely Awesome Book on C# and .NET. This is a 500 pages concise technical eBook available in PDF, ePub (iPad), and Mobi (Kindle).

Organized around concepts, this Book aims to provide a concise, yet solid foundation in C# and .NET, covering C# 6.0, C# 7.0 and .NET Core, with chapters on the latest .NET Core 3.0, .NET Standard and C# 8.0 (final release) too. Use these concepts to deepen your existing knowledge of C# and .NET, to have a solid grasp of the latest in C# and .NET OR to crack your next .NET Interview.

Click here to Explore the Table of Contents or Download Sample Chapters!

What Others Are Reading!
Was this article worth reading? Share it with fellow developers too. Thanks!
Share on LinkedIn
Share on Google+

Author
Kunal Chandratre is a Microsoft Azure MVP. He is working as Azure SME in leading software company in (Pune) India. He also works as a Freelancer with various organizations for Azure support and provides quick start trainings on Azure to corporates and individuals on weekends. He regularly blogs about his Azure experience and is a very active member in various Microsoft Communities and also participates as a ‘Speaker’ in many events. You can follow him on Twitter at: @kunalchandratre or subscribe to his blog


Page copy protected against web site content infringement 	by Copyscape




Feedback - Leave us some adulation, criticism and everything in between!