这是解决方案评测的第三篇,也是开发者新版评测的第三篇。希望大家可以踊跃参加,把你最真实的体验感受和建议分享出来。可点击下方链接前往评测活动首页:
方案解读
作为解决方案评测的主菜,依旧是熟悉的味道和风格,方案整体还是按照为什么、是什么、用在哪、怎么用、需要啥五个方面展开的。下面就就这五个方面拓展开来解读一番。
为什么
在本次的方案中首先切入的是必要性,相比之前方案中的直接陈述观点是有友好一些的。这也是方案测评不断优化的第一个点。那回到方案解读中,在企业上云的过程中,为啥容器化应用托管会逐渐成为主流,这个方案中没有提及,实际上是有必要加上的,强调必要性产生的背景,可以让用户更直观清晰地弄懂方案所能带来的效益。那为啥容器化应用托管会逐渐成为主流,我总结有如下几个方面的原因:
提高资源利用率和灵活性
- 资源隔离与共享:容器化技术可以将应用程序及其依赖项打包成一个独立的单元,每个容器都有自己的运行环境,实现了资源的隔离。同时,多个容器可以共享同一个操作系统内核,提高了资源利用率。这种轻量级的隔离方式使得企业可以更灵活地管理资源,快速响应业务需求的变化。
- 快速部署与扩展:容器化应用可以通过镜像快速部署,且启动速度快,能够在短时间内完成应用的部署和扩展。这种高效的部署方式使得企业能够更快地响应市场变化,抓住商机。
简化运维和管理
- 环境一致性:容器化技术可以确保开发、测试和生产环境的一致性,减少了因环境差异导致的问题。这大大降低了运维的复杂性,提高了应用的稳定性和可靠性。
- 自动化运维:结合容器编排工具(如Kubernetes),企业可以实现容器的自动化部署、更新、监控和故障恢复,降低了运维成本,提高了运维效率。
支持微服务架构
- 微服务拆分与管理:容器化技术与微服务架构相结合,可以更好地支持应用的拆分和管理。每个微服务都可以独立地部署、更新和扩展,提高了应用的可维护性和可扩展性。
- 提高开发效率:容器化技术提供了一些开箱即用的环境和工具,可以大大提高开发的效率。开发人员可以专注于业务逻辑的实现,而无需担心底层环境的配置和依赖问题。
增强安全性和可靠性
- 应用隔离:容器化技术通过隔离应用程序及其运行环境,减少了应用之间的相互影响,提高了应用的安全性和可靠性。
- 资源限制:容器化技术还可以对应用程序进行资源限制,避免某个应用程序占用过多的系统资源,导致其他应用程序响应速度变慢或崩溃。
也正是因为用户有上述的诉求,才促使了容器化应用托管在企业中的广泛应用和普及。
是什么
在这一部分中,首先阐述了阿里云容器服务Kubernetes版(ACK)在解决容器化应用托管上具备那些优势,方案这里没有直接挪用ACK的产品优势,而是结合了用户需求及痛点进行了再阐述。这一点好评。
如果这一块要展开来阐述的话,我觉得应该是下面这个样子的。
高性能与可伸缩性
- 极致性能优化:ACK提供极致的性能优化和动态资源调度,确保容器应用能够快速响应业务需求变化。
- 自动扩缩容:支持在突发流量下自动扩缩容,以及长期稳定的资源利用率优化,帮助企业实现资源的高效利用。
- 多种集群类型:包括ACK托管集群(基础版与Pro版)、ACK Serverless集群和ACK Edge集群,满足不同场景下的弹性计算需求。
全生命周期管理
- 一站式管理:ACK覆盖容器化应用的构建、部署、运行、监控、更新到下线的全生命周期管理。
- 便捷操作:用户可以便捷地进行应用定义、配置管理、滚动升级、故障恢复、灰度发布等操作,简化DevOps流程,加速应用迭代速度。
高可用与稳定性
- 高可用控制面:提供控制面高可用、数据持久化支持、多可用区部署等功能,确保集群及应用的稳定运行。
- SLA保障:ACK Pro版强化了集群的可靠性、安全性和调度性,并承诺符合赔付标准的SLA,特别适合对稳定性和安全性有严苛要求的大规模生产环境。
安全性与合规性
- 集成阿里云安全体系:ACK集成了阿里云的安全体系,包括运行时安全、可信软件供应链、基础架构安全等。
- 全方位防护:提供安全巡检、策略管理、镜像扫描、签名验证等全方位防护,确保云原生应用在构建、分发和运行过程中的安全合规。
在方案优势的后面介绍了实施方案的技术拓扑,从技术实现拓扑用户可以很直观清晰地了解到需要用那些产品来实现,各个产品间的联系是怎样的。
用在哪
这部分阐述的是方案可以应用到的典型场景有那些。
大规模微服务架构
对于拥有复杂微服务架构的大型企业,ACK能够有效管理成百上千个服务,通过自动化的服务发现、负载均衡和滚动更新功能,简化服务运维,保证高可用性和低延迟。非常典型的就是在电商平台的应用,将订单处理、用户管理、商品管理等功能拆分为多个微服务。通过使用ACK,平台能够轻松地在云端部署和管理这些微服务,实现快速迭代和扩展。
弹性伸缩的互联网应用
针对电商、社交、直播等互联网应用,ACK能够根据实时流量自动扩缩容,利用ECS实例和弹性容器实例(ECI)的组合,快速响应业务高峰,同时在闲时释放资源,降低成本。比如互联网公司使用ACK部署了大规模的Spark集群,用于处理日志数据、用户行为数据等。通过ACK的弹性伸缩能力,公司在处理高峰期的数据时能够自动增加计算资源,确保数据处理的高效性和稳定性。
快速迭代的DevOps环境
在持续集成和持续部署(CI/CD)流程中,通过与GitOps等现代DevOps实践的结合,能大幅缩短软件交付周期,加速应用迭代速度,减少停机时间,提高开发效率。
混合云与多云部署
对于需要跨云或混合云部署的企业,ACK支持统一管理多个Kubernetes集群,无论是公有云、私有云还是边缘计算场景,都能实现资源的统一调度和应用的一致性管理。某物联网公司使用ACK在边缘设备上部署了智能监控和预测维护系统。通过ACK的边缘计算能力,该系统能够实时处理传感器数据,并快速响应异常情况,提高了设备的可靠性和安全性。
其实除了列举的这几个代表性的场景外,实际应用场景还有很多。比如:
AI推理与训练
比如某AI创业公司使用ACK部署了TensorFlow和PyTorch等深度学习框架,用于训练图像识别、自然语言处理等模型。通过ACK的弹性GPU资源池,该公司能够灵活地分配GPU资源,提高模型训练的速度和效率。
赛事系统支持
在2022年杭州亚运会上,阿里云容器服务ACK作为云原生技术底座,为亚运一站通、亚运钉等众多核心应用提供了高弹性、高可用、异地多中心的架构支持。确保了赛事系统在面对高并发访问时依然能够稳定运行,为赛事的顺利进行提供了有力保障。
怎么用
这个部分就阐述了如何部署方案,提供一键部署和手动部署两种方式。这里推荐使用一键部署,因为它大大简化了底层环境的部署步骤,通过ROS编排可以做到统一配置,一键安装部署,大大节约了部署耗时。
需要啥
这部分阐述的方案部署需要用到那些产品服务,整体上说需要ACK集群、ALB负载均衡;拆分开就是ECS实例、ACK服务、容器服务ACR、VPC专有网络、安全组以及ALB负载均衡。
当然,如果你是新用户,恭喜你可以免费领取部分产品的试用。
部署体验
一键部署
这里演示通过一键部署是如何实现服务的创建以及应用部署的。点击方案部署中的“一键部署”即可跳转到部署详情。如下:
一键部署从四个方面进行了部署说明,其实最核心最重要的是步骤三。那手动部署是个什么样子的呢,如下:
相比一键部署的简约,手动部署多了两个步骤,分别是资源规划以及应用部署,而这个也是传统部署方式中的核心,也是运维人员的老大难,一点点差异就可能导致整个步骤的失败。所以这里我们还是采用一键部署来实现。
打开一键配置模板链接前往ROS控制台,用户需要明确的第一是地域,也就是你集群需要在那个区域进行创建;第二是实例规格的选择,这里根据建议进行选择即可。如下:
通过点击预览模板资源,我们非常清楚地了解到整个部署过程需要创建那些进程和服务,以及使用了的产品类型。
最后,输入ECS实例的密码,点击下一步即可。
对即将创建的服务进行确认,以及所需费用的一个概要。确认无误,点击创建即可开始部署。
这里有个需要注意的点就是,需要先确保账户余额大于100元,否则可能会出现部署失败的问题。如发现余额不足,可以点击“充值支付”前往充值。
如果之前你没有开通过容器服务ACK,依赖检查的时候会报如下异常,需要点击“开通链接”前往开通。
开通页面直接点击“立即开通”即可,不论你选择了那种集群的类型,都将同时开通。
开通后,点击依赖检查页的刷新,无异常后点击“继续创建”。
服务创建过程中,可以分别点击“事件”或“资源”,看到部署的事件及状态、所创建的资源的类型及状态。
部署完成后,登录容器服务ACK管理控制台,开始验证服务的可用性。
选择集群,点击创建的集群的名称进入集群详情页,在左侧导航栏,选择网络,在展开的菜单中选择路由,找到创建的ALB Ingress的端点一列,获取端点域名
,在浏览器中访问端点域名/a
,查看返回值。
集群体验
从接口返回信息可知服务运行正常,部署成功。那想了解集群的更多信息怎么办,登录容器服务ACK控制台,在集群信息中可以看到,在概览里不仅图形化展示了应用、节点状态,还可以通过点击了解到更多。
在节点管理中,我们可以非常清晰地了解到集群池的情况以及每个节点的信息,还可以针对节点做升级和修复。
在工作负载中可以看到本次我们创建了两个无状态的服务,这里我们不仅可以看到服务的信息,还可以对服务进行伸缩。
对于集群非常重要的就是定时巡检,在集群巡检里我们可以配置定时规则。
在故障诊断里,我们可以对集群的全要素进行诊断。
对于集群审计,控制台友好地提供了各个维度的指标和监控。最让我欣喜的是还可以进行CVE的漏洞监测和修复。
释放资源
一键释放
在本次部署体验中,我们创建了3台云服务器ECS实例、1个应用型负载均衡ALB实例、2个交换机、1个专有网络VPC、1个容器服务ACK集群实例。完成体验后,务必记得清理上述资源,以免产生不必要的费用。如果你是通过一键部署的方式进行的创建,则直接可以通过ROS一并删除释放。如下:
手动释放
如果你是手动部署的,则需要挨个进行清理释放。
登录容器服务ACK控制台,在集群列表页面,找到目标ACK集群实例,然后在操作列选择>删除,这里需要注意的是应用型负载均衡 ALB(集群 Ingress)默认不会删除,在弹出菜单中需要主动勾选。删除ACK集群后会自动释放云服务器ECS实例。
如果发现ECS并没有实现删除,可以登录ECS控制台,在实例页面检查是否成功是否,如未成功,找到目标实例,然后在操作列选择释放设置,根据界面提示释放实例。
接着登录专有网络控制台,在交换机页面,找到目标交换机,然后在操作列单击删除,按照界面提示释放实例。
最后登录专有网络控制台,在专有网络页面,找到目标VPC,然后在操作列单击删除,按照界面提示释放实例。
体验总结
1)方案中对于技术细节的阐述其实是缺乏的,更别提深层原理的了解了。单从方案拓扑来看,用户只能获取到方案实现涉及的产品以及之间的关联性,并不能实际理解其中原理的。比如ALB-Ingress的实现,需要查阅其他文案才可弄明白。导致这个问题的原因可能跟方案实现有关,因为体验下来,用户实际上是不需要彻底弄清这些原理性知识的,通过ROS完全实现了一键安装部署。但在实际工作中,提供必要的知识拓展链接是有必要的。
2)单从部署体验来说,其实提供的引导以及文档帮助是够用的。但作为新手来说,只有涉及部署相关的资料还是远远不够的。我觉得还需要补充如下资料:
常见问题解答(FAQ):FAQ是用户快速找到问题答案的重要途径。如果FAQ不够全面或更新不及时,用户可能需要花费更多时间搜索答案或寻求外部帮助。
视频教程和示例:视频教程和示例可以提供更直观的学习体验,帮助用户更好地理解解决方案的工作原理和操作方法。如果缺乏这些资源,用户可能需要更多的时间来熟悉解决方案。
3)部署中的示例代码是可以直接使用的,如果你需要对其进行定制也是完全可行的,官网提供了完备的文档来帮助你实现。如下图:
不过对于模板中出现的这个描述是有出入的,实际上集群中的ECS实例是按量付费的,而确认信息这里显示的包年包月。
4)容器化应用托管具有多个显著的优势,我总结如下:
环境一致性:容器能够封装应用及其依赖项,确保应用在不同环境中以相同的方式运行。这减少了“在我机器上能运行”的问题,提高了应用的可靠性和可移植性。
资源隔离:容器提供了轻量级的资源隔离,使得应用可以在共享的物理或虚拟环境中独立运行,互不干扰。这有助于提升资源利用率和安全性。
快速部署与扩展:容器化应用可以快速地部署到任何支持容器运行时的环境中,无论是物理机、虚拟机还是云平台。此外,容器化应用可以轻松地根据需求进行扩展或缩减,实现资源的灵活管理。
提高开发效率:容器化技术简化了开发、测试和生产环境之间的差异,使得开发人员可以更加专注于应用的开发,而无需担心环境配置问题。同时,容器化也支持持续集成/持续部署(CI/CD)流程,进一步提高了开发效率。
成本效益:容器化应用托管通常比传统的虚拟机或物理机部署更加节省成本。由于容器轻量级且资源利用率高,企业可以更有效地利用现有资源,降低IT成本。
在企业上云过程中,我认为使用容器化应用托管是一个明智的选择。它不仅可以帮助企业更快地实现应用的云上部署和扩展,提高应用的可靠性和可移植性,同时还能降低成本。
5)结合上述体验,体验总结如下:
从产品功能上:阿里云ACK提供了完整的Kubernetes集群管理能力,包括集群创建、节点管理、应用部署、负载均衡、网络配置、存储管理等功能。这些功能满足了我们在容器化应用部署、运维、扩展等方面的需求。此外,ACK与阿里云的其他云产品(如云服务器ECS、负载均衡ALB等)高度集成,使得我们可以轻松地将应用与这些服务进行对接,实现服务的对外发布及高可用等。
从性能上:在使用过程中,阿里云ACK的集群性能表现稳定,ACK支持根据业务需求进行弹性扩展,我们可以根据需要随时增加或减少节点数量,以应对流量高峰或低谷。这种灵活性使得我们能够更好地控制成本并提高资源利用率。
从操作配置上:ACK提供了直观的Web控制台和丰富的API接口,使得我们可以轻松地进行集群管理、应用部署和配置调整等操作。同时,ACK还支持多种自动化工具(如Terraform、Ansible等),进一步简化了操作流程。此外,ACK允许我们根据实际需求进行高度自定义的配置,包括节点规格、网络策略、存储类型等。这种灵活性使得我们能够根据应用的特点和性能要求来优化集群配置。
从产品手册上:CK的产品手册非常详尽完备,涵盖了从集群创建到应用部署、运维、扩展等各个环节的详细步骤和注意事项。手册中的图文并茂、示例丰富,使得我们能够快速上手并深入理解产品的各项功能和使用方法。当然,这里唯一不足的就是视频资源很少,我个人是偏爱视频资料的,视频可以简化文字描述的冗长,做到简明扼要。