容器化管理云上应用体验评测

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器镜像服务 ACR,镜像仓库100个 不限时长
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
简介: 从解读方案开始,带你领略容器化管理云上应用的奇妙之旅。

这是解决方案评测的第三篇,也是开发者新版评测的第三篇。希望大家可以踊跃参加,把你最真实的体验感受和建议分享出来。可点击下方链接前往评测活动首页:

解决方案评测|高效构建企业门户网站

解决方案评测|通义万相AI绘画创作

解决方案评测|容器化管理云上应用

方案解读

作为解决方案评测的主菜,依旧是熟悉的味道和风格,方案整体还是按照为什么、是什么、用在哪、怎么用、需要啥五个方面展开的。下面就就这五个方面拓展开来解读一番。

为什么

在本次的方案中首先切入的是必要性,相比之前方案中的直接陈述观点是有友好一些的。这也是方案测评不断优化的第一个点。那回到方案解读中,在企业上云的过程中,为啥容器化应用托管会逐渐成为主流,这个方案中没有提及,实际上是有必要加上的,强调必要性产生的背景,可以让用户更直观清晰地弄懂方案所能带来的效益。那为啥容器化应用托管会逐渐成为主流,我总结有如下几个方面的原因:

提高资源利用率和灵活性

  • 资源隔离与共享:容器化技术可以将应用程序及其依赖项打包成一个独立的单元,每个容器都有自己的运行环境,实现了资源的隔离。同时,多个容器可以共享同一个操作系统内核,提高了资源利用率。这种轻量级的隔离方式使得企业可以更灵活地管理资源,快速响应业务需求的变化。
  • 快速部署与扩展:容器化应用可以通过镜像快速部署,且启动速度快,能够在短时间内完成应用的部署和扩展。这种高效的部署方式使得企业能够更快地响应市场变化,抓住商机。

简化运维和管理

  • 环境一致性:容器化技术可以确保开发、测试和生产环境的一致性,减少了因环境差异导致的问题。这大大降低了运维的复杂性,提高了应用的稳定性和可靠性。
  • 自动化运维:结合容器编排工具(如Kubernetes),企业可以实现容器的自动化部署、更新、监控和故障恢复,降低了运维成本,提高了运维效率。

支持微服务架构

  • 微服务拆分与管理:容器化技术与微服务架构相结合,可以更好地支持应用的拆分和管理。每个微服务都可以独立地部署、更新和扩展,提高了应用的可维护性和可扩展性。
  • 提高开发效率:容器化技术提供了一些开箱即用的环境和工具,可以大大提高开发的效率。开发人员可以专注于业务逻辑的实现,而无需担心底层环境的配置和依赖问题。

增强安全性和可靠性

  • 应用隔离:容器化技术通过隔离应用程序及其运行环境,减少了应用之间的相互影响,提高了应用的安全性和可靠性。
  • 资源限制:容器化技术还可以对应用程序进行资源限制,避免某个应用程序占用过多的系统资源,导致其他应用程序响应速度变慢或崩溃。

也正是因为用户有上述的诉求,才促使了容器化应用托管在企业中的广泛应用和普及。

是什么

在这一部分中,首先阐述了阿里云容器服务Kubernetes版(ACK)在解决容器化应用托管上具备那些优势,方案这里没有直接挪用ACK的产品优势,而是结合了用户需求及痛点进行了再阐述。这一点好评。
image.png
如果这一块要展开来阐述的话,我觉得应该是下面这个样子的。

高性能与可伸缩性

  • 极致性能优化:ACK提供极致的性能优化和动态资源调度,确保容器应用能够快速响应业务需求变化。
  • 自动扩缩容:支持在突发流量下自动扩缩容,以及长期稳定的资源利用率优化,帮助企业实现资源的高效利用。
  • 多种集群类型:包括ACK托管集群(基础版与Pro版)、ACK Serverless集群和ACK Edge集群,满足不同场景下的弹性计算需求。

全生命周期管理

  • 一站式管理:ACK覆盖容器化应用的构建、部署、运行、监控、更新到下线的全生命周期管理。
  • 便捷操作:用户可以便捷地进行应用定义、配置管理、滚动升级、故障恢复、灰度发布等操作,简化DevOps流程,加速应用迭代速度。

