[OOTB-infra] Virtual Hackathon - Capability of hosting integration/demo environments?

Axel Faust axel.faust at prodyna.com
Tue Jul 12 16:57:11 BST 2016


Hello INFRA,
During the BeeCon hackathon and afterwards various members of the Order (incl Richard) discussed continueing with the tradition of doing global, virtual hackathons in the Alfresco community. We tentatively have agreed to aim for a Friday within September to have the hackathon and that it would be an Alfresco event (in terms of announcements / general organisation). But that doesn't exclude us from thinking about options for the Order to support such an event, and the community members that participate.

One idea I had revolves around providing (short-term / temporary) hosting of integration or demo environments for hackathon project teams. Apart from potentially simplifying the setup / startup effort for new members of the community that participate, having a publicly accessible integration / demo environment for a hackathon project can also make it easier for other teams as well as Alfresco / Order "hackathon support staff" to check a project's progress; or act as a tester and provide suggestions for potential improvements.

Now, before I spend any more time fantasizing about project build / server restart automation, the more immediate question on my mind is:
Could we as the Order with our current infrastructure support such a use case?
Forget for a moment the financial issues that obviously will need to be addressed at some time as well. Can we (with our current infratstructure and processes):


  *   Add VM(s) or host(s) to our domain within a few days (or with some kind of self-service for a small set of authorised members in a few hours) - same for tear-down after the event
  *   Support automation of instance setup / tear down, e.g. via command line tooling either by agents on a host or via SSH
  *   Use open technologies / tools to avoid licensing issues when an arbitrary number of users (from different backgrounds) use an environment we temporarily provide / host
  *   Support simple update to any firewall configuration to forward (dynamic) ports to the environments
  *   Support simple update to any proxy configuration to provide a central HTTP(S) entry point

?



A potential setup in my mind at this time is the following:

  *   a separate host or resource-constrained VM is used to bundle all demo environment
(a decent amount of memory, CPU and I/O needs to be provisioned, which is why I tend towards a separate host)

  *   Within that host / VM, container-based virtualization is used to provide standardized installs for the environments
  *   Each environment is publicly accessible when using HTTP(S)-based protocols using a host name like <projectName>.hackathon.orderofthebee.org<http://hackathon.orderofthebee.org> (ideally we use only HTTPS which a proxy terminates using a common certificate of the Order, and internally use HTTP/AJP)
  *   A port forward for SSH should be done for each environment (if the environment will actually provide SSH, which a container might not)
  *   If host / VM is not publicly accessibe itself, a port forward for SSH needs to be done
  *   Host / VM polls GitHub of defined project for an environment, builds project (Maven-based) and stops/starts container with updated WARs
  *   Automation is in place to quickly (re-)initialize an environment as project teams are formed / when a data reset is required (automation would likely need to update DNS / host or VM firewall settings)

I would exclude most (if not all) of the trickier protocols / Alfresco interfaces for the time being, and only consider HTTP-based access.



Even if we don't end up doing something in that direction for the hackathon (for cost/time/resource reasons), I would like to see us able to dynamically provide short-term integration / demo environments some day in the (near?) future, e.g. to support similar needs for conferences / local meetups. So if we can't currently provide this for technical / conceptual reasons or limitations, I hope we can derive a strategy for (or at least a list of) items that we woulud need to address.



So, what do you think? Are we currently in a situation that we could do something like this? And without excessive effort in terms of coordination / work, or too much reliance on the availability of a single or a few people?



Again, this is just an idea of mine at the moment that I would like some input / discussion on. This has not yet been discussed on the board or with Richard / Ole, as it may be irrelevant if you tell me that I am "out of my mind"...



Regards
Axel

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.xtreamlab.net/pipermail/ootb-infra/attachments/20160712/97d0d089/attachment-0001.html>


More information about the OOTB-infra mailing list