随着研发团队远程化、分布化,越来越多企业面临一个问题:

多个城市的开发人员如何访问同一个测试环境?

如何保证:

  • 数据库结构一致;

  • 测试数据一致;

  • 问题可以复现;

  • 数据库访问安全。

很多企业第一反应是开放数据库端口,例如直接开放 MySQL 3306。

但是这种方式存在明显安全风险。


一、直接开放数据库端口的问题

传统方式:

Internet
   |
   |
MySQL Port 3306
   |
   |
Database Server

实际环境中:

开发人员通过公网直接连接数据库。

这种方式的问题:

  • MySQL 端口暴露公网;

  • 容易被扫描攻击;

  • 数据库账号存在泄露风险;

  • 无法控制具体访问人员;

  • 无法审计访问行为。

数据库通常保存核心业务数据,不建议直接暴露互联网。


二、推荐安全访问架构

更合理的方式:

Remote Developer

        |
        |
Secure Access Gateway

        |
        |
Enterprise Internal Network

        |
        |
MySQL Test Database

访问流程:

  1. 开发人员连接安全访问入口;

  2. 系统验证身份和权限;

  3. 建立安全访问通道;

  4. 仅访问授权的测试数据库。

数据库本身无需暴露公网。


三、统一测试数据库架构

推荐企业采用:

+----------------------+
| Remote Development   |
| Teams                |
+----------------------+
          |
          |
          v
+----------------------+
| Secure Remote Access |
| Gateway              |
+----------------------+
          |
          |
          v
+----------------------+
| Internal Test Server |
+----------------------+
          |
          |
          v
+----------------------+
| MySQL / Redis / Apps |
| Unified Environment  |
+----------------------+

优势:

  • 所有开发人员使用统一测试环境;

  • 避免本地环境差异;

  • 数据问题容易复现;

  • 降低测试维护成本。


四、异地研发数据库访问最佳实践

1. 数据库不直接暴露公网

不要:

Developer
    |
 Internet
    |
3306
    |
MySQL

推荐:

Developer
    |
Secure Tunnel
    |
Access Gateway
    |
Internal MySQL

2. 按资源授权访问

研发人员通常只需要:

  • MySQL;

  • Redis;

  • Git;

  • SVN;

  • 测试系统。

不应该开放整个企业网络。

例如:

允许:

Developer A
    |
    |
MySQL Test Database

禁止:

Developer A
    |
    |
Production Server
File Server
Finance System

五、NexTunnel解决异地研发访问问题

对于软件研发团队,核心需求不是进入整个企业内网。

而是:

安全访问指定研发资源。

NexTunnel提供:

  • 外网访问企业内网数据库;

  • 支持 MySQL、Redis、Git、SVN;

  • 精准端口授权;

  • 不开放公网数据库端口;

  • 访问权限控制;

  • 访问审计。

典型场景:

Remote Developer

        |
        |
NexTunnel Secure Channel

        |
        |
Enterprise Server

        |
        |
MySQL Test Database

开发人员可以在家、出差地点访问公司的测试数据库,同时保持企业网络安全。


六、总结

异地研发团队保持统一测试数据库,需要解决两个核心问题:

第一:

统一测试环境。

第二:

安全访问方式。

推荐方案:

  • 测试数据库集中部署;

  • 禁止数据库端口公网暴露;

  • 使用安全访问层;

  • 精细控制访问权限;

  • 建立数据库版本管理机制。

这样可以让分布在不同地区的研发团队,共享统一、安全、稳定的测试环境。