Date
1 - 7 of 7
service discovery
James Bayer
i would encourage you to consider a circuit breaker pattern like hystrix
which will have graceful degradation if a remote endpoint is unavailable because it has not started yet, has too many failures, is network segmented, etc.. On Thu, Jun 25, 2015 at 9:02 PM, Sumanth Yamala <Sumanth.Yamala(a)sas.com> wrote: No. My endpoints don't change. I envision having a number of 12 factor -- Thank you, James Bayer |
|
Sumanth Yamala
No. My endpoints don't change. I envision having a number of 12 factor stateless applications getting deployed using CF push (java buildpacks). Some of these stateless apps need to talk to each other and so the need for service discovery.
Currently we use Consul - i.e. each 12 factor app registers itself with Consul and apps needs to re-discover another app. We feed in the Consul end point to all the apps as an environment variable. Using environment variables has a dependency issue that certain applications that have not been started yet, would not be visible to applications that have already started...but a HashMap of apps and its route could itself serve as a repository to discover other applications as long as the app can get access to the hash map or we persist this hash map as a KV store in Consul. Thanks all for your inputs. Sumanth ________________________________ From: cf-dev-bounces(a)lists.cloudfoundry.org <cf-dev-bounces(a)lists.cloudfoundry.org> on behalf of James Bayer <jbayer(a)pivotal.io> Sent: Thursday, June 25, 2015 11:42 PM To: Discussions about Cloud Foundry projects and the system overall. Subject: Re: [cf-dev] service discovery can you describe the architecture of your applications? do the endpoints change often after some mircoservices have been started? your app needs some way to look up other network endpoints it needs. there are several ways to do this. * use environment variables - which is provided just-in-time when the container starts - this might be a URL for example, that routes to the CF router that might be bound to several different apps, but all the source app needs to know is the destination route represented by a FQDN and optional context path * use a service - either user a service broker or provided service that provides information to the apps that bind to it, might be a URL and authentication information, this information is also put in the apps env variables * use something like the spring cloud config service that can distribute information to clients dynamically post container start [1] * use something like the spring cloud eureka service from netflix oss that can provide dynamic information to clients using netflix ribbon, also takes in updates post container start [2] [3] [1] https://www.youtube.com/watch?v=bJvReWt2jLc [2] http://cloud.spring.io/spring-cloud-netflix/spring-cloud-netflix.html [3] http://blog.pivotal.io/pivotal-cloud-foundry/features/deploying-microservice-architectures-with-pivotal-cloud-foundry On Thu, Jun 25, 2015 at 7:47 PM, Sumanth Yamala <Sumanth.Yamala(a)sas.com<mailto:Sumanth.Yamala(a)sas.com>> wrote: micro-service architecture. Yes - would like for applications to discover the URL of other applications deployed in CF . Consul is what I use right now - was wondering if CloudFoundry had something in this space. Service brokers I thought are only for stateful components like a database, Consul..can it be used for stateless components as well? Thanks, Sumanth ________________________________ From: cf-dev-bounces(a)lists.cloudfoundry.org<mailto:cf-dev-bounces(a)lists.cloudfoundry.org> <cf-dev-bounces(a)lists.cloudfoundry.org<mailto:cf-dev-bounces(a)lists.cloudfoundry.org>> on behalf of John Wong <gokoproject(a)gmail.com<mailto:gokoproject(a)gmail.com>> Sent: Thursday, June 25, 2015 10:35 PM To: Discussions about Cloud Foundry projects and the system overall. Subject: Re: [cf-dev] service discovery What's the requirement that your application need to discover other application? Did you mean somethibg like say microservice architecture and you want to know the url available and any metadat / property of some service / app you depend on? One way is via service broker. You can use also use consul and token to do ACL based resource retrieval/discovery and I have seen this apptoach (actually today at a local tech talk). On Thursday, June 25, 2015, Sumanth Yamala <Sumanth.Yamala(a)sas.com<mailto:Sumanth.Yamala(a)sas.com>> wrote: Hi, In CF space - the applications that get deployed in warden containers - how do they discover other applications ? Should we pick a third party like Consul or Eureka, or does CF provide an alternate approach. Thanks in advance. Thanks, Sumanth -- Sent from Jeff Dean's printf() mobile console _______________________________________________ cf-dev mailing list cf-dev(a)lists.cloudfoundry.org<mailto:cf-dev(a)lists.cloudfoundry.org> https://lists.cloudfoundry.org/mailman/listinfo/cf-dev -- Thank you, James Bayer |
|
James Bayer
can you describe the architecture of your applications? do the endpoints
change often after some mircoservices have been started? your app needs some way to look up other network endpoints it needs. there are several ways to do this. * use environment variables - which is provided just-in-time when the container starts - this might be a URL for example, that routes to the CF router that might be bound to several different apps, but all the source app needs to know is the destination route represented by a FQDN and optional context path * use a service - either user a service broker or provided service that provides information to the apps that bind to it, might be a URL and authentication information, this information is also put in the apps env variables * use something like the spring cloud config service that can distribute information to clients dynamically post container start [1] * use something like the spring cloud eureka service from netflix oss that can provide dynamic information to clients using netflix ribbon, also takes in updates post container start [2] [3] [1] https://www.youtube.com/watch?v=bJvReWt2jLc [2] http://cloud.spring.io/spring-cloud-netflix/spring-cloud-netflix.html [3] http://blog.pivotal.io/pivotal-cloud-foundry/features/deploying-microservice-architectures-with-pivotal-cloud-foundry On Thu, Jun 25, 2015 at 7:47 PM, Sumanth Yamala <Sumanth.Yamala(a)sas.com> wrote: micro-service architecture. -- Thank you, James Bayer |
|
John Wong
Service brokers I thought are only for stateful components like adatabase, Consul..can it be used for stateless components as well? Well here is a way to look at it. You can have consul to discover a bunch of cassandra nodes in a cluster, and you can remove a node from ever being contacted by your application if said node is not responsive. Another example is nginx behind ha proxy or a bunch of apps behind ha proxy, and you can remove app/webservers went down from ha proxy config dynamically with some consul engineering. So what exactly makes something stateless in your case? I think if you can provide us a concrete use case that'd be very helpful (because you can do stateless with like DNS load balancing / behind ELB / HA Proxy etc). John On Thu, Jun 25, 2015 at 10:47 PM, Sumanth Yamala <Sumanth.Yamala(a)sas.com> wrote: micro-service architecture. |
|
Sumanth Yamala
micro-service architecture.
Yes - would like for applications to discover the URL of other applications deployed in CF . Consul is what I use right now - was wondering if CloudFoundry had something in this space. Service brokers I thought are only for stateful components like a database, Consul..can it be used for stateless components as well? ? Thanks, Sumanth ________________________________ From: cf-dev-bounces(a)lists.cloudfoundry.org <cf-dev-bounces(a)lists.cloudfoundry.org> on behalf of John Wong <gokoproject(a)gmail.com> Sent: Thursday, June 25, 2015 10:35 PM To: Discussions about Cloud Foundry projects and the system overall. Subject: Re: [cf-dev] service discovery What's the requirement that your application need to discover other application? Did you mean somethibg like say microservice architecture and you want to know the url available and any metadat / property of some service / app you depend on? One way is via service broker. You can use also use consul and token to do ACL based resource retrieval/discovery and I have seen this apptoach (actually today at a local tech talk). On Thursday, June 25, 2015, Sumanth Yamala <Sumanth.Yamala(a)sas.com<mailto:Sumanth.Yamala(a)sas.com>> wrote: Hi, In CF space - the applications that get deployed in warden containers - how do they discover other applications ? Should we pick a third party like Consul or Eureka, or does CF provide an alternate approach. Thanks in advance. Thanks, Sumanth -- Sent from Jeff Dean's printf() mobile console |
|
John Wong
What's the requirement that your application need to discover other
toggle quoted message
Show quoted text
application? Did you mean somethibg like say microservice architecture and you want to know the url available and any metadat / property of some service / app you depend on? One way is via service broker. You can use also use consul and token to do ACL based resource retrieval/discovery and I have seen this apptoach (actually today at a local tech talk). On Thursday, June 25, 2015, Sumanth Yamala <Sumanth.Yamala(a)sas.com> wrote:
Hi, --
Sent from Jeff Dean's printf() mobile console |
|
Sumanth Yamala
Hi,
In CF space - the applications that get deployed in warden containers - how do they discover other applications ? Should we pick a third party like Consul or Eureka, or does CF provide an alternate approach. Thanks in advance. Thanks, Sumanth |
|