[Jenkins-infra] Discussion at 16:30 UTC about plugin site infra requirements

R. Tyler Croy tyler at monkeypox.org
Wed Sep 28 19:43:25 UTC 2016

Spike took some notes during the discussion earlier, cross-posting here for
posterity. He did a much better job of taking any notes than I did, that's for

Discussion: Azure deployment questions

* Tyler got an understanding of the demo architecture from Ben
    * Front-end app (deployed to S3 - can be replaced by blob store)
    * Backend Service (deployed in docker container)
    * Don't currently have any Docker infrastructure in Azure.
    * Best path to move forward: examine existing Jenkins Puppet Infra and follow those patterns.
    * I have the time to point to things to show you how you could do those things (in Jenkins infra IRC channel).  I don't have time to do the work.
* Caleb:  Who is responsible for transition of existing demo to Jenkins INFRA-friendly puppet?
    * Action: Spike needs to decide (done - Caleb unless Ben screams loudly)
        * Caleb psuedo-volunteers (thumbsup from Spike)
* Tasks:
    * [Caleb] Convert plugin site deployment to be Jenkins-infra-friendly (based on Puppet similar to existing stuff)

Discussion: SEO-able URLs

* Tyler: we will need SEO URLs
* Daniel: working with search engines was an original requirement
* Daniel: wiki site will continue to exist and plugin pages on the wiki will continue to exist
* Daniel: Need to be careful - Jenkins.io may have an SEO hit if we have duplicate content on both wiki and plugin site 
* Problem: Currently, we have a 404 problem -- current behavior redirects back to single-page-app index page. This works well for the browser that runs the app, but fails for search engine indexing.
* Tasks
    * [Gus/Michael] Make URLs SEO friendly

Discussion: Synchronized browser header

* Problem: as the header changes on jenkins.io, the plugin site gets out of sync
* Tyler: This needs to be updated in the Jenkins.io build process so that 
* Tyler: the accounts app has the same problem, so we can create a solution that works for both apps.  I'm also OK dealing with the stale headers for now, but not ideal
* Tyler: I'd be OK with rebuilding the plugin site each time jenkins.io changes (perhaps via a pipeline).  I wouldn't want to iframe it.
* Gus: prefers embedding the plugin site directly in the jenkins.io webapp so that the header can just be the same.  Also keeps from having separate app domains.
* Tasks
    * [Gus/Michael] Figure out header strategy

Discussion: Docker on Azure

* JENKINS-INFRA is not using elastic container service
* Tyler: If you want to run docker, it needs to be done Puppet
* No examples yet of Docket+Puppet on Azure yet

Discussion: frontend and backend deployment architecture

* Should the frontend be in jenkins.io directly or running as a completely separate docker app?
    * Tyler is open to either. Gus prefers to be embedded in jenkins.io
* Architecture
    * Frontend - Static files (generated during build)
    * Backend - API app based on Tomcat Jersey REST app 
* Tyler:  can we simplify by just putting the Static files into the API app?
    * Spike: That violates Ben's original goal was to be able to scale the frontend and backend separately as needed.
    * Tyler recommends: bring the frontend/backend back together.  If we need to scale later, we can use CDN.
* Gus: I'd prefer having the static single page app in the jenkins.io app -- it simplifies headers and consistency
* Caleb:  is there any goal of exposing the API for direct external use?
    * Gus: seems like it would be useful
    * Caleb: if API is externally exposed, it becomes more obvious that we should keep the frontend and backend separate.
* Tyler: I don't care if it's a good architecture and it doesn't affect me
* Tasks
    * [Gus/Michael/Caleb] Make a (good) decision about best frontend/backend architecture strategy

Gus Concerns:
    * Does plugin site and wiki exist at same time?  Yes.
    * Need a decision on how Jenkins IO, plugin site, and wiki will live together
        * Spike: that's for Gus/Michael to work out -- just don't impact Tyler

Caleb thoughts on steps:
    * Need some build jobs space hosted on infra
    * Need to open repositories or use jenkins repos
    * Put build jobs for the existing website on Jenkins infra -- leave deploying to AWS at first
    * Convert to using Puppet manifests to deploy
    * Tyler:  I need to know when you plan to work on this.  For next two weeks, I have some time, but mid-Oct gets hairy
    * Caleb's Warning: the development flow will likely change
        * Tyler: we use PRs, tests and auto-deploys
        * Caleb: do you have a staging?  Tyler: no.  Until now, we haven't had the infrastructure for it.

- R. Tyler Croy

     Code: <https://github.com/rtyler>
  Chatter: <https://twitter.com/agentdero>

  % gpg --keyserver keys.gnupg.net --recv-key 1426C7DC3F51E16F
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <http://lists.jenkins-ci.org/pipermail/jenkins-infra/attachments/20160928/6967a216/attachment.asc>

More information about the Jenkins-infra mailing list