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