[GeoNode-devel] Docker Strategy Chat

Olivier Dalang olivier.dalang at gmail.com
Thu Sep 6 20:13:36 PDT 2018


Hi,

@Francesco

Indeed, this does not necessarily need to be tied with next release. But I
think it is urgent still. We have a lot of problems with the current
deployment method (well described in #3722
<https://github.com/GeoNode/geonode/issues/3722> ) and it seems with the
resources we have, it won't get better over time.

It's likely in the next couple of months I can dedicate a bit of time to
> achieve this which is my top priority at the moment for docker deployments.
> Obviously your or somebody's else help would be very useful if you are
> available.
>

We have a GNIP <https://github.com/GeoNode/geonode/issues/3707> about this,
had lots of discussions including a skype call with a lot of us, and the
consensus was basically to wait until the current PSC to validate the GNIP
and see how we move on. If you're currently working on docker for
deployment, it would be good not to ignore those completely, especially if
you're hoping for help or collaboration.

As for why I suggest to use the SPCgeonode setup to start with, it's just
that it's relatively close to tick the boxes that we discussed in the GNIP,
and that it could realistically reach beta state very soon.

My idea is not to impose my solution, hence the 2 steps proposition with
first step outside of the main repo. Once we've solved the urging need of
having another more sustainable deployment solution, we can slowly work to
merge the implementations in the main repo.

@Toni

It would be for the name of the repository. SPCgeonode wouldn't really make
sense outside of my organization.
Maybe something like GeoNode/docker-deployment...

Cheers,

Olivier




Le jeu. 6 sept. 2018 à 22:22, francesco bartoli <xbartolone at gmail.com> a
écrit :

> Hi Olivier,
>
> I would hold this one until the next meeting and vote your proposal with
> the two phases. Personally I don't like to have 2 parallel deployment
> methods and even regarding 1/ I don't see the urgency to have this
> additional intermediate step for the release. I have the feeling that this
> would be confusing for the users.
>
> If we want to take on something which is one of the most important issue
> than I would try to setup a CI for docker deployments which can be then
> still used when we'll achieve the step 2/ imho.
> I'll give you an example: you reported the issue regarding allowed_hosts
> for a Windows environment but yesterday I realized together with Alessio
> that actually it was a regression affecting all the deployments regardless
> of the OS and nobody was aware...
>
> It's likely in the next couple of months I can dedicate a bit of time to
> achieve this which is my top priority at the moment for docker deployments.
> Obviously your or somebody's else help would be very useful if you are
> available.
>
> Cheers,
> Francesco
>
>
> Il giorno gio 6 set 2018 alle ore 03:49 Olivier Dalang <
> olivier.dalang at gmail.com> ha scritto:
>
>> Hi all !
>>
>> Some time has passed since we last discussed deployment with Docker. I'm
>> still willing to work on officially supporting docker deployment for
>> Geonode.
>>
>> To move forward on the docker deployment, I suggest a two phase strategy.
>>
>> 1/ copy over the SPCgeonode repo to the geonode organization (more or
>> less as is) and document that deployment method as an official one l (but
>> in beta state). We'd need to find a good name for it - suggestions welcome.
>> 2/ work on making the SPCgeonode setup and the setup in the main repo
>> converge, with the end goal of removing the docker deployment repo
>> altogether and have everything in the main repo, using the same
>> docker-compose, with a docker-compose.deploy.yml that adds deployment
>> specific elements (https, backups)
>>
>> 1/ could happen very soon (maybe even before next release), while 2/
>> would take more time, as it requires to go carefully through both
>> implementations and take the best of both.
>>
>> I think this would accommodate both the goal of having a ready deployment
>> method soon, and the final goal of having the deployment method use the
>> same docker images than dev, without being disruptive for users currently
>> relying on the docker images.
>>
>> The reason why I think we must do it in 2 steps is that IMO, while good
>> for development, the current setup in the main repo still requires
>> significant work until it's usable as a base for deployment (docker images
>> are too heavy, split across many repos, images not properly versioned,
>> non-production ready elements such as static files being served by django,
>> no ci, etc.). That's not mentioning the additional steps needed for a
>> deployment meeting basic good practice requirements (https, backups...).
>>
>> I would definitely be able to support the work on this as part of my
>> current activities. I also believe it meets a high demand from the
>> community (this is more or less my only serious contribution to Geonode, so
>> that I take my election in PSC a clear sign of that demand).
>>
>> Francesco, would that 2 steps strategy be OK as you were keen to have the
>> spcgeonode setup reuse as much as possible existing docker setups ?
>>
>> Let me know what you think. Let's discuss this, and if needed vote during
>> next PSC (though if we reach consensus before that it's even better).
>>
>> Cheers,
>>
>> Olivier
>>
>>
>>
>> On Fri, Apr 20, 2018 at 1:40 AM, Ariel Nunez <ariel at terranodo.io> wrote:
>>
>>> Olivier,
>>>
>>> I suscribe to the vision of geonode as a library and that a
>>> geonode-project should be a simple django project that does not import
>>> anything from geonode.settings. The reason for this is that geonode becomes
>>> a starting point and what people start to build are their own projects.
>>>
>>> I hope at some point in the near future we deprecate geonode.settings at
>>> all and instead let an ecosystem of different starter projects built on the
>>> same docker base images flourish.
>>>
>>> -a
>>>
>>> On Thu, Apr 19, 2018 at 5:52 AM Olivier Dalang <olivier.dalang at gmail.com>
>>> wrote:
>>>
>>>> Hello all !
>>>>
>>>> Thank you all for the great discussion !! I very much appreciated how
>>>> much you all took into account my inputs and I felt part of the discussion
>>>> despite being deeply asleep :-) Thank you very much for the recording
>>>> Cristiano !
>>>>
>>>>
>>>> I think there are two different needs that were discussed, the need for
>>>> stable docker images (typically for providers to build their custom stacks
>>>> on reliable/secure images), and the need for a supported deployment through
>>>> docker-compose (typically for smaller users without skills/ressources to do
>>>> a proper deployment on their own).
>>>>
>>>> So far I focused only on the docker-compose for deployment (as it's the
>>>> case we need to support here).
>>>>
>>>> But I agree having those stable images would be great too. I think that
>>>> even if the needs are different, in the end they may very well align in one
>>>> setup, where the docker-compose setup for production could even serve as an
>>>> integration test of the individual docker files.
>>>>
>>>> It's not completely clear to me what the scope of those images would
>>>> be. I think at the very least, they would include all dependencies (system
>>>> and python).
>>>> Would they also include build steps (instead of pulling external builds
>>>> from builds.geonode.org) ? (may be good in terms of build stability
>>>> and make it easier to contribute, also with multistage dockerfiles it's
>>>> quite easy to keep images lightweight despite having the whole build
>>>> process in there).
>>>> Would they be though as final images (that you use as is, just by
>>>> configuring env vars), or base images (that are supposed to serve as base
>>>> to user's custom dockerfiles in a composition) ?
>>>> Also it will be hard to find the sweet spot between too little
>>>> opinionated (it would become a pain to configure and loose stability) and
>>>> too much (you wouldn't be able to use it anymore in a custom stack).
>>>>
>>>>
>>>> I had another thought about docker-compose that I don't think was
>>>> raised : with the current geonode-project approach, there will be some
>>>> duplication, because there is already another docker-compose file in
>>>> Geonode's main repo (for development and testing of geonode itself - which
>>>> is obviously also needed).
>>>>
>>>> Could it be that the docker-compose setup for deployment is built on
>>>> top of the docker-compose for development ? In the end, the geonode repo
>>>> already contains a django project. It's just a matter of being able to
>>>> override the settings. I'm not sure if this would end up being overly
>>>> complicated for nothing, or if it would be a win because of increased
>>>> similarity between dev setup and deployment setup. Going that way would be
>>>> a step towards a continuous delivery model (a big incentive for devs to
>>>> upstream their features). I also believe that with Alessio's recent
>>>> commits for UI customization, around 50% of the use cases for
>>>> geonode-project just vanished (thanks for that great feature :-) ).
>>>>
>>>>
>>>> I also agree with Tim on the idea of supporting both the QGIS and
>>>> Geoserver backends. I'm not familiar enough with the differences that
>>>> implies so far to tell how much work that would be.
>>>>
>>>>
>>>> And about the smaller scale technical questions :
>>>>
>>>> - Containers restarting VS. wait-for-postgres.sh : I have no strong
>>>> opinion about that. It's true that it would look a little bit more elegant
>>>> at first startup, but it also adds a little bit of complexity in the
>>>> entrypoint, and we must make sure we don't create artificial blockages
>>>> (e.g. waiting for geoserver would be a bad idea, as we should be able to
>>>> start even if geoserver is down).
>>>>
>>>> - Additional requirements (pip) : I'll try to make a PR to upstream
>>>> those fixes including some other to make pip install more stable, as
>>>> discussed here : https://github.com/GeoNode/geonode/issues/3227
>>>>
>>>> - About the more minimal docker-compose (without letsencrypt and other
>>>> optional components), so far I use docker-compose up nginx django
>>>> geoserver postgres for that purpose, but we could indeed also use
>>>> docker-compose overrides to achieve similar result. I would vote for the
>>>> option that looks the most clear in the command line.
>>>>
>>>>
>>>> I'll continue to push my setup a bit further anyway (to 2.8) and agree
>>>> with idea of another talk at some point.
>>>>
>>>> Thanks again!
>>>>
>>>> Cheers,
>>>>
>>>> Olivier
>>>>
>>>> On Thu, Apr 19, 2018 at 2:45 AM, Cristiano Giovando <giovand at gmail.com>
>>>> wrote:
>>>>
>>>>> Thanks to everyone who joined the docker chat today - here's the
>>>>> recording in case you missed it:
>>>>>
>>>>> https://drive.google.com/open?id=1voxdexJQLPdikLAW6hLsXk7TwYkv9KJT
>>>>>
>>>>> Please share any feedback here or directly in the GNIP:
>>>>> https://github.com/GeoNode/geonode/issues/3707
>>>>>
>>>>> Looking forward to a successful and coordinated approach! ;)
>>>>>
>>>>> On Tue, Apr 17, 2018 at 9:44 PM, Cristiano Giovando <giovand at gmail.com>
>>>>> wrote:
>>>>> > Hey all,
>>>>> >
>>>>> > Following some good conversations around the topic at the summit and
>>>>> the
>>>>> > recent GNIP by Olivier, we're planning a call tomorrow at 15:00 CEST
>>>>> / 13:00
>>>>> > UTC to chat about a common strategy. We're inviting anything who's
>>>>> > interested to join.
>>>>> >
>>>>> > Here's the GNIP for reference:
>>>>> > https://github.com/GeoNode/geonode/issues/3707
>>>>> >
>>>>> > Meeting link:
>>>>> >
>>>>> https://worldbankgroup.webex.com/worldbankgroup/j.php?MTID=mab1ab3faf3942146706111bc9eaad51f
>>>>> >
>>>>> > Join by phone
>>>>> > 1-650-479-3207 Call-in toll number (US/Canada)
>>>>> > Access code:  733 296 941
>>>>> >
>>>>> > Global call-in numbers:
>>>>> >
>>>>> https://worldbankgroup.webex.com/cmp3200/webcomponents/widget/globalcallin/globalcallin.do?siteurl=worldbankgroup&serviceType=MC&ED=529265077&tollFree=0
>>>>> >
>>>>> > See you tomorrow!
>>>>> >
>>>>> > Cristiano
>>>>> _______________________________________________
>>>>> geonode-devel mailing list
>>>>> geonode-devel at lists.osgeo.org
>>>>> https://lists.osgeo.org/mailman/listinfo/geonode-devel
>>>>>
>>>>
>>>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/geonode-devel/attachments/20180907/5fa18ac2/attachment-0001.html>


More information about the geonode-devel mailing list