Project:Infrastructure/Service Catalog

A lot of this template blurb has been borrowed by Robin from a similar process elsewhere, and needs to be heavily edited.

Gentoo Linux provides services. These are listed in the draft Service catalog. Services can be external facing, or internal facing.

For an initial scope, there is a focus on services where the Infrastructure team are presently handling the operations of a service. This does not exclude other services, which should be added to the list either now or over time.

Services are staffed by people in different roles. Not all services require all roles. People may play multiple roles in a service, or the same role across multiple services.

Services deliver measurable value. Service catalog entries describe the service, define and help track these values, as well as how the roles are filled on the service, and other important service details. Some services are VERY big. Some are micro. They all at least have an identifiable lead, some measurable value, and a way to escalate a problem.

Services without an active lead should be considered as moribund. As original leads (staffer/developer/user) have retired from Gentoo, the Infrastructure team has historically become the default owner. This is not sustainable in the long term.

Services have Projects. Projects have defined starts and ends and involve members of cross-functional teams to either maintain or improve services and their value. Projects can be tracked on a timeline

About this catalog

 * Why is it important to identify and catalog services?
 * Identifying a service means making sure it is tied in with the Gentoo's strategy and objectives. Cataloging means there's some place to come back to on a regular basis to ask whether it's still critical, can it be improved or changed?
 * Identifying both internal and external services makes it clear the entire scope of projects, and where there are choke points and other critical pieces
 * Why is it important to identify roles and how they are staffed?
 * Important to know that services are properly staffed
 * Important to know if staffing changes, service is still staffed appropriately
 * Important to understand workload implications for staff across services

Roles and responsibilities
Services are staffed by people in different roles. Not all services require all roles. People may play multiple roles in a service, or the same role across multiple services.

Role: Service owner / Project lead

 * Service Definition (SLA/SLO/SLI, EOI)
 * Contract creation, renewals
 * Resourcing
 * Project management
 * Analytics and reporting, and open data

Role: Support (Tier 1)

 * Tier 1 client interaction
 * Documentation and training
 * Testing and QA

Role: Application administration and operations

 * Account administration
 * Other site admin and approvals
 * Configuration changes within the applications

Role: Application development and maintenance

 * Initial development
 * Enhancements
 * Bug fixes
 * Configuration management and upgrades
 * Acceptance testing (with support)
 * Tier 2/3 support

Role: Sysops

 * Capacity management (monitoring, sizing)
 * Service continuity (backups, recovery)
 * Security management

Role: Administration

 * Costing / "sales" - finance
 * Marketing and communications
 * Governance
 * Human relationships
 * Legal
 * Stakeholder & sponsor liaison

TEMPLATE: Service name

 * Service lead:
 * Service description:
 * Service author:

Metrics

 * Number of X in past month
 * Both usage data & SLI data

Service workplan
If there are development plans, this should link to it.

