Creating reference architectures

In creating reference architectures, a RACI matrix can be used to identify team members' roles and responsibilities. The Cloud Migration Lead is accountable, while Cloud Architects and Engineers are responsible. Other team members are consulted or informed as needed. To establish reference architectures based on the Microsoft Azure Well-Architected Framework, one should become familiar with the WAF, define objectives and limitations, determine relevant architectures, adapt them, and communicate them to stakeholders. The process is continuous, and the document should be easy to read, include important facts and examples, and use a consistent style and format.

Tags: cloud azure microsoft architects engineers reference | Categories: factory

My helpful screenshot

Creating reference architectures

A RACI matrix is a tool that is used to identify the roles and responsibilities of team members in a project or process. RACI stands for Responsibility, Authority, Competence, and Information. The matrix establishes the following four roles: Responsible, Accountable, Consulted, and Informed.

When used to the process of developing reference architectures, the RACI matrix may have something like this appearance:

Accountable: Cloud Migration Lead Responsible: Cloud Architects and Engineers in the Cloud Engineers in the Cloud

Those who were consulted included network and security engineers, a DevOps engineer, a quality assurance engineer, an application owner, and a technical writer.

Release Manager, Build Engineers, Deployment Engineers, and Operations Engineers are aware of the Situation.

Designing and carrying out the implementation of the reference architectures will be the responsibility of the Cloud Architect as well as the Cloud Engineers. The Cloud Migration Lead would be responsible for the overall success of the project and would have final decision-making authority over any issues that arose. When it was determined that more input and expertise were required, the Network and Security Engineers, DevOps Engineer, Product Owners, Application Owners, Quality Assurance Engineer, and Technical Writer would be consulted. Everyone involved with the project, including the Release Manager, Build Engineer, Deployment Engineer, and Operations Engineer, would be kept up to date on its development and current state.

It is essential to keep in mind that the RACI matrix is only one of the many tools that may be utilised to define roles and responsibilities in the context of a project. The particular requirements and objectives of your business will determine the precise jobs and tasks that must be filled.

You may follow these steps in order to establish reference architectures for your business that are suitable for their intended use and are based on the Microsoft Azure Well-Architected Framework (WAF):

The first thing you should do is become familiar with the Azure WAF and gain an understanding of the fundamental ideas and best practises that are recommended by it. You may learn more about the WAF by reading the documentation that is available or by participating in training events or workshops.

The next step is to define the objectives and restrictions that apply to your reference architectures. This includes determining the business needs and goals that the designs need to achieve, in addition to taking into consideration any technological or operational restrictions that may apply.

Determine which architectures are relevant once you have determined your objectives and limitations, you can begin determining which architectures from the Azure WAF are pertinent to your situation. This may entail talking with subject matter experts and stakeholders, as well as analysing the suggestions and guidelines provided by the WAF.

Once you have discovered appropriate architectures, the next step is to adapt and modify them so that they meet the particular demands and requirements of your business. This may need making adjustments to the architectures in order to align them with the aims and restrictions of your organisation. Alternatively, this may include adding more components or features to the architectures.

Finally, you will need to record and communicate the architectures to important stakeholders. This step is an essential part of the process. This may require generating diagrams and documentation to describe the architectures, as well as organising training sessions or workshops to educate stakeholders on the architectures. Additionally, this may involve educating stakeholders on the architectures.

It is essential to keep in mind that the process of developing reference architectures is a continuous one. As such, you will need to routinely evaluate and update the designs to ensure that they continue to serve their intended function within your organisation.

When it comes to generating a paper to record your reference architectures, here are some general criteria that you may follow:

Make sure you use language that is plain and succinct throughout the whole paper and avoid using any sophisticated phrases or technical jargon unless it is absolutely necessary to do so.

Include important facts and examples: If you want your readers to grasp the reference designs and how they may be implemented, you need to provide them with enough detail and examples. This could include flowcharts, snippets of code, and several other forms of supplementary information.

Make the document simpler to scan and read by organising its content using headings and subheadings. Headings and subheadings may be used to arrange the material of the document and make it more readable.

Use bullet points and lists to draw attention to the most important points: Use bullet points and lists to draw attention to the most important points and make the information simpler to grasp.

Include suitable references and citations: If you are going to refer to other sources in your paper, you need to be sure that you include the appropriate references and citations.

Employ a style and format that is constant throughout the document: Employing a style and format that is consistent throughout the document will increase the document’s readability and make the material appear more professional. This may involve making sure that the headers and the body content use the same font and layout, as well as ensuring that there is adequate space and margins.

