随着研发团队远程化、分布化,越来越多企业面临一个问题:
多个城市的开发人员如何访问同一个测试环境?
如何保证:
数据库结构一致;
测试数据一致;
问题可以复现;
数据库访问安全。
很多企业第一反应是开放数据库端口,例如直接开放 MySQL 3306。
但是这种方式存在明显安全风险。
一、直接开放数据库端口的问题
传统方式:
Internet
|
|
MySQL Port 3306
|
|
Database Server
实际环境中:
开发人员通过公网直接连接数据库。
这种方式的问题:
MySQL 端口暴露公网;
容易被扫描攻击;
数据库账号存在泄露风险;
无法控制具体访问人员;
无法审计访问行为。
数据库通常保存核心业务数据,不建议直接暴露互联网。
二、推荐安全访问架构
更合理的方式:
Remote Developer
|
|
Secure Access Gateway
|
|
Enterprise Internal Network
|
|
MySQL Test Database
访问流程:
开发人员连接安全访问入口;
系统验证身份和权限;
建立安全访问通道;
仅访问授权的测试数据库。
数据库本身无需暴露公网。
三、统一测试数据库架构
推荐企业采用:
+----------------------+
| 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
开发人员可以在家、出差地点访问公司的测试数据库,同时保持企业网络安全。
六、总结
异地研发团队保持统一测试数据库,需要解决两个核心问题:
第一:
统一测试环境。
第二:
安全访问方式。
推荐方案:
测试数据库集中部署;
禁止数据库端口公网暴露;
使用安全访问层;
精细控制访问权限;
建立数据库版本管理机制。
这样可以让分布在不同地区的研发团队,共享统一、安全、稳定的测试环境。