Tuesday, August 18, 2020

Azure Core Services - Important Points

 Important Points -Part1

Let's go through some important points 

Azure App Service


  • This is an HTTP-based service that allows you to host web applications, REST API's and mobile back ends. You can develop a program in programming languages such as .NET, .NET Core, Java, Ruby, Node.js, PHP and Python.

  • Here you don't need to manage the underlying infrastructure. It allows you to focus on code development.

  • Each App service needs to be associated with an App Service Plan.

  • Each App service plan has an associated cost per month and also has specific features based on the plan you choose.


Virtual Machine Scale Sets


  • This service allows you to create and manage a group of identical load balanced virtual machines.

  • Here the number of Virtual Machine instances in the scale set can scale based on demand

  • This is the best service if you want to add scalability to your application


Azure Load Balancer


The Azure Load balancer is used to distribute incoming network traffic to a backend group of servers.

This service helps increase the availability of your entire application architecture

Here the Load Balancer would take the incoming requests from the users and direct the requests to virtual machines running in an Azure virtual network.

If you have a web application running on the backend virtual machines, the requests would be distributed across the virtual machines by the Azure Load Balancer.

Other tools to access Azure resources

You can use other tools to access and work with Azure resources

  • You can use PowerShell which can work on Windows, macOS and Linux

  • You can use the Azure command line interface which can work on Windows, macOS and Linux

  • You can use Azure cloud shell from the browser, which can then work on any operating system which has browser support

Azure Functions


  • This service allows you to run small pieces of code as functions.

  • Here you just develop and upload the code to an Azure Function.

  • You only get billed for the amount of time the code is run.

  • You can use a variety of programming languages in Azure Functions.

  • C#, Java , JavaScript, PowerShell and Python.

  • You can use libraries by using NuGet and NPM packages.


Pricing plans available for Azure Functions

Consumption Plan – Here you only pay for the time the code runs.

App Service Plan – If you already have an App Service plan that runs a web application, you can reuse the same plan to run Azure Functions. This would save on cost if you already have an App Service Plan in place.

Premium Plan – Here you get a number of pre-warmed instances that are always online and ready to run your functions. The plan also automatically adds more compute when required.

You can also invoke your functions via various triggers


Azure Logic Apps


This is a cloud service that helps you schedule, automate and orchestrate tasks , business processes and workflows.

How it works

  • You first design a workflow in Azure Logic Apps

  • Each workflow starts with a trigger.

  • The trigger is fired via a specific event

  • When the trigger is fired , the Logic App engine creates a logic app instance that runs the workflow.


Connectors for Azure Logic Apps

  • These connectors provide easy access to event, data and actions that are sent from external applications, services , systems or platforms.

  • You have built-in connectors that can connect to Azure services such as Azure functions, Azure API Apps etc.

  • You have Managed connectors that can connect to platforms such as Office 365, Microsoft Dynamics.


Azure Traffic Manager


The Azure Traffic Manager service is a DNS-based traffic load balancer that distributes traffic across services that are distributed across different Azure regions.

The Traffic Manager service is used to direct client requests to the most appropriate service endpoint that is based on a traffic-routing method and the health of the endpoints.

The different traffic routing methods available for the Azure Traffic Manager are

  • Priority – Route traffic to another endpoint in case the primary fails.

  • Weighted – Route traffic to different endpoints based on weight.

  • Performance - you want end users to use the "closest" endpoint in terms of the lowest network latency.

  • Geographic - geographic location their DNS query originates from.

  • Multivalue – Here different endpoints are sent to the client. The client then selects the endpoint to send the request to.

  • Subnet – This maps a set of end-user IP address ranges to a specific endpoint within a Traffic Manager profile.

Below is an example of the Priority routing method that can be used with the Azure Traffic Manager service

Here we are assuming that a company has similar web applications , both are running using the Azure Web App service. One web application is running in the East US Region and the other is running in the West US Region.

1. Here we create a Traffic Manager profile and create two endpoints. Each endpoint points to each Azure Web app respectively. We assign a priority of 1 to the service endpoint attached to the Azure Web App running in the East US region and  a priority of 2 to the other service endpoint.

1. Here users would make requests to the Traffic Manager service.

2. The requests could be initially be directed to an Azure Web App located in the East US region , since there is a priority of 1 to the service endpoint attached to this endpoint.

3. Now let's say there is an issue with the web application running in the East US region, Azure Traffic Manager would then understand that there is an issue with the web application running in this region.

It would then start redirecting user requests to the second endpoint which has the Priority of 2.

Hence over here you are adding a higher availability to your architecture by ensuring that user requests are always adhered to by redirecting requests if the primary service fails for any reason.

If you use the Weighted Routing method , you can actually load balance requests across multiple service endpoints

Over here , users requests would be directed or load balanced across both web applications running in different regions.

In the Performance routing method as shown below, users will be directed based on the least latency of an endpoint.

And then we have the Geographic routing method wherein users would be directed to an endpoint based on their geographic location



Important Points - Part 2

Monitoring in Azure

For all monitoring aspects you can head over to Azure Monitor.

1. You can use the Metrics section to view the entire metrics for your Azure resources

2. You can use the Activity Log feature to look at all the control plane activities. So if someone has shutdown a virtual machine, you would be able to see who shutdown the virtual machine in the Activity Logs.

