【Microsoft Azure】
Microsoft Azure 是微软的公用云端服务 (Public Cloud Service) 平台，是微软线上服务 (Microsoft Online Services) 的一部份，自 2008 年开始发展，2010年2月份正式推出，目前全球有54座资料中心以及44个CDN跳跃点 (POP)，并且于2015年时被 Gartner 列为云端运算的领先者。
目前 Microsoft Azure 已包含 30 余种服务，数百项功能，并且为微软带来了12亿美元的获利 (2015年度) 。
== 发展历程 ==
Microsoft Azure 的发展最早源于2006，由Amitabh Srivastava与Dave Culter所主导，当时云端运算在市场上还没有受到关注，微软当时所需解决的问题是需要整合与提升线上服务的管理与运用能力，而提出的代号为 Red Dog 的计划，该计划要解决的是：
* 开发一个运算资源的管理工具，称为 Hypervisor，后来演变为 Hyper-V 平台以及 Azure 的虚拟机器基础建设。
* 具有自主管理能力的分散式管理系统，以管理大量的运算资源，称为 Fabric Controller，目前为 Azure 基础建设服务的重要元件之一。
* 高度可用性与备援能力的分散式储存系统，此为 Azure Storage 的源头。
* 支援上述平台的开发工具。
经过数年的开发，Azure平台于2010年2月正式推出公开服务版 (General Availability)，当时的名称为 Azure Service Platform，包含 Azure Cloud Service、Azure Storage、SQL Azure 与 AppFabric 四种服务，且仅提供平台服务 (PaaS) 一种。
2010年下半年更新管理介面为Microsoft Silverlight开发的管理介面，并新增 VM Role (虚拟机器的前身)，以及 Azure Connect (Azure 虚拟网路的 VPN 连线的前身)。
2012年是 Azure 发展的里程碑之一，共做了下列改变：
* 更新管理介面，采用 HTML5 技术。
* 首次发行基础建设服务 (IaaS)，包含虚拟机器与虚拟网路。
* 发行 Website 服务，并首次支援 .NET 以外的平台。
* 发行 Media Service 服务。
* 2014 年下半年发行 Mobile Service，提供行动应用必须的后台服务，包含资料、识别、通知以及 API 等。
2013~2014年加入 Hadoop 服务 (HDInsight)、Streaming Analytics (资料流分析)、资料工厂服务、事件中枢与机器学习等与大数据相关的服务，同时更新 SQL Azure 大幅提升效能。
2014年微软将 Windows Azure 更名为 Microsoft Azure，以修正其市场方向，也为了要让外界不再认为 Azure 只能跑 Windows 作业系统 。
2015年将 Website 与 Mobile Service 合并，并新增 API App 与 Logic App 合称为 Azure App Services，并推出 Azure Redis Cache 取代原有的 Azure Shared Cache；推出 Azure Application Insights 以支援应用程式层级的监测数据能力；新增 Azure DNS 以支援 DNS 代管、Azure Search 支援搜寻能力等。
2016年微软推出 Azure Functions (函数服务) 以支援无伺服器 (Serverless) 的应用，成为继 AWS Lambda 与 Google CloudFunction 之后的第三个具备无伺服器应用程式开发能力的主流云端供应商，同时也推出了 Service Fabric 以支援微服务 (Microservices) 的开发。
2022年12月，微软宣布禁止用户使用Azure进行挖矿。
目前 Azure 上的服务与功能仍然在增加中。
== 基础建设 ==
Microsoft Azure是专为在微软建设的资料中心管理所有伺服器，网路以及储存资源所开发的一种特殊版本Windows Server作业系统，它具有针对资料中心架构的自我管理（autonomous）机能，可以自动监控划分在资料中心数个不同的分区（微软将这些分区称为Fault Domain）的所有伺服器与储存资源，自动更新修补程式，自动执行虚拟机器部署与镜像备份（Snapshot Backup）等能力，Microsoft Azure被安装在资料中心的所有伺服器中，并且定时和中控软体Microsoft Azure Fabric Controller进行沟通，接收指令以及回传执行状态资料等等，系统管理人员只要透过Microsoft Azure Fabric Controller就能够掌握所有伺服器的执行状态，Fabric Controller本身是融合了很多微软系统管理技术的总成，包含对虚拟机器的管理（System Center Virtual Machine Manager），对作业环境的管理（System Center Operation Manager），以及对软体部署的管理（System Center Configuration Manager）等，在Fabric Controller中被发挥得淋漓尽致，如此才能够达成透过Fabric Controller来管理在资料中心中所有伺服器的能力。
Microsoft Azure环境除了各式不同的虚拟机器外，它也为应用程式打造了分散式的巨量储存环境（Distributed Mass Storage），也就是Azure Storage，应用程式可以根据不同的储存需求来选择要使用哪一种或哪几种储存的方式，以保存应用程式的资料，而微软也尽可能的提供应用程式的相容性工具或介面，以降低应用程式移转到Microsoft Azure上的负担。
Microsoft Azure不但是开发给外部的云端应用程式使用的，它也作为微软许多云端服务的基础平台。
=== Fabric Controller ===
Microsoft Azure运算资源与管理架构
Fabric Controller 是管理微软资料中心的 Azure 运算资源的中控管理系统，扮演心脏的角色，它负责自动化的管理资料中心内所有的实体伺服器，包含由使用者要求的 Azure Guest OS 的部署工作，定时的Hotfix修补，机器状态回报，以及管理不同版本的VM部署影像的复制等重要核心工作，Fabric Controller 本身也具有高可用性，并且有一个管理 Fabric Controller 的子系统（称为"Utility" Fabric Controller）来管理与监控 Fabric Controller 的运作。
Fabric Controller也处理虚拟机器的健康管理（Health Management）工作，当Windows Azure Guest OS发生当机时，会由Fabric Controller自动选择不同的实体机器重新部署与启动。当应用程式提交即地更新（In-place upgrade）时，Fabric Controller也负责即地更新的协调工作，以保持应用程式在更新时仍可保持SLA所承诺的服务水准。
=== RDFE ===
RDFE (Red Dog's Front-End) 是 Azure 的前端介面，负责接取来自任何存取 Azure 的应用程式的命令，它是一组可控制与管理 Azure 服务的 REST APIs，对外接受应用程式的要求并回应，对内则是扮演大脑的角色，Azure 资源的配置策略与方式均是由 RDFE 所进行，包含虚拟机器的 Fault Domain (失效域) 与 Upgrade Domain (更新域) 的配置与计算都是由 RDFE 处理。
=== 网路基础建设 ===
Microsoft Azure网路与运算资源部署架构
Microsoft Azure 资料中心内部的架构自 2010 年正式上市开始就不断的与日俱进，早期 Azure 使用的是 DLA 网路架构，采用多层次分层的设计方式，由资料中心的路由器 (Internet 边界) 开始，接续第二层的存取路由器 (Access Router)，再接至第三层的聚合负载平衡器 (Aggregation Load Balancer)，最后到伺服器所在的伺服器机架顶的交换器 (Top-Of-Rack Switch)，虽然符合早期云端所需要的网路建设作法，但问题在于它并没有网路备援能力，当问题发生在主要节点如第二层或第三层的设备时，伺服器将无法与外界连系，使服务中断，且使用 DLA 网路架构下的资源配置极限为 10000 台实体伺服器，频宽为 120GB (平均一台只有 0.012GB 流量)，无法供给充足的网路频宽与效能给资料中心内的资源使用。
2012 年起，微软开始建构新的第二代资料中心网路建设，采用平滑化网路拓朴 (Flat Network Topology) 设计，代号为 Quantum10，其理论来源是 1952 年的 Clos network，在每个网路设备间都采用了网状的连线，亦即每个设备彼此之间都有备援能力，而且配置适当的网路节点设备，可以提供更大量的频宽与资源配置，Quantum10 的第一代可供应 30000 台伺服器 30000GB 的流量 (平均一台 1TB 流量)。2013年更提升至 Quantum10 v2，可支援在不同服务群集 (例如运算群集与储存群集) 之间的网路通讯，基于 Leaf-Spine 网路拓朴 的特性，不论是走哪一条通讯路径，其成本都是等价 (Equal-Cost Multipath, ECMP)，用来减少因网路扩展生成树 (Spanning Tree) 产生的网路负担，其资源供应可跨越不同群集，频宽也提升到 50000GB。
随著 Azure 服务愈来愈多元，其服务共用网路基础建设已经变成常态，为了要让各服务可顺畅存取网路功能 (例如与 Azure 虚拟网路的整合)，微软开始发展适用于资料中心的网路相关技术，并设计相关辅助资源。2015年微软在ACM SIGCOMM 提出了数个重要设计成果 ：
* Azure 智慧网路卡 (Azure SmartNIC)，它采用了 FPGA 晶片辅助 CPU 进行网路流量的处理，可支援加密与远端记忆体直接存取 (RDMA) 的功能，降低 RDMA 花费在 CPU 上的运算时间。
* 虚拟过滤平台 (Virtual Filtering Platform)，使用于 Azure Hyper-V 内的 VMSwitch 元件，它可以在网路流量进入网路实体层前先进行处理，包括存取控制表、网路安全、虚拟网路与软体负载平衡等作业，并且支援 40GbE 以上的高速网路。
* 交换器抽象介面 (Switch Abstraction Interface, SAI)，定义了交换器作业系统的功能规格，目前已被Open Compute Project(Open Compute Project)协会接受。
* Azure Cloud Switch，一种具备网路交换器能力的网路作业系统，基于交换器抽象介面所设计，使用微软自制的Linux作业系统。
* 网路管理微服务化，以及软体定义网路的基础建设。
== 服务位置 ==
Microsoft Azure 目前于全球有54个资料中心 (另有6个正兴建中)，以及44个 CDN 跳跃点 ，以提供全球使用者所需的资源。但因为当地法规与行政的要求，因此并不是所有的使用者都能使用所有的区域，目前 Azure 服务区域有分为三种：
* Azure Cloud: 意指全球的资料中心，共有 54 个据点：
** 位于澳洲的资料中心，共有4座，分别位于新南威尔斯与维多利亚 (位于坎培拉的两座正兴建中)。
** 位于印度的资料中心，共有3座，分别位于孟买、金奈与浦那，必须是于由印度微软认可的大量授权客户与合作伙伴才能使用，线上申请预计于2016开放。
** 位于德国的资料中心，共有2座，分别位于马德堡与法兰克福，于资料信任者模式 (Data Trustee Model) 下提供服务。
* Azure China: 意思位于中国大陆地区的资料中心，共有2座，分别位于北京与上海，且并非由微软直接经营，而是由中国大陆合作伙伴中国电信以及世纪互联(21vianet) 所经营，因此可用服务会比全球的服务要少，更新也较慢。
* Azure Government Cloud (GOV): 负责管理政府云端服务的资料中心，共有6座，目前仅美国境内设置，且具有政府等级的资讯安全规范。
== 管理模式 ==
Azure 管理入口 (ASP.NET Web Forms 版本) (2010年版)
Azure 管理入口 (Microsoft Silverlight 版本) (2011年版)
Azure 管理入口 (HTML5 版本) (2012年版)
Azure 管理入口 (HTML5 版本) (2015年版)
Microsoft Azure 早期开发时，使用的是以服务为主体的管理方式，称为服务管理模式 (Azure Service Management, ASM)，其管理观点是依服务来区分，这个模式在目前的 Azure Portal (2012年发布的管理介面) 以及 Azure PowerShell、Azure CLI 等都支援，也是 RDFE 一开始就支援的 API，服务管理的好处是以服务为主体，其管理方式环绕著服务，在小型应用 (使用的资源种类很少时) 相当方便，但当服务愈来愈多种，应用也愈来愈大 (横跨多种服务的应用) 时，这样的方法反而会导致管理上的不便。
为了改良服务管理模式的缺点，微软在 2014 年提出了资源管理 (Azure Resource Management, ARM) 的新模式，其管理观点是依资源来区分，应用程式的资源可组织在同一个或不同的群组，管理人员可以利用资源群组 (Resource Group) 来组织资源以及使用资源的服务 (例如虚拟机器会使用到网路卡、网路安全群组、公开IP、负载平衡器与虚拟网路等资源)。资源管理模式适当中大型的应用，但小型应用也同样适合。资源管理模式由 Azure Ibiza Portal (2015年公开服务的新管理介面)、Azure PowerShell v1.0 起、Azure CLI v1.0 起适用。资源管理模式同时也引入了资源范本 (Resource Template) 的概念，允许管理人员一次部署多种或大量服务与资源，微软也提供了 Azure Quickstart Template 供入门的系统管理人员使用。
== 服务 ==
Microsoft Azure 现已包含 30 余种服务，以及数百项功能，针对云端以及物联网与大数据等所需要的各类型服务提供。
=== 运算服务 ===
运算服务是以 Azure 内的伺服器群经过虚拟化后形成的大量虚拟机器 (Virtual Machine) 所组成的服务群，其主要功能是提供 CPU、记忆体等具有运算能力的资源。在 Azure 中的运算资源分成 IaaS 与 PaaS 两种：
* IaaS
** Virtual Machine (VM): 提供标准与客制化后的虚拟机器映像 (Images)，供使用者于云端产生虚拟机器使用，也可以利用上传映像的方式，使用客制化映像来生成虚拟机器。Azure 可支援 Windows 与特定的 Linux 作业系统。
** RemoteApp: 提供桌面虚拟化 (Desktop Virtualization) 的基础建设，企业可依需求产生预设范本 (搭载 Office 应用程式) 或是上传自订的范本生成，其应用近似于在地端建设的 Remote Desktop Service VDI。
* PaaS
** Cloud Service: 提供标准的作业系统映像，开发人员可使用 Azure SDK 开发程式，发行到 Cloud Service 内，适合具高度客制化的大型应用程式。
** Service Fabric: 提供标准的作业系统映像，开发人员可使用 Azure Service Fabric SDK 开发微服务 (Microservice) 应用程式，可视为下一代的 Azure Cloud Service。
** Azure Kubernetes Service (AKS): 提供以 Docker 容器格式为基础，并由微软维运 Kubernetes 丛集，用以支援容器部署，调度与管理功能。
** Azure Application Services，提布署网页应用程式的 Web Apps, 以及具无伺服器 (Serverless) 应用开发能力的 Logic Apps 与 Functions 服务。
=== 应用服务 ===
Microsoft Azure 为了要有效降低将应用程式移植到云端所需的负担，微软在 2012 年度的 Spring Release 中首次发布了 Azure Website 服务，支援 .NET 以及像 PHP、Java、Python、Ruby、node.js 等非微软平台，成功吸引开发网站的 Web 开发人员以及企业将其网站移转到 Azure，Azure Website 为 Virtual Machine 以外最受欢迎的 PaaS 服务。同年底，微软也发布了为行动应用程式 (Mobile App) 提供后台支援的 Mobile Service，以简单的管理机制与充份的 SDK 支援吸引行动应用开发人员使用，这两个服务在 2015 年时合并为 Azure App Service，并加入了发展 RESTful API 应用的 API App 以及以视觉化设定执行流程控制的 Logic App。
为了要支援大型应用程式的发展，微软在 Azure 发布初期就提供了 AppFabric 服务，包含 Access Control Service 以及 Service Bus 功能，Access Control Service 负责统一帐户管理机制，后期也引入了 Social Identity 的功能，可与 Facebook, Google 等社群连结并共用其帐户；Service Bus 则是提供了讯息转送 (Message Relay)、伫列 (Queue) 与主题订阅 (Topics) 的功能，随后也加入了 Notification Hub 以支援对行动装置平台的讯息传送功能。
=== 储存服务 ===
储存资料是一个平台服务最基本的要求，Azure 在开发初期就提供了基本的储存 (Azure Storage) 与关联式资料库 (SQL Azure)，储存服务提供了 Blob、Table 和 Queue 分别管理非结构化资料、结构化资料与讯息通讯，2014年新增 File 服务，以支援在云端虚拟机器间的快速资料共享。
资料库服务 SQL Azure 为 SQL Server as a Service，提供大部份在地端的 SQL Server 资料库的能力，2013 年微软将 SQL Azure 正名为 Azure SQL Database，以提升品牌识别度，2014 年新增依交易量计费的 DTU 模式，以及新一代资料库引擎 V12，强化资料库的功能与效率，2015 年更提出了许多资料库的企业级应用，如 Elastic Pooling、SQL Data Warehouse 与和 SQL Server 2016 配合的 SQL Database Strerch Database 功能，使 SQL Database 更适合企业的应用。2017 年将 Database as a Service 扩大支援 MySQL 与 PostgreSQL 等资料库系统，2018 年新增依虚拟核心数计费的 vCore 模式，让用户更容易对应在原本伺服器环境的硬体规格。
Azure Search 是微软为提升云端资料检索的功能而于 2014 年提供，搭配 Azure DocumentDB 实作出的资料检索服务。
Azure Redis Cache 为微软基于 Redis 开源专案所发展的分散式快取服务，用以取代 2011 年的 Azure Shared Cache 以及 2012 年提出的 Azure Role-based Cache 服务，由于 Redis Cache 适用于许多平台与框架，使得 Azure Redis Cache 更容易被大众接受以作为分散式快取基础建设。
Azure Cosmos DB 是微软于 Build 2017 所宣布的新型 NoSQL 资料库服务，可同时支援键值对 (Key-Value)、文件 (Document)、Column Family 与图形 (Graph) 等资料结构，并同时支援 Azure Table API, Mongo API, Cassandra API, DocumentDB SQL 与 Graph API 等不同的存取方式。
=== 分析服务 ===
分析服务是 Microsoft Azure 一系列支援大数据与机器学习等与资料分析相关的服务集合，由资料的获取，分析到储存都有完整的解决方案。
* 资料获取：Azure Event Hub，由物联网设备获取讯号或讯息资料；Azure Data Factory 处理资料的转换；Azure Stream Analytics 处理在资料流动过程中的特征分析。
* 资料分析：Azure HDInsights 支援以 Apache Hadoop 为主的技术集合所支援的资料分析，包含 MapReduce、HDFS、HBase、Pig 等技术；Azure Machine Learning 支援以模型为主的资料分析与推断能力。
* 资料储存：Azure Data Lake 支援各种类型的资料，无上限的资料储存能力。
=== 网路服务 ===
网路服务是 Microsoft Azure 对外通讯与内部各类服务之间的资料通讯基础建设，也是 Azure IaaS 的重要成员之一。
Azure 虚拟网路可允许组织或企业在云端建置自己的网路基础建设，包含子网路、IP配置、负载平衡器与网路安全原则等，同时可以建置 VPN 以串连企业网路与其他区域的虚拟网路，也可以利用 P2S VPN 串接个人用户端与虚拟网路。
为了要加速网路速度、隔离用户与 Internet 网路环境，Azure 提供 ExpressRoute 给用户以支援专属性 (Dedicated) 的 Azure 资料中心间通讯。
对于具全球性的大型服务，Azure Traffic Manager 可协助发展大规模的负载平衡解决方案，将用户导向到全球各地离其最近的资料中心，并且也可支援跨区域性的备援重导向。
=== 身份识别与存取管理服务 ===
Azure AD (Active Directory) 是 Microsoft Azure 上主要的身份识别与存取服务，是基于 HTTP 之业界标准 OAUTH 2.0 与 OpendID 协定的云端身分验证服务，由于传统使用 LDAP/Kerberos 验证协定的 Windows Server Active Directory 不易用于网际网路与行动装置环境上身分验证，因此微软提供 Azure AD Connect 服务以处理 Windows Server Active Directory  Azure Active Directory 的帐户同步功能。Azure AD 也提供了多重要素验证 (Multi-Factor Authentication) 能力以支援需要多重方法验证的应用，Azure AD 的应用程式连结功能则提供了软体服务 (SaaS) 整合所需的身份验证能力。
Azure AD 提供 Azure AD B2C 服务让应用程式可以利用多种网际网路上常用之身分验证机制 (例如 Microsoft Account，Google ID ，Facebook ID 等) 来进行进行身分验证，也提供 Azure AD 网域服务以减少企业在云端 Azure 环境内部署 Windows Server AD 网域控制站成本。
=== 开发人员服务 ===
为支援 Web App 与行动 App 的记录、使用者行为追踪与网路监控等需求，Azure 提供 Application Insights 可供开发人员实作所需的记录功能，Application Insights 也可作为协助监控网站存活的辅助服务。
Azure DevOps 提供云端的版本控制、自动化建造、自动化测试与部署等软体工程流程服务。
Azure App Center 可协助处理行动 App 内的使用者回报，包含当机回报与使用者意见回馈等。
=== 管理服务 ===
管理服务是 Microsoft Azure 提供给 IT 与网路管理能力的服务。
* Scheduler 可允许 IT 人员上传指令脚本，以排定的时程执行。
* Automation 可允许 IT 人员上传指令脚本，以排定的流程执行，通常会搭配 Azure Scheduler。
* Operational Insights 会收集 Azure 内的作业稽核记录并提供洞察讯息。
* KeyVault 可允许 IT 人员或应用程式透过 Azure AD 权限管制之下，存取以硬体加密 (HSM) 之金钥或凭证。
* Security Center 可提供 Azure 使用时的相关资讯安全讯息。
* Backup 能备份 Windows Server、Windows Client 与 Azure VM 以及其他支援服务的资料。
* Site Recovery 具备跨地端、云端到地端、云端之间的虚拟机器备援服务。
== 法规与规范认证 ==
Microsoft Azure 目前已经通过包含政府机构与产业标准数十项法规与规范的认证，以允许政府机关使用 Microsoft Azure，或是认可 Microsoft Azure 在资讯安全上的努力 。
=== 政府机关 ===
* 阿根廷个人资料保护法 25326 号 (Argentina Personal Data Protection Act 25,326)
* 美国刑事司法资讯服务处 (CJIS) 资讯安全政策 v5.4
* 美国国防资讯系统局 (DISA) 影响等级 2 临时授权 (Provisional Authorization)
* 美国国防部资讯安全认证与认可流程 (DIACAP)
* 美国联邦风险与授权管理计划 (FedRAMP)
* 欧洲网路与资讯安全局资讯安全框架 (ENISA IAF)
* 欧洲示范条款 (EU Model Clauses)
* 美国家庭教育与隐私权法案 (FERPA)
* 美国联邦资讯处理标准 (FIPS) 140-2
* 美国联邦资讯安全管理法案 (FISMA)
* 新加坡多层次云端安全标准 (MTCS)
* 美国内部收益服务公报 (IRS) 1075
* 澳洲云端服务认证清单 (CCSL IRAP)
* 纽西兰政府资讯长认证 (NZ CC Framework)
* 英国政府云 (UK G-Cloud)
* 日本我的编号法案 (My Number Act)
* 日本云端安全标章 (Cloud Security Mark)
* 美国食品与药物管理局 (FDA) 联邦准则 (CFR) 21-11 (Title 21 Part 11)
* 中国 GB 18030
* 中国多层次保护方案 (MLPS)
* 中国可信云服务认证 (TRUCS)
=== 产业标准 ===
* 云端安全联盟云端控制矩阵认证 (CSA CCM)
* 内容传递与安全协会 (CDSA)
* 财务产业资讯系统中心 (FISC)
* 健康保险流通与责任法案 (HIPAA) HITECH
* ISO 27001
* ISO 27018
* 支付卡产业资料安全标准 (PCI-DSS) 等级 1 v3.0
* 共享评估计划
* 服务组织控制 (SOC) 类型 1, 2, 3
==其他==
*「Azure」在英语意思为「天蓝色」。
*日本微软曾于2011年5月起推出漫画《云端女孩——窗与云与碧蓝天空》（クラウドガール -窓と云と碧い空-）介绍Windows Azure服务。
== 工具 ==
Microsoft Azure 在早期只能使用 Web-based 管理工具存取，在 2012 年开始提供 PowerShell 指令介面，并进一步于 2013 年起开始提供指令介面，以支援非 Windows 作业系统的使用者 (Azure CLI)，而微软也开放了服务管理介面 (RDFE 的 API) 供开发人员使用，因此能管理与存取 Microsoft Azure 的工具相当多。
* Microsoft Visual Studio，配合 Azure SDK for .NET，可直接部署、管理与新增相关专案。
* Azure PowerShell，提供 IT 人员管理 Azure 所需的 PowerShell 指令介面。
* Azure CLI，旧称 Xplat-CLI，提供跨平台的指令管理介面。
* Azure 服务管理 APIs，为 REST API，由开发人员编写程式存取 。
* System Center App Controller，可在企业内管理与部署 Azure 资源 。
* Azure Storage Explorer，由社群开发，支援 Azure Storage 的存取 (除 Azure File 外) 。
* Microsoft Storage Explorer，由官方开发，跨平台的 Azure Storage 管理工具 。
== 参考文献 ==
== 外部连结 ==
*  Microsoft Azure date=20081010145148
*  Microsoft Azure Blog date=20210205121614