Tuesday, January 5, 2021

What everyone gets for free

The Azure resources that everyone gets for free is pretty impressive.  I am a big fan of Azure Functions and the way they evolved and how they (and similar offerings) fit into the cloud ecosystem.  They are #2 in our list today, but I look forward to spending a week or more talking about the how and the why of them.  For now, let's get through the inventory of resources available to us.  

The first three always free resources are App Services, Azure Functions, and Active Directory.  App Services are platform as a service (PaaS) locations where we can run code.  The code can take input and return responses.  The input can be a request for a resource like a web page and the output the page, or the input request could be a more formal REST call done by a program.  The main point is that the programs are always sitting and waiting to service requests.  Azure Functions are PaaS locations where we can run code also.  The code can take input and return responses.  The main difference is that Azure Functions are not sitting around waiting for requests like App Services do.  They are instantiated when a request comes in and destroyed when the response is returned.  The difference is somewhat subtle, but important.  Very important.  Last in the top 3 is Active Directory.  This is a PaaS offering of Identity Management.  Microsoft Active Directory (AD) is where we will store accounts and can be used to store rights.  AD is used to help us solve the twin problems of Authentication and Authorization.  You will often see these abbreviated as AuthN and AuthZ.  Simply, prove who you are and what you have rights to do.  A drivers license is an AuthN/AuthZ artifact.  It is used to prove your identity and also your right to operate a motor vehicle.

The next free resource is Active Directory BC or ADBC which is used for storing customer identity and authorization.  The next is Service Fabric Containers which is a container orchestration and container ecosystem.  Containers are just ways of packaging our code (similar to App Service and Azure Functions) and an orchestrator just makes sure it is running.  Oversimplification, but we aren't going to dig into them for a while because this free is just the orchestration layer.  We would need to pay for the compute time used by the containers running underneath.  It wouldn't be much, but it would be more than nothing.  Last in our current trio is Azure DevOps or Azure Development and Operations toolkit.  This is our source control, build and deploy automation, and SDLC (software development lifecycle) management tool combined.  When we write code, we will store it here.  


Our next two are more tooling to help build software.  The first is Application Insights which is a central log consolidation and dashboard tool.  It lets us monitor our application and resources from a central location.  Next is DevText Lab which is a testing automation suite to help us test our application.  The third in this row is the Azure Security Center which consolidates all of the policies and monitoring of our resources and application into a single location.

The next three are more different than alike.  The first is Azure Advisory which is a knowledge base and training suite along with some AI driven tools that can help you optimize your resource usage and technology choices.  This will actually be very important to us later on as we start to spend money, but it will also help us get the most out of what is offered for free.  Never pass up informed advice.  The next always free resource is Microsoft IoT Hub.  IoT stands for Internet of Things and the IoT Hub is used to consolidate telemetry messages from devices and serve them up for other programs to use.  Last is a Load Balancer which is one of the central cloud building blocks.  It allows us to have many workers appear as one to the outside.  It lets us scale out. 

Ok, quick break.  The list keeps going, but I am a little tired of this and figured that if you have read this far you might be as well.  Also, I can sort of hide this aside in this long list and it might be overlooked.  Either way, I want to say thank you for reading.  My plans for this series are to provide low barrier insight into both how things work in the cloud and how you can use the resources available for low costs or free.  I also hope to provide some insight into the why and how rather than just the what.  That seems opaque to me and I wrote it!  Let me try again.  I want to document my thought process and the measures I am using to make decisions so that you can see another perspective.  Finally, I am selfishly using this to help me order my own thoughts and ideas. On with the show.

The Data Factory isn't something I know much about, but I believe it is used to ingest data at scale.  That is, you can hook it up to various data sources and it will bring the data or summaries of the data into your system so that your programs can manipulate or compute with it.  Azure Search is something that I have played with a lot, and it is very powerful.  I will surely spend at least a couple of days on it, but it will be much later.  Notification Hub is a way for our application or system to send notifications.  When a program on your phone/tablet/computer pops up a message, that is a notification.
Batch is used to automate tasks, and schedule them.  If you have a program that cleans up your data that you want to run every 2nd Friday of the month, then this can do it.  Automation is what it sounds like, a way of combining many tasks into one.  I haven't played with this but I believe we will get to build some no-code or low-code programs using it.  Last in this list is Data Catalog which appears to be a way of presenting your data to internal users for analysis.  I haven't worked with it yet, but will spend some time with it to see if we can utilize it.
Face is another new to me service that uses AI to determine emotions in images.  I can't see any reason for us to know or care if an image shows someone who is angry, but perhaps you can?  I am going to embed a pitch for feedback here, let me know if anything seems interesting and I will gladly dig into it more.  Log Analytics is somewhat light Application Insights but more removed.  Feed it your logs and it will look for patterns and anomalies.  Scheduler is related to Batch above, it is what will allow you to schedule tasks.  It can be as simple as once a week, or as complex as every third Tuesday in odd months.  
Virtual Networks allow us to isolate and connect our internal compute resources together without exposing them to the internet.  They are another of the important cloud building blocks.  Inter-VNET Data Transfer is what allows us to connect our Virtual Networks (VNETs) together.  Finally, Bandwidth is our outbound traffic.  
The next resource is Machine Learning or AI, and it allows us to build out automatic classification applications.  Container Services allows us to manage our packaged programs. And finally, Machine Learning Studio is an environment for us to build and test AI modeling tools. 
That is it, our introduction is done.  I have gone through the resources available to use in our Azure account at a high level.  Next we will dig into some of them in more depth and see what we can build.