If you're talking about GFSH commands only... removing JMX manager options
from "start server" then that's probably reasonable.
But as John described better than me, I wouldn't make
non-dedicated-locators unable to host certain services such as JMX manager
or locator.

For example, it wasn't easy to remove the restriction that locators
couldn't have a cache. Following in that direction again is the wrong way
for Geode.

On Wed, Feb 21, 2018 at 4:47 PM, John Blum <jb...@pivotal.io> wrote:

> What you described is a consequence of its current design/implementation, a
> tightly coupled one at that.
>
> * Why does the "Configuration Service" have to be limited to *Locators*?
>
> * Likewise, why would a "Management Service" be limited to *Managers*?
>
> I think of the later (*Locators/Managers*) as "dedicated processes"
> assigned with certain "responsibilities" (or functions), primarily
> "Location-based/aware services" and "Management services", respectively.
>
> While processes (in the distributed system) may serve in particular roles
> and have certain responsibilities, by no means should "Services" be tied to
> only to dedicated processes; it's a "Service" after all, with its own API
> and set of provider implementations, etc.  Process is context and Service
> is function, which is also an important distinction with consideration to
> Security.
>
> Expanding on this concept, the Configuration Service could also be charged
> with providing/serving the current configuration (not just recording it),
> and both the Configuration Service and Management Service could be grouped
> together as part of a larger, composite service, like an Administrative
> Service, since both are indeed related functions to a certain degree.
>
> Food for thought,
>
> -j
>
>
>
> On Wed, Feb 21, 2018 at 2:57 PM, Jens Deppe <jde...@pivotal.io> wrote:
>
> > One thing that prompted this initial proposal is that our (management and
> > monitoring) service boundaries, (or one could say APIs), are not well
> > defined.
> >
> > Case in point; we currently have a 'configuration service' which is used
> to
> > persist configuration. This service is only available on locators. The
> > 'management service' (as defined/used by gfsh to manipulate
> configuration)
> > can exist on both locators and servers. If it runs on servers then it
> > suddenly does not have access to the configuration service.
> >
> > It almost feels like we need more capabilities around
> > distributed/discoverable micro-services inside Geode.
> >
> > --Jens
> >
> > On Wed, Feb 21, 2018 at 10:44 AM, John Blum <jb...@pivotal.io> wrote:
> >
> > > Typo; Sorry!
> > >
> > > This..
> > >
> > > > I may even launch and connect additional servers using Gfsh within my
> > IDE
> > > (or using *Gfsh*) that are connected to my *Boot* server, particularly
> if
> > > that *Boot* server also embeds a *Locator*.
> > >
> > > should have read...
> > >
> > > > I may even launch and connect additional servers *within my IDE* (or
> > > using
> > >  *Gfsh*) that are connected to my *Boot* server, particularly if that
> > > *Boot*
> > >  server also embeds a *Locator*.
> > >
> > >
> > > On Wed, Feb 21, 2018 at 10:25 AM, Kirk Lund <kl...@apache.org> wrote:
> > >
> > > > Most of the geode developers are working to get rid of singleton
> calls
> > > (and
> > > > next up static code) with the goal of being able to have multiple
> Cache
> > > > instances in one JVM. This is to facilitate writing geode and geode
> > > > application tests in one JVM. This fits in with what John is saying
> as
> > > > well.
> > > >
> > > > Basically, don't make any changes that are going to make testing more
> > > > difficult or prevent running everything in geode within one JVM.
> > > >
> > > > On Wed, Feb 21, 2018 at 10:12 AM, John Blum <jb...@pivotal.io>
> wrote:
> > > >
> > > > > Hi Jinmei-
> > > > >
> > > > > Plain and simple, "development purposes".  I can easily debug such
> a
> > > > server
> > > > > when I can launch it from my IDE and I can still inspect the server
> > > using
> > > > > *Gfsh*.  I may even launch and connect additional servers using
> Gfsh
> > > > within
> > > > > my IDE (or using *Gfsh*) that are connected to my *Boot* server,
> > > > > particularly if that *Boot* server also embeds a *Locator*.
> > > > >
> > > > > Primarily, I just want to be able to run commands that allow me to
> > > > inspect
> > > > > the server(s) (e.g. `list members`, `list regions`, `describe
> > region`,
> > > > > etc).
> > > > >
> > > > > Frequently, and more importantly, I run queries using the `query
> > > > > --query=...`
> > > > > command to look at the data sent by clients.
> > > > >
> > > > >
> > > > > 3 questions...
> > > > >
> > > > > 1. What is the primary issue (limitations, etc) of supporting an
> > > embedded
> > > > > *Manager* on a [cache] server?
> > > > >
> > > > > I can understand in production, you don't want to have the
> additional
> > > > > responsibility, load or security implications that comes with
> > exposing
> > > > the
> > > > > Management service on a *CacheServer*.  However, I would argue the
> > same
> > > > > thing for a *Locator*.  If the *Locator(s)* go down because they
> were
> > > > > overloaded by Management responsibilities, that has dire
> consequences
> > > for
> > > > > the cluster.  E.g. I can no longer add members, clients may no
> longer
> > > be
> > > > > able to connect (leveraging Single-Hop, Load-Balancing, and other
> > > > > capabilities) and in a cloud environments (PCF using PCC) where
> > > > > auto-scaling to the meet demand is critical, service reliability is
> > at
> > > > > risk.  After all, a *Manager* is "federating" are large amount of
> > > > meta-data
> > > > > from other members in the cluster, in memory.
> > > > >
> > > > > Therefore, in my production cluster, I would prefer to have
> dedicated
> > > > *Data
> > > > > Nodes*, *CacheServers* (grouped), *Locators* and *Managers*, all
> > > > separate.
> > > > >
> > > > > 2. What's the difference if the *CacheServer* also runs an embedded
> > > > > *Locator* with Management services running vs a standalone
> > > > > *Locator/Manager*
> > > > > ?
> > > > >
> > > > > 3. Finally, how did we envision developers doing this during
> > > development
> > > > > (I.e. launching servers, debugging, etc)?
> > > > >
> > > > >
> > > > > Again, my desire to want a *CacheServer* with an embedded
> > > > *Manager/Locator*
> > > > > is also purely development-driven, for convenience and to iterate
> > > > quickly,
> > > > > easily.
> > > > >
> > > > > Longer term, 1 of my visions is to improve on IDE support (e.g.
> with
> > > > > plugins) that replace things like *Pulse's* *DataBrowser*, being
> able
> > > to
> > > > do
> > > > > most things inside the IDE instead, along with monitoring
> > capabilities
> > > > and
> > > > > integration with *Spring Boot Actuator*, which is now based on
> > > > > *Micrometer*,
> > > > > etc.
> > > > >
> > > > > Thanks,
> > > > > John
> > > > >
> > > > >
> > > > >
> > > > > On Wed, Feb 21, 2018 at 8:35 AM, Jinmei Liao <jil...@pivotal.io>
> > > wrote:
> > > > >
> > > > > > Hi, John,  what's the intended usage of this jmx-manager on the
> > > > > > cache-server when app developers started a cache-server that way
> in
> > > > > spring
> > > > > > boot? Is that usually for pulse or other jmx client for
> monitoring
> > > > > purpose
> > > > > > mostly? Or they would still want to connect using gfsh and
> execute
> > > > bunch
> > > > > of
> > > > > > commands to create regions/indexes etc? We are just wondering how
> > > much
> > > > > > command support we should do for such jmx-managers.
> > > > > >
> > > > > > On Tue, Feb 20, 2018 at 3:05 PM, John Blum <jb...@pivotal.io>
> > wrote:
> > > > > >
> > > > > > > So long as we **never** remove the ability to start an
> "embedded"
> > > > > > > *Locator/Manager* in an [application] *CacheServer *process*,
> > > *which
> > > > is
> > > > > > > highly valuable during "*development*".
> > > > > > >
> > > > > > > For instance, I may want to spin up an application peer
> > > *CacheServer*
> > > > > > > instance
> > > > > > > with an embedded *Locator/Manager*, like this...
> > > > > > >
> > > > > > > https://github.com/jxblum/simplifying-apache-geode-with-
> > > > > > > spring-data/blob/master/simplifying-apachegeode-
> > > > > > > springdata-complete/src/main/java/example/app/server/
> > > > > > > SpringBootApacheGeodeServerApplication.java
> > > > > > >
> > > > > > > Given this simple *Spring Boot *application class, it is real
> > easy
> > > to
> > > > > > form
> > > > > > > a "*cluster of servers*" also just by changing the run profile
> > > > > > > configuration in my IDE.
> > > > > > >
> > > > > > > Optionally, I should not have to start a *Manager* in my
> > > > > > application-based
> > > > > > > *CacheServer* even if I do start an embedded *Locator*.
> > > > Additionally,
> > > > > > > while it might be less likely to occur, it is also nice to be
> > able
> > > to
> > > > > > start
> > > > > > > an application-based *CacheServer* process with an embedded
> > > *Manager*
> > > > > > > without having to start a *Locator* if I don't want to, since
> it
> > is
> > > > > still
> > > > > > > possible to connect to this node using *Gfsh*, like so...
> > > > > > >
> > > > > > > gfsh> connect --jmx-manager=localhost[1099]
> > > > > > >
> > > > > > > However, the real point is, as an application developer, I
> should
> > > not
> > > > > > have
> > > > > > > to go outside my IDE and use *Gfsh* to spin up separate
> > > > > > > *Locator/Manager(s)*
> > > > > > > and *CacheServer*(s), which is a non-starter for quick,
> iterative
> > > > > > > development, particularly if I want to enable *debugging*,
> which
> > is
> > > > > > > significantly more difficult to do with *Gfsh* (not impossible,
> > but
> > > > > > > definitely more difficult).  *Gfsh* is not a "development"
> tool.
> > > > > > >
> > > > > > > -j
> > > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > --
> > > > > > Cheers
> > > > > >
> > > > > > Jinmei
> > > > > >
> > > > >
> > > > >
> > > > >
> > > > > --
> > > > > -John
> > > > > john.blum10101 (skype)
> > > > >
> > > >
> > >
> > >
> > >
> > > --
> > > -John
> > > john.blum10101 (skype)
> > >
> >
>
>
>
> --
> -John
> john.blum10101 (skype)
>

Reply via email to