I need some clarification on an aspect of CloudFoundry architecture guidelines. CF has two major concepts – applications and services. CF-Applications can consume CF-Services using the CloudFoundry infrastructure to create and manage service instances.
However, we have found that CF-Applications can also expose REST endpoints to consumers. Thus, they can act like quick-and-dirty substitutes for actual CF-Services. Of course, you cannot use any instance management or binding features, which IMO defeats the purpose of using CF.
My question: Is this usage valid in terms of CF deployment architecture? Should we (as a team) allow our functional services to be deployed as CF-Applications instead of CF-Services?
Also, some of our services are singleton “utility” services with no concept of user space or tenancy, such as translation, logging, etc. In this case, instance management is an overhead. Would the guidelines be different for this type of service?
I’ve read through the CF docs but I haven’t come across this use-case. I’m looking for published guidelines or any real-world impact of going down this route.