,," /> " />

目 录CONTENT

文章目录

关于 2023年 平台产品建设的阶段性总结

Administrator
2024-03-30 / 0 评论 / 1 点赞 / 12 阅读 / 4487 字

概述

2023年在国家云基础架构部门的核心工作基本就聚焦在DevOps、平台开发、建立标准化流程和向其他部门输出服务上。个人感觉有必要在平台开发和运维上整理心得体会。 围绕平台开发全流程,我们的目标是向上层IaaS, PaaS以及私有云团队输出基础架构的能力,围绕IDC建设、CICD标准化、基础设施解决方案、资源管理、工单服务服务等平台,整合基础架构产品能力,在现有人力资源基础上,将基础架构的能力标准化和流程化输出给各个研发产线和销售团队等兄弟部门本次总结主要聚焦在产品服务的根本目的、建设流程、落地实施和运维服务四个点,算是对涵盖产品需求、界面UI、代码系统设计开发和运维等相关涉猎工作的总结

根本目标

在2023年之前,基础团队作为整个国家云公司的底座部门,产品都是以零散包或者产品部件的形式提供给公司内部的团队,存在的问题主要包含:

  1. 外部对基础团队的产品缺乏整体和详细的了解,导致遇到需求的时候,可能选择寻求开源组件,而非采用基础团队的产品,导致基础团队研发的OS、DPU等多款产品无法有效向外推广和使用,降低基础团队的价值和意义;
  2. 在公司部门和外部其他团队进行IDC等资源建设的时候,基础团队无法提供完整的能力支持,不能达到涵盖库存纳管硬件部件、整机整合、项目资源的规划、审批、采买、交维等全流程化,没法做到将底层能力整套输出并支撑各个业务产线;
  3. 基础团队在需求、开发、测试和交维四个方面均不能达到CICD要求的标准化和自动化,无法达到各个指标可度量、各个模块可自动化和适应现代软件工程的DevOps理念,无法保证产品质量高标准、项目流程高效率和产品服务有保障的需求; 针对1和2点,我们在20223年专门开发了多个平台提供能力支持,第3点则以后单独写文章介绍

建设流程

为讲产品服务标准化和流程化,因此我们开始了平台开发的多个专项任务去解决这些问题,下面围绕整个过程进行说明,但是不涉及具体业务层面。

需求

  1. 需求聚合:任务问题的出发点都是业务遇到问题时候提出的需求,但是业务提出的需求又是琐碎和具象化的。因此,作为平台负责人,需要按照一下几点完成需求收集、归纳、整理;
  2. 需求调研:从产品能力出发,发散性调研可能涉及到使用基础团队服务的合作伙伴,将他们的具象化需求逐一调研,然后汇聚。需求收集的广度决定了产品服务的范围和交互方式的普适性,必须在需求调研解决跨部门、跨团队、跨业务收集尽可能多的需求;
  3. 需求抽象:每个需求都是特定业务结合自身需求提出的具象化要求,适合A的需求,不一定适合B,因此,需求抽象就如同读书时候,学习算法,要把需求从实际场景剥离,抽象出核心目的和痛点,然后对这些抽象化的东西整理归纳,找到独特性和一致性,方便涉及系统的时候,充分考虑功能和各项指标
  4. 需求对齐:需求经常是需要反复讨论的,最好的方法就是绘制原型图和流程图,反复细致对齐,避免在实际使用中,对开发进行大的返工和重构;

落地实施

落地实施是最复杂和最艰难的部分,需要在抽象需求和具象化问题上,反复思考,通篇考虑,整个一切现有资源和能力,形成最精简、最高效、最直接和长期有效的平台落地方案。

  1. 时间:平台开发必须短期有一点成果,老板需要在最短的时间内,获取最有价值和最有范围影响力的产品,因此,时间是非常重要的衡量点,也影响了后面很多点考虑,比如开发语言、开发框架、部署方式、代码逻辑等
  2. 核心需求:抓住普遍的问题进行解决,在初期要确立自己的价值,就必须抓住主要问题点,就像为什么三大战役最先在东北,因为东北最有经济、人力价值和落地政策实现,能为后面的多个战略战争提供有效资源。在平台服务的初期,一定要牢牢抓住核心问题和普遍问题进行解决,达到事倍功半的目的。
  3. 资源:这里包括物料和人力资源,人是核心生产力,在平台建设中,一定要有合理的人力分配和排期人力规划。在产品需求分析、系统设计和代码开发、运维各个阶段,一定要保证人力的合理分配,就像一部战争机器,要保证各个组件分配到恰当的资源,从而达到最高效的运转;另一方面,要学会和上级和合作伙伴申请资源,从而为后续扩大平台价值时,做好各方面的规模化扩张储备。
  4. 沟通:好的项目必须要有优秀的统筹规划能力,硬实力是技术能力,但是软实力是必不可少的东西,对提高平台价值、获取人力资源、换取合作和取得价值认可,都是必不可少的,在项目实践中要尤其注意表达、沟通和汇报能力,一定要不断提升自己的软实力;

