How to implement a serverless architecture on Azure - Part 7

In the last part of this series, we will underscore one of the advantages of microservices: the streamlined facilitation of deployments.

Deployment, in the context of software development, refers to the process of making a software application or system available for use. It involves moving the application from a development environment to a production environment, where it can be accessed and used by end-users.

Deployment is nowadays often automated using Continuous Integration/Continuous Deployment (CI/CD) pipelines. This process is applicable regardless of the architecture, whether it's monolithic or microservices. The distinctions emerge in the complexity of each deployment, as we will explore now.

How to deploy a monolithic architecture ?

In a scenario where the SEO professional wants to add a minor feature to the application within a monolithic architecture, the lack of isolation between bounded contexts means that the entire codebase must be deployed to production. This situation introduces risk into the deployment process. Consequently, functionalities related to authoring and marketing, which are not directly affected by the SEO feature, can potentially be degraded or impacted, even though the deployment doesn't specifically concern them.

Moral of the story: the lack of isolation increases the scope of potential side effects during deployment in a monolithic architecture.

How to deploy a microservices architecture ?

Consider the same scenario where the SEO professional wants to add a minor feature, but this time within a microservices architecture. the fact that the code is isolated between bounded contexts means that only the relevant codebase needs to be deployed into production. Authors and marketers will not be affected by the change.

How to easily deploy Azure Functions ?

There are several deployment options available for Azure Functions, but perhaps the simplest is to utilize Azure DevOps. Azure DevOps is a comprehensive set of development tools and services provided by Microsoft that facilitates the entire software development lifecycle. It offers a unified platform for managing and automating the processes involved in planning, coding, building, testing, releasing, and monitoring applications. Azure DevOps includes a range of services such as version control, build automation, release management, and collaboration tools, allowing development teams to work more efficiently and deliver high-quality software products.

In Azure DevOps, there is a dedicated task specifically designed for deploying Azure Functions.

Final words

In this series of articles, we presented a method for implementing a serverless architecture on Azure. While we didn't delve into all the nitty-gritty details, we provided guidelines and introduced important concepts such as bounded contexts to guide the development process successfully.