Reference: Microsoft Azure Well-Architected Framework - Azure Architecture Center Microsoft Learn

Microsoft Azure Well-Architected Framework

The Microsoft Azure Well-Architected Framework (WAF) is a collection of best practises and guidelines for the design and operation of cloud-based systems that are dependable, secure, efficient, and resilient. The WAF was developed to assist businesses in the process of designing architectures that are in line with their business objectives and cater to the requirements of their users.

The WAF is constructed on the following five pillars: operational excellence, security, reliability, performance efficiency, and cost optimization. Each pillar provides companies with a collection of recommended procedures and best practises that they may implement to design architectures that are suitable for use in the cloud.

Excellence in operations: The goal of this pillar is to assist businesses in maximising the efficiency of their operations in the cloud. It provides the most effective methods for handling incidents and changes in management, as well as monitoring.

Security is the primary emphasis of this pillar, which is designed to assist businesses in protecting both their systems and their data while it is stored in the cloud. It provides recommended procedures for the administration of identities and access, the protection of data, and the security of networks.

Reliability pillar’s primary focus is on assisting enterprises in the process of developing cloud-based solutions that are dependable. It offers recommendations for optimal approaches to disaster recovery, high availability, and testing.

Efficiency pillar is designed to assist businesses in maximising the functionality of the systems they run on the cloud. It covers recommended procedures for monitoring, autoscaling, and capacity planning.

Cost optimization which is designed to assist businesses in optimising their expenses while operating in the cloud. It comprises efficient methods of cost management, resource management, and rightsizing, among other things.

In general, the Azure WAF is an invaluable resource for businesses who are interested in developing architectures that are suitable for use in the cloud and can meet the requirements of those designs. In the cloud, enterprises are able to develop and manage systems that are dependable, secure, efficient, and cost-effective if they follow the best practises and recommendations of the cloud provider.

A more in-depth discussion of each of the five pillars:

Excellence in operations: The goal of this pillar is to assist businesses in maximising the efficiency of their operations in the cloud. It provides the most effective methods for handling incidents and changes in management, as well as monitoring.

Management of events requires the establishment of systems and technologies that can identify, diagnose, and effectively address issues in a timely way. This is referred to as “incident management.”

Change management is the practise of building methods and tools to manage and control changes to systems and environments in a reliable and predictable way. This process is known as “change management.”

Monitoring: This requires developing procedures and tools to monitor the availability, health, and performance of systems and environments that are hosted in the cloud.

Security is the primary emphasis of this pillar, which is designed to assist businesses in protecting both their systems and their data while it is stored in the cloud. It provides recommended procedures for the administration of identities and access, the protection of data, and the security of networks.

Management of identities and access requires the establishment of procedures and tools for the purpose of managing and controlling access to cloud-based computer systems and data.

The process of protecting data against illegal access, alteration, or loss requires the establishment of procedures and the utilisation of appropriate instruments.

Establishing procedures and technologies to protect the network infrastructure in the cloud is an essential part of this step for ensuring network security.

This pillar’s primary focus is on assisting enterprises in the process of developing cloud-based solutions that are dependable. It offers recommendations for optimal approaches to disaster recovery, high availability, and testing.

Establishing procedures and technologies to enable the recovery of data and systems in the case of a catastrophe is what is meant by the term “disaster recovery.”

High availability refers to the process of putting in place procedures and tools to ensure that all environments and systems are always accessible and receptive to human input.

Testing: This entails the establishment of procedures and tools to test the dependability of cloud-based systems and environments.

Efficiency in performance is the emphasis of this pillar, which is designed to assist businesses in maximising the functionality of the systems they run on the cloud. It covers recommended procedures for monitoring, autoscaling, and capacity planning.

Planning for capacity entails putting in place procedures and instruments to make certain that all systems and environments have the resources to cater to the requirements of their users.

Autoscaling is the process of automatically increasing or decreasing the size of a system or environment in response to changes in demand. This process requires the establishment of procedures and tools.

Monitoring entails the establishment of procedures and tools for the purpose of monitoring the functioning of systems and environments that are hosted in the cloud.

Cost optimization is the primary emphasis of this pillar, which is designed to assist businesses in optimising their expenses while operating in the cloud. It comprises efficient methods of cost management, resource management, and rightsizing, among other things.

Establishing methods and tools to monitor and optimise expenses in the cloud is an essential part of cost management, which is referred to as “cost management.”