高可用与稳定性

  • 高可用控制面:提供控制面高可用、数据持久化支持、多可用区部署等功能,确保集群及应用的稳定运行。
  • SLA保障:ACK Pro版强化了集群的可靠性、安全性和调度性,并承诺符合赔付标准的SLA,特别适合对稳定性和安全性有严苛要求的大规模生产环境。

安全性与合规性

  • 集成阿里云安全体系:ACK集成了阿里云的安全体系,包括运行时安全、可信软件供应链、基础架构安全等。
  • 全方位防护:提供安全巡检、策略管理、镜像扫描、签名验证等全方位防护,确保云原生应用在构建、分发和运行过程中的安全合规。

在方案优势的后面介绍了实施方案的技术拓扑,从技术实现拓扑用户可以很直观清晰地了解到需要用那些产品来实现,各个产品间的联系是怎样的。
image.png

用在哪

这部分阐述的是方案可以应用到的典型场景有那些。

大规模微服务架构

对于拥有复杂微服务架构的大型企业,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编排可以做到统一配置,一键安装部署,大大节约了部署耗时。
image.png

需要啥

这部分阐述的方案部署需要用到那些产品服务,整体上说需要ACK集群、ALB负载均衡;拆分开就是ECS实例、ACK服务、容器服务ACR、VPC专有网络、安全组以及ALB负载均衡。
image.png
当然,如果你是新用户,恭喜你可以免费领取部分产品的试用。
image.png

部署体验

一键部署

这里演示通过一键部署是如何实现服务的创建以及应用部署的。点击方案部署中的“一键部署”即可跳转到部署详情。如下:
image.png
一键部署从四个方面进行了部署说明,其实最核心最重要的是步骤三。那手动部署是个什么样子的呢,如下:
image.png
相比一键部署的简约,手动部署多了两个步骤,分别是资源规划以及应用部署,而这个也是传统部署方式中的核心,也是运维人员的老大难,一点点差异就可能导致整个步骤的失败。所以这里我们还是采用一键部署来实现。

打开一键配置模板链接前往ROS控制台,用户需要明确的第一是地域,也就是你集群需要在那个区域进行创建;第二是实例规格的选择,这里根据建议进行选择即可。如下:
image.png
通过点击预览模板资源,我们非常清楚地了解到整个部署过程需要创建那些进程和服务,以及使用了的产品类型。
image.png
最后,输入ECS实例的密码,点击下一步即可。
image.png
对即将创建的服务进行确认,以及所需费用的一个概要。确认无误,点击创建即可开始部署。
image.png
这里有个需要注意的点就是,需要先确保账户余额大于100元,否则可能会出现部署失败的问题。如发现余额不足,可以点击“充值支付”前往充值。

如果之前你没有开通过容器服务ACK,依赖检查的时候会报如下异常,需要点击“开通链接”前往开通。
image.png
开通页面直接点击“立即开通”即可,不论你选择了那种集群的类型,都将同时开通。
image.png
开通后,点击依赖检查页的刷新,无异常后点击“继续创建”。
image.png
image.png
服务创建过程中,可以分别点击“事件”或“资源”,看到部署的事件及状态、所创建的资源的类型及状态。
image.png
image.png
部署完成后,登录容器服务ACK管理控制台,开始验证服务的可用性。
image.png
选择集群,点击创建的集群的名称进入集群详情页,在左侧导航栏,选择网络,在展开的菜单中选择路由,找到创建的ALB Ingress的端点一列,获取端点域名,在浏览器中访问端点域名/a,查看返回值。
image.png
image.png
image.png

集群体验

从接口返回信息可知服务运行正常,部署成功。那想了解集群的更多信息怎么办,登录容器服务ACK控制台,在集群信息中可以看到,在概览里不仅图形化展示了应用、节点状态,还可以通过点击了解到更多。
image.png
在节点管理中,我们可以非常清晰地了解到集群池的情况以及每个节点的信息,还可以针对节点做升级和修复。
image.png
image.png
在工作负载中可以看到本次我们创建了两个无状态的服务,这里我们不仅可以看到服务的信息,还可以对服务进行伸缩。
image.png
image.png
对于集群非常重要的就是定时巡检,在集群巡检里我们可以配置定时规则。
image.png
在故障诊断里,我们可以对集群的全要素进行诊断。
image.png
对于集群审计,控制台友好地提供了各个维度的指标和监控。最让我欣喜的是还可以进行CVE的漏洞监测和修复。
image.png
image.png
image.png
image.png

