Skip to content

Commit

Permalink
Update service and team structure docs
Browse files Browse the repository at this point in the history
  • Loading branch information
choldgraf committed Jun 22, 2022
1 parent fade528 commit 497e156
Show file tree
Hide file tree
Showing 8 changed files with 48 additions and 70 deletions.
4 changes: 2 additions & 2 deletions about/strategy.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,15 +39,15 @@ As a start, we wish to launch a **Managed JupyterHubs** service, and will begin
- 2i2c manages JupyterHubs for at least two institutions.
- 2i2c manages more lightweight, community-specific JupyterHubs for several smaller groups in research and education.
- 2i2c manages a "generic" JupyterHub that is not tied to any single institution or group.
- 2i2c has a beta-level business model for the first iteration of our Managed JupyterHub service.
- 2i2c has a beta-level sustainability model for the first iteration of our Collaborative JupyterHub Service.
- 2i2c has built relationships with cloud providers that facilitate our ability to serve these hubs to our users.

## Launch major collaborations

**Rationale:**

2i2c wishes to conduct focused development in collaboration with others in research and education.
We wish to engage in several major projects that will support infrastructure that aligns with our mission, and that also feeds into our Managed JupyterHub service.
We wish to engage in several major projects that will support infrastructure that aligns with our mission, and that also feeds into our Collaborative JupyterHub Service.

**Objectives:**

Expand Down
4 changes: 2 additions & 2 deletions practices/expectations.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,8 @@ You are expected to participate in this workflow with other members of the team.

If you're an engineer at 2i2c, plan to do a combination of these things:

