随着软件开发对各种技术日益依赖,无论是软件还是硬件都需要跟上技术发展,以实现相互配合,并提供可靠和安全的服务。然而,这种需求也会导致解决方案变得越来越复杂。因此,放眼全球,保障基础设施可靠性已成为交付解决方案的首要任务。
基于这些现状,平台运维团队需要直面不同的挑战,在不影响软件开发生命周期或最终用户的情况下对基础架构提供支持和运维保障。
平台运维团队是什么?
正如Dev团队负责开发,质量保证团队负责测试,平台运维团队也负责对公司的基础设施进行管理。这些基础设施包含内部SDLC资源,例如CI/CD管道、模拟/测试环境、生产资源,大多数情况下还包含软件部署资源。平台运维团队负责与SDLC有关的绝大部分操作并管理大多数DevOps工具和平台的关键组件,从而突显DevOps的全部优势。
平台运维团队的主要职责是什么?
平台运维团队要熟悉SDLC的方方面面,因此,团队通常包含具备不同专业技能的成员,比如基础架构工程师、网络工程师、安全专家以及像Kubernetes管理员这样更细分的人士。
平台运维团队的职责会因具体要求和企业特定需求而有所不同。但是,通常来说他们都负责以下任务:
- 提供、管理、优化和保障部署在本地数据中心或云服务环境中的服务器、网络和数据库等基础设施。
- 执行软件部署并持续监控服务可用性。
- 管理CI/CD管道,确保交付团队可以使用平台及其附属的所有工具。
- 访问控制。由于平台维护团队几乎可以访问所有资源,因此他们也负责对特定资源或范围的权限进行分配和管理。
- 对工作流程和任务进行自动化。
- 管理资源利用率并优化成本。
平台运维团队面对的挑战
那么平台运维团队要面临哪些挑战呢?通常,基础架构环境越大、越复杂,平台运维团队面临的挑战就越严峻:
(1) 首要的挑战就是对所有基础架构的配置、策略和变量进行安全且一致的管理。这个挑战在面对多平台时会变的更加复杂,而当处理的环境涉及多云架构时,那就是噩梦。即使是JSON和YAML这些简单的文件类配置,它们之间的差异也会导致额外的管理成本。
(2) 变更管理。此任务涉及跟踪和记录用户的实际变更以及变更原因、变更时间和受影响的资源。
(3) 平台运维团队不仅仅是简单的执行变更,而是需要在每次变更前对变更操作进行有效性验证。理想情况下,此验证应通过适当的工作流程进行变更申请,以获得变更发起者及相关领导的授权或批准。
(4)对环境进行配置一致性管理。
(5) 管理不同的工具栈。由于不同的部门使用不同的工具和平台,因此平台运维团队需要在不破坏SDLC的情况下对它们进行管理。
(6) 处理复杂的自动化流程。一个团队可能会需要一个新的自动化流程,但是需要对此仔细评估,因为即使是一个简单的请求也可能在复杂的环境中引发连锁反应。
(7) 管理跨平台的授权和认证。需要为每个用户和组配置正确的权限,只允许用户对已授权的资源进行操作。
(8) 在不影响用户的情况下优化基础设施,以实现降本增效。
DevOps和基础设施挑战
软件开发涉及不同团队的协作,而DevOps有助于在软件开发生命周期中为各个团队创建一个敏捷、高效的协作环境以推动开发进度。然而,这种敏捷的开发速度可能会导致平台维护团队面临快速执行基础架构变更的压力。
敏捷开发依赖基于DevOps的自动化交付。平台运维团队的职责是运维从代码构建、测试、自动化部署到监控的配置,以保证整个自动化流程的有效性。随着发布周期越来越短,平台运维团队不仅需要对生产环境和模拟环境进行快速调整、优化和变更,也需要对整个基础设施进行全面检修,甚至需要对内部团队用于开发软件的所有工具和平台执行相同的维护任务。所有的配置和维护都是平台维护团队的职责。
总之,现代DevOps实践的持续变更和交付可能会为平台运维团队带来压力。
使用不同的工具和工具集如何影响这些挑战?
不同的工具和工具集是支撑现代自动化软件开发生命周期的基石。平台运维团队需要不断运维和优化交付管道的各个方面,以确保在不影响产品研发和交付的情况下管理基础架构。
大多数时候,平台运维团队依靠多种工具来为单个交付管道提供支持。这些工具可以涵盖版本控制、代码构建、自动化测试框架、基础设施即代码等,都是用来完善CI/CD平台的。配置和管理这些不同的工具和工具集给平台运维团队增加了一定复杂性。当涉及到故障排查时,过程将异常艰难,因为单个工具中配置错误的可能性很高,这会影响整个交付管道的不同工具。
在DevOps领域,如果想要获得DevOps实践的收益,就几乎不可能分离不同的工具和工具集来支持CI/CD管道。不同的工具使平台维护团队能够正确应对并管理交付管道和基础设施所带来的挑战。同时,为了简化对多个工具的管理,集中式管理工具正在迅速普及。这些工具提供了一个单一界面来管理交付管道的所有组件,同时可与其他工具和服务交互,以帮助基础架构团队有效执行任务。
总结
在现代软件开发环境中,平台运维团队面临着复杂程度不一的多种挑战,而消费者日益增长的需求和敏捷开发更加剧了这当中的复杂性。因此,平台运维团队越来越依赖不同的工具和工具集,同时对这些工具的管理也同样是平台运维团队要应对的挑战。集中管理工具通过使用统一的平台来管理整个软件开发生命周期,或将成为助力平台工具的好帮手。
原文链接:https://dzone.com/articles/key-challenges-platform-teams-experience