释放资源

一键释放

在本次部署体验中,我们创建了3台云服务器ECS实例、1个应用型负载均衡ALB实例、2个交换机、1个专有网络VPC、1个容器服务ACK集群实例。完成体验后,务必记得清理上述资源,以免产生不必要的费用。如果你是通过一键部署的方式进行的创建,则直接可以通过ROS一并删除释放。如下:
image.png

手动释放

如果你是手动部署的,则需要挨个进行清理释放。

登录容器服务ACK控制台集群列表页面,找到目标ACK集群实例,然后在操作列选择>删除,这里需要注意的是应用型负载均衡 ALB(集群 Ingress)默认不会删除,在弹出菜单中需要主动勾选。删除ACK集群后会自动释放云服务器ECS实例。
image.png
image.png
如果发现ECS并没有实现删除,可以登录ECS控制台,在实例页面检查是否成功是否,如未成功,找到目标实例,然后在操作列选择释放设置,根据界面提示释放实例。
image.png
接着登录专有网络控制台,在交换机页面,找到目标交换机,然后在操作列单击删除,按照界面提示释放实例。
image.png
最后登录专有网络控制台,在专有网络页面,找到目标VPC,然后在操作列单击删除,按照界面提示释放实例。
image.png

体验总结

1)方案中对于技术细节的阐述其实是缺乏的,更别提深层原理的了解了。单从方案拓扑来看,用户只能获取到方案实现涉及的产品以及之间的关联性,并不能实际理解其中原理的。比如ALB-Ingress的实现,需要查阅其他文案才可弄明白。导致这个问题的原因可能跟方案实现有关,因为体验下来,用户实际上是不需要彻底弄清这些原理性知识的,通过ROS完全实现了一键安装部署。但在实际工作中,提供必要的知识拓展链接是有必要的。

2)单从部署体验来说,其实提供的引导以及文档帮助是够用的。但作为新手来说,只有涉及部署相关的资料还是远远不够的。我觉得还需要补充如下资料:

常见问题解答(FAQ):FAQ是用户快速找到问题答案的重要途径。如果FAQ不够全面或更新不及时,用户可能需要花费更多时间搜索答案或寻求外部帮助。

视频教程和示例:视频教程和示例可以提供更直观的学习体验,帮助用户更好地理解解决方案的工作原理和操作方法。如果缺乏这些资源,用户可能需要更多的时间来熟悉解决方案。

3)部署中的示例代码是可以直接使用的,如果你需要对其进行定制也是完全可行的,官网提供了完备的文档来帮助你实现。如下图:
image.png
不过对于模板中出现的这个描述是有出入的,实际上集群中的ECS实例是按量付费的,而确认信息这里显示的包年包月。
image.png
image.png
4)容器化应用托管具有多个显著的优势,我总结如下:

环境一致性:容器能够封装应用及其依赖项,确保应用在不同环境中以相同的方式运行。这减少了“在我机器上能运行”的问题,提高了应用的可靠性和可移植性。

资源隔离:容器提供了轻量级的资源隔离,使得应用可以在共享的物理或虚拟环境中独立运行,互不干扰。这有助于提升资源利用率和安全性。

快速部署与扩展:容器化应用可以快速地部署到任何支持容器运行时的环境中,无论是物理机、虚拟机还是云平台。此外,容器化应用可以轻松地根据需求进行扩展或缩减,实现资源的灵活管理。

提高开发效率:容器化技术简化了开发、测试和生产环境之间的差异,使得开发人员可以更加专注于应用的开发,而无需担心环境配置问题。同时,容器化也支持持续集成/持续部署(CI/CD)流程,进一步提高了开发效率。

成本效益:容器化应用托管通常比传统的虚拟机或物理机部署更加节省成本。由于容器轻量级且资源利用率高,企业可以更有效地利用现有资源,降低IT成本。

在企业上云过程中,我认为使用容器化应用托管是一个明智的选择。它不仅可以帮助企业更快地实现应用的云上部署和扩展,提高应用的可靠性和可移植性,同时还能降低成本。

5)结合上述体验,体验总结如下:

