作者:华相、易立、了哥
多云趋势
经过近几年公有云的长足的发展,越来越多的企业开始接受并广泛采用云服务,加快自己业务数字化转型以及Go to Market的速度,进而赢得更大的市场空间。
而随着企业把更多的业务搬到云上或者就直接构建在云商,如何不被厂商技术锁定开始成为企业使用云技术关注的焦点。
“多云战略”也开始逐步被企业所提及。在多云战略下,企业的核心目的是摆脱厂商锁定的风险,提高自己的议价能力从而降低使用成本。并且企业可以充分利用不同云厂商在资源分布上的差异以及资源价格的差异,灵活在多云厂家间做资源调配与弹性扩展,确保业务的多厂家、多地域的高可用与容灾多活能力。更有甚者可以利用一个云的能力来补充一个资源低成本的云的短板,从而构建一个企业完善的业务系统而无惧云厂商的差异性。
多云的痛点
多云战略就像是传说中的“圣杯”一样,人人都想拥有,但是能拿到的人凤毛麟角,因为在实践起来确实颇多障碍:
- 资源管理成本,不同的云厂商提供的服务和能力是不可能一致的,要在多个云上管理不同的资源,管理成本必然也是有相应的提高,如果没有足够的手段,很可能比使用单一云成本还要高。
- 安全风险,多个云商之间的安全能力和标准如何对齐,也是一个难点
- 人力成本,很难找到合适的人员精通多云以及其差异,要应对上面这些障碍将极具挑战
Kubernetes为多云目标带来了落地的希望
Kubernetes的多项特性以及相关生态体系为多云目标提供了可能性,例如
- 统一应用的描述,而无需关注基础设施的差异性
- federation的多集群部署管理以及istio多集群流量与治理管理
- Kubernetes声明式的API,简化了应用的部署,同时提供了在不同云上使用同样的方式描述应用的规范,然后还可以利用一些工具把不同云商的集群统一管理起来
故事发展到这里,一幅宏伟的蓝图已经呈现在我们面前,地基是各个云商,骨架是Kubernetes,但是离为我们提供良好的居住/使用体验还差那么一点,这个蓝图的基础是多云战略,但多云战略只是手段,不是目的,我们希望利用多云的策略来免除厂商锁定的风险,但不希望因此引入团队维护日常使用体验上的割裂,Kubernetes解决了很多,但还不是全部
Kubernetes在多云上还存在的不足
- 需要分别在不同云商之间部署应用,工作量繁复
- 如何观测不同的云商提供的集群,每个云厂商提供的能力不一致,方案不一致,维护的成本非常高
- 如何更有效的利用不同云资源,在某个云厂家资源不足或者故障时没法立即应对
阿里云注册集群
”注册集群“,针对Kubernetes上多云管理的不足孕育而生,其可以将阿里云生态的能力注入IDC/其它云的Kubernetes集群
- 提供SRE增强:将其它云/IDC的集群注册到ACK服务后,可以扩展集群事件管理能力,从而集成阿里云日志服务SLS提供的事件中心到多云环境中
- 提供统一的集群操作方式:将其它云/IDC的集群注册到ACK服务后,我们可以统一的在ACK控制台去操作所有的集群,可以我们提供的UI页面/cloud shell去查看、管理应用,使用我们的授权管理去管理集群上的多个租户,并提供安全日志审计能力
- 提供统一的集群可观测性:ACK集群提供了丰富的监控能力,从VM这种基础设施到OS,从集群本身到应用,可以做到全方位的监控,包括托管的Prometheus服务,托管的APM服务(适用Java和PHP),以及高可用服务AHAS提供的Kubernetes架构感知能力
- 提供完备的基于Kubernetes的微服务能力(Java微服务体系/ service mesh):在Dubbo、SpringCloud等Java的微服务体系中提供链路跟踪、限流降级、熔断、服务节点优雅上下线等能力;在service mesh方向上,我们可以把注册集群一键接入到托管的service mesh服务ASM中,提供多语言的服务治理能力
- 提供弹性扩展能力:可以集成阿里云的弹性容器实例ECI到IDC/它云的Kubernetes中,实现资源的自动扩展与弹性到阿里云上,实现在阿里云上快速的容器资源伸缩。
目前我们还在内部测试应用中心,可以提供在多云环境中做统一的应用发布能力,近期会放出
构建多云厂商混合云
通过“注册集群”能力, 我们可以使用一致的方式来管理不同的云厂商的Kubernetes集群,并将SRE能力、微服务能力、可观测性能力统一,抹平多云间的差异与降低维护管理成本。在这个基础利用kubernetes federation的能力/即将发布的多云资源发布中心来管理多云集群的工作负载,以及利用阿里云的servie mesh的托管产品ASM来提供对应的治理能力,从而构建完备的混合云。
阿里云通过ACK的注册集群能力帮助客户拥抱多云,以及降低多云战略带来的技术门槛与障碍,为客户的数字化转型以及技术云原生演进添砖加瓦。
上云就上阿里云!用云就用云原生!