1. **Development for the [Managed JupyterHub Service](../projects/managed-hubs/index.md).** This is a collection of JupyterHubs that we run for various customers/communities in research/education. We are constantly updating and improving this infrastructure!
2. **Operation for the [Managed JupyterHub Service](../projects/managed-hubs/index.md).** In addition to developing the infrastructure, we also operate it and provide support. We try to divide this work so that we share the responsibility of operation and support.
1. **Development for the [Collaborative JupyterHub Service](../projects/managed-hubs/index.md).** This is a collection of JupyterHubs that we run for various customers/communities in research/education. We are constantly updating and improving this infrastructure!
2. **Operation for the [Collaborative JupyterHub Service](../projects/managed-hubs/index.md).** In addition to developing the infrastructure, we also operate it and provide support. We try to divide this work so that we share the responsibility of operation and support.
3. **Focused development in collaboration research and education communities.** In addition to running infrastructure, we also collaborate around specific projects, usually involving tools in the Jupyter ecosystem. You may work with researchers in improving their tool, or building something new for another group's project.
4. **Outreach, teaching, and community-building.** In addition to technical work, we also encourage 2i2c team members to make interactive computing more accessible and powerful for others via outreach, particularly for under-served communities.
5. **Open source development and support.** We run all of our infrastructure on open source tools - usually from communities for which we are not the sole leader. It is crucial that we participate in these communities and support them in addition to doing 2i2c-specific work.
4 changes: 2 additions & 2 deletions projects/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,14 +32,14 @@ The [organizational foundation project](https://github.com/orgs/2i2c-org/project

## Managed Hub Service launch

The Managed JupyterHub Service is a special project of 2i2c that is [developed and described at this website](managed-hubs/index.md).
The Collaborative JupyterHub Service is a special project of 2i2c that is [developed and described at this website](managed-hubs/index.md).

:::{admonition} Tracking deliverables
- [the high level goals and strategy are described here](https://docs.2i2c.org/en/latest/about/strategy/index.html)
- [the roadmap for the service is described here](https://docs.2i2c.org/en/latest/about/strategy/roadmap.html)
:::

More information about the Managed JupyterHub Service can be found in these sections:
More information about the Collaborative JupyterHub Service can be found in these sections:

(projects:jmte-pangeo)=
## Pangeo Hub Infrastructure development
Expand Down
10 changes: 8 additions & 2 deletions projects/managed-hubs/incidents.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,15 @@


When an {term}`Incident` is declared, we trigger a special response in order to ensure that it is resolved quickly.
This section describes our incident response process, major roles and terminology, and what to expect.[^incident-refs]
This section describes our incident response process, major roles and terminology, and what to expect.[^pager-duty][^google-sre][^acm-blog][^wikimedia-clinic-duty].

[^incident-refs]: The [PagerDuty Incident Response Guide](https://response.pagerduty.com/) and the [Google SRE Incident response guide](https://sre.google/workbook/incident-response/) inspired much of the content on this page.
[^incident-refs]: The [PagerDuty Incident Response Guide](https://response.pagerduty.com/) is a good description of the Incident Command role and how it relates to similar roles.

[^google-sre]: The [Google SRE Incident response guide](https://sre.google/workbook/incident-response/) has a wealth of information about incident response and distributed SRE teams.

[^acm-blog]: [https://queue.acm.org/detail.cfm?id=3380779](This ACM blog post) describes the complexity of coordinating across a team of distributed responders during an incident, and notes a places where Incident Commander roles may actually hinder responsiveness. It is a good lesson in the complexity of incidents with distributed teams!

[^wikimedia-clinic-duty]: The [WikiMedia Clinic Duty](https://wikitech.wikimedia.org/wiki/SRE/Clinic_Duty#Responsibilities) process also inspired our process here, and is a great overall workflow around distributed SRE.

:::{admonition} In Beta!
:class: warning
Expand Down
39 changes: 9 additions & 30 deletions projects/managed-hubs/index.md
Original file line number Diff line number Diff line change
@@ -1,31 +1,17 @@
(service:index)=
# Service for Managed JupyterHubs
# Collaborative JupyterHub Service

The Managed JupyterHub Service is a special project that is run by 2i2c.
It is an ongoing service, and thus is less development-oriented than projects that are funded by grants and collaborations.
The Collaborative JupyterHub Service is an ongoing service to **sustain and scale** a collaborative, community-driven, interactive computing service for communities in research and education.

The key goal of the 2i2c Managed JupyterHub Service is to launch a self-sustaining service that provides managed JupyterHub distributions to customers in research and education.
**[`docs.2i2c.org`](https://docs.2i2c.org) has most of the information about this service**.

We are currently in the pilot phase of this project, with the goal of creating a basic shared infrastructure that can deploy, configure, and manage many JupyterHub distributions.
We are also building a sales and support pipeline around this infrasturcture.
The sections here contain information that is more relevant to 2i2c team members (like support process documentation).

## Where is information located?

**Infrastructure and development** happens in [the `infrastructure/` repository](https://github.com/2i2c-org/infrastructure).
This is both the deployment infrastructure for the 2i2c JupyterHubs, as well as documentation and team coordination around developing and running them.

**The Hub Engineer's Guide** describes how to develop and operate the 2i2c `infrastructure/` infrastructure.
It is generally designed for 2i2c engineers to follow and learn.
You can find it at [infrastructure.2i2c.org](https://infrastructure.2i2c.org).

**The Hub Administrator's Guide** provides for Hub Administrators to customize and control their hub.
It is community-facing, and meant as a more external view on the 2i2c Hubs Pilot.
It also describes high-level information about the pilot in general.
It is located at [docs.2i2c.org](https://docs.2i2c.org) (or [the `docs/` repository](https://github.com/2i2c-org/docs))

**Strategy and roadmaps** for the Managed Hubs Pilot are located in the Hub Administrator's guide.

For other information about the Managed Hubs Pilot, see the sections below.
```{toctree}
sales.md
support.md
incidents.md
```

## A list of running JupyterHubs

Expand All @@ -34,10 +20,3 @@ We keep a table with all of our currently-running JupyterHubs at this location:
## Other project information

- [this google folder](https://drive.google.com/drive/folders/1HEEfyT2h_fKeqKdsz9Ftiw9Be1Uj48D6?usp=sharing) has most information and brainstorms regarding this project

```{toctree}
pricing.md
sales.md
support.md
incidents.md
```
6 changes: 0 additions & 6 deletions projects/managed-hubs/pricing.md

This file was deleted.

33 changes: 8 additions & 25 deletions projects/managed-hubs/support.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,9 @@ This section contains information that our team uses to triage, communicate, and
(support:process)=
## Overview of the support process

Here's a brief overview of our support process:
Here's a brief overview of our support process[^github-support-issues]:

[^github-support-issues]: We had a lot of discussion around various support and operations systems to take as inspiration. [This GitHub Issue](https://github.com/2i2c-org/infrastructure/issues/1068) has a lot of useful discussion, including a few write-ups of specific support systems to use as inspiration ([example one](https://github.com/2i2c-org/infrastructure/issues/1068#issuecomment-1063138772) [example two](https://github.com/2i2c-org/infrastructure/issues/1068#issuecomment-1063516429))

- A {term}`Community Representative` sends a request to `[email protected]`.
- This is triaged by our {term}`Support Steward` team.
Expand Down Expand Up @@ -76,6 +78,8 @@ Guidance Requests

Supporting a 2i2c hub is a collaborative process between 2i2c and the community we serve.

The {term}`docs:Support Team` is one of the main teams in our {term}`docs:Collaborative JupyterHub Service Team`.

This consists of three main roles: {term}`Support Stewards`, {term}`Community Representatives`, and {term}`Hub Administrators`.

```{glossary}
Expand All @@ -95,35 +99,14 @@ Support Stewards
Common alternate terms: **Customer Liason**, **External Liason**, or **Customer Support**.
Community Representative
Community Representatives
Acts as the primary point of contact for a community, and ensures that the interests of the {term}`Hub Community` are represented in the infrastructure, and that the hub serves their needs.
They have the authority to speak on behalf of the community, and make decisions about the infrastructure that the community uses.
There must be **one or two community representatives for a given community**.
This role is usually filled by someone that is a member of the hub's community of practice.
Their main responsibilities include:
- The main point of contact between the hub engineer and the {term}`Hub Community`.
- Collect feedback and questions from users on a hub.
- Surface questions and requests to Hub Engineers via support tickets.
- Oversee the {term}`Hub Administrators`.
See {term}`docs:Community Representative`.
Hub Administrator
Hub Administrators
Trusted community members that perform common administrative operations on a hub that do not require intervention from a {term}`Hub Engineer`.
{term}`Community Representatives` are the first Hub Administrators, and they may add new Hub Administrators via the JupyterHub interface.
They are able to add users, start/stop servers, and generally have more control over operations on the hub.
Their responsibilities include:
- Provide support to users of a hub for common problems that don't require a Hub Engineer to resolve.
- Add new users to a hub, including administrative users.
- Surface major issues or requests to the Community Representative(s).
See {term}`docs:Hub Administrator`.
```

## Communication channels
Expand Down
18 changes: 17 additions & 1 deletion reference/terminology.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,23 @@ CS&S
Code for Science and Society
2i2c is a fiscally sponsored project of [Code for Science and Society](https://codeforscience.org), a US-based 501(c)(3) public charity.
They support open collaboration in public interest technology through fiscal sponsorship and other programs supporting sustainable open source.
See [the CS&S documentation for more information](https://codeforscience.org/about/).
CS&S provides fiscal sponsorship services to mission-aligned projects in research, data, and technology. 2i2c is one of CS&S's fiscally sponsored projects. As outlined in the fiscal sponsorship agreement (attached), CS&S manages finances, taxes, insurance, reporting, contracts, and compliance for 2i2c.
A few points of information for partners:
- CS&S Executive Director, Danielle Robinson, is the signing authority for any grants, contracts, or other agreements that 2i2c engages in.
- 2i2c is referred to as "a fiscally sponsored project of CS&S” in any grant or contract language.
- Funds are received and managed by CS&S for the charitable purposes of 2i2c.
- Project finances are reported as a part of CS&S's `990` and other tax filings.
- 2i2c is protected under CS&S's general liability and directors and officers insurance.
See [the CS&S documentation for more information about their organization](https://codeforscience.org/about/).
Fiscal Sponsor
A type of 501(c)(3) not-for-profit organization serves as a fiscal host and "umbrella" organization for one or more sub-projects. It provides a combination of legal, contractual, administrative, and strategic services to mission-aligned projects that it fiscally sponsors. {term}`Code for Science and Society` is 2i2c's fiscal sponsor. See [this Council of Nonprofits guide to fiscal sponsorship](https://www.councilofnonprofits.org/tools-resources/fiscal-sponsorship-nonprofits) for more information.
Hub Community
The community of practice that a Managed JupyterHub serves.
Expand Down

0 comments on commit 497e156

Please sign in to comment.