2021-04-08
During the last couple of months, I have been working with Microsoft Azure which is a very versatile cloud services. I have used Azure DevOps and Azure Portal
Azure DevOps is a great management application to assist with developing software. They provide a lot of features, and some of them are really useful. We can plan the software that we want to develop from creating epics, user stories and bugs. We can also create sprints, assign and divide the work load to each team member.
There is a lot of features in the Azure Cloud. Some of them that I have used are the app service and storage, I use the app service to publish the app to a different environment such as dev, UAT, ProdTest and Production, for each app service there is an application insight which is very useful to search for any information or errors or logs. As for the storage, I used the blob storage to store files and mostly images for the application that I develop. And lately, I have been working with Azure Function, which I have used as workers, separate from the main app in the app service. There are two different Azure Functions, based on their trigger, one is triggered by timer, the other one is triggered by queue. Azure Function is very powerful, as we can have full control of our data flow or software flow.
Imagine it like this, we have an app for ordering cakes from a bakery, what will happen if (in extreme) five hundreds or more people placing an order at the same time? If we process it in real-time, our app might be crashed. But if we utilise Azure Functions, we can control all of those orders by queueing it and process it at a capacity that we can handle, let's say we have a capacity to process 10 orders at the same time, and the processing time for each batch (10 orders) is roughly 1 minute. In that case, we can create an Azure Function timer trigger and set it to run every 2 minutes, that timer function will insert 10 Azure queues which contains 10 orders. And then we create another Azure Function which is the queue trigger, this function will process the orders based on the queue inserted by the timer function.