Content translation/Deployment Plan/Archive3

CX Deployment Plan for November 2014

 * Deployment date: November 30, 2014


 * Project: Content Translation Framework


 * Initial Release: Beta Feature release July 2014 (Done)


 * What is targeted for November 2014 release:


 * Content Translation 0.02 release: https://www.mediawiki.org/wiki/Content_translation/Roadmap#Content_Translation_0.02_release


 * Long-term project roadmap:
 * https://www.mediawiki.org/wiki/Content_translation/Roadmap


 * Language Pairs to be supported: Spanish-Catalan, Catalan-Spanish, Spanish-Portuguese, Portuguese-Spanish, Catalan-Portuguese, Portuguese-Catalan.


 * Release as: Beta Feature

Overall Plan
This release includes adding support for Apertium as service (See: https://www.mediawiki.org/wiki/Content_translation/Apertium/Service) and Spanish-Catalan, Spanish-Portuguese, Portuguese-Spanish, Catalan-Portuguese, Portuguese-Catalan language pairs to support article content translation.

System Architecture
See:
 * https://www.mediawiki.org/wiki/Content_translation/Technical_Architecture
 * https://www.mediawiki.org/wiki/Content_translation#Workflow_and_Technical_Architecture
 * https://www.mediawiki.org/wiki/Content_translation

Caching Architecture
The following diagram includes the caching requirements for the CX framework:


 * https://www.mediawiki.org/wiki/Content_translation/Server_communications_workflow
 * https://commons.wikimedia.org/wiki/File:CX_ArchitectureV1.svg

Components to be provisioned for production
CX server installation and configuration: https://git.wikimedia.org/markdown/mediawiki%2Fservices%2Fcxserver.git/HEAD/README.md

See Setup: https://www.mediawiki.org/wiki/Content_translation/Setup for detailed information about component, installation and configuation and instructions.


 * Node.js


 * Dictd server (Also see: https://www.mediawiki.org/wiki/Content_translation/Dictionaries)


 * Apertium (See: https://www.mediawiki.org/wiki/Content_translation/Apertium/Service for detailed changes we need in this release)


 * Extension dependencies:
 * BetaFeatures
 * CLDR
 * EventLogging


 * Backend Services:
 * Varnish


 * External APIs called by CX:
 * Wikidata
 * Parsoid API


 * Configuration Scripts:
 * Upstart and Systemd init scripts are at: https://www.mediawiki.org/wiki/Content_translation/Setup
 * Apertium init scripts are inside apertium-apy package as suggested by Ops.

Provisioning Plan
a. Storage Requirements To be determined from discussion with ops

b. Hardware Requirements To be determined from discussion with ops

c. Bandwidth Requirements To be determined from discussion with ops

d. Performance expectations
 * MT TPS (Transactions per second)
 * User responsiveness
 * MT Round trip
 * General guidelines
 * https://www.mediawiki.org/wiki/Performance_guidelines
 * https://www.mediawiki.org/wiki/Performance_profiling_for_Wikimedia_code

Monitoring and metrics

 * EventLogging activity for CX
 * Number of users enabling the feature
 * Performance of S:CX, backend calls?
 * Check for node and varnish? Who to page?
 * Graph showing requests or timings for the WikiData API(s) we are calling
 * Graph showing requests or timings for the Parsoid API(s) we are calling

External Signoffs Required

 * Alex, Mark - Ops
 * Gabriel - Infrastructure architecture
 * Ori - Performance
 * Chris Steipp - Security
 * Greg G - Release engineering
 * Mark - Ops
 * Tim - Platform

LE Team responsibilities

 * Kartik - Deployment, Engineer
 * Niklas - Engineer, Code Reviewer
 * Santhosh - Engineer, Code Reviewer
 * David - Engineer, Code Reviewer
 * Joel - Engineer, Code Reviewer
 * Runa - Team Scrum-Ninja / testing and communications
 * Pau - Feature UX reviewer, designer
 * Amir - Feature signoff

Updates
Current progress, blockers and to-dos