Support details

 * Tier 1..3
 * Emergency (//help, it's down!//)

Application admin and operations details
High level details for administration and operation of the service. Expanded details can go on a sub page or be pointed to in other parts of the wiki.

Application development and maintenance details
High level details for administration development for the service. Expanded details can go on a sub page or be pointed to in other parts of the wiki.

Sysops details
High level details for systems support for the service. Expanded details can go on a sub page or be pointed to in other parts of the wiki.

Administration details
High level details for Administration for the service. Expanded details can go on a sub page or be pointed to in other parts of the wiki. Ideally should include pointers to contract details, SLA/SLO/SLI, EOI.

Data & Privacy details
High level details about data contained in this service. Expanded details can go on a sub page or be pointed to in other parts of the wiki. Ideally should cover what PII is contained within the service, and how this service is impacted by privacy laws both globally and specific to the jurisdiction that the service is hosted in (DPA [EU], GDPR [EU], PIPA [Canada/BC], PIPEDA [Canada/*], COPPA [US]).

LDAP

 * Service Lead: Senior Infra (robbat2 built most of it)
 * Service description: LDAP services for authentication & authorization on Gentoo servers

Metrics

 * Availability

Support details

 * Tier1: Bugzilla tickets to Infra
 * Tier2/3: LDAP skilled Infra staff
 * Emergency: Infra

Application administration and operation details

 * Recruiters create new accounts
 * ComRel can do password resets and change some access
 * Infra can do password resets, but do not do new accounts as a general rule

Application development and maintenance

 * Infra handles all development & maintenance

SysOps

 * Infra

InfraWiki

 * Owner: Infra
 * Description: InfraWiki houses sensitive infra-specific information. This includes IRL contact information for infra staff, sponsors, as well as sponsor-specific procedures and practices, and all infra hosts post a set of inventory data on a weekly basis.

Administration

 * Infra

Wiki: DB

 * Author:

CVS

 * TODO

Git

 * TODO
 * Mention overlays admins

Piwik

 * Author:
 * GitWeb: ?

Archives: Archives-AG

 * This is the new archives service
 * TODO
 * New service built by robbat2 and a3li

Archives: Mhonarc

 * This was the OLD Archive service
 * Broke
 * Did not have an owner for a long time

GitWeb

 * TODO
 * New service built by robbat2 and a3li

Packages Database: packages.g.o (v5)

 * Git: sites/packages.git
 * GitWeb: https://gitweb.gentoo.org/sites/packages.git/
 * Author:
 * Owner:

Rails and Elasticsearch based /Packages-v5/.

gentoo.org website

 * Author:
 * GitWeb: https://gitweb.gentoo.org/sites/www.git/
 * Host: Geese

Wiki: Web

 * Author:

Project hosting

 * TODO: service not launched yet ;-)

Planet

 * Author: Daniel Drake 
 * Gitweb: https://gitweb.gentoo.org/sites/planet.git/

Mirrorstats

 * TODO
 * Moribund, no owner to restore service

Assets.gentoo.org

 * CDN service, donated by CDN77
 * Used for serving theme/styling consistently.

AWS
Gentoo uses the following AWS services:
 * Route 53 domain registration
 * S3 (for archival)
 * Glacier (as S3 storage class)

Rackspace

 * TODO

Torrents
In the past Gentoo ran a torrent tracker for seeding and tracking stages and Live DVDs. It was eventually removed due to low usage and high upkeep costs.

Package Database: packages.g.o (v4)

 * GitWeb: https://gitweb.gentoo.org/proj/gentoo-packages.git/
 * Never launched
 * GSOC2012 rewrite
 * Python & Django
 * Authors:
 * Slava Bacherikov

Package Database: packages.g.o (v3, 2007-2015)

 * Ran in production, 2007-2015.
 * GitWeb: https://gitweb.gentoo.org/packages.git/
 * Authors:
 * Markus Ullmann  (2007)
 * Robin H. Johnson  (2007-2015)
 * Python, based on pkgcore, CherryPy & Genshi
 * MySQL backend

Package database: packages.g.o (v2)

 * OLD, but never completed or launched
 * Python, Quixote (http://www.mems-exchange.org/software/quixote/)
 * Sources: https://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo/src/packages/?pathrev=pre_2-0
 * CVS gentoo/src/packages, branch 'pre_2-0'
 * Never launched.
 * MySQL backend
 * Authors:
 * Albert Hopkins (marduk) 
 * Contributors: (unknown)

Package database: packages.g.o (v1, ????-2007)

 * first known packages.g.o codebase
 * Ran in production 2004 - mid-2007.
 * CVS: gentoo/src/packages, MAIN branch.
 * Sources: https://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo/src/packages/
 * Generate static HTML with use of server-side includes, insecure
 * Python, no framework.
 * MySQL backend
 * Authors:
 * Albert Hopkins (marduk) 
 * Contributors: (unknown)
 * Security Incidents:
 * TODO, link nuthatch incident