过去10年间,企业在经历了公有云的洗礼之后,从需求的角度重新衡量了“云”与业务的关系,上云并不是目的,而是提升业务创新或是效率的方式,上云并不是万能的,用合理的方式上云成为企业的共识。
这就是混合云存在的意义。
在2019年的Ignite大会上, 微软CEO Satya发布了一系列Azure新的混合云产品和服务, 而混合和多云平台Azure Arc无疑是最重磅的产品, 在Keynote里宣布了产品的公测及微软在混合云方面新的战略方向。至此在混合云的技术栈里微软不仅拥有了Azure Stack和IoT Edge, Azure云平台可以和任何数据中心, 任何云环境内的服务器资源进行管理整合。
我们来了解下什么是Azure Arc?为什么福布斯会宣称这是微软一款改变了游戏规则的产品? Azure Arc是一系列的成熟技术, 它可以帮助用户将Azure云端成熟的管理功能扩展到任何的基础架构, 而且还能够将Azure的服务运行于本地数据中心, 跨云环境和边缘节点上。成功实现了将Azure的服务和管理带到任何的基础架构。
Azure Arc在第一版的发布中会共包含了三个功能模块, 分别为跨云服务器支持, 跨云容器支持和Azure数据库服务的跨云支持, 目前跨云服务器支持已经在Azure全球版(Global Azure)提供了公测, 另两个服务正在进行内测, 在不久的将来也会和公众见面。
1)Azure Arc for Servers
实现通过Azure云平台统一管理本地数据中心及跨云环境中的物理机或虚拟机。
借助Azure Arc服务, 用户可以通过Azure 云门户统一进行所有本地数据中心及跨云服务器的管控, 并借助于Azure云平台上的身份认证系统和安全中心进行统一的安全管理及合规管控。通过下图的简单架构我们可以清楚的看到借助Azure Arc技术我们除了可以通过本地数据中心管理软件或其它云平台的管理软件对混合云的服务器进行管理, 还可以象访问Azure云上的原生资源一样对这些服务器进行浏览, 管理, 监控, 备份。
而实现这一技术的原理其实也并不复杂, 我们知道新版的Azure云管理平台都是基于ARM(Azure Resource Manager)来进行资源的统一管理, 而云平台对于虚拟机的管理主要依靠于Azure Virtual Machine Agent(VM Agent), 这个虚拟机代理程序是一个安全的轻量级进程运行于虚拟机内, 实现了虚拟机和云平台之间的所有交互。比如进行配置管理, 监控, 安全策略推送等等。借助于虚拟机代理我们还可以安装维护一定的扩展程序(Extension), 通过扩展程序我们可以在虚拟机上实现很多额外的功能。比如我们在忘记了虚拟机密码时使用的重置密码功能或不小心更改了RDP/SSH的配置文件而无法远程登录系统时就是借助于VM Access这个扩展程序从门户进行系统重置的。关于虚拟机代理程序的安全性问题是很多小伙伴都关心的话题, 在这里我们可以告诉大家微软有一整套的安全策略以保护虚拟机代理及其管理的扩展程序的安全性, 大家可以放心使用, 感兴趣的小伙伴也可以联系微软技术专家探讨微软云在安全管理上的详细技术。
在介绍了虚拟机代理及扩展程序后, 我们就可以非常容易的理解Azure Arc的工作原理了, 和Azure云管理云端的资源一样, Azure Arc会在本地数据中心或跨云服务器的操作系统内安装一个代理程序(Azure Connected Machine Agent), 并根据具体的功能需求安装相应的虚拟机扩展程序以帮助实现这些服务器的管理, 监控及安全推送等操作。所以在有了安全的通讯方式之后, 对一个技术宅来说是不是没有做不到, 只有想不到? 目前利用Azure Arc for Servers不仅能统一管理Azure内部和外部的服务器, 还可以利用Azure 的AAD进行RBAC权限管控, 通过ARM模板及Azure API进行自动化运维, 将服务器日志发送到基于云的中央监控系统Azure Monitor, 进行统一的安全策略设置及漏洞补丁推送。 基于云应用的快速迭代特性, 随着产品推出后需求的不断更新, 相信很快会有更多符合客户需求的功能上线。
最后我们以实际的操作来看一下, Azure Arc是如何做到监控管理来自任何地方的服务器的。我们会像在云端建立资源一样新建一个”Machine – Azure Arc”, 首先你需要选择建立Arc虚拟机的订阅, 资源组, 区域以及选择操作系统类型(Windows, Linux)。
随后系统会询问你是否需要配置Proxy代理服务器用于和部署在内网的服务器进行通讯,由于我们使用的是虚拟机代理程序,所以只要能够借助Proxy访问Azure云服务即可,无需在企业防火墙上开放任何网络端口。最后系统就会根据你的配置信息生成一个脚本文件,Windows系统为PowerShell脚本,Linux系统为Bash脚本,你可以根据提示下载脚本到需要接受管理的服务器并运行脚本。以Windows 2016服务器为例, 我们来看一下下载的脚本内容
# Downloadthe package
Invoke-WebRequest-Uri https://aka.ms/AzureConnectedMachineAgent -OutFileAzureConnectedMachineAgent.msi
# Install the package
msiexec /iAzureConnectedMachineAgent.msi /l*v installationlog.txt /qn | Out-String
# Runconnect command
&"$env:ProgramFiles\AzureConnectedMachineAgent\azcmagent.exe" connect--resource-group "win2016" --tenant-id "72fxxxx-86f1-41af-91ab-2d7cd0xxxxx"--location "southeastasia" --subscription-id "e2xxxxx-12b4-439c-82ab-6bb12xxxxxxx"
根据前面前面的介绍, 我们可以非常清楚的看到它下载了Azure连接代理程序到本地, 并在服务器上进行了静默安装,随后启动了连接代理程序, 启动后会使用Azure云 的身份证认证系统Azure AD对当前服务器进行登记认证, 并要求输入云端管理账号的用户名,密码进行身份认证。认证完成后我们就会在Azure的门户上看到一个类型为Machine – Azure Arc的机器, 并且处于连接状态。
点击这台服务器, 和云端虚拟机资源一样, 我们可以看到这台服务器的系统版本,能够基于IAM(Identity and Access Management)对它进行访问控制,能够基于Azure安全中心进行策略推送及监控管理。当然如果你还有更多好的混合云服务器的管理需求也可以向微软产品组提出, 一起来不断完善产品的功能。
2)Azure Arc for Kubernetes
实现通过Azure平台统一管理本地数据中心及跨云环境中的Kubernetes集群, 如AWS的EKS谷歌的GSK都可以向Azure Arc注册, 让Azure来管理这些外部Kubernetes集群。
和Azure Arc for Servers管理服务器不同,Azure Arc for Kubernetes实现了针对不同Kubernetes集群的监控管理, 并使用DevOps技术在整个环境中大规模部署和管理Kubernetes应用程序。
0)Azure Data Service on Azure Arc
通过Azure Arc技术实现Azure Data Service anywhere的目标, 它借助了容器化技术, 实现了将数据库服务部署到本地数据中心或跨云的容器中, 并在Azure门户中实现统一管理。解决了云端数据库产品使用中常见的延时较大及数据合规性问题。实现了跨本地数据中心,云和边缘节点的无缝管理和数据资产的安全保护。在第一个发布版本中将先推出基于SQL Server 2019的 Azure SQL Database及Azure Database for PostgreSQL Hyperscale服务。其它的数据库服务支持将在后续版本中陆续推出。
最后我们以一个完整架构来展现Azure Arc的设计, 概况一下Azure Arc是如何通过一系列的技术,通过安全交互实现一个统一的云管平台, 让客户既可以使用原有的管理工具进行系统管理, 也可以借助Azure云成熟的监控和安全管理平台对混合云服务进行更好的安全管控。
Azure Arc真正吸引人们的是基于Azure ARM坚实基础,微软通过Azure Arc和Azure Stack实现了硬件和软件的战略结合,将多云服务器,容器和云端托管服务实现了无缝的融合, 缔造了一个真正的混合云平台。
本文暂时没有评论,来添加一个吧(●'◡'●)