10 Azure services that every .NET Developers, Consultant, and Architects should know and learn it well – Part II

Let’s continue with the previous post on 10 Azure services that every .NET Developers, Consultant, and Architects should know and learn it well. Let us quickly recap what we talked about in the previous post before we move forward. Speed and agility are the keys for any organization to succeed. Moving to cloud services is no more an option – It’s compulsory and a smart move.  Cloud Services provide lower cost, higher security, a global footprint, and increase productivity with powerful tools and frameworks. If you are working on Microsoft Platform, no matter what role you are performing – Development Engineer, Engineer in Test, Engineering Consultant, or Architect – understanding of fundamentals of cloud computing and usages are keys.

I would recommend reading out the “Part I” before you continue with the second part of the Post. It is going to help you understand the backgrounds.

10 Azure Cloud services that every Developers, Consultant, and Architects should Know and Learn it well

Our Focus – 10 Azure Services for Developers, Consultant, and Architects

As part of our previous article, the following are the list of ten Azure services I recommended start and master yourself.

  1. Azure Web Apps
  2. Azure API Apps
  3. Azure Storage
  4. Azure Application Insights
  5. Azure DevOps
  6. Azure Logic App
  7. Azure Function App
  8. Azure Key Vault
  9. Azure Cosmos DB
  10. Azure Redis Cache

We have covered Azure Web Apps, Azure API Apps, Azure Storage, Azure Application Insights, and Azure DevOps as part of the previous article. These five services can let you build and deploy a highly scalable and robust application in the Azure with it, depending on any other services.

While Azure Web App and API Apps, let you builddeploy, and manage your front end and backend at scale, Azure Storage support with storing data with backup and recovery solutions. Azure Application Insights helps to collect application telemetry, whereas Azure DevOps helps to manage end to product development with highly scalable automated build and release management.

In this post, let us look into the reset of the services and see how they can help to extend your application to make your application robust and resilient.

Again, there are several other Azure Services such as Azure Active DirectoryVNetSite RecoverAzure BackupStorSimpleFront Door, which also plays critical roles for security scalable and resilient solution design. Similarly, if you are from an IoT background, several services like IoT Hubs, Analytics plays vital roles.

As I said, over 600+ services fall under the Azure Platform that can cover every scenario that you might need for your business or organization. However, these ten services are commonly and widely used for Azure Services and can let you get your application on the cloud very fast.
Let’s get started with the rest of the services.

Let’s get started with the rest of the services.

Azure Logic App

Logic Apps brings agility, speed, and scalability into the enterprise integration space with pay per execution model. Logic Apps allows you to connect legacy and cutting-edge systems, and enable powerful integration between subsystems. Azure Logic Apps are an effective Azure PaaS service when it comes to orchestrating some tasks and powerful enterprise platforms integrations. The Azure Logic apps allow us to schedule and automate business workflow, data stream, and application interfaces across different enterprises.

It comes with several enterprise connectors that not only connecting other Azure PaaS Services, but it also allows integration with a system like O365, Dynamic 365 CRM, Google Services, SAP, Cognitive Services and, other enterprises.

You can create and run most of the workflow and business functionality without writing a single line of code. Workflows start with a Trigger, which could be a timer, or some endpoint webhook or any activity performed in one of the integrated subsystems that trigger a workflow.

Every change in Azure Logic Apps, create a version, which is a critical aspect to understand when we need to update or rollback any changes. You can navigate to Versions from the Development Tools section, and rollback to any previous version of the workflow.

Reference Architecture

Here I have extended the reference architecture diagram, which we started as part of this article. Web App Services runs your web front end, and API App Service runs the back-end API Code, which now interacts with several storage accounts, Queue, Table, and Blobs, to store respective types of data.  

Whenever this is a message in the Azure Queue, it can trigger a workflow in Azure Logic App, which can further connect with any enterprise application.

For instance, where there is a new email id coming into Azure Queue, Azure Logic app should send an email using on Outlook Account to the newly received email id.

