企业内部通常有多个业务部门,每个业务部门负责自身所需业务系统的投资、建设和运维,因此通常在业务部门会组建自己的应用团队。将这些业务系统云化需要应用团队的配合和协同,应用团队需要协同云实施团队进行业务系统的现状调研、迁移实施、应用现代化改造和测试验证,协同云架构团队基于云技术和云服务设计业务系统的云上应用架构,协同云运维团队确保业务系统在云上的长期安全稳定运行。应用团队的成员通常都来自于业务部门,因为不同的业务部门拥有独立的应用团队,所以应用团队可能是多个,这些应用团队虚线汇报给CCoE团队,应用团队通常包含应用架构师、应用开发工程师、应用测试工程师和应用运维管理员,其职责和技能要求如下表所示。
表1 应用团队的角色和职责
角色 |
职责 |
技能要求 |
来源 |
应用架构师 |
- 明确业务系统云化的业务收益,如业务连续性、业务敏捷性等。
- 负责制定业务系统的迁移策略(Rehost、Replatform、Refactor等)和迁移顺序。
- 支撑云实施团队提供业务系统的现状进行调研,为其提供资源现状、应用架构、部署架构、依赖关系等信息。
- 负责设计和管理业务系统在云上的应用架构,包括应用的架构模式、技术选型、部署方式等,确保应用的性能、可扩展性、安全性和可靠性。
- 与数据架构师和云架构师紧密合作,确保应用架构与数据架构和云架构的兼容性。
- 指导开发团队进行应用开发和部署。
|
- 深入理解各种应用架构模式和设计模式,例如微服务架构、事件驱动架构等。
- 熟悉各种开发语言和框架。
- 熟悉DevOps实践和工具。
- 具备良好的代码设计和开发能力。
- 了解应用安全最佳实践。
- 具备良好的沟通和团队协作能力。
|
业务部门 |
应用开发工程师 |
- 将现有应用迁移到云平台,包括代码迁移、数据迁移、数据库迁移等。
- 负责应用现代化改造,如将单体应用拆分为微服务,或采用Serverless和事件驱动架构。
- 对现有代码进行重构,使其更具可维护性、可扩展性和可测试性,并针对云环境进行优化,例如利用云原生服务和API。
|
- 精通至少一门主流编程语言,例如 Java、Python、Go等
- 熟悉DevOps实践和工具。
- 具备良好的代码设计和开发能力。
- 熟悉主流的云平台及云服务。
- 能够与周边团队有效沟通和协作。
|
业务部门 |
应用测试工程师 |
- 针对云上业务系统设计测试用例并制定测试计划。测试用例包括功能测试、性能测试、安全测试和可靠性测试等用例
- 按照测试计划和测试用例,选择合适的测试工具对云上业务系统进行全方面的功能、性能、安全性和可靠性等测试。
- 编写和维护自动化测试脚本。
- 编写测试报告和文档。
|
- 有扎实的测试理论基础,熟悉软件测试理论、方法和流程等。
- 具备丰富的测试经验,熟悉各种测试类型,如功能测试、性能测试、安全测试和可靠性测试等。
- 熟悉主流的云平台及云服务。
- 熟练使用自动化测试工具,能够编写自动化测试脚本。
- 能够与周边团队有效沟通和协作。
|
业务部门 |
应用运维管理员 |
- 负责云上业务系统的部署、监控和维护,确保业务系统的安全稳定运行。
- 处理应用运行中的故障,优化应用性能。
- 配合开发团队进行应用的版本更新和发布。
- 监控应用日志,分析并解决潜在问题。
|
- 熟悉云平台的APM服务,具备应用性能监控和日志分析能力。
- 掌握CI/CD工具和容器编排工具。熟悉常见的应用部署方式(如容器化、微服务架构)。
- 熟悉常见中间件(如Nginx、Redis、Kafka)的运维管理。
|
业务部门 |