Session Themes and Topics
- Theme: Architecting our code for change and sustainability
- Topic: Definition of Core, how code fits together, architecture, code encapsulation, FE/BE separation, extension interface
- Ian Marlier
- Birgit Mueller
This session has two purposes:
Determine which functionality should be extracted from MediaWiki core into a stand-alone service, and how that should be achieved. (Answers will likely be driven by technical details; scalability, flexibility of location, etc)
Questions to answer during this session
|Question||Significance: Why is this question important? What is blocked by it remaining unanswered?|
|What guidelines and qualities do we use for identifying what functionality is a candidate to be developed in a separate service for Wikimedia projects? Specifically consider security, and scalability.||Have clear criteria for this decision will allow us to make decisions on creating stand.-alone services more quickly and with more confidence.|
|Given the above, what components of MediaWiki are better served by services?||This identifies and prioritizes potential work packages and next steps.|
|What impediments and blockers do we have for developing components as services? Specifically consider monitoring and maintenance, the need to access further services (e.g. for storage or logging) and the impact on network topology.||This ensures we consider operational costs and infrastructure investments when deciding on the creation of stand-alone services|
|How can the service be operated by 3rd parties, and what is the alternative?||Ensure we consider the cost of either not providing the functionality in question on a vanilla LAMP stack, or the cost of maintaining a second in-process implementation.|
Facilitator and Scribe notes
- (5 minutes) Introduce session and exercises
- (15 minutes) First exercise
- What properties make a feature a candidate for extraction in to a separate service?
- What properties disqualify a feature from extraction in to a separate service?
- (15 minutes) Second exercise
- What MediaWiki functionality is currently provided by external services? Are there easy wins in re-integrating any of this functionality?
- What MediaWiki functionality is integrated now, but is a candidate to be pulled out? Are there easy wins in doing the work of pulling out any of this functionality?
- (15 minutes) Third exercise
- What technical or architectural requirements apply to all standalone services?
- What technical or architectural requirements apply to standalone services that are running in Wikimedia's production environment?
- What technical or architectural requirements apply to standalone services that may be run by third parties?
Session Leaders please:
- Add more details to this task description.
- Coordinate any pre-event discussions (here on Phab, IRC, email, hangout, etc).
- Outline the plan for discussing this topic at the event.
- Optionally, include what it will not try to solve.
- Update this task with summaries of any pre-event discussions.
- Include ways for people not attending to be involved in discussions before the event and afterwards.
- See https://www.mediawiki.org/wiki/Wikimedia_Technical_Conference/2018/Session_notes/Architecting_Core:_stand-alone_services
- @Imarlier to create an RFP that formalizes the output of this session.