我们的云部署应用程序包括(简化):
- Web前端
1.一些后端服务
1.数据库
在开发前端时,我可以通过在本地运行前端并将其后端调用重定向到实际的服务来轻松地进行调试,因为它们的终结点路由是公共的。
但是,我还想调试后端服务代码和前端。我可以在本地运行后端服务,但它们不能访问数据库,因为数据库没有任何公共可访问的端点。
**问题:**如何方便地开发服务代码?我可以想到以下选项:
1.公开数据库,也许只是开发环境的数据库。这听起来不像是一个好的安全实践,我还没有找到一种方法在我的云平台(CloudFoundry)中做到这一点。
1.使用本地单元和组件测试来测试所有的东西。我们这样做,但是不能覆盖所有的东西,当然也不能覆盖与前端的集成。
- 将我的代码更改部署到开发环境中,并以这种方式进行测试。这是我们现在所做的,但是:
- 与在本地运行相比,这是一个慢得多的开发转变
- 我无法将调试器连接到已部署的应用程序,因此必须使用日志进行调试,这同样很慢
- 我们的开发环境数量有限,这就造成了对它们的争用。
- 使用某种测试数据,以某种方式在本地部署数据库的副本。
**技术细节:**对于云,我们使用AWS上的CloudFoundry。我的后端服务使用C# + .NET core 5编写。在本地,我们使用Windows上的Visual Studio 2019开发它们。
1条答案
按热度按时间qaxu7uf21#
现在,我设法使用SSH隧道在本地公开我的数据库,具体来说,通过运行
cf ssh [AppName] -L [local_port]:[db_hostname]:[port]
,其中[db_hostname]:[port]
取自应用程序的配置,通过运行cf env [AppName]
取得。