今年开始,国家明确开始加大鼓励跨境电商行业。你选择在海外电商网站开设店铺,也可以选择建立跨境电商独立站,即自主搭建的、拥有独立域名的跨境电商网站。 这种网站不依赖于任何第三方电商平台,不需要向平台交佣金,可以自主运营和管理,直接面向全球消费者进行商品或服务的销售。
做一个跨境电商独立站的三种方式
目前,市面上有三种主要的建站模式,分别是全自主开发、基于开源软件搭建独立站,以及基于SaaS平台搭建跨境电商独立网站。其中基于SaaS平台是最常见的做法,主流的建站平台包括Shopify、Shoplazza、WooCommerce等。三种开发方式对团队的技术要求不同:
- 全自主开发:
- 技术要求:非常高。需要一个专业的开发团队来设计和实现所有功能,从用户界面到后台管理系统,再到支付网关集成等。此外,还需要有能力进行持续的维护和更新。
- 适合人群:对于那些有明确需求且预算充足的企业,或者已经拥有内部技术团队的企业来说是理想的选择。
- 基于开源软件搭建独立站:
- 技术要求:中等到高。虽然这些平台通常提供安装包和文档,但要完全定制化和优化站点可能仍需一定的编程知识和技术能力。特别是当涉及到安全配置、性能优化、插件开发或修改时。
- 适合人群:有一定技术背景的个人或中小企业,尤其是希望在成本控制的同时获得灵活性和可扩展性的商家。
- 基于SaaS平台搭建跨境电商独立网站:
- 技术要求:低。大多数SaaS平台都提供了直观的用户界面,允许用户通过拖拽元素轻松创建商店,并提供了大量的模板和插件来满足基本需求。此外,很多SaaS平台还提供客户支持服务。
- 适合人群:新手卖家、小型企业或没有专业技术资源的人士。这类平台降低了进入门槛,使得任何人都可以快速启动并运行自己的在线商店。
但不论是全自主开发,还是基于开源软件搭建跨境电商独立站,你都会需要用到海外云服务。我们此前曾经对比过谷歌云服务器(GCP)、AWS、微软云(Azure)和 DigitalOcean,相对于希望控制成本,并使用相对简单易用的云服务的卖家来讲,我们更推荐 DigitalOcean。
本文,我们将介绍如何使用DigitalOcean 的全球负载均衡器(Global Load Balancer, GLB)和 VPC 对等连接(VPC peering),在 DigitalOcean 上部署一个高可用性的跨境电商独立站,以确保分布式资源之间的无缝连接,让你在全球不同地区的用户都可以获得相同的访问体验。良好的访问体验,也有助于你的跨境电商独立站在 Google 搜索等搜索引擎中获得更好的评分和排名。该网站前端基于 Next.js 构建,后端使用 Node.js,并将拥有可扩展的基础设施、负载均衡以及高可用性。
前提条件
在开始之前,请确保您具备以下条件:
- 一个 DigitalOcean 账户。
- 对云网络、VPC 和负载均衡概念的基本了解。
- 在您选择的不同地区创建了多个用于高可用性的 Droplets(虚拟机)。
- 在您选择的地区设置了一个具有高可用性(备用节点)的托管 MySQL 数据库。
- 对部署 Next.js 和 Node.js 应用程序有基本的了解。
架构图
架构概述
- 前端:Next.js 应用程序。
- 后端:Node.js 应用程序。
- 数据库:托管的 MySQL 数据库,配置为高可用性,位于新加坡。
- 服务器位置:两个 DigitalOcean Droplets 云服务器分别位于法兰克福和旧金山。
- 网络架构:通过 VPC 对等连接实现安全通信,通过 GLB 实现跨区域的流量分配。
步骤 1 — 部署 Droplets
由于我们希望这个跨境电商独立站的浏览用户可以在世界不同地区都有相同的低延时体验,所以我们在法兰克福和旧金山各部署了一个 Droplet。(阅读这篇教程,你可以更详细了解如何创建 Droplet)
- 创建 Droplets
- 从仪表板创建两个或更多地区的 Droplets。
- 确保所有 Droplets 的 CPU、RAM 和存储规格相同,以保证一致的性能。
- 安装所需软件
- SSH 登录到每个 Droplet 并安装应用程序堆栈所需的软件(Node.js 和 Next.js)。
- 确保 Droplets 上已部署您的电商应用。这可能涉及从 Git 仓库拉取代码、设置环境变量,并使用如 PM2 这样的进程管理器启动应用。
步骤 2 — 配置具有高可用性的托管 MySQL 数据库
为了让我们的跨境电商独立站在故障期间仍然可用,我们需要确保数据库设置了高可用性。
- 创建托管 MySQL 数据库
- 设置一个启用了高可用性的托管 MySQL 数据库服务。此服务将自动处理故障转移和复制。
- 启用高可用性
- 在数据库创建过程中启用高可用性和备用配置。
- 可选地,在不同的可用区配置一个只读副本(RO)MySQL 节点,以防整个地区受到影响时可以将其升级为主节点。
- 配置安全性
- 配置防火墙规则,仅允许来自您的 Droplets 的 IP 访问 MySQL 数据库。
- 测试连接性
- 从两个 Droplets 测试数据库连接,确保应用程序能够成功读写 MySQL 数据库。
步骤 3 — 设置全球负载均衡器(GLB)
全球负载均衡器(GLB)对于将流量均匀分布到多个地区至关重要,确保世界各地的用户都能获得最佳的访问体验。
- 登录 DigitalOcean 仪表板。
- 创建全球负载均衡器
- 导航到负载均衡器部分,创建一个新的 GLB。配置它以在法兰克福和旧金山的两个 Droplets 之间分配流量。
- 前端配置
- 设置前端监听 80 或 443 端口(针对 HTTP/HTTPS)。
- 健康检查
- 启用健康检查,确保 GLB 只将流量路由到健康的 Droplets。由于我们的应用程序运行在 3000 端口,配置健康检查也监听同一端口。
- 配置负载均衡规则
- 定义规则,根据最少连接数或轮询方法等因素,在两个 Droplets 之间平衡传入流量。
- DNS 配置
- 设置 DNS 记录,将您的域名指向 GLB 的 IP 地址。
此时,你的 GLB 应该已经激活,并在法兰克福和旧金山的 Droplets 之间分配流量。
步骤 4 — 设置 Droplets 和托管数据库之间的 VPC 对等连接
VPC 对等连接允许前端 Droplets 和托管数据库之间通过私有 IP 而不是公共 IP 进行安全通信。
- 创建 VPC 对等连接
- 从云提供商的仪表板导航到 VPC 部分,创建一个 VPC 对等连接,连接 Droplets(法兰克福和旧金山)与托管 MySQL 数据库(新加坡)的 VPC。
- 更新路由表
- VPC 对等连接建立后,更新 Droplets 和数据库 VPC 的路由表,使流量可以通过对等连接进行路由。
- 更新防火墙
- 更新 Droplets 的防火墙,允许出站流量到达 MySQL 实例。
- 同样,配置数据库的信任来源部分,接受来自 Droplets 的入站连接。
- 测试连接
- 从两个 Droplets 测试与数据库的连接,确保 VPC 对等连接设置正确,并且数据可以在前端和后端之间安全流动。您可以使用 telnet 私下连接到数据库。
步骤 5 — 部署电商应用堆栈(Next.js + Node.js)
现在基础设施已经就绪,我们可以将电商应用部署到 Droplets 上。
- 克隆应用程序
- SSH 登录到每个 Droplet 并克隆您的电商应用仓库,或者将应用代码上传到 Droplets。
- 安装依赖项
- 确保安装了 Node.js、npm(或 yarn)以及 Next.js 和 Node.js 应用程序所需的其他依赖项。
- 设置环境变量
- 为前端和后端配置环境变量。这些可能包括 API 密钥、数据库凭证等。
- 启动应用程序
- 使用 PM2 或其他进程管理器启动 Next.js 应用(前端)和 Node.js 应用(后端)。
- 确保应用程序可通过负载均衡器的 DNS 名称访问。
- 验证应用功能
- 在每个地区(法兰克福和旧金山)测试应用程序,确保用户通过全球负载均衡器正确路由,并验证前端和后端组件是否按预期工作。
小结
在本文中,我们成功地使用全球负载均衡器和 VPC 对等连接部署了一个跨境电商独立站。通过利用托管的 MySQL 数据库的高可用性以及在不同地区设置多个 Droplets,我们确保了全球用户的高可用性和低延迟。通过前端 Droplets 和数据库之间的 VPC 对等连接,我们在保持可扩展性的同时保障了通信的安全性。遵循这些步骤,您可以为任何全球分布的电商应用构建一个弹性和高性能的架构。
如果你需要了解更多关于 DigitalOcean 的产品信息,或希望得到官方的技术指导以及折扣,可以联系 DigitalOcean 中国区独家战略合作伙伴卓普云。
标签:延时,Droplets,数据库,js,高可用性,VPC,跨境,电商 From: https://blog.csdn.net/DO_Community/article/details/144281798