Management of resources requires the establishment of procedures and tools that allow for the effective management and utilisation of resources in the cloud.

The term “rightsizing” refers to the act of putting in place procedures and tools to guarantee that systems and environments are of an appropriate scale to fulfil the requirements of users.

Basic Web Application reference architecture

It is necessary for us to begin with relatively straightforward scenarios, or examples, if we are to make progress together on the path toward the industrialization of product distribution. Expect to develop your understanding as you continue reading the book; but do not anticipate that it will be feasible to write about all the themes in length. Do expect to improve your understanding as you continue reading the book.

Here is a high-level description of a basic web application reference architecture based on Microsoft Azure Reference Architectures:

Compute: The web application is hosted on Azure App Service, a fully managed platform-as-a-service (PaaS) that allows developers to build, deploy, and scale web, mobile, and API applications.

Storage: The web application stores data in Azure SQL Database, a fully managed relational database service that provides built-in intelligence and high availability.

Networking: The web application is accessed over the internet via a public endpoint, and traffic is routed through Azure Front Door, a global, scalable, and secure entry point for web applications.

Security: The web application is secured using Azure Active Directory, a cloud-based identity and access management service, and Azure Key Vault, a cloud-based service for securely storing and accessing secrets.

Monitoring and diagnostics: The web application is monitored and diagnosed using Azure Monitor, a platform-wide monitoring service that provides insights into the health, performance, and availability of the application.

This is just one example of a basic web application reference architecture based on Azure Reference Architectures. The specific architecture will depend on the needs and requirements of the web application.

Basic web application - Azure Reference Architectures Microsoft Learn

Here is a partial example of Ansible code that you could use to implement the basic web application reference architecture that I described earlier:

---

- name: Create Azure resources

 hosts: localhost

 connection: local

 tasks:

   - name: Create resource group

     azure_rm_resourcegroup:

       name: myresourcegroup

       location: eastus

     register: rg

 

   - name: Create App Service plan

     azure_rm_appserviceplan:

       resource_group: "{{ rg.name }}"

       name: myappserviceplan

       sku: B1

     register: asp

 

   - name: Create Web App

     azure_rm_webapp:

       resource_group: "{{ rg.name }}"

       name: mywebapp

       app_service_plan: "{{ asp.name }}"

       app_settings:

         - name: KEY1

           value: VALUE1

         - name: KEY2

           value: VALUE2

 

   - name: Create SQL Database

     azure_rm_sqlserver:

       resource_group: "{{ rg.name }}"

       name: mysqldb

       admin_password: password

       location: "{{ rg.location }}"

     register: sqlserver

 

   - name: Create SQL Database

     azure_rm_sqldatabase:

       resource_group: "{{ rg.name }}"

       server_name: "{{ sqlserver.


Here is an example of the variables structure that you can use with the Ansible code I provided earlier:

---

resource_group: myresourcegroup

app_service_plan: myappserviceplan

web_app: mywebapp

sql_server: mysqldb

You can define these variables in a separate file (e.g., “vars.yml”) and reference them in the playbook (e.g., “playbook.yml”) using the “include_vars” module. For example:

---

- name: Create Azure resources

 hosts: localhost

 connection: local

 tasks:

   - name: Load variables

     include_vars: vars.yml

 

   - name: Create resource group

     azure_rm_resourcegroup:

       name: "{{ resource_group }}"

       location: eastus

     register: rg

 

   - name: Create App Service plan

     azure_rm_appserviceplan:

       resource_group: "{{ resource_group }}"

       name: "{{ app_service_plan }}"

       sku: B1

     register: asp

 

   - name: Create Web App

     azure_rm_webapp:

       resource_group: "{{ resource_group }}"

       name: "{{ web_app }}"

       app_service_plan: "{{ app_service_plan }}"

       app_settings:

         - name: KEY1

           value: VALUE1

         - name: KEY

In these two samples of code, we can begin to see the basis, which consists of the separation of the variables and the play. In the future, we will fully modify this by using the ideas of Build of Material and Recipes. The definitions of variables in Ansible will eventually turn into our BOM, and the Ansible Plays will serve as our recipes.

After this has been established, we will create our own ansible actions. Rather than utilising native ones, we will develop our own that are congruent with the enterprise’s security and compliance requirements.

The fact that everything is built on YAML is another key basis; this means that it can be composed automatically, and it can also be produced as a text template. Both options are available.

Marcio Parente

03 April 2023

Keep In Touch

Feel free to contact us for any
project idea or collaboration

support@deixei.com

Zug, Switzerland