初创以及小公司的业务快速变更,所以需要快速部署,快速上线;
一、持续部署/集成
对于产品需要快速推进的需求,持续集成/部署;
1、持续集成:
- 持续集成:每天代码提交多次,前后端研发人员不停交互;
- 持续集成工作流程:提交-自动测试-反馈;是个自动化过程,不需要手动写测试用例;
2、持续部署:
- 持续部署:每次代码提交经过持续集成后都可以随时部署到生产环境中;
持续集成和持续部署研发流程中,自动化程度很高,可以完成不停改动的需求;
严格意义上还有一个CD过程,就是代码是随时可部署的状态;
原始开发流程中,自己开发项目,会写测试用例,然后登陆生产环境服务器,然后pull,编译部署;在实际工作中,可能会部署到多台服务器或者灰度发布或者回滚,这些工作都需要自动化,自动化可以极大提高上线以及发布速度;
二、基于docker的CD
1、流程:
- 开发者提交代码
- 触发镜像构建
- 构建镜像上传至私有仓库
- 镜像下载至执行机器
- 镜像运行
整个过程是一个完全自动化的过程;
CI、CD的工作流程适用于小规模开发团队;实验楼工作开发就是这样自动化的过程;关于CI、CD可以自己多看资料,现在很多团队都在使用;
三、代码部署常用工作栈
不同团队用的不一样,简单介绍一些常用的;
- GitHub/Gitlab:GitHub作为企业服务,建立仓库或者组织,算是开源社区,自己开源项目都可以发布;Gitlab的社区版本,如果不想把机密代码托管到其他平台,可使用;
- Jenkins:非常好的CI、CD工具,文档资源插件都很丰富;
- kubernetes:管理docker的平台,更多情况应用于微服务的分发部署;
- Docker:神器,不多讲,自行玩;
- Ansible:运维工具,可批量执行一些操作,用python写的;
其他的,如Linux、mysql等不多说了,肯定是需要掌握的;
如果从事程序员的工作的话,上述工具都要仔细用一下;
四、备份
- 核心数据备份:核心数据需要多种备份机制;
- 配置文件备份:可以追踪每次更改;
五、监控
- 可用性监控:服务和实例崩溃的时候可以及时知道;
- 性能指标监控:各项性能监控,性能指标可以及时发现代码bug以及优化的地方;
六、日志
- 日志为什么重要:日志对于技术和研发团队很重要,可以告诉研发人员当前正在发生什么;对于运营团队和产品分析也很重要;
- 日志收集平台和工具:可以看ELK,一个成熟的日志收集工具;
七、宕机演练
可以丰富应对策略;
八、More
配置管理问题、服务发现问题等,短时间无法讲完,想了解的自行满满搜索了解学习;
本文由 liyunfei 创作,采用 知识共享署名4.0
国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: Jun 29,2022