从产品功能上:阿里云ACK提供了完整的Kubernetes集群管理能力,包括集群创建、节点管理、应用部署、负载均衡、网络配置、存储管理等功能。这些功能满足了我们在容器化应用部署、运维、扩展等方面的需求。此外,ACK与阿里云的其他云产品(如云服务器ECS、负载均衡ALB等)高度集成,使得我们可以轻松地将应用与这些服务进行对接,实现服务的对外发布及高可用等。

从性能上:在使用过程中,阿里云ACK的集群性能表现稳定,ACK支持根据业务需求进行弹性扩展,我们可以根据需要随时增加或减少节点数量,以应对流量高峰或低谷。这种灵活性使得我们能够更好地控制成本并提高资源利用率。

从操作配置上:ACK提供了直观的Web控制台和丰富的API接口,使得我们可以轻松地进行集群管理、应用部署和配置调整等操作。同时,ACK还支持多种自动化工具(如Terraform、Ansible等),进一步简化了操作流程。此外,ACK允许我们根据实际需求进行高度自定义的配置,包括节点规格、网络策略、存储类型等。这种灵活性使得我们能够根据应用的特点和性能要求来优化集群配置。

从产品手册上:CK的产品手册非常详尽完备,涵盖了从集群创建到应用部署、运维、扩展等各个环节的详细步骤和注意事项。手册中的图文并茂、示例丰富,使得我们能够快速上手并深入理解产品的各项功能和使用方法。当然,这里唯一不足的就是视频资源很少,我个人是偏爱视频资料的,视频可以简化文字描述的冗长,做到简明扼要。

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
8天前
|
Kubernetes 开发者 容器
"Kubernetes的生死抉择:揭秘Pod容器重启策略如何决定应用命运的惊天大戏"
【8月更文挑战第20天】Kubernetes (k8s) 是一个强大的容器编排平台,其中Pod是最小的运行单元。Pod的重启策略确保服务连续性,主要有Always(总是重启)、OnFailure(失败时重启)和Never(从不重启)。默认策略为Always。根据不同场景,如Web服务、批处理作业或一次性任务,可以选择合适的策略。K8s还支持健康检查等高级机制来控制容器重启。合理配置这些策略对维护应用稳定性至关重要。
30 4
|
1天前
|
运维 开发者 Docker
Docker容器化技术在运维中的应用实践
【8月更文挑战第27天】本文旨在探讨Docker容器化技术如何在现代运维工作中发挥核心作用,通过深入浅出的方式介绍Docker的基本概念、优势以及实际应用场景。文章将结合具体案例,展示如何利用Docker简化部署流程、提高资源利用率和加强应用的可移植性。读者将获得对Docker容器技术在实际运维中应用的全面认识,并能够理解其在提升运维效率与质量方面的重要性。
|
5天前
|
存储 监控 Linux
在Linux中,如何进行容器技术的应用?
在Linux中,如何进行容器技术的应用?
|
8天前
|
Kubernetes Shell 测试技术
在Docker中,可以在一个容器中同时运行多个应用进程吗?
在Docker中,可以在一个容器中同时运行多个应用进程吗?
|
3天前
|
存储 大数据 索引
【Azure Contianer Apps】在云上使用容器应用时收集日志遇见延迟问题
【Azure Contianer Apps】在云上使用容器应用时收集日志遇见延迟问题
|
3天前
|
网络协议 网络安全 网络架构
【Azure 容器应用】在中国区Azure上创建的容器服务默认应用域名不全
【Azure 容器应用】在中国区Azure上创建的容器服务默认应用域名不全
|
5天前
|
Kubernetes Ubuntu Linux
在Linux中,如何设计和部署容器化应用?
在Linux中,如何设计和部署容器化应用?
|
7天前
|
Java 测试技术 数据库
容器镜像解析问题之解析 Java 应用依赖时识别 jar 包如何解决
容器镜像解析问题之解析 Java 应用依赖时识别 jar 包如何解决
13 0
|
8天前
|
监控 安全 数据中心
实时数仓Hologres容器技术问题之应用底层技术如何解决
容器技术如Docker基于Linux的namespace与cgroup技术,提供进程隔离与资源限制。这些技术早已有之,但未广泛普及。Docker创新性地提供了可分发的容器镜像格式,简化部署流程,从而促进了容器技术的大规模采用。
24 0
|
6天前
|
关系型数据库 MySQL 应用服务中间件
[Docker]容器内文件修改
【8月更文挑战第21天】[Docker]容器内文件修改
29 13