Let’s look into one more common and typical uses cases where we can see how Azure Logic App brings agility, speed, and scalability into the enterprise integration space. Integration of Twitter, Azure Cognitive Services, and Power BI for Twitter Sentiment Analysis. All these have their connector with Azure Logic App, and it maintains the data flow and initiates workflow when there is a new tweet.

The following would be the Logic App Designer for the above architecture that represents an integration between Twitter, Power BI, and Azure Cognitive services using Azure Logic App connectors.

Key things to learn

  • Azure Logic App Designer
  • Azure Logic App Code View
  • Versions of Logic Apps
  • API Connection for Connectors
  • Cloning Existing Logic App

DIY – Do it yourself

  • Create a Logic App and connect with previously created Storage Account.
  • Azure Logic App should send an email using Outlook Connector whenever there is a new email id in the Azure Queue.
  • Clone the Logic App and Try to Send the email using some other email client.

Azure Logic App and Visual Studio Code

Azure Logic Apps extension for Visual Studio Code gives Azure developers a set of powerful commands and tooling support to working with Azure Logic Apps. With the help of this extension for Visual Studio Code, you can quickly create, debug, and manage Azure Logic Apps. The extension also helps developers to run and resubmit the logic app, along with promoting the version. The powerful IntelliSense also helps in quickly add triggers and actions for associated Logic Apps.

Azure Logic Apps Tips and Tricks from Daily .NET Tips

Azure Function App

Azure Functions let us execute our code in a serverless environment. Azure Function does not require to create a solution or publish it as Azure Apps. In short, just focus on code and your functional aspect, and don’t need to worry about infrastructure. Azure Function can be used in different business scenarios and with varying aspects of integration, especially to host some background job, microservice, or a small piece of code that runs for a short time.

You can create Azure Function directly from the Azure Portal. Azure Functions Tools for Visual Studio also lets you develop, test, and deploy functions to Azure.

Like Azure Logic App, Azure Function has also trigger which could be based on a timer or some external event hooks into the function.

You can create your module code and execute it as Azure Function, also to speed up the things, Azure Function provides several templates that are easily customizable for different integration layers.

Like App Services, Azure Function Supports Deployment slots. Deployment slots are beneficial components for Azure cloud services. Deployment slots enable isolation of application environments such as development, staging, and production in a seamless manner. We can swap the environment very easily and thus allow rapid deployment, easy roll out or rollback of the solution, and overall, enabling DevOps for cloud solution development.

Running Azure Functions in a Docker Container

You can run your function code in an App Service, where we define the Runtime Stack, Version, and Region, or on the other hand, we can publish it in a Docker Container.

Reference Architecture

Below, reference architecture shows Azure Function connectivity with Azure Storage Queue and Blob, to access data, process basic information, and integrating with One Drive and Send Grid.

Key things to learn

  • Creating new Azure Function from Template
  • App Keys
  • Running Multiple Azure Functions
  • Deployment Slots
  • Create Azure Function Events
  • Understanding of Azure Function Plans / Pricing Model

DIY – Do it yourself

  • Create an Azure Function, that reads the Azure Storage Queue for new emails when there is an associated document uploaded.  Send emails using Send Grid and a customized template.
  • Create another Azure Function, read the blob storage for the uploaded document, when the form is uploaded, in blob storage copy the file to a one drive location.

Azure Functions Tips and Tricks from Daily .NET Tips

Azure Key Vault

Secure key management is essential to protecting data in Azure. When we start thinking about application security and storing secrets of application Azure Key Vaults comes into the picture. Azure Key Vault provides secure stores for application secrets. Whenever we are building applications, storing application configuration keys, passwords, certificates in the Azure Key Vault are recommended.

You can create an Azure Key Vault and manage all keys from the Azure Portal.

When Keys are created and stored in the Azure Key Vault, we don’t need to store any security keys information into the application. One of the most common scenarios would be storing it securely in Key Vault instead of storing database connection string the application configuration.

Reference Architecture

Following reference, architecture is an extended version of what we are building so far. We have added Azure Key Vault in the platform, which can store all the keys and secrets for your apps.

Key things to learn

  • Azure Key Vaults – Keys
  • Azure Key Vaults – Secrets
  • Azure Key Vaults – Certificates
  • Certificate Authority
  • Azure Key Vault Soft Delete

