The competition of big IT companies for a share in the cloud services market is a fact that is happening right here, right now. For us as developers and clients, it is a comfortable situation and a convenient position. Like a viewer in the cinema, we can watch the race for innovation and enjoy being pampered with it by companies that compete in ideas and innovations just to convince us of their offer. The offer itself should be the best suited to our needs, affordable, and readily available. In the cloud environment, the level of services offered by providers is already high, so having some distinctive and innovative tool helps gain fans and potential customers a lot. One of the leaders and visionaries is Microsoft with the Azure product. In the cloud services of the Redmond giant, we find some interesting tools that will make our movement and operation in a billowy environment faster and more comfortable. This article presents 6 interesting solutions with which Microsoft Azure encourages customers.
Deploying an application to a production server is a topic that often keeps development teams and DevOps engineers awake at night. And, of course, also the customers who order the application. In addition, adjusting the configuration to the environment takes a long time. Because this process, if unsuccessful, may cause downtime in accessing the website and directly affect the end customer, it is not only risky but also stressful. Let’s add to this the possibility of unexpected errors in a deployed version and the need to make a rollback to the older version. Then the whole process starts anew, and customers still see an internal server error instead of our application, which certainly does not encourage them to our product.
In the App Service, which acts as an application manager, we have at our disposal an interesting tool called deployment slots, which is a remedy for many of the above problems.
Having an application running in a production environment and occupying one slot, we can add a second slot (called staging slot) containing a newer version of our application. We copy the configuration of the production version and publish a new slot. However, this app will have a different URL, therefore no one will see the test version of our app. After testing and making sure that the product is ready, we can swap our applications with a few clicks.
This is the essence and magic of deployment slots – application changes are made imperceptibly to users – they will not experience any downtimes, and no request will be rejected. From now on, we can enjoy the new, trouble-free application already in the production environment. In this case, everything went fine, but what if we notice a bug after some time? Fortunately, rollback is as simple as swap. Our previous version of the application was placed on a slot marked as staging, and the new one on production. Just click on the swap again and the old version goes live again. This is just a short description because there are several ways to perform a swap, as well as other settings related to deployment. Nevertheless, it is a tool that many people will appreciate and have been waiting for by all those who have dealt with the deployment process in the past.
Applications whose infrastructure is located in Azure, often use tools from other vendors, i.e. Oracle databases. Microsoft met the need to integrate its cloud environment with solutions based on third-party products. For this purpose, a special space has been prepared in which developers of third-party companies provide their certified and optimized tools for working on the Azure platform that can be easily installed in the cloud. That place is Azure Marketplace. The name couldn’t have been more accurate.
It is an integral part of the interface that we navigate, i.e. the Azure Portal, and it is visible when we create any resource. Azure Marketplace offers simple search and filtering of plugins by name, supplier, or keywords. When we browse the application gallery, we have the following filters at our disposal: pricing, operating system, publisher type, product type, and publisher name. However, when we enter the Marketplace without knowing what exact tool we want to add we can use categories. The plugins provided here are usually created by teams of developers respected on the market and the refinement is at a high level. Even so, there is a grading and review system in place that can give us a preliminary assessment of the suitability and quality. In addition, a team of Microsoft experts awards the “preferred solution” award to products that are proven, versatile, and most relevant to the requirements. There are also paid tools here, sometimes created by small or even one-person teams. So it is also an opportunity for Azure geeks who see a certain need and a gap in the availability of such a tool and who would create their own application and thus earn some money.
One of the determinants of a well-developed product is its integration with other tools.
It saves a lot of time and is simply convenient. Azure did not disappoint in this field, too, because it is possible to deploy your application in many ways, not only directly on the Azure platform using Microsoft tools.
The possibility of publishing a new version of a page stored in Azure Repos is rather obvious but e.g. choosing GitHub or Bitbucket as the source is already a nice feature. A very convenient solution from the Microsoft family is also the integration of on-premise solutions with the publishing mechanism in Azure. In the Visual Studio IDE, we have an option to publish the application to the cloud. A child’s play interface has been prepared for this, where you only need to select the appropriate options and provide your Azure account details.
Another place from which you can perform such an operation is Azure CLI, which is the Azure console management center. With the help of appropriate commands, we will prepare the variables and the resource names and, finally, trigger the deployment. However, this is a way for more advanced and conscious users.
Code can be sent by us to the cloud also from Visual Studio Code. Before we do that, however, we should get the Azure extension and log into the platform from there. In addition, you will also need Azure Resources, Azure Functions, and Azure Databases. Then, using the interface and a few commands in the terminal, you can successfully deploy, among others, Azure Functions, an application based on Node.js and MongoDB, applications located in a Docker container or a regular website. There are many more possibilities, and Azure is prepared for everything.
As we know, Azure is the global runner-up in the share of the cloud services market. Every fifth resource lying in the cloud lies in the Microsoft cloud. There are many conclusions from this fact, and one of them is that there must be a fairly high demand for specialists in the field of cloud maintenance and programming. Not all are born Solomon, or Alpha and Omega, and do not have all knowledge. There are quite a few developers and IT professionals who would like to start learning Azure but do not have enough money at their disposal to use Azure, in which literally for every resource and its storage or operation performed one has to pay. Therefore, it is difficult to start learning this platform due to the costs but to start working with Azure you need to have this knowledge and experience. A vicious circle. This is reminiscent of an anecdote about many years of experience in some field that is required from juniors.
There is also a group of potential customers thinking about locating their websites or databases on Microsoft’s servers but do not necessarily want to spend money immediately on a service that they have not checked. Perhaps Microsoft did similar market research and sounding and once again met the needs of potential developers and customers.
Well, we have a free, fully functional 30-day account on the Azure Portal. During this time, we can use up to $200 equivalent for the services and resources used. It seems to be a generous incentive and adequate time and financial resources available to test or at least learn the platform a little. After 30 days, or after running out of this virtual cash, we can switch to the pay-as-you-go plan, where we pay for everything or leave the current account settings and do not worry about any cost calculation (but without the ability to create resources or perform any operations.) To start playing with Azure Portal for free, all we need is a Microsoft account and a credit card. No worries. Everything is apparent and until we consciously switch to the pay-as-you-go tariff, no money will disappear from our bank account without our consent.
In addition, as part of helping Azure learners, Microsoft built a tool called Microsoft Learn Sandbox. It provides free access to the Azure CLI environment (i.e. the Azure console with Bash and PowerShell languages). This time we are not limited by 30 days or the amount of money to spend on services. The difficulty here is the fact that we use Azure CLI and write commands ourselves, and that the sandbox can be run by us only in 10 instances, and each of them has a time limit of 2 hours. Azure management through Azure CLI is great training for developers because it teaches about resources and services at a lower level of abstraction than the Azure Portal interface.
Azure Functions is a well-known tool from the basic range of services. However, the functions here are quite hermetic due to their limitations. In some situations, there is no manager who would manage even more inputs and outputs, the order of execution, or the monitoring of the workflow. This is where the Azure Durable Functions extension comes into play which also gives you the ability to write functions for an orchestrator. Similarly to electrical networks, where we deal with various topologies, e.g. series or parallel connection, also here we can use various patterns of connecting and managing functions. There are 6 of them, the simplest of which is function chaining, in which the output of one function is applied to the input of another function.
Another useful scheme is fan-out / fan-in, where multiple functions are executed in parallel and then wait for all functions to finish. Often, some aggregation work is done on the results that are returned from the functions. Such a solution can prove useful in all mathematical operations or in situations where multithreading proves to be effective due to faster execution. There are also four other patterns, and I think every real scenario will find its architectural counterpart. Azure Durable Functions is an extension of the standard Azure Functions, so when creating a project, for example in Microsoft’s Visual Studio, first choose the Azure Function template to specify later that we want the “Durable Functions Orchestration” version. In the Azure Portal, we create a standard service of the “Function App” type. The settlement (of costs) is the same for both versions of the website.
A great example of using the capabilities of Azure Durable Functions is, for example, an algorithm for collecting data from many temperature sensors, which is to indicate an average value. This device can deliver its readings at different times and with different latency, therefore the fan-in / fan-out pattern, which only after executing all Function Apps receives the returned values and then processes them, is a good choice here. The task of the Durable Functions module here would be to send a trigger to each of the functions (i.e. the temperature sensors) to measure the value. Then the orchestration part would wait for all the sensors to give feedback and then calculate the average temperature based on that. Durable Functions has a lot of similar uses, and it’s a great extension of the standard Azure Functions.
Azure service experts may raise their eyebrows at this point, scratch their heads a little, and think that Azure Logic Apps would be just as good to manage multiple Azure Functions. Yes, it can be a kind of substitute for Azure Durable Functions but you cannot write code for it and manage its inputs and outputs so flexibly. In addition, adding Durable Functions to an existing Function App is cheaper because you do not need to create a new resource such as Azure Logic App.
When managing an application or data, we often care about integration and easy access to all our intellectual properties. After all, we don’t like it when, while working on a project, we have to log into different systems and reach different places in search of information. To help achieve this uniformity, Microsoft offers a software as a service platform called Azure DevOps.
We will run all dev-ops processes that are needed throughout the software development cycle. It is a complete tool for developers as well as for operation teams. It combines 5 services. The first is Azure Boards, where planning and the entire area of project management are possible. The interface is ready to use Basic, Agile, Scrum, and CMMI methodologies. We have task distribution, task management, sprint overview, etc., all wrapped in a user-friendly UI. Azure Repos is aimed mainly at developers – this is where we will use a git workflow – we will store our code in the repository, we will do code review, issue pull requests, and create branches. We can also link our tasks with commits, branches, and pull requests.
Another bit of the package of services available on the platform is a tool called Azure Pipelines, which, as we read on the Microsoft website, automatically builds and tests code projects to make them available to others. It works with just about any language or project type. Azure Pipelines combines continuous integration (CI) and continuous delivery (CD) to test and build your code and ship it to any target. Azure Artifacts stores and makes available any packages that we use in our solutions to utilize one source and be independent of the rest of the code. It supports 3 types of artifacts: nuget packages, npm, and maven. In newer solutions, we can also use the Container Registry from Docker. The last of the sites is Azure Test Plans. It is a browser-based test management tool with a unified, central view of our test cases. Here you can create manual or automatic tests, link them with tasks, or even set them as a prerequisite for further CI/CD activities. Azure DevOps is a platform that gathers all development and operational management into one convenient place to use.
These are just some of the innovations that we can find on the Azure platform. The more time we spend, and the more services we use, the more such interesting solutions we will discover and try in real cases. All of them are refined and recommendable because sometimes the difficulties that we would struggle with without these solutions make us appreciate the innovation, experience, and intuition of the creators. And for us, being in the Microsoft cloud may resemble being on cloud nine.
Sebastian Iskra, Software Engineer in Rite NRG.In love with .NET from first sight and first line of code written. Interested in cloud services and solutions. Started my commercial career by writing and maintaining an internal system for managing a small company. An electronics engineer by profession.
Privately, I’m a husband of wonderful Agata, avid music enjoyer-listener, Formula 1 fan and perfumes lover. I like also any sports activities especially running, swimming and cycling. I think I’m a good housekeeper.
Technology continues to advance. It has become a significant part of our lives …
The competition of big IT companies for a share in the cloud services …
If you are looking for a framework that will allow you to build …
For most front-end developers, Angular is a well-known framework made for building applications. …
This is the best way to be up to date with what we are doing. Don’t worry – you will get a message with all the news from us once a month only. Join our community!
You can always… rite us. Get it? Rite us! OK, maybe it’s not so funny. But do rite us anyway! No, it’s not a robot you’re talking with here – Michał, Oliwia or other Rite NRG peeps will answer you.
We build, develop and deploy offsite teams. Rite people. Rite skills. That’s what creates Rite NRG.
This is the best way to be up to date with what we are doing.
All rights are reserved by Rite NRG.