支持服务作为附加资源

时间:2017-09-24 03:32:03

标签: spring-boot cloud microservices cloudfoundry 12factor

我正在考虑12因素应用原则并看到了这个说法。我相信这个声明表明应用程序必须响应任何支持服务,如数据库或消息代理,并连接到它们,无论它们是什么。它与传统的连接方式有何不同?例如:在我的微服务中,我在云代工厂中定义了数据库和kafka代理作为用户提供的服务。它只提供连接参数作为vcap服务变量。我仍然有代码连接到完全不同的数据库和kafka代理。这个陈述的含义是什么?它与我们在非云环境中的做法有何不同?

1 个答案:

答案 0 :(得分:0)

如下文所述:

https://12factor.net/backing-services

它声明:

  

支持服务是应用程序在网络上消耗的任何服务,作为其正常操作的一部分。示例包括数据存储(如MySQL或CouchDB),消息/排队系统(如RabbitMQ或Beanstalkd),出站电子邮件的SMTP服务(如Postfix)和缓存系统(如Memcached)。

无论平台如何,微服务都可以连接到任何后备服务。在PCF中,您是要连接到微服务的绑定服务。在其他云环境中,您可以指向任何支持服务,如AWS RDS或平台提供的其他服务。

真正的区别在于:

  

像数据库这样的支持服务传统上由与应用程序运行时部署相同的系统管理员管理。除了这些本地管理的服务之外,应用程序还可以提供由第三方提供和管理的服务。可以附加和分离资源以随意部署。例如,如果应用程序的数据库由于硬件问题而行为不正常,则应用程序的管理员可能会启动从最近的备份恢复的新数据库服务器。可以分离当前的生产数据库,并附加新的数据库 - 所有这些都没有任何代码更改。