How to design and build cloud solutions on Azure
I’m so glad to be part of this years Azure Spring Clean week. Kudos to Joe Carlyle and Thomas Thornton for their effort in putting this event together, and for giving me a chance to present “my case”. 🙂 I will write/talk about building cloud solutions. The article will cover most of the baseline and resources. The embedded video talks about lessons learned during the process.
Hint:Be sure to check other content, published during the week (March 13th – 17th) on: https://www.azurespringclean.com
Setting the stage …
Cloud computing is transforming the way organizations deliver and consume IT services. However, cloud adoption is not a one-size-fits-all process. It requires careful planning, design, implementation, and optimization to achieve the best business outcomes. During my journey (with my customers), I rely on:
- Azure Cloud Adoption Framework (CAF)
- Azure Well-Architected Framework (WAF)
- Azure Reference Architectures
- Design Patterns (and Anti-patterns)
- Azure Subscription limits and Quotas
- Azure resources naming conventions and tagging
Hint:Last three items are actually part of the resources above. Design patterns are part of the Reference Architectures, and the other two are part of CAF. I emphasized them on purpose 🙂
Azure Cloud Adoption Framework (CAF)
The Cloud Adoption Framework is a set of proven guidance and best practices that help you confidently adopt the cloud and achieve business outcomes. The framework provides tools, guidance, and narratives that help you shape your technology, business, and people strategies for cloud adoption.
The framework consists of six stages:
- Define your strategy: Identify your business drivers, expected outcomes, risks, readiness, and skills gaps for cloud adoption.
- Plan your approach: Define your cloud adoption plan based on your current state assessment, desired future state vision, business case analysis, governance model, landing zone design, migration approach, innovation roadmap, and change management plan.
- Ready your organization: Prepare your organization for cloud adoption by establishing a Cloud Center of Excellence (CCoE), developing a cloud skills plan, setting up a landing zone environment on Azure using best practices for security and governance.
- Adopt the cloud: Execute your cloud adoption plan by migrating or modernizing existing workloads or building new solutions on Azure using agile methodologies and DevOps practices.
- Govern and manage: Establish policies and processes to monitor, optimize, secure, and govern your cloud environment using Azure management tools such as Azure Monitor, Azure Policy, Defender for Cloud, and Azure Cost Management + Billing.
- Innovate on the cloud: Leverage the capabilities of Azure to create new value for your customers by adopting emerging technologies such as artificial intelligence (AI), Internet of Things (IoT), blockchain, and server-less computing.
Hint:I will cover each stage in the video, matched with lessons learned and some customer stories. I also did a three-part article on the topic, you might look at as well (Cloud adoption in the era of accelerated Digital Transformation)
Azure Well-Architected Framework (WAF)
The Azure Well-Architected Framework is a set of guiding tenets that can help you improve the quality of your workload on Azure.
The framework consists of five pillars of architectural excellence:
- Reliability: Ensure that your workload can recover from failures quickly and gracefully without impacting customer experience or data integrity.
- Security: Protect your workload from unauthorized access and data breaches by applying security controls at every layer and following security best practices such as encryption, identity management, and threat detection.
- Cost Optimization: Minimize the cost of running your workload by choosing the right services, scaling resources efficiently, and optimizing resource utilization.
- Operational Excellence: Improve the performance and availability of your workload by automating processes, monitoring metrics, and implementing feedback loops for continuous improvement.
- Performance Efficiency: Maximize the speed and responsiveness of your workload by designing for scalability, resiliency, and elasticity.
Each pillar has a set of design principles and questions that can help you assess the current state of your workload and identify areas for improvement.
Azure Reference Architectures
Azure Reference Architectures are architecture diagrams and technology descriptions that provide guidance for common scenarios on Azure. They illustrate how to combine different Azure services to achieve specific goals such as web hosting, data processing, or machine learning.
Some examples of reference architectures are:
- Basic web application: A simple web application hosted on App Service with a SQL Database back-end.
- Server-less web application: A scalable web application built with Functions, Logic Apps, Event Grid, Cosmos DB, Blob Storage, CDN, and Application Insights.
- Enterprise BI with SQL Data Warehouse: A data warehouse solution that ingests data from multiple sources using Data Factory,and provides interactive analytics using Synapse Analytics,and Power BI.
Design Patterns (and Anti-patterns)
Represent reusable solutions to common problems in software design. They provide guidance on how to structure your code, how to handle different scenarios, and how to optimize your performance and security.
Azure provides a catalog of design patterns that are useful for building cloud applications. Each pattern describes the problem that it addresses, considerations for applying it, and an example based on Azure.
Azure Subscription limits and Quotas
Azure imposes certain limits and quotas on various resources and services within a subscription. These limits are designed to prevent abuse, ensure fair usage, and protect the availability and performance of Azure services.
Some of these limits are fixed and cannot be changed (i.e. number of subscriptions per account or the number of resource groups per subscription). Other limits are set to default, and can be increased upon request (i.e. number of cores per region or the number of storage accounts per subscription). Furthermore, some limits are variable and depend on factors such as usage history, billing plan, or service tier (i.e. number of concurrent requests per function app or the storage capacity per SQL database).
Azure resources naming conventions and tagging
Azure is a cloud platform that offers a variety of services and resources to help you build, deploy, and manage your applications. However, as your Azure environment grows and becomes more complex, it can be challenging to keep track of all the resources you have created and how they relate to each other. That’s why it’s important to have a consistent and meaningful naming convention for your Azure resources.
A naming convention is a set of rules or guidelines that you follow when naming your resources. It helps you to:
- Identify the purpose, function, location, and owner of each resource.
- Organize your resources into logical groups or categories.
- Avoid name conflicts or duplicates within a scope.
- Simplify your resource management and governance tasks.
- Enhance your security and compliance posture.
The structure and format of your resource names should be consistent across all types of resources. You should use common elements such as prefixes, suffixes, separators, abbreviations, case sensitivity, length limits, etc. You should be aware that there are resource naming restrictions, that need to be taken in consideration. There is uniqueness per resource provider namespace.
Azure resource tagging is a feature that allows you to assign metadata to your Azure resources. Tags are key-value pairs that help you categorize and manage your resources based on criteria that are relevant to your organization.
Hint:For example, you can use tags to identify the owner, department, project, environment, or cost center of a resource.
You can also use tags to filter and report on your resources based on their tags. Azure supports up to 15 tags per resource and resource group.
Hint:Define your naming convention – Cloud Adoption Framework | Microsoft Learn
Resource naming restrictions – Azure Resource Manager | Microsoft Learn
“The stage” 🙂
Alright, this was a rather quick overview of the journey to the cloud. Each of the frameworks and/or materials referenced are quite comprehensive, give detailed information per topic covered.
Keep in mind that, they are derived by experiences drawn from different Enterprise project that Microsoft had. This does not mean, that with a little bit of creativity and adaptation they can’t be used in smaller environments as well.
They provide excellent prescriptive guidance, that You can use when embarking on Your Cloud Adoption Journey!