项目部署 :部署基础知识
目录
第 1 章 部署基础知识
1.1 部署基础 1.1.1 项目生命周期 1.1.2 项目部署
第 2 章 Nginx进阶
2.1 Nginx快速入门
2.1.1 Nginx简介 2.1.2 Nginx部署 2.1.3 配置详解
2.2 Nginx进阶知识
2.2.1 反向代理 2.2.2 负载均衡 2.2.3 日志解析
第 3 章 Docker快速入门
3.1 docker快速入门
3.1.1 docker是什么 3.1.2 部署docker 3.1.3 docker加速器
3.2 镜像管理
3.2.1 镜像简介 3.2.2 搜索、查看、获取、历史 3.2.3 重命名、删除 3.2.4 导出、导入
3.3 容器管理
3.3.1 容器简介 3.3.2 查看、启动 3.3.3 关闭、删除 3.3.4 进入、退出 3.3.5 基于容器创建镜像 3.3.6 日志、信息
3.4 仓库管理
3.4.1 仓库简介
3.4.2 私有仓库部署
3.5 数据管理
3.5.1 数据卷简介 3.5.2 数据卷实践 3.5.3 数据卷容器简介 3.5.4 数据卷容器实践
3.6 网络管理
3.6.1 端口映射详解 3.6.2 随机映射实践 3.6.3 指定映射实践
第 4 章 Docker 进阶
4.1 Dockerfile
4.1.1 Dockerfile简介 4.1.2 Dockerfile快速入门 4.1.3 基础指令详解 4.1.4 文件编辑指令详解 4.1.5 环境指令详解 4.1.6 Dockerfile构建过程
4.2 Dockerfile构建django环境(拓展)
4.2.1 项目描述 4.2.2 手工部署django项目环境 4.2.3 Dockerfile案例实践
第 5 章 部署串讲
5.1 部署项目
5.1.1 架构演变
5.1.2 架构部署
5.2 项目运营
5.2.1 网站分析
5.2.2 网站优化
第 1 章 部署基础知识
1.1 部署基础
学习目标:
了解 传统项目生命周期的阶段特点
了解 新型项目生命周期的特点
了解 部署方案的一般流程
1.1.1 项目生命周期
世间万物皆有其生命,软件项目也是如此。随着互联网的发展,软件项目的生命周期也发生了很大的变化,为了更好的让大家理解软件项目,项目生命周期有狭义[具体]、广义[缘起/缘灭]之分,我们一般所说的项目生命周期主要指的是狭义的项目生命周期,我们以传统的软件项目为例进行介绍。
传统项目生命周期
对于传统软件项目来说,它主要包含以下五个阶段:
1 调研阶段 2 设计阶段
目的:居安思危 目的:方案可视化
人员:相关人员,侧重于产品经理 人员:产品团队主导,开发、测试、运维参与
节点:多角度思路/方案,最后领导拍板 节点:产品需求文档、项目里程表
3 开发阶段 4 测试阶段
目的:方案运行 目的:保证项目功能完善
人员:开发团队为主,运维团队参与 人员:测试团队为主,运维、开发参与
节点:阶段项目正常运行 节点:项目功能符合要求
5 运营阶段
目的:项目部署+运行维护
人员:运营团队为主、开发/产品团队参与
节点:项目终止、功能迭代等
新型项目生命周期
1.1.2 项目部署
对于一个软件项目的部署来说,我们主要考虑两方面:
部署流程--基于项目功能,设计合理的部署方案;部署项目--结合部署方案,实现顺畅的项目部署
我们在这一节主要关注部署流程,而部署项目相关知识我们在第4章来进行学习。
关于部署流程,主要包含以下两个方面:部署方案、部署环境
部署方案
为了实现顺畅的项目部署,我们一般会在部署操作的时候,按照既定的部署方案有计划的实施下去。那么部署方案是怎么设计出来的呢?
1 分析项目的产品需求文档,获取项目的主旨,定好部署方案的方向
2 分析项目开发文档,按照功能边界,设计部署的结点
3 分析边界功能,调研功能软件,合理的取舍,选符合当前业务场景的
4 梳理项目部署涉及到的部署软件实现方案,根据2确定的结点,确定初版部署方案
5 根据项目实际情况,调整优化并确定项目部署方案。
附:初版部署方案如何确定最终项目部署方案,请关注第5章内容。
部署环境
根据我们对项目生命周期的理解,一个项目需要经历多个团队的工作,才能最终形成一个成品,也就是说开发好的项目需要在多个阶段环境中按照我们的部署方案部署项目,而每个阶段的环境都是有特殊作用的,那么接下来我们来学习一下项目发布过程中所涉及到的五个环境:
个人开发环境
工作人员:自己
工作平台:个人笔记本、公司配的电脑
平台特点:环境是自己配的,团队中不同的个人开发环境可以不一样
工作内容:项目的子模块,子功能
完成标准:完成领导安排的内容[项目的功能子模块开发]
公司开发环境
工作人员:开发团队
工作平台:公司内部服务器
平台特点:服务器环境和线上的服务器环境完全一致
工作内容:项目子模块间的功能联调
完成标准:项目阶段开发、调试完成
项目测试环境
工作人员:测试团队
工作平台:公司内部服务器
平台特点:服务器环境和线上的服务器环境完全一致
工作内容:项目功能/非功能/探索等测试
完成标准:项目阶段功能正常运行
项目预发布环境
工作人员:运维团队
工作平台:公司线上服务器组中的一台
平台特点:服务器环境和线上的服务器环境完全一致
工作内容:特殊功能测试(比如支付)、数据压力测试、其他安全测试等
完成标准:项目阶段功能正常运行,最后一道防线
项目线上环境
工作人员:运维团队
工作平台:公司线上服务器组
平台特点:标准线上的服务器环境
工作内容:代码部署和维护
完成标准:项目正常运行