DIY – Do it yourself

  • Create one Azure Key Vault
  • Access Connection String Details for one of your Web Application from Key Vault
  • Move all the local keys created for your application to access Azure Storage, and Access it from the key vault.

Azure Cosmos DB

Azure Cosmos DB is a fully managed, globally distributed, multi-model Azure database service backed up by comprehensive SLAs. Azure Cosmos DB offers scale, low-latency, and high throughput database services with API’s support of SQL, MongoDB, Cassandra, Tables, etc.
Azure Cosmos DB provides global distribution, which means you can scale and distribute it across different Azure regions. Global replication of your Azure Cosmos DB enables you to have your data replicated over as many as datacentre per your need and control and access your replicated data seamlessly. Setting up the Geo-Replication is very easy and can be done over a couple of clicks.

Priorities of data center regions can be specified after Geo-Replication configuration. This is to decide which data center to go first for failover in case of a disaster. Azure Cosmos DB enables us to tag a priority to every data center region.

Reference Architecture

Azure Cosmos DB would now work as your highly saleable database Service. While you can continue to start using Azure Storage for other data processes, file storage, etc., you can store all other sets of records to Cosmos DB.

Key things to learn

  • Creating Azure Cosmos DB
  • Containers and DB’s
  • Configure Database in Cosmos DB
  • Document Explorer and Query Explorer
  • Setting up Global Replication and Failover

DIY – Do it yourself

  • Create one Cosmos DB Service
  • Store all the records coming from your web application in JSON format in the Cosmo DB
  • Query the data from Cosmos DB and display it in the web application.

Azure Redis Cache

CachCache helps speedup application, and when considering the factor of application performance and response, enable cache for data is the key. Azure Redis Cache is a managed Azure services of the popular open-source version of Redis Cache. It’s an in-memory database running on Azure services that store data in key-value format.

Following Architecture References (Referred from Microsoft Solution Architecture ) shows how Azure Cache for Redis improves the performance of your application by increasing its responsiveness and enabling it to handle increasing loads with less web-compute resources.

Reference Architecture

Depends on the data source, the configuration and access Redis cache would be a little different, and in some cases, we need to add some additional synchronization mechanism.

Key things to learn

  • Create and Configure Azure Redis Cache
  • Access Redis Cache Data from the application

DIY – Do it yourself

  • Enable Redis cache for your application and connect your application with Azure Redis Services
  • Access Data from Redis

We are done with a brief and high-level overview of the ten Azure services that can help you build a highly scalable solution in Microsoft Azure.

Next Steps – Microsoft Azure Reference Architecture

Once you are done learning these 10 Azure services, I would recommend visiting the Microsoft Azure Solution Architecture website and looking around different architecture possible based on the Azure services you have learned. It now helps you to understand the overall ecosystem much better and gives you more insight into how you can scale your solution and what other Azure Services you can learn.

For instance, I took a reference architecture of Scalable E-Commerce web apps which process order with Azure Services. And if you looked at the architecture diagram, we have covered most of the services during the post.

Similarly, visit some other reference architecture and clearly understand how the integration of different Azure Services works.

Summary

In this post, I have covered the second set 5 services out of 10 Azure Services I recommended to learn to get started with Azure. If you are done with both part I and Part II, I would highly recommend spending some time with all these services and perform with some hands-on exercise and read documentation from Microsoft Azure Documentation for more details. As I said earlier, building any custom LOB applications or any other domain application above mentioned ten services would give you a perfect start, and it will be a long way to go.

Let me know what your favorite or top 5 Azure Services is that you used frequently.

I hope this helps!

Thanks

Azure,

Written by Abhijit Jana

Technology Leader, Technical Strategist, Solution Architect, Development Consultant and a Trusted Technology Advisor with more than 12 years of experience in the IT industry with expertise in Development, Architecting, Engineering, Consulting, and Services Delivery. I am a former Microsoft MVP, Author of "Kinect for Windows SDK Programming Guide" and "HoloLens BluePrints" books and founder of The Daily .NET Tips . To know more about me visit "About Me" page.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: