cloud_native_azure

Cloud Native Azure

Return to Cloud Native, Cloud Native Bibliography

Let's start with a simple definition:

Cloud-native architecture and technologies are an approach to designing, constructing, and operating workloads that are built in the cloud and take full advantage of the cloud computing model.

The Cloud Native Computing Foundation provides the official definition:

Cloud-native technologies empower organizations to build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds. Containers, service meshes, microservices, immutable infrastructure, and declarative APIs exemplify this approach.

These techniques enable loosely coupled systems that are resilient, manageable, and observable. Combined with robust automation, they allow engineers to make high-impact changes frequently and predictably with minimal toil.

Cloud native is about speed and agility. Business systems are evolving from enabling business capabilities to weapons of strategic transformation that accelerate business velocity and growth. It's imperative to get new ideas to market immediately.

At the same time, business systems have also become increasingly complex with users demanding more. They expect rapid responsiveness, innovative features, and zero downtime. Performance problems, recurring errors, and the inability to move fast are no longer acceptable. Your users will visit your competitor. Cloud-native systems are designed to embrace rapid change, large scale, and resilience

Here are some companies who have implemented cloud-native techniques. Think about the speed, agility, and scalability they've achieved.

Company Experience Netflix Has 600+ services in production. Deploys 100 times per day. Uber Has 1,000+ services in production. Deploys several thousand times each week. WeChat Has 3,000+ services in production. Deploys 1,000 times a day. As you can see, Netflix, Uber, and, WeChat expose cloud-native systems that consist of many independent services. This architectural style enables them to rapidly respond to market conditions. They instantaneously update small areas of a live, complex application, without a full redeployment. They individually scale services as needed.

The pillars of cloud native The speed and agility of cloud native derive from many factors. Foremost is cloud infrastructure. But there's more: Five other foundational pillars shown in Figure 1-3 also provide the bedrock for cloud-native systems.

Cloud-native foundational pillars

Figure 1-3. Cloud-native foundational pillars

Let's take some time to better understand the significance of each pillar.

The cloud Cloud-native systems take full advantage of the cloud service model.

Designed to thrive in a dynamic, virtualized cloud environment, these systems make extensive use of Platform as a Service (PaaS) compute infrastructure and managed services. They treat the underlying infrastructure as disposable - provisioned in minutes and resized, scaled, or destroyed on demand – via automation.

Consider the widely accepted DevOps concept of Pets vs. Cattle. In a traditional data center, servers are treated as Pets: a physical machine, given a meaningful name, and cared for. You scale by adding more resources to the same machine (scaling up). If the server becomes sick, you nurse it back to health. Should the server become unavailable, everyone notices.

The Cattle service model is different. You provision each instance as a virtual machine or container. They're identical and assigned a system identifier such as Service-01, Service-02, and so on. You scale by creating more of them (scaling out). When one becomes unavailable, nobody notices.

The cattle model embraces immutable infrastructure. Servers aren't repaired or modified. If one fails or requires updating, it's destroyed and a new one is provisioned – all done via automation.

Cloud-native systems embrace the Cattle service model. They continue to run as the infrastructure scales in or out with no regard to the machines upon which they're running.

The Azure cloud platform supports this type of highly elastic infrastructure with automatic scaling, self-healing, and monitoring capabilities.

Modern design How would you design a cloud-native app? What would your architecture look like? To what principles, patterns, and best practices would you adhere? What infrastructure and operational concerns would be important?

The Twelve-Factor Application A widely accepted methodology for constructing cloud-based applications is the Twelve-Factor Application. It describes a set of principles and practices that developers follow to construct applications optimized for modern cloud environments. Special attention is given to portability across environments and declarative automation.

While applicable to any web-based application, many practitioners consider Twelve-Factor a solid foundation for building cloud-native apps. Systems built upon these principles can deploy and scale rapidly and add features to react quickly to market changes.

The following table highlights the Twelve-Factor methodology:

Factor Explanation 1 - Code Base A single code base for each microservice, stored in its own repository. Tracked with version control, it can deploy to multiple environments (QA, Staging, Production). 2 - Dependencies Each microservice isolates and packages its own dependencies, embracing changes without impacting the entire system. 3 - Configurations Configuration information is moved out of the microservice and externalized through a configuration management tool outside of the code. The same deployment can propagate across environments with the correct configuration applied. 4 - Backing Services Ancillary resources (data stores, caches, message brokers) should be exposed via an addressable URL. Doing so decouples the resource from the application, enabling it to be interchangeable. 5 - Build, Release, Run Each release must enforce a strict separation across the build, release, and run stages. Each should be tagged with a unique ID and support the ability to roll back. Modern CI/CD systems help fulfill this principle. 6 - Processes Each microservice should execute in its own process, isolated from other running services. Externalize required state to a backing service such as a distributed cache or data store. 7 - Port Binding Each microservice should be self-contained with its interfaces and functionality exposed on its own port. Doing so provides isolation from other microservices. 8 - Concurrency When capacity needs to increase, scale out services horizontally across multiple identical processes (copies) as opposed to scaling-up a single large instance on the most powerful machine available. Develop the application to be concurrent making scaling out in cloud environments seamless. 9 - Disposability Service instances should be disposable. Favor fast startup to increase scalability opportunities and graceful shutdowns to leave the system in a correct state. Docker containers along with an orchestrator inherently satisfy this requirement. 10 - Dev/Prod Parity Keep environments across the application lifecycle as similar as possible, avoiding costly shortcuts. Here, the adoption of containers can greatly contribute by promoting the same execution environment. 11 - Logging Treat logs generated by microservices as event streams. Process them with an event aggregator. Propagate log data to data-mining/log management tools like Azure Monitor or Splunk and eventually to long-term archival. 12 - Admin Processes Run administrative/management tasks, such as data cleanup or computing analytics, as one-off processes. Use independent tools to invoke these tasks from the production environment, but separately from the application. In the book, Beyond the Twelve-Factor App, author Kevin Hoffman details each of the original 12 factors (written in 2011). Additionally, he discusses three extra factors that reflect today's modern cloud application design.

New Factor Explanation 13 - API First Make everything a service. Assume your code will be consumed by a front-end client, gateway, or another service. 14 - Telemetry On a workstation, you have deep visibility into your application and its behavior. In the cloud, you don't. Make sure your design includes the collection of monitoring, domain-specific, and health/system data. 15 - Authentication/ Authorization Implement identity from the start. Consider RBAC (role-based access control) features available in public clouds. We'll refer to many of the 12+ factors in this chapter and throughout the book.

Fair Use Sources

Cloud Native Computing Foundation: CNCF Projects, Cloud Native Frameworks, Cloud Native DevOps - Cloud Native SRE - Cloud Native CI/CD, Cloud Native Security - Cloud Native DevSecOps - Falco, Cloud Native Kubernetes, Cloud Native Containerization, Cloud Native Docker, Cloud Native Service Mesh, Cloud Native Microservices, Cloud Native AWS - Cloud Native AWS - Cloud Native GCP - Cloud Native IBM Cloud - Cloud Native Mainframe, Cloud Native Mobile (Cloud Native Android, Cloud Native iOS), Cloud Native Programming Languages ( Cloud Native C# .NET - Cloud Native Azure, Cloud Native Golang, Cloud Native Java - Cloud Native Spring - Cloud Native Quarkus, Cloud Native JavaScript - Cloud Native React, Cloud Native Kotlin, Cloud Native Python - Cloud Native Django - Cloud Native Flask, Cloud Native Rust, Cloud Native Swift, Cloud Native TypeScript - Cloud Native Angular; Cloud Native Linux, Cloud Native Windows, Cloud Native Message Brokers, Cloud Native Kafka, Cloud Native Functional Programming, Cloud Native Concurrency, Cloud Native Data Science - Cloud Native Databases, Cloud Native Machine Learning, Cloud Native Bibliography, Manning Cloud Native Series, Cloud Native Courses, Cloud Native Glossary, Awesome Cloud Native, Cloud Native GitHub, Cloud Native Topics. (navbar_cloud_native_languages and navbar_cncf)

Cloud Native Programming Languages: Cloud Native Mobile (Cloud Native Android, Cloud Native iOS), Cloud Native Bash, Cloud Native BASIC, Cloud Native C# .NET - Cloud Native Azure, Cloud Native Clojure, Cloud Native COBOL, Cloud Native Fortran, Cloud Native Golang, Cloud Native Java - Cloud Native Spring - Cloud Native Quarkus, Cloud Native JavaScript - Cloud Native React, Cloud Native Kotlin, Cloud Native Pascal, Cloud Native Python - Cloud Native Django - Cloud Native Flask, Cloud Native Rust, Cloud Native Swift, Cloud Native TypeScript - Cloud Native Angular, Manning Cloud Native Series. (navbar_cloud_native_languages - see also navbar_cncf)

Azure: Azure Products, Microsoft Cloud, Azure Virtual Machines, Azure App Service, Azure Blob Storage, Azure SQL Database, Azure Kubernetes Service, Azure Functions, Azure Cosmos DB, Azure Active Directory, Azure Cognitive Services, Azure DevOps, Azure Logic Apps, Azure Virtual Network, Azure Key Vault, Azure Storage Account, Azure Container Registry, Azure Monitor, Azure Data Factory, Azure Databricks, Azure Machine Learning, Azure Event Grid, Azure Redis Cache, Azure API Management, Azure Cognitive Search, Azure CDN, Azure Batch, Azure Firewall, Azure Front Door, Azure Synapse Analytics, Azure Security Center, Azure ExpressRoute, Azure Container Instances, Azure Backup, Azure Data Lake Storage, Azure Advisor, Azure Service Bus, Azure Bastion, Azure Site Recovery, Azure Automation, Azure Stream Analytics, Azure DevTest Labs, Azure Data Explorer, Azure Queue Storage, Azure Load Balancer, Azure Traffic Manager, Azure SQL Data Warehouse, Azure Notification Hubs, Azure DNS, Azure Virtual WAN, Azure Sphere, Azure Information Protection, Azure Search, Azure Dev Spaces, Azure Application Gateway, Azure Resource Manager, Azure Cost Management + Billing, Azure Scheduler, Azure Relay, Azure Database for PostgreSQL, Azure Database for MySQL, Azure Maps, Azure Blockchain Service, Azure Database for MariaDB, Azure Dedicated HSM, Azure Data Share, Azure Data Box, Azure IoT Hub, Azure SQL Managed Instance, Azure Lab Services, Azure Container Service, Azure Firewall Manager, Azure API for FHIR, Azure CycleCloud, Azure Dedicated Host, Azure Active Directory B2C, Azure CDN Standard, Azure Sphere Guardian, Azure Private Link, Azure Dedicated HSM, Azure Arc, Azure VMware Solution, Azure VMware Solution by CloudSimple, Azure Blob Storage (hot, cool, archive), Azure App Service (Linux, Windows), Azure Cognitive Services (Computer Vision, Face, Speech, etc.), Azure Logic Apps (Standard, Enterprise), Azure Virtual Desktop, Azure Database for SQL Server, Azure Orbital, Azure Synapse Pathway, Azure Purview, Azure TruGrid, Azure HPC Cache.

Azure AI (Azure MLOps-Azure ML-Azure DL), Azure Compute (Azure K8S-Azure Containers-Azure GitOps, Azure IaaS-Azure Linux-Azure Windows Server), Azure Certification, Azure Data Science (Azure Databases-Azure SQL-Azure NoSQL-Azure Analytics-Azure DataOps), Azure DevOps-Azure SRE-Azure Automation-Azure Terraform-Azure Ansible-Azure Chef-Azure Puppet-Azure CloudOps-Azure Monitoring, Azure Developer Tools (Azure GitHub-Azure CI/CD-Azure Cloud IDE-Azure VSCode-Azure Serverless-Azure Microservices-Azure Service Mesh-Azure Java-Azure Spring-Azure JavaScript-Azure Python), Azure Hybrid-Azure Multicloud, Azure Identity (Microsoft Entra-Azure IAM-Azure MFA-Azure Active Directory), Azure Integration, Azure IoT-Azure Edge, Azure Management-Azure Admin-Azure Cloud Shell-Azure CLI-Azure PowerShell-AzureOps, Azure Governance, Azure Media (Azure Video), Azure Migration, Azure Mixed reality, Azure Mobile (Azure Android-Azure iOS), Azure Networking (Azure Load Balancing-Azure CDN-Azure DNS-Azure NAT-Azure VPC-Azure Virtual Private Cloud (VPC)-Azure VPN), Azure Security (Azure Vault-Azure Secrets-HashiCorp Vault Azure, Azure Cryptography-Azure PKI, Azure Pentesting-Azure DevSecOps), Azure Storage, Azure Web-Azure Node.js, Azure Virtual Desktop, Azure Product List. Azure Awesome List, Azure Docs, Azure Glossary, Azure Books, Azure Courses, Azure Topics (navbar_azure and navbar_Azure_detailed and navbar_microsoft - see also navbar_azure_devops, navbar_azure_developer, navbar_azure_security, navbar_azure_kubernetes, navbar_azure_cloud_native, navbar_azure_microservices, navbar_azure_databases, navbar_azure_iac, navbar_ibm_cloud navbar_aws, navbar_gcp, navbar_ibm_cloud, navbar_oracle_cloud)


© 1994 - 2024 Cloud Monk Losang Jinpa or Fair Use. Disclaimers

SYI LU SENG E MU CHYWE YE. NAN. WEI LA YE. WEI LA YE. SA WA HE.


cloud_native_azure.txt · Last modified: 2024/04/28 03:38 (external edit)