热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

一般如何将develop代码部署到生产环境

比如网站的开发代码,有一台develop用的服务器,和一台生产环境的面向用户的web服务器,平时开发在develop服务器上,正常情况下develop用的服务器上代码与生产环境中是一致的,而数据库的表结构是一致的,但是其...
比如网站的开发代码,有一台develop用的服务器,和一台生产环境的面向用户的web服务器,平时开发在develop服务器上,正常情况下develop用的服务器上代码与生产环境中是一致的,而数据库的表结构是一致的,但是其中的“用户数据”大抵是不一样的,当需要更新网站时,一般是如何完成?比如是把最新版本的代码直接copy到生产环境?或者从某个版本库checkout? 当需要更新的代码量较多,更新无法瞬间完成时,在更新过程中,网站应当显示什么?

回复内容:

比如网站的开发代码,有一台develop用的服务器,和一台生产环境的面向用户的web服务器,平时开发在develop服务器上,正常情况下develop用的服务器上代码与生产环境中是一致的,而数据库的表结构是一致的,但是其中的“用户数据”大抵是不一样的,当需要更新网站时,一般是如何完成?比如是把最新版本的代码直接copy到生产环境?或者从某个版本库checkout? 当需要更新的代码量较多,更新无法瞬间完成时,在更新过程中,网站应当显示什么?

首先是一些非技术的建议:

  1. 在访问量少的时候更新, 例如半夜
  2. 如果打算离线更新, 提前告知你的用户将在什么时间有一个维护

技术性的建议:

  1. 首先重要的是server不要有状态, 否则你必须要考虑状态的持久化与恢复
  2. 如果可以离线更新, 可以选择web服务器将流量导向一个静态页面, 然后更新应用.
  3. 如果不能离线更新, 将应用备份并使web服务器讲流量导向备份, 然后更新应用, 再将流量导回来

另外你这里说其中的"用户数据"大抵是不一样的我并没有明白你的point, 如果你的意思是开发服务器上测试没问题,但是因为数据和生产服务器上不同, 所以可能代码在生产服务器上不可用, 这种情况如果生产环境数据库并不是很大, 可以考虑再dump到开发环境用于测试.

推荐阅读
  • 在网络通信领域,了解不同数制间的转换对于解析IP地址至关重要。本文将深入探讨IPv4和IPv6地址的不同表示方式,以及如何在这三种数制——二进制、十进制和十六进制之间进行有效的转换。 ... [详细]
  • 解决phpMyAdmin运行错误:mysqli_init(): 属性访问尚未允许
    本文探讨了在使用phpMyAdmin过程中遇到的mysqli_init()函数错误,并提供了有效的解决方案。 ... [详细]
  • 深入解析RAID0、RAID1和RAID5的不同特性及其安全性
    本文详细探讨了RAID0、RAID1和RAID5三种磁盘阵列技术的特点、优势以及它们在数据安全方面的表现。RAID0通过数据条带化提升性能,但牺牲了数据冗余;RAID1利用镜像技术确保数据的高可用性;而RAID5则结合了数据条带化和分布式奇偶校验,提供了较好的性能和数据保护。 ... [详细]
  • 本文介绍如何利用Python中的Epoll机制构建一个高效的Web服务器,该服务器能够处理多个并发连接,并向每个连接的客户端返回预定义的响应文本。通过使用Epoll,服务器可以实现高性能的I/O多路复用。 ... [详细]
  • 下面根据配置文件,来说明一些底层与webservices的关系:回顾一下servlet的映射模式。我们知道,servlet是从javax.servlet.http.HttpServ ... [详细]
  • 多版本CUDA共存与即时切换方案
    本文探讨了在同一台机器上安装并管理多个CUDA版本的方法,以适应不同软件或项目的需求。特别是在使用旧版PyTorch等依赖特定CUDA版本的软件时,该方法尤为实用。 ... [详细]
  • 本文介绍了一种解决方案,当笔记本电脑不具备作为无线接入点的能力时,如何通过开启Android手机的便携WLAN热点功能,使笔记本能够连接到手机并共享其网络资源,从而实现上网。文中详细描述了在Linux系统下配置的具体步骤。 ... [详细]
  • 本文介绍了如何通过安装 VirtualBox 和 Vagrant 来快速搭建和管理虚拟机环境。我们将详细探讨如何选择合适的 Box 镜像,以及如何高效地下载、添加和管理这些镜像。 ... [详细]
  • HTML中用于创建表单的标签是什么
    本文将详细介绍HTML中用于创建表单的标签及其基本用法,包括表单的主要特性和常用的属性设置。如果您正在学习HTML或需要了解如何在网页中添加表单,这将是一个很好的起点。 ... [详细]
  • Elasticsearch基础操作指南:使用Postman进行数据管理
    本文将介绍如何利用Postman工具执行基本的日志写入和数据管理操作。通过本教程,您将了解如何连接至Elasticsearch服务,创建索引,存储及检索数据。 ... [详细]
  • 本文详细介绍了在Oracle Data Guard中配置Standby Redo Log的方法,包括其重要性和具体的配置步骤。通过本文的学习,您将能够掌握如何有效地设置Standby Redo Log以提高数据保护和系统可用性。 ... [详细]
  • 本文详细介绍了如何利用Apple Pay的功能将门禁卡添加至iPhone或Apple Watch,适用于多种门禁系统,包括在线和离线模式。 ... [详细]
  • 本文详细记录了《PHP与MySQL Web开发》第一章的学习心得,特别关注了PHP的基本构成元素、标记风格、编程注意事项及表单处理技巧等内容。 ... [详细]
  • 应用程序配置详解
    本文介绍了配置文件的关键特性及其在不同场景下的应用,重点探讨了Machine.Config和Web.Config两种主要配置文件的用途和配置方法。文章还详细解释了如何利用XML格式的配置文件来调整应用程序的行为,包括自定义配置、错误处理、身份验证和授权设置。 ... [详细]
  • 致信息安全爱好者的成长指南
    本文旨在为信息安全爱好者提供一份详尽的成长指南,涵盖从学习心态调整到具体技能提升的各个方面。 ... [详细]
author-avatar
髻续儛动
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有