轻量应用服务器(Light server)是一种内置应用型镜像或系统型镜像的小规格云服务器, 绑定适配大小的磁盘和带宽,为中小型企业和个人用户提供官网搭建、web应用搭建、云上学习和测试等场景的服务。
背景去年底团队接手负责 30 多个面向 ToB 的平台系统,系统多,需求紧,人力缺口一直存在,主要问题体现在: 前后端部署耦合:前后端资源部署在同一 Web 容器,后端上线会带着前 端,同样前端也会带着后端; 研发流程不规范:各平台缺少统一的规范,比如分支规范,部署规范,联调规范等; 研发质量保证:缺少基本的质量保证手段,比如前端单元测试,前后端接口变更流程等; 通过技术手段提高研发效率一直是我们追求的目标。今年通过对业界和公司内部爱番番团队的相关技术调研,决定对现有研发流程进行改进规范,通过 CI/CD 能力建议,提高研发效率和降低运维成本(感谢爱番番团队的 CI/CD 工作!) 今天主要从以下方面来说明 CI/CD 针对 ToB 场景的最佳实践,除了说明做了 What 外,更重要希望能从价值收益上说明 How 和 Why。(注:ToC 与 ToB 各方面差异较大) 什么是CI/CD 简单理解:Continuous Integration/Continuous Deployment 深入理解:基于新兴的 DevOps 文化,以管道的形式,通过自动化构建、测试和部署,缩小开发团队和操作团队之间的差距,以到达快速稳定的交付目的。 名词解释 DevopsDevOps 是 Development 和 Operations 的组合,是一种思想、一组最佳实践、以及一种文化,用于促进应用开发、应用运维和质量保障(QA)部门之间的沟通、协作与整合。以期打破传统开发和运营之间的壁垒和鸿沟。 CICI 即 Continuous Integration 的缩写,开发人员将会频繁地向主干提交代码,这些新提交的代码在最终合并到主干前,需要经过编译和自动化测试流进行验证; CDCD 可对应多个英文名称,持续交付 Continuous Delivery 和持续部署 Continuous Deployment; Continuous Delivery完成 CI 中构建及单元测试和集成测试的自动化流程后,持续交付可自动将已验证的代码发布到存储库。为了实现高效的持续交付流程,务必要确 CI 已内置于开发管道。持续交付的目标是拥有一个可随时部署到生产环境的代码库。 Continuous Deployment 对于一个成熟的 CI/CD 管道(Pipeline)来说,最后的阶段是持续部署。作为持续交付 —— 自动将生产就绪型构建版本发布到代码存储库 —— 的延伸,持续部署可以自动将应用发布到生产环境。 涵盖范围涵盖软件开发全生命周期,作用于各个阶段 基本原则 可靠性 CI 流水线需要很快 独立环境中构建和运行 预发布环境和生产环境等价 流程规范 CI/CD 实施的基本前提条件是根据团队的技术能力现状,制定符合团队实际情况的研发流程规范。 技术全景图 研发流程规范 分支开发,主干测试,RB 上线 历史分支保留,确保随时上线发布 未测试代码不带到线上 定期检测同步代码机制,尽量避免冲突 各项检查能力 CI 上落地,保障高质量交付 分支管理规范 代码版本分支是自动化构建的基础,开发团队必须遵守 feature 非必需分支,各团队根据实际开发协同场景的复杂度,酌情使用 分支命名规范包含上线日期的做法,仅适合 ToB 场景 Pipeline 规范 编译:使用公司统一的集群编译 安全扫描:啄木鸟、猫头鹰 静态代码扫描:包含代码规范和潜在的 Bug 端测试:自动化,稳定性 云端部署(BOS/CDN) 部署设计 方案一与方案二的区别是 index.html 放在 BOS 还是 RD 服务器?优先推荐方案一: 与后端解耦更彻底,html 的更新可由前端来控制 前端版本号管理放在 html 里,不用更新 version.js,部署更简单 方案一里有些后端可能无法配置转发; 备注:最优方案是由 BFE 配置转发规则至 BOS,不用经 RD 集群,但目前 BFE 无法直接转发至 BOS。 版本说明前端静态资源版本一般分两种方式管理:Hash 版本号:基于文件内容的 MD5 值,取部分长度或全部长度,做为文件的版本号,每个文件都有不同的版本号,适合于增量发布,节约存储空间。例如:index.abcd12.js,manifest.123456.js 等 时间戳版本号:以当前构建时间点为准,生成时间文件夹,构建结构部署在时间文件夹下。适合于全量发布。 目前选用时间戳版本号,考虑有如下: Hash 版本,适合容器化部署,比如 Docker、Jarvis,每次包括所有资源文件;Bos 如果使用 Hash,文件夹下同名资源会有很多,显得较乱。 部署目录结构实例 performance |---- 202101281200 | |---- c
言归正传,在之前文章《B端究竟需要什么样的产品经理》中,我们已经剖析过一个大厂B端产品经理所需要的能力和素质。
B端产品经理,则是对应系统软件、工具、平台的产品设计者。 B端产品经理与C端产品经理区别? B端产品经理,B释义为Business,是商业+效率。
这也是一直以来产业链B端市场分散、碎片化,产品烟囱式、封闭化,缺乏平台统一和生态建设的关键原因。像极了当年手机山寨机横行的年代。 分散主要体现在两个方面,行业平台和设备子系统。
从用户体验设计的角度,他们都有一个共同的分类-B端产品(区别于C端产品)。那么,如何提升这类产品的用户体验呢?本文就此谈谈如何从交互层面提升B端产品的用户体验。
支持 Sparkplug B 规范 Sparkplug B 是一种建立在 MQTT 3.1.1 基础之上、依据工业物联网(IIoT)领域应用的特性在信息主题和信息内容格式上所作的规范。
本文将介绍B站基于golang实现的千万级长连接实时消息系统的架构设计与实践,包括长连接服务的框架设计,以及针对稳定性与高吞吐做的相关优化。
至 14 日凌晨 2 点 15 分,B 站所有功能均恢复正常。B 站官方 7 月 14 日凌晨发布消息称,昨(7 月 13 日)晚,B 站的部分服务器机房发生故障,造成无法访问。
五、结语通过对比多种数字孪生应用从C/S端到B/S端的升级的技术方案,不
b,此时变量b的值就是1,变量a自己再加1。