Yeah, can't have auto-deploy in production.

Maybe we can just fix our current deploy command to not generate errors
when used to deploy libraries?


--
Mike Stolz
Principal Engineer, GemFire Product Manager
Mobile: 631-835-4771

On Mon, Jan 9, 2017 at 11:18 AM, Jason Huynh <jhu...@pivotal.io> wrote:

> Wes, I think that is why they suggest turning this dynamic deployment stuff
> off for production...
>
> Development vs Production
>
> It is recommended that peer-class-loading is disabled in production.
> Generally you want to have a controlled production environment without any
> magic. To deploy your classes explicitly, you can copy them into
> Ignite libs folder
> or manually add them to the classpath on every node.
>
> On Sun, Jan 8, 2017 at 8:13 PM Wes Williams <wwilli...@pivotal.io> wrote:
>
> > This seems dangerous to me as a client could send malicious code for
> > execution to all servers.
> > Geode requires an administrative step to do gfsh> deploy --jar=..., that
> > provides a control step that theoretically should check a malicious
> client.
> >
> > As for third-party jars, they do the same as what we're discussing:
> >
> > > "Our suggestion is to include all 3rd party libraries into class path
> of
> > > every node. This can be achieved by copying your JAR files into the
> > Ignite
> > > libs folder."
> >
> >
> > ​As for the dynamical loading and running of Spring jars, let's say that
> > ​timeline pressures and money outweigh a small, temporary network
> > saturation as we distribute Spring jars to the nodes.  We then get to the
> > dynamic loading:
> >
> > If class is not locally available, then a request will be sent to the
> > > originating node to provide class definition. Originating node will
> send
> > > class byte-code definition and the class will be loaded on the worker
> > node.
> > > This happens only once per class - once class definition is loaded on a
> > > node, it will never have to be loaded again.
> >
> >
> > I think it's practical.  However, iIsn't this potentially dangerous as a
> > client could intentionally inject malicious code into the grid?  Whereas
> > gfsh> deploy --jar=... gives Operations a control check point that
> > theoretically can thwart such an attack.
> >
> >
> >
> > *Wes Williams | Pivotal Advisory **Data Engineer*
> > 781.606.0325 <(781)%20606-0325>
> > http://pivotal.io/big-data/pivotal-gemfire
> >
> > On Fri, Jan 6, 2017 at 8:46 PM, Roman Shaposhnik <ro...@shaposhnik.org>
> > wrote:
> >
> > > Btw, I'm sure a comparison of capabilities with Ignite will come up at
> > > some point. So here's what
> > > they do in this department (which I personally find really cool):
> > >    http://apacheignite.gridgain.org/v1.0/docs/zero-deployment
> > >
> > > Thanks,
> > > Roman.
> > >
> > > On Fri, Jan 6, 2017 at 12:11 PM, Anthony Baker <aba...@pivotal.io>
> > wrote:
> > > > Hmmm, I agree with Udo.  I’d like to push a new version of my
> > > application with a single idempotent command.  The server should be
> smart
> > > enough to figure out what's in my bundle and understand how to deploy
> it
> > > including any dependencies (because who writes dependency-free code?).
> > > >
> > > > I do want some lifecycle hooks to alloc/free resources.  This seems
> > > conceptually similar to the “war” model which is pretty familiar to
> most
> > > Java devs.
> > > >
> > > > Anthony
> > > >
> > > >> On Jan 6, 2017, at 11:37 AM, Udo Kohlmeyer <ukohlme...@pivotal.io>
> > > wrote:
> > > >>
> > > >> In some ways that is a great idea.... but sometimes too explicit...
> Do
> > > we expect them to have fine grained jars?
> > > >> Also how do we handle dependencies.... as a single util class might
> be
> > > used by both a cache-listener and a partition listener... is the
> > > expectation that we update the dependent util class for one but not the
> > > other....
> > > >>
> > > >> It's a very grey area....
> > > >>
> > > >> On 1/6/17 11:19, John Blum wrote:
> > > >>> How about...
> > > >>>
> > > >>> * deploy function
> > > >>> * deploy cache-listener
> > > >>> * deploy cache-loader
> > > >>> * deploy cache-loader
> > > >>> * deploy resource (jar, xml, properties, etc)
> > > >>> * etc.
> > > >>>
> > > >>> Might as was make it explicit.  For instance, I may have a JAR
> file I
> > > just
> > > >>> deployed (uploaded) that contains Functions, Listeners, Loaders,
> > > Writers,
> > > >>> etc but I only want to deploy functions.
> > > >>>
> > > >>> Having 1 uber "deploy" command with many options gets cumbersome.
> > > >>>
> > > >>> It is a simple matter to introduce multiple command but have those
> > > commands
> > > >>> share similar logic.  This would also enable different workflows
> for
> > > >>> different commands in a more non-convoluted, maintainable way.
> > > >>>
> > > >>> These could be matched with corresponding `undeploy` commands.
> > > >>>
> > > >>> Food for thought,
> > > >>>
> > > >>> John
> > > >>>
> > > >>>
> > > >>>
> > > >>> On Fri, Jan 6, 2017 at 11:11 AM, Kirk Lund <kl...@apache.org>
> wrote:
> > > >>>
> > > >>>> With appropriate constraints, a copy file type command could be
> > > secure.
> > > >>>>
> > > >>>> 1) don't use Apache Geode without security AND make the command
> > > require
> > > >>>> authorization permissions
> > > >>>> 2) limit the target directory to a directory under the working
> > > directory of
> > > >>>> the remote server
> > > >>>> 3) rename it to "deploy resource" so people don't expect it to
> copy
> > > to an
> > > >>>> arbitrary target directory on the remote machine
> > > >>>>
> > > >>>> Back to "deploy jar":
> > > >>>>
> > > >>>> The deploy command is only for deploying Apache Geode callbacks
> > > (Function,
> > > >>>> CacheListener, etc). "deploy resource" such Spring jars or Spring
> > xml
> > > files
> > > >>>> or anything similar does not overlap with "deploy jar". There is
> > > continued
> > > >>>> confusion over what "deploy jar" is or does. I propose we rename
> it
> > to
> > > >>>> "deploy functions" or "deploy callbacks" or something along those
> > > lines to
> > > >>>> end the confusion.
> > > >>>>
> > > >>>> On Fri, Jan 6, 2017 at 8:13 AM, Michael Stolz <mst...@pivotal.io>
> > > wrote:
> > > >>>>
> > > >>>>> So maybe a generic copy command is too insecure, I agree.
> > > >>>>> What we should do is think about exactly what files we think we
> are
> > > >>>> trying
> > > >>>>> to deploy.
> > > >>>>>
> > > >>>>>    1. I believe that there is a need to deploy dependency jars
> into
> > > the
> > > >>>>>    system classpath.
> > > >>>>>    2. I believe that there is also a desire to be able to deploy
> > > Spring
> > > >>>>>    Data Geode xml configuration files.
> > > >>>>>    3. There is also an issue with attempting to deploy Spring
> Data
> > > Geode
> > > >>>>>    functions that we should try to work out.
> > > >>>>>
> > > >>>>> Anything else that anyone is aware of?
> > > >>>>>
> > > >>>>>
> > > >>>>>
> > > >>>>>
> > > >>>>> --
> > > >>>>> Mike Stolz
> > > >>>>> Principal Engineer, GemFire Product Manager
> > > >>>>> Mobile: 631-835-4771 <(631)%20835-4771>
> > > >>>>>
> > > >>>>> On Fri, Jan 6, 2017 at 10:59 AM, Jacob Barrett <
> > jbarr...@pivotal.io>
> > > >>>>> wrote:
> > > >>>>>
> > > >>>>>> Agree with Anthony. A copy command would either duplicate what
> > > deploy
> > > >>>>> does
> > > >>>>>> by only putting files within as specific location in the
> server's
> > > >>>>> directory
> > > >>>>>> or creating a security nightmare if allowed to write anywhere on
> > the
> > > >>>>> host.
> > > >>>>>>
> > > >>>>>> On Fri, Jan 6, 2017 at 7:56 AM Anthony Baker <aba...@pivotal.io
> >
> > > >>>> wrote:
> > > >>>>>>> I think there are lots of great OS orchestration and automation
> > > >>>> tools.
> > > >>>>>>> I’m not sure I understand the need for `gfsh cp`.  If I could
> > > easily
> > > >>>>> grab
> > > >>>>>>> the member hostnames from `gfsh list members` and pipe them
> into
> > > >>>> mpssh
> > > >>>>>> (for
> > > >>>>>>> example) that would do the job.
> > > >>>>>>>
> > > >>>>>>> I *do* like the idea of an improved `gfsh deploy` that supports
> > hot
> > > >>>>>> deploy
> > > >>>>>>> and reconfiguration.
> > > >>>>>>>
> > > >>>>>>> Anthony
> > > >>>>>>>
> > > >>>>>>>> On Jan 6, 2017, at 2:38 AM, Swapnil Bawaskar <
> > > sbawas...@pivotal.io
> > > >>>>>>> wrote:
> > > >>>>>>>> Some application may need to copy files to all the servers.
> > These
> > > >>>>> files
> > > >>>>>>>> could either be data files or they could be configuration
> files
> > > >>>>> needed
> > > >>>>>> by
> > > >>>>>>>> the application or they could be jar files (that don't have
> > > >>>> functions
> > > >>>>>> but
> > > >>>>>>>> have say, spring data geode jar files) that need to be on the
> > > >>>>> server's
> > > >>>>>>>> classpath.
> > > >>>>>>>> We could accomplish this by enhancing the current gfsh
> "deploy"
> > > >>>>> command
> > > >>>>>>> to
> > > >>>>>>>> accept any kind of file and write it to the servers file
> system
> > OR
> > > >>>>>>> create a
> > > >>>>>>>> new gfsh "copy" command to copy any arbitrary file to the
> > servers.
> > > >>>>>>>> I would personally like to repurpose the deploy command but
> > would
> > > >>>>> like
> > > >>>>>> to
> > > >>>>>>>> hear the community's opinion.
> > > >>>>>>>>
> > > >>>>>>>> Thanks!
> > > >>>>>>>
> > > >>>
> > > >>>
> > > >>
> > > >
> > >
> >
>

Reply via email to