编程语言

  1. 前端 VUE3.0+vite
    1. 高效的前端开发框架和语言,能够最快速的基于已有的开源代码组件实现自己项目需求的业务前端UI和交互;
    2. 前端UI设计大量交互逻辑、UI界面排版,信息展示和使用体验等诸多细节因素,因此需要在实施开发之前,要有详细的可视化报告,比如墨刀等工具,方便使用方快速反馈差异和改动要求;
    3. 保证交互的流程和丝滑,因此需要慎重考虑展示和交互方式,最大程度的做到以人为主;
  2. 后端 Python3.9
    1. 最简单的开发语言,方便培训和后期业务代码升级维护
    2. 代码CodeReview要做到交叉审核,每次迭代要保证含有测试代码和测试结果
    3. 涉及存量数据时,要充分考虑代码升级和降级,对已有数据的影响;
  3. 后端的框架 FastApi
    1. 目前Python对应最快和最体系化的代码开发框架
  4. 后续正在使用Go开发新的组件,提高服务的可用性能

代码框架

需要有成次,因此代码框架最好准备好以下几点:

  1. 数据库表迁移脚手架,能够自动生成迁移脚本,满足表结构变更等场景
  2. 代码需要有层次目录,能够根据目录层级进行代码功能和代码逻辑分类
  3. 代码要求内部精密耦合,外部松散耦合

系统结构

  1. 分布式组件:快速迭代,需要对各个平台抽取功能逻辑相同的部分,集成到单一组件上,实现相同的功能,比如用户登录和管理等,完全可以以SSO实现;对应不同功能,需要按照服务对象和功能耦合的松散程度,封装开发不同的组件
  2. 要充分使用各类开源组件: 关系数据库、非关系数据库、消息队列、缓存、对象存储、云原生组件和云计算产品,真正做到核心关注业务需求,最大可能复用已有的产品,贯彻“我们不是重复造轮子,而是要造各个缺失的东西”的方针,最大程度的实现个人和团队价值;
  3. 架构设计:需要反复调研和涉及,针对架构设计,一定要结合已有的各个途径可以学习的架构设计方案和理念,要搞懂“为什么这么设计,这么设计要实现什么,这么设计的好处有哪些”!针对具体业务的架构,要输出数据和文字方案,找到优秀点和潜在的缺陷,保证架构设计的稳定性、高性能、精准匹配用户需求和可迭代性。不断的在设计过程中锤炼自己的能力;

部署运维

  1. 在开发过程中使用docker 模式,最大程度提高开发的效率和简单程度
  2. 在运维部署中需要注意:
    1. 使用k8s集群部署,保证服务的运维自动化和服务能力伸缩性;
    2. 对于数据安全,要做到全量备份和增量备份,坚决保证服务数据的安全性;

价值输出

  1. 短期价值:平台服务一定要讲短期价值,即在很短的时候内,能解决哪些最主要的需求痛点,最快达到使用价值。需要对抽象的需求确定主次关系,优先解决主要问题,后面在针对次要需求迭代;
  2. 长期价值:主要是建立规范化和标准化,尽可能的影响到多的团队,从而反哺基础团队和开发团队,承接更多需求和挑战,形成互利共生和长期发展的生态。

总结

需求分析、设计、开发和运维都是服务于某一特定对象的工作,万事开头一定要找准切入点和关键点,在过程中会涉及大量人与人的合作和沟通,因此要万分注意交流方式和信息交互,要保证沟通的信息精确度,避免出现偏差。在整个过程要不断i调整自己的合作模式、升级自己的业务能力和保持对每个工作点的深度学习,锻炼自己的综合能力。

期许

  1. 需要加强对技术的深度理解,针对某些常用点要深度学习;
  2. 拓展业务范围,保证自己在云计算领域越多的学习知识,形成体系化和结构化;
  3. 时刻保持对前沿技术的探索和学习;
  4. 提高软实力,即建设人力资源储备、建设人脉关系和强化自己的管理、沟通和合作能力;

1
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区