3. You can also view any service related issues in the Service health module of Azure Monitor

4. You can also create a service health alert in Azure Service Health

5. You can also direct logs from various resources such as Azure virtual machines onto the Logs section. Here you have to create a Log Analytics workspace to store the logs

Azure Kuberntes

What is Kubernetes?

  • This is an open-source platform that is used to managing containerized workloads.

  • Kubernetes is able to provide a DNS name to your container.

  • If there is a high load on your containers , Kubernetes can load balance and distribute network traffic.

  • Kubernetes can also restart containers that fail.

  • It can be used to replace or kill containers.

  • It also helps to store and manage sensitive information such as passwords, OAuth tokens and ssh keys


What is Azure Kubernetes?


  • Fully managed Kubernetes service on Azure.

  • Makes it easy to deploy and manage containerized applications.

  • It helps to remove the burden of managing the underlying infrastructure for the Kubernetes deployment.


Azure Content Delivery Network


This is an ideal service to use for your web applications. If you need content to be distributed to users across the world for your web sites , then its ideal to use the Azure Content Delivery Network Service

  • Here the users are directed on various Edge servers by the Content Delivery Network service.

  • The Edge servers will get the content from your web site and also cache frequently accessed content.

  • The Edge servers are located across the world , so it gives all users a seamless experience when it comes to accessing your web site.


Azure Advisor

Use this tool to get various recommendations on aspects such as Cost, Security and High Availability.



Important Points - Part 3

Application Insights

Points on this service

  • Application Performance Management service for web developers.

  • You can use this tool to monitor your applications.

  • It can help developers detect anomalies in the application.

  • It can help diagnose issues.

  • It can also help understand how users use your application.

  • It also helps you improve performance and usability of your application.


How does it work


  • You install a small instrumentation package within your application.

  • You can see the statistics of your application locally in Visual Studio as you run your application.

  • You can also use the Application Insights resource in Azure to monitor your application.


What are the different aspects monitored by Application Insights


  • Request rates, the response times and failure rates – This is done at the page level.

  • Exception recorded by your application.

  • Page views and their load performance as reported from the user’s browser.

  • User and session counts.

  • Performance counters of the underlying Windows or Linux Machines.

  • Diagnostic trace logs from your application.

  • Any custom events or metrics that the developer writes themselves in the code.


Azure Cognitive services


Azure Cognitive Services are API’s , SDK’s and services available for helping developers building intelligent applications.

Here the developer does not need to have any AI or data science skills.

There are many services available for developers to make use of

Computer Vision – This helps developers process images and return information. You just supply the image, and the service can help identify the image.

  • This service can detect objects, help provide categories for the image.

  • It can also detect color , faces , help describe an image.

  • It can also extract text from images.

  • It can also help moderate content in images.


Face API – This can be used to detect, recognize and analyze human faces in images.

  • It can also help find similar faces from a set of images.

  • It can also help identify a detected face against a database of people.

Speech services

  • You can use the Speech-to-Text service to translate speech to text.

  • You can also generate synthesized speech from text using Text-to-Speech.


Azure Machine Learning

  • Machine learning is the process that enables computers to use existing data to forecast future behaviors , outcomes and trends.

  • Here the computers don’t need to be programmed on how to learn.

  • Azure Machine Learning gives you a cloud-based environment for preparing data, train the data, testing, deploying and managing machine learning models.

  • You get a visual interface which can be used to drag and drop modules to build experiments and deploy models.

  • Machine Learning Studio – This is a drag-and-drop visual workspace which you can use to build, test and deploy machine learning solutions without the need of writing any sort of code.

  • This tool has prebuilt and preconfigured machine learning algorithms.


Azure HDInsight


  • This is a cloud distribution of Hadoop based components.

  • Azure HDInsight allows you to process large amounts of data.

  • You can use HDInsight for a variety of big data processing scenarios such as Data warehousing , Batch processing and for Data science as well.

  • You can create different types of clusters – Apache Hadoop, Apache Spark, Apache Hbase.

  • HDInsight also supports a host of programming languages such as Java, Python, .Net and Go.


Azure DevOps

  • This is a complete set of tools that can be used to help teams to plan work, collaborate on code development and build and deploy applications.

  • Azure DevOps have the following services in place

  • Azure Repos – This allows you to host Git repositories or use Team Foundation Version Control.

  • Azure Pipelines – This provides build and release services for continuous integration and release.

  • Azure Boards – This helps to plan and track work items.

  • Azure Test Plans – This provides tools for testing of applications.

  • Azure Artifacts – This allows teams to share Maven, npm and NuGet packages from public and private sources.

Azure DevTest Labs

  • This service allows developers to efficiently self-manage virtual machines and PaaS resources without the need to wait for approvals.

  • The DevTest Labs can be used to create labs consisting of pre-configured bases or Azure Resource Manager templates.

  • With DevTest Labs, you can quickly provision Windows and Linux based environment through the use of reusable templates and artifacts.

  • You can easily create load testing environments and create environments for training and demos.

  • This service also helps in optimizing costs through the following features

  • Here you can set an auto-shutdown and auto-start schedules for virtual machines.

  • You can set policies on the number of virtual machines users can create.

  • You can set policies on the size of the virtual machine.

  • You can track costs.

No comments:

Post a Comment