Skip to content

Milestone of end of January 2015

Renoir Boulanger edited this page Jan 14, 2015 · 13 revisions

Milestone end of January

Objective

Open up all infrastructure scripts, and rework in a way such that we can work on a component (e.g. blog using WordPress) locally or with a minimal setup.

The objective is to have a better deployment strategy to allow separation between development (e.g. a local Vagrant VM, or code checkout), staging (i.e. a full deployment) and production (i.e. the live site) so we can test our changes in an environment without impacting the live "production" site.

Priorities

  1. EVERYTHING through Git master branch
  2. Each component can be deployed with one salt state.sls run
  3. Each component uses last version we can support (e.g. WordPress, BugGenie, etc)
  4. Components runs correctly locally with basic config, salt applies environment specific
  5. Publish on public GitHub states + pillars

Definition of done

  1. At least 3 components (e.g. annotation-server, homepage, wiki)
  2. Project Makefile default rule should fetch dependencies (bower, npm, composer, etc) and allow web app to run locally
  3. Project Vagrantfile runs minimal VM for development
  4. Project configuration use sensible defaults for local/vagrant development
  5. Salt writes config with appropriate keys/passwords externally

Candidates

Objective in picking candidates with different stacks so we can replicate on similar easily.

  1. Blog (WordPress)
  2. Docs (MediaWiki)
  3. Annotation service (Hypothesis)
  4. Homepage
  5. Account system
  6. Discourse
  7. Piwik

Must be done

Most of the following should be already exploded in tasks assigned to the present Milestone

  • Deploy WordPress and theme through Salt only #22
  • Ensure automatic backup of blog images, commit into GitHub (done in #22)
  • Make production Mail server into DreamCompute #51
  • Ensure automatic backup of ElasticSearch indexes #50
  • Deploy MediaWiki automatically through Salt only
    • Ensure compat repo is handled
    • Ensure sitemap is updated and handled
    • Update code ONLY through update script
  • Homepage deployment should consider also those separate modules:
    • campaign-bookmarklet
    • docsprint-dashboard
    • LumberJack bot frontend
  • Apache to return static error pages #52

Nice to have:

  • Salt master is built EXCLUSIVELY from _utils/new-saltmaster*.sh scripts that fetches every required git projects
  • Apache VHost to support both SSL and non SSL
    • MediaWiki (docs.wpo)
    • WordPress (blog.wpo)
    • Homepage (www.wpo)
    • BugGenie (project.wpo)
  • NGINX VHost to support both SSL and non SSL
    • Piwik (stats.wpo)
    • Notes (notes.wpo)
  • Rework Fastly VCL configs ([docs, project, blog, www, stats].wpo)
    • Ensure to remove any cookies except the one required for each of them
    • Force SSL (except [blog, project])
    • Return static error message if backend is dead
Clone this wiki locally