管理临时服务器与生产服务器的最简单方法是什么?如果您可以将更改推送到生产中的不同分支,那么使用临时服务器还有什么意义呢?将临时服务器与生产服务器合并的最佳方法是什么?Cron作业?当前设置是过渡服务器,我们不使用它,我们只是直接推到生产,但正在尝试改进流程
roejwanj1#
管理 临时 服务 器 与 生产 服务 器 的 最 简单 方法 是 什么 ?最 简单 、 最 便宜 的 方法 是 去掉 中间 服务 器 。 中间 服务 器 本身 并 不会 使 部署 更 安全 , 但 通常 开发 人员 至少 需要 一 个 开发 环境 ( 功能 上 不 一定 与 中间 服务 器 的 概念 不同 ) , 在 将 代码 推 到 生产 环境 之前 , 将 其 托管 在 类似 生产 环境 的 环境 中 。如果 您 可以 将 更改 推送 到 生产 中 的 不同 分支 , 那么 使用 临时 服务 器 还有 什么 意义 呢 ?如果 您 有 2 个 分支 机构 同时 在 生产 环境 中 运行 , 则 其 功能 相当于 临时 服务 器 。 大多 数 商店 更 喜欢 * 临时 环境 * 而 不是 * 服务 器 * , 以便 其 数据 层 、 第 三方 集成 等 在 临时 环境 和 生产 环境 之间 完全 分离 。简单 地 在 prod 中 部署 应用 程序 的 另 一 个 副本 具有 欺骗 性 的 危险 , 因为 如果 您 搞 砸 了 数据 层 或 第 三方 集成 , 则 很 容易 影响 prod 。试图 改进 流程如果 您 可以 为 特定 用户 启用 新 功能 甚至 修复 , 则 可以 将 其 推广 到 QA 团队( 或者 开发 人员 , 任何 要 测试 的 人 ) , 然后 当 你 对 它 满意 的 时候 , 把 它 推广 到 普通 用户 群 。但是 它 的 优点 是 它 将 多 个 并发 代码 路径 的 规划 工作 前置 , 并 使 该 规划 更加 明确 。不幸 的 是 , 没有 什么 灵丹妙药 可以 让 测试 ( 开发 、 试 运行 , 不管 你 怎么 称呼 它们 ) 环境 提高 可靠 性 。将 临时 服务 器 与 生产 服务 器 合并 的 最 佳 方法 是 什么 ? Cron 作业 ?对于 代码 , 通常 首选 的 方法 是 将 部署 到 staging 的 工件 " 提升 " 到 prod , 而 不 进行 重新 构建 , 以 保证 交付 相同 的 东西 。对于 运行 时 环境 , 使用 容器 化 可以 充分 利用 代码 工件 的 这 一 部分 , 这 是 最 简单 的 方法 。 如果 你 运行 的 是 以 容器 为 中心 的 托管 , 比如 ECS Fargate 或者 Google 的 面向 Docker 的 服务 , 那么 应用 端 就 没有 其他 东西 需要 发布 了 。 这 是 我 的 建议 ,在 混合 中 添加 虚拟 服务 器 只 会 增加 一 个 需要 管理 的 操作 系统 级别 , 而且 没有 什么 好处 。如果 你 可以 让 你 的 应用 无 服务 器 , 这样 它 就 不会 等待 连接 , 而是 在 连接 到来 时 被 调用 , 同样 的 事情 也 适用 , 没有 操作 系统 需要 管理 ( 例如 AWS lambda 有 无 服务 器 Docker 映像 支持 )对于 有 经验 的 人 来说 , 数据 通常 被 认为 是 测试 环境 的 棘手 问题 。 如果 您 的 生产 数据 一 点 也 不 敏感 , 您 可以 将 其 复制 过来 , 但 这 可能 会 也 可能 不会 真正 起 作用 , 具体 取决 于 数据 中 包含 的 内容 以及 数据 最终 的 分布 情况 。 通常 , 生产 数据 非常 敏感 , 您 不 希望 将 其 暴露 给 开发 环境 。这 使得 确保 开发 数据 适合 测试 特性 变得 非常 棘手 。 克服 这 一 障碍 的 一 种 常见 方法 是 通过 selenium 之类 的 工具 为 Web 浏览 器 自动 化 端 到 端 测试 , 并 为 非 浏览 器 中心 的 端点 自动 化 API 测试 。 这 允许 你 在 编写 测试 时 同时 编写 应用 程序 , 以 证明 它 的 工作 正常 。
1条答案
按热度按时间roejwanj1#
管理 临时 服务 器 与 生产 服务 器 的 最 简单 方法 是 什么 ?
最 简单 、 最 便宜 的 方法 是 去掉 中间 服务 器 。 中间 服务 器 本身 并 不会 使 部署 更 安全 , 但 通常 开发 人员 至少 需要 一 个 开发 环境 ( 功能 上 不 一定 与 中间 服务 器 的 概念 不同 ) , 在 将 代码 推 到 生产 环境 之前 , 将 其 托管 在 类似 生产 环境 的 环境 中 。
如果 您 可以 将 更改 推送 到 生产 中 的 不同 分支 , 那么 使用 临时 服务 器 还有 什么 意义 呢 ?
如果 您 有 2 个 分支 机构 同时 在 生产 环境 中 运行 , 则 其 功能 相当于 临时 服务 器 。 大多 数 商店 更 喜欢 * 临时 环境 * 而 不是 * 服务 器 * , 以便 其 数据 层 、 第 三方 集成 等 在 临时 环境 和 生产 环境 之间 完全 分离 。
简单 地 在 prod 中 部署 应用 程序 的 另 一 个 副本 具有 欺骗 性 的 危险 , 因为 如果 您 搞 砸 了 数据 层 或 第 三方 集成 , 则 很 容易 影响 prod 。
试图 改进 流程
如果 您 可以 为 特定 用户 启用 新 功能 甚至 修复 , 则 可以 将 其 推广 到 QA 团队( 或者 开发 人员 , 任何 要 测试 的 人 ) , 然后 当 你 对 它 满意 的 时候 , 把 它 推广 到 普通 用户 群 。但是 它 的 优点 是 它 将 多 个 并发 代码 路径 的 规划 工作 前置 , 并 使 该 规划 更加 明确 。
不幸 的 是 , 没有 什么 灵丹妙药 可以 让 测试 ( 开发 、 试 运行 , 不管 你 怎么 称呼 它们 ) 环境 提高 可靠 性 。
将 临时 服务 器 与 生产 服务 器 合并 的 最 佳 方法 是 什么 ? Cron 作业 ?
对于 代码 , 通常 首选 的 方法 是 将 部署 到 staging 的 工件 " 提升 " 到 prod , 而 不 进行 重新 构建 , 以 保证 交付 相同 的 东西 。
对于 运行 时 环境 , 使用 容器 化 可以 充分 利用 代码 工件 的 这 一 部分 , 这 是 最 简单 的 方法 。 如果 你 运行 的 是 以 容器 为 中心 的 托管 , 比如 ECS Fargate 或者 Google 的 面向 Docker 的 服务 , 那么 应用 端 就 没有 其他 东西 需要 发布 了 。 这 是 我 的 建议 ,在 混合 中 添加 虚拟 服务 器 只 会 增加 一 个 需要 管理 的 操作 系统 级别 , 而且 没有 什么 好处 。如果 你 可以 让 你 的 应用 无 服务 器 , 这样 它 就 不会 等待 连接 , 而是 在 连接 到来 时 被 调用 , 同样 的 事情 也 适用 , 没有 操作 系统 需要 管理 ( 例如 AWS lambda 有 无 服务 器 Docker 映像 支持 )
对于 有 经验 的 人 来说 , 数据 通常 被 认为 是 测试 环境 的 棘手 问题 。 如果 您 的 生产 数据 一 点 也 不 敏感 , 您 可以 将 其 复制 过来 , 但 这 可能 会 也 可能 不会 真正 起 作用 , 具体 取决 于 数据 中 包含 的 内容 以及 数据 最终 的 分布 情况 。 通常 , 生产 数据 非常 敏感 , 您 不 希望 将 其 暴露 给 开发 环境 。这 使得 确保 开发 数据 适合 测试 特性 变得 非常 棘手 。 克服 这 一 障碍 的 一 种 常见 方法 是 通过 selenium 之类 的 工具 为 Web 浏览 器 自动 化 端 到 端 测试 , 并 为 非 浏览 器 中心 的 端点 自动 化 API 测试 。 这 允许 你 在 编写 测试 时 同时 编写 应用 程序 , 以 证明 它 的 工作 正常 。