我正在查看 12 factor app 原则并看到了这个声明。我相信此声明表明应用程序必须响应任何支持服务,例如数据库或消息代理并连接到它们,无论它们是什么。它与传统的连接方式有何不同?例如:在我的微服务中,我将数据库和 kafka 代理定义为云代工厂中的用户提供服务。它只是提供连接参数作为 vcap 服务变量。我仍然有代码可以连接到完全不同的数据库和 kafka 代理。这个声明意味着什么,它与我们在非云环境中所做的有什么不同?
问问题
886 次
1 回答
0
如以下文章所述:
https://12factor.net/backing-services
它指出:
后备服务是应用程序在网络上使用的任何服务,作为其正常操作的一部分。示例包括数据存储(如 MySQL 或 CouchDB)、消息/队列系统(如 RabbitMQ 或 Beanstalkd)、用于出站电子邮件的 SMTP 服务(如 Postfix)和缓存系统(如 Memcached)。
无论平台如何,微服务都可以连接到任何支持服务。在 PCF 中,您将服务绑定到您的微服务以进行连接。在其他云环境中,您可以指向任何支持服务,例如 AWS RDS 或平台提供的其他服务。
真正的区别是:
像数据库这样的支持服务传统上由与应用程序的运行时部署相同的系统管理员管理。除了这些本地管理的服务外,该应用程序还可能具有由第三方提供和管理的服务。资源可以随意附加和分离部署。例如,如果应用程序的数据库由于硬件问题而出现异常,则应用程序的管理员可能会启动从最近备份中恢复的新数据库服务器。可以分离当前的生产数据库,并附加新的数据库——所有这些都无需任何代码更改。
于 2017-09-24T04:10:32.107 回答