I suggested to move TcpDiscoveryZookeeperIpFinder to ignite-extension. This tiny recipe-like class brings tons of dependency and has nothing common with ZookeeperDiscovery, except it name.
ZookeeperDiscoveryImpl depends only on zookeeper-3.5.5.jar and zookeeper-jute-3.5.5.jar. чт, 17 сент. 2020 г. в 15:07, Ilya Kasnacheev <ilya.kasnach...@gmail.com>: > Hello! > > The situation as follows: > libs/optional/ignite-kubernetes: > ignite-kubernetes-2.8.1.jar jackson-annotations-2.9.10.jar > jackson-core-2.9.10.jar jackson-databind-2.9.10.jar > > libs/optional/ignite-zookeeper: > curator-client-4.2.0.jar curator-x-discovery-4.2.0.jar > jackson-core-asl-1.9.13.jar log4j-1.2.17.jar > slf4j-log4j12-1.7.7.jar > curator-framework-4.2.0.jar guava-16.0.1.jar > jackson-mapper-asl-1.9.13.jar zookeeper-3.5.5.jar > curator-recipes-4.2.0.jar ignite-zookeeper-2.8.1.jar > slf4j-api-1.7.7.jar > zookeeper-jute-3.5.5.jar > > ignite-zookeeper just has way more dependencies than ignite-kubernetes, and > their size is 5-fold. > > These dependencies are not just weight but also vulnerability surface. > > Regards, > -- > Ilya Kasnacheev > > > чт, 17 сент. 2020 г. в 13:55, Ivan Daschinsky <ivanda...@gmail.com>: > > > Hi! I recently found that in slim binary release (at least in nightly > build > > of 2.9.0) there is no ignite-zookeeper module. > > But, for example, ignite-kubernetes is in. > > Petr, could you please clarify why this decision was made? > > We currently have only two discovery implementation in project and leave > > only one alternative looks not obvious for me. > > > > ср, 16 сент. 2020 г. в 17:04, Alexei Scherbakov < > > alexey.scherbak...@gmail.com>: > > > > > Downloading additional jars will not 100% work in private networks, so > we > > > must provide full distro anyway. > > > > > > Also, I do not see any problems in downloading all dependencies, > because > > > their summary size is not too big. > > > > > > I suggest, in addition to tgz archive for manual deployment, provide > > Ignite > > > distribution as RPM (or other package manager(s)) for Linux (MSI for > > > Windows) to automate distribution upgrades, instead of reinventing the > > > wheel. > > > > > > пн, 31 авг. 2020 г. в 10:09, Valentin Kulichenko < > > > valentin.kuliche...@gmail.com>: > > > > > > > Hi Nikolay, > > > > > > > > Thanks for your feedback! Absolutely, the IEP is currently in the > draft > > > > mode - we will be adding more details going forward. Also, Petr > > mentioned > > > > that he wants to create a prototype which I think will make things > > > clearer > > > > for all of us. > > > > > > > > As for "download jars from the Internet on a production server", > that's > > > not > > > > necessarily what we propose. In case of Maven, artifacts are > downloaded > > > > from a specified repository, which doesn't have to be on the > Internet. > > > > Companies that have security concerns typically have a mirror/proxy > > > > containing approved artifacts only, already checked for viruses, etc. > > > > Production servers use the proxy rather than public repositories. > > > > > > > > The concerns that you brought up are certainly valid. However, I > > believe > > > > that using Maven actually addresses them, because Maven (as any other > > > > package/dependency manager for that matter) provides the > corresponding > > > > functionality out of the box. > > > > > > > > On the contrary, users who currently download our ZIP package are > > > *forced* > > > > to download modules and dependencies that they do not even need and > > will > > > > not use. In my experience, this is actually a bigger source of > concern. > > > > > > > > Anyway, let us add more details to the IEP, and we will go from > there. > > > > > > > > P.S. I'm also not sure I agree with your assessment of the embedded > > mode > > > > and thick clients, but that's probably a different discussion. Please > > > feel > > > > free to create a new thread if you would like to discuss this. > > > > > > > > -Val > > > > > > > > On Sat, Aug 29, 2020 at 1:46 AM Nikolay Izhikov <nizhi...@apache.org > > > > > > wrote: > > > > > > > > > Also, guys. > > > > > > > > > > Can we make one step back and add some requirements to the IEP. > > > > > How we want to install and upgrade Ignite? > > > > > What specific issues we want to solve? > > > > > > > > > > With this input we can be on the same page during solution > > discussion. > > > > > > > > > > > 29 авг. 2020 г., в 11:41, Nikolay Izhikov < > nizhikov....@gmail.com> > > > > > написал(а): > > > > > > > > > > > > Hello, Val. > > > > > > > > > > > > Sorry, but I sill don’t understand how «download jars from the > > > internet > > > > > on production server» approach helps us to solve the issues you > > > describe. > > > > > > > > > > > > Moreover, with this enhancement you want to add more dependencies > > to > > > > > Ignite and create some security vulnerabilities: > > > > > > * Maven tool - new dependency. I doubt that and of the > > > production > > > > > server have it > > > > > > * Internet maven repository - many production servers > > restrict > > > > > outgoing internet connection to any addresses. > > > > > > It’s hard to understand why distributed DB should > > have > > > > the > > > > > ability to connect to some kind of address on the Internet. > > > > > > * All Ignite distributions can be compromised with the hack > > of > > > > > some random maven repo or with the malicious proxy. > > > > > > * Note, that Ignite installation or upgrade procedure can > > > become > > > > > dead just because of some Maven repo down. > > > > > > > > > > > > > > > > > > I have 2 concerns: > > > > > > > > > > > > 1. We shouldn’t download any jars from the internet during > > production > > > > > deployment or upgrade procedure. > > > > > > 2. The IEP description, for now, is quite small for such > important > > > > > things as a way we distribute and upgrade Ignite. > > > > > > Petr, can you, please, make IEP more specific. > > > > > > I think we should add the following details: > > > > > > * Description of the typical Ignite deployment > > > procedure > > > > > including folder structure(config, persistence, .m2 and other > > folders) > > > > > > * This also should include examples of the > > bash > > > > > commands if any required. > > > > > > * Description of the typical upgrade(downgrade?) > > > > procedure > > > > > > * This also should include examples of the > > bash > > > > > commands if any required. > > > > > > * Description of «single tool responsible for all > > > > > operations». > > > > > > * all commands > > > > > > * all operations > > > > > > * all parameters > > > > > > > > > > > >> 1. Most paths are resolved relative to IGNITE_HOME, which > > > effectively > > > > > forces (or at least motivates) users to put everything related to > > > Ignite > > > > > under IGNITE_HOME (configs, additional JARs, etc.). > > > > > > > > > > > > AFAIU this issue doesn’t relate to the way Ignite distributed. > > > > > > We can and should fix this outside of this IEP. > > > > > > > > > > > >> 2. Modules are enabled/disabled manually by moving folders > around… > > > > this > > > > > is error-prone, > > > > > > > > > > > > Makes sense. > > > > > > Let’s fix this without «download jar from the internet»? > > > > > > We can have some kind of config with the enabled modules. > > > > > > > > > > > >> 3. Standalone nodes use JARs prepackaged in the ZIP file. > However, > > > if > > > > > you look at how this ZIP is built, you will notice that we don't > > > actually > > > > > include all transitive dependencies, > > > > > > > > > > > > We need to fix this. > > > > > > Let’s include all the required JARs to the distribution. > > > > > > > > > > > >> which means that an embedded node that uses Maven can have a > > > different > > > > > classpath. > > > > > > > > > > > > Embedded Ignite node is an error-prone design decision in the > first > > > > > place. > > > > > > We can’t fix it with the «download jars from the internet» > > approach. > > > > > > We should eliminate the client node as a thing and use a thin > > clients > > > > > instead of it. > > > > > > > > > > > >> 4. ignite.sh allows manual modifications (there are several > > > "Uncomment > > > > > this to..." lines). This complicates upgrades as well. > > > > > > > > > > > > Makes sense. > > > > > > Let’s fix this. > > > > > > > > > > > >> The whole purpose of the IEP is to fix the above, automate and > > > > simplify > > > > > operations for the users. The general idea is to create a single > tool > > > > > responsible for all those operations and use Maven under the hood > to > > > > > include/exclude modules. > > > > > > > > > > > > For now, IEP lacks the description of this tool. > > > > > > > > > > > >> 28 авг. 2020 г., в 22:35, Valentin Kulichenko < > > > > > valentin.kuliche...@gmail.com> написал(а): > > > > > >> > > > > > >> Hi Nikolay, > > > > > >> > > > > > >> Here are some of the issues that I see with the current binary > ZIP > > > > > package > > > > > >> that we create for every release. > > > > > >> > > > > > >> 1. Most paths are resolved relative to IGNITE_HOME, which > > > effectively > > > > > >> forces (or at least motivates) users to put everything related > to > > > > Ignite > > > > > >> under IGNITE_HOME (configs, additional JARs, etc.). Now, when a > > user > > > > > >> downloads and unzips a new version, they have to somehow merge > the > > > > > content > > > > > >> together - that's poor upgradability. > > > > > >> 2. Modules are enabled/disabled manually by moving folders > around. > > > Not > > > > > only > > > > > >> this is error-prone, but it also adds more issues to > > upgradability - > > > > you > > > > > >> have to apply these steps for every version you download. > > > > > >> 3. Standalone nodes use JARs prepackaged in the ZIP file. > However, > > > if > > > > > you > > > > > >> look at how this ZIP is built, you will notice that we don't > > > actually > > > > > >> include all transitive dependencies, which means that an > embedded > > > node > > > > > that > > > > > >> uses Maven can have a different classpath. It seems that we've > > been > > > > > lucky > > > > > >> so far as this hasn't caused any issues, but I still think the > > > > approach > > > > > is > > > > > >> wrong. The behavior should be consistent. > > > > > >> 4. ignite.sh allows manual modifications (there are several > > > "Uncomment > > > > > this > > > > > >> to..." lines). This complicates upgrades as well. > > > > > >> > > > > > >> The whole purpose of the IEP is to fix the above, automate and > > > > > >> simplify operations for the users. The general idea is to > create a > > > > > single > > > > > >> tool responsible for all those operations and use Maven under > the > > > hood > > > > > to > > > > > >> include/exclude modules. > > > > > >> > > > > > >> Exact commands and steps are still under discussion though. It > > looks > > > > > like > > > > > >> Petr is going to create a prototype that can be used as a > starting > > > > > point, > > > > > >> but if you have any suggestions or ideas in the meantime, please > > > share > > > > > them > > > > > >> with us. > > > > > >> > > > > > >> -Val > > > > > >> > > > > > >> On Fri, Aug 28, 2020 at 12:31 AM Nikolay Izhikov < > > > nizhi...@apache.org > > > > > > > > > > >> wrote: > > > > > >> > > > > > >>> Hello, Igniters. > > > > > >>> > > > > > >>> Not sure if I understand the essence of the proposal at the > > moment. > > > > > >>> Can you, please, describe the advantages of the proposed way > from > > > the > > > > > user > > > > > >>> perspective? > > > > > >>> > > > > > >>> How the typical DevOps pipeline should look like with this > > > > enhancement? > > > > > >>> > > > > > >>> How I as a user can create a fully functional installation > > package > > > of > > > > > the > > > > > >>> Ignite? > > > > > >>> AFAIK downloading some artifacts from the internet straight to > > the > > > > > >>> production server is a security anti-pattern. > > > > > >>> > > > > > >>> > > > > > >>>> 28 авг. 2020 г., в 01:59, Denis Magda <dma...@apache.org> > > > > написал(а): > > > > > >>>> > > > > > >>>> Petr, thanks, > > > > > >>>> > > > > > >>>> There is also a collection of modules located in our > extensions > > > > > >>> repository: > > > > > >>>> https://github.com/apache/ignite-extensions > > > > > >>>> > > > > > >>>> @Saikat Maitra <saikat.mai...@gmail.com> is migrating all our > > > > > existing > > > > > >>>> integrations to that repository and, once this is done, the > > > > extensions > > > > > >>> will > > > > > >>>> be released to Maven separately. Is it reasonable to expand > the > > > > scope > > > > > of > > > > > >>>> the IEP-52 and contemplate on how to install those extensions? > > > > > >>>> > > > > > >>>> - > > > > > >>>> Denis > > > > > >>>> > > > > > >>>> > > > > > >>>> On Thu, Aug 27, 2020 at 3:40 PM Valentin Kulichenko < > > > > > >>>> valentin.kuliche...@gmail.com> wrote: > > > > > >>>> > > > > > >>>>> Hi Petr, > > > > > >>>>> > > > > > >>>>> The proposal makes sense to me - thanks for starting the > > > > discussion. > > > > > >>>>> Current installation and upgrade procedures involve a lot of > > > manual > > > > > >>> steps > > > > > >>>>> and quite error-prone, we need to automate and simplify them > as > > > > much > > > > > as > > > > > >>>>> possible. > > > > > >>>>> > > > > > >>>>> I believe we eventually should end up with a unified > > command-line > > > > > tool > > > > > >>>>> (ignitectl?) that will incorporate all the operations > > > > (enable/disable > > > > > >>>>> modules, start/stop, configuration updates, activation, > > baseline, > > > > > etc.). > > > > > >>>>> This IEP is a step in this direction. > > > > > >>>>> > > > > > >>>>> Looking forward to testing a prototype :) > > > > > >>>>> > > > > > >>>>> -Val > > > > > >>>>> > > > > > >>>>> On Thu, Aug 27, 2020 at 2:17 AM Petr Ivanov < > > mr.wei...@gmail.com > > > > > > > > > >>> wrote: > > > > > >>>>> > > > > > >>>>>> Hi, Igniters! > > > > > >>>>>> > > > > > >>>>>> > > > > > >>>>>> For Apache Ignite 3.0 I would like to propose vision of > > enhanced > > > > > >>> delivery > > > > > >>>>>> and upgrade processes [1]. > > > > > >>>>>> The key idea is to make main binary as slim as possible > > > > (delivering > > > > > >>> every > > > > > >>>>>> optional component by demand only) while providing way to > run > > > each > > > > > new > > > > > >>>>>> version seamlessly without much of the efforts migrating > data > > > and > > > > > >>>>>> configuration between upgrades. > > > > > >>>>>> > > > > > >>>>>> I plan to create prototype based on current release of > Apache > > > > Ignite > > > > > >>>>>> (2.8.1 or 2.9.0 if it will be released soon) later in > > September. > > > > > >>>>>> > > > > > >>>>>> > > > > > >>>>>> > > > > > >>>>>> [1] > > > > > >>>>>> > > > > > >>>>> > > > > > >>> > > > > > > > > > > > > > > > https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=158873958 > > > > > >>>>>> > > > > > >>>>>> > > > > > >>>>> > > > > > >>> > > > > > >>> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > > Best regards, > > > Alexei Scherbakov > > > > > > > > > -- > > Sincerely yours, Ivan Daschinskiy > > > -- Sincerely yours, Ivan Daschinskiy