diff --git a/content/_index.md b/content/_index.md index 4cfb478d8..fbe0677b6 100644 --- a/content/_index.md +++ b/content/_index.md @@ -208,7 +208,7 @@ sections: 2i2c aims to support JupyterHubs on any cloud provider that offers a managed Kubernetes service. To start, we are focusing on the major commercial cloud providers listed below. If you would like a hub hosted on a different cloud provider, please [give us your feedback](mailto:hello@2i2c.org). - See [our Organizational Strategy and Goals](https://compass.2i2c.org/organization/strategy.html) to learn more about our plans. + See [our Organizational Strategy and Goals](https://compass.2i2c.org/organization/strategy) to learn more about our plans. items: - icon: google-cloud diff --git a/content/about/funding/index.md b/content/about/funding/index.md index f8bcdf21c..1e7770d42 100644 --- a/content/about/funding/index.md +++ b/content/about/funding/index.md @@ -33,7 +33,7 @@ To sustain and grow our operations, 2i2c receives funding from the following sou {{% callout %}} -[2i2c's Financial and Sustainability Strategy page](https://compass.2i2c.org/finance/strategy.html) has our full financial sustainability strategy. +[2i2c's Financial and Sustainability Strategy page](https://compass.2i2c.org/finance/strategy) has our full financial sustainability strategy. [Our accounting dashboards](https://2i2c.org/kpis/finances) have all our latest costs and revenue. diff --git a/content/blog/2021/q3-update/index.md b/content/blog/2021/q3-update/index.md index f37d0cffd..12f4c61ef 100644 --- a/content/blog/2021/q3-update/index.md +++ b/content/blog/2021/q3-update/index.md @@ -29,8 +29,8 @@ We focused on a few major areas for work, outlined below: - **Automation across cloud providers**. We wish to serve communities that run on any of the major commercial cloud providers. We can standardize some of our infrastructure through abstractions like Kubernetes, but must still create cloud-specific deployment infrastructure as well (that Kubernetes cluster has to come from somewhere first!). In the last four months we've worked on automating Kubernetes and JupyterHub deployments on [AWS](https://github.com/2i2c-org/infrastructure/issues/627) as well as [Azure](https://github.com/2i2c-org/infrastructure/issues/512) to complement our Google Cloud deployments. We would soon like to run more hubs on this infrastructure to test how well it scales. - **Monitoring and reporting infrastructure**. We have worked on the JupyterHub [`grafana-dashboards` project](https://github.com/jupyterhub/grafana-dashboards) to improve dashboarding around JupyterHub deployments in general, and will soon automatically deploy Grafana dashboards for our hubs so that communities have insight into what is going on in their hubs. -- **User environment management**. We want communities to have control over the environments that are available on their hubs. We also want to encourage that our communities follow community standards for reproducible environments that can be re-used elsewhere. For this reason, we've improved the [repo2docker GitHub action](https://github.com/jupyterhub/repo2docker-action) to work with more image registries, and created a [2i2c user image template repository](https://github.com/2i2c-org/hub-user-image-template) for users to re-use for their hubs. See [the User Environment docs](https://docs.2i2c.org/admin/howto/environment.html#bring-your-own-docker-image) for more information. -- **Support and collaboration roles**. In addition to technology changes, we have developed an alpha-level support and collaboration model for the communities we serve. Most relevant for our communities is the **community representative** role, who acts as the main point of contact with 2i2c engineers, and leads administrators on the hub to guide its customization for the community it serves. See [the user roles documentation](https://docs.2i2c.org/about/roles.html) for more information. We have also begun prototyping a [FreshDesk support model](https://docs.2i2c.org/support.html) and team processes around monitoring our support channels and responding to requests and incidents. +- **User environment management**. We want communities to have control over the environments that are available on their hubs. We also want to encourage that our communities follow community standards for reproducible environments that can be re-used elsewhere. For this reason, we've improved the [repo2docker GitHub action](https://github.com/jupyterhub/repo2docker-action) to work with more image registries, and created a [2i2c user image template repository](https://github.com/2i2c-org/hub-user-image-template) for users to re-use for their hubs. See [the User Environment docs](https://docs.2i2c.org/admin/environment/hub-user-image-template-guide) for more information. +- **Support and collaboration roles**. In addition to technology changes, we have developed an alpha-level support and collaboration model for the communities we serve. Most relevant for our communities is the **community representative** role, who acts as the main point of contact with 2i2c engineers, and leads administrators on the hub to guide its customization for the community it serves. See [the user roles documentation](https://docs.2i2c.org/community-lead/about/shared-responsibility) for more information. We have also begun prototyping a [FreshDesk support model](https://docs.2i2c.org/support) and team processes around monitoring our support channels and responding to requests and incidents. ### Pangeo @@ -50,7 +50,7 @@ Finally, in addition to our major development and projects, we have also made a We **began [a fiscal sponsorship with Code for Science and Society](https://2i2c.org/posts/2021/css-announce/)**. This provides a new organizational and legal home for 2i2c after spending nearly a year receiving [critical strategic and start-up support](https://www.icsi.berkeley.edu/icsi/news/2021/08/2i2c-new-chapter) from our previous host, [ICSI](https://www.icsi.berkeley.edu). We are excited to work with CS&S to create the business infrastructure that will power our managed JupyterHubs service. -The 2i2c team has also been **improving our team planning and coordination processes**, so that we can more effectively execute on our mission. As a distributed team, we have the challenge of building processes for team communication, coordination, and planning that are distributed and asynchronous. If you're curious, you can learn more about our coordination processes in [our Team Compass](https://compass.2i2c.org/practices/development.html). +The 2i2c team has also been **improving our team planning and coordination processes**, so that we can more effectively execute on our mission. As a distributed team, we have the challenge of building processes for team communication, coordination, and planning that are distributed and asynchronous. We have **improved our organization-wide documentation** in order to make it easier to navigate between 2i2c's various sources of information. We hope that this provides more transparency into what 2i2c is up to and how it is structured, and that it allows us to build more connections between our projects and the broader community. Check out the new documentation landing site at [docs.2i2c.org](https://docs.2i2c.org). diff --git a/content/blog/2021/six-month-update/index.md b/content/blog/2021/six-month-update/index.md index 814a9bc6c..6de46d5b5 100644 --- a/content/blog/2021/six-month-update/index.md +++ b/content/blog/2021/six-month-update/index.md @@ -71,10 +71,10 @@ Here's a bit about each new team member. ## Governance and a code of conduct Finally, while it's easy to get lost in technology and collaborations, 2i2c has also made important steps towards defining a stable and transparent organizational model moving forward. -2i2c now [has a Steering Council](https://compass.2i2c.org/about/structure.html#steering-council) and an [early organizational structure](https://compass.2i2c.org/about/structure.html). -In addition, [we've defined a one-year bootstrap strategy](https://compass.2i2c.org/organization/strategy.html) that we'll use to guide our path in the first year of 2i2c's existence. +2i2c now [has a Steering Council](https://compass.2i2c.org/about/structure#steering-council) and an [early organizational structure](https://compass.2i2c.org/about/structure). +In addition, [we've defined a one-year bootstrap strategy](https://compass.2i2c.org/organization/strategy) that we'll use to guide our path in the first year of 2i2c's existence. -Finally, one of the first acts of the Steering Council has been to [adopt a Code of Conduct](https://compass.2i2c.org/code-of-conduct/index.html). +Finally, one of the first acts of the Steering Council has been to [adopt a Code of Conduct](https://compass.2i2c.org/code-of-conduct/). This is a set of guidelines, and a process for resolving incidents, that makes our community more inclusive, equitable, and enjoyable for all. Creating a Code of Conduct is a crucial part of defining our organizational and community culture, and we're excited to have some explicit guidelines to support our interactions in the future! diff --git a/content/blog/2022/eddy-symposium-report/index.md b/content/blog/2022/eddy-symposium-report/index.md index 726f2c6aa..6a8e9704d 100644 --- a/content/blog/2022/eddy-symposium-report/index.md +++ b/content/blog/2022/eddy-symposium-report/index.md @@ -40,7 +40,7 @@ The Symposium focused on three disciplinary areas (**Exoplanets**; **Sun-Climate Our experience with the Symposium taught 2i2c a few things. -We learned that our engineering team can rapidly deploy interactive computing resources to support a research and education community. Along the way, we confirmed what we've been learning from Pangeo and the neuroscience communities: flexible methods to customize the software environment are necessary. We confirmed that our developing [shared responsibility model](https://docs.2i2c.org/about/service/shared-responsibility.html?highlight=shared%20responsibility), enabling domain-specific experts to provide curated toolchains for their communities while leveraging 2i2c's infrastructure expertise, is the right approach. +We learned that our engineering team can rapidly deploy interactive computing resources to support a research and education community. Along the way, we confirmed what we've been learning from Pangeo and the neuroscience communities: flexible methods to customize the software environment are necessary. We confirmed that our developing [shared responsibility model](https://docs.2i2c.org/community-lead/about/shared-responsibility), enabling domain-specific experts to provide curated toolchains for their communities while leveraging 2i2c's infrastructure expertise, is the right approach. We learned that managing access to the hub using members in a GitHub organization works but involves some toil since organizers had to work through the GitHub invitation process for each participant. We are exploring others ways to systematically grant event participants access to a hub. diff --git a/content/blog/2022/product-community-lead-drop-in-notes/index.md b/content/blog/2022/product-community-lead-drop-in-notes/index.md index e957701fb..59819db3b 100644 --- a/content/blog/2022/product-community-lead-drop-in-notes/index.md +++ b/content/blog/2022/product-community-lead-drop-in-notes/index.md @@ -46,7 +46,7 @@ With that in mind, here are a few ideas we have in mind for goals that will driv ## How does 2i2c provide mentorship/onboarding? -You can find [our onboarding process in our Team Compass](https://compass.2i2c.org/get-started.html). +You can find [our onboarding process in our Team Compass](https://compass.2i2c.org/get-started). This roughly comes down to choosing an "Onboarding Champion" for the new team member, to help walk them through our team processes and get them access to the right information and accounts. However, 2i2c is quite young, so has only had a few iterations in onboarding new team members. We look forward to improving this process further via this new hire. @@ -89,7 +89,7 @@ In this meeting, we discussed two major challenges we continue to iterate on: 2. **Building a distributed organization from scratch**. The other major challenge we've faced is simply the act of creating an organization from the ground up. We have worked together for many years in open source communities, but there's a new degree of complexity when you're all working on the _same_ service and development efforts. Throw in a largely asynchronous team split across many time zones, and there are a lot of coordination and planning challenges to overcome. - We have tried many things over the past year (see [our latest team practices in the team compass](https://compass.2i2c.org/practices/index.html), but there is still a lot of improvement to make. + We have tried many things over the past year (see [our latest team practices in the team compass](https://compass.2i2c.org/practices/), but there is still a lot of improvement to make. ## How crucial is a deep-seated knowledge of Jupyter for this role? diff --git a/content/blog/2022/q1-update/index.md b/content/blog/2022/q1-update/index.md index 31c7f5ffd..d5d0bbf3a 100644 --- a/content/blog/2022/q1-update/index.md +++ b/content/blog/2022/q1-update/index.md @@ -33,7 +33,7 @@ Here are a few highlights: ## Communities we've served and lessons learned -As described in [our Managed Hub Services strategy](https://compass.2i2c.org/organization/strategy.html), our goals for this phase of our organization are to balance _serving communities of practice_ and _learning where we can improve our infrastructure and practices_. +As described in [our Managed Hub Services strategy](https://compass.2i2c.org/organization/strategy), our goals for this phase of our organization are to balance _serving communities of practice_ and _learning where we can improve our infrastructure and practices_. With that in mind, here are a few highlights of communities we've served, and what we've learned from it: - **We grew a hub for [the University of Toronto](https://jupyter.utoronto.ca/) to around 4000 monthly users**. This has taught us a lot about where our support and operations can and cannot scale, and where we have gaps in our sustainability / pricing model. diff --git a/content/blog/2022/q3-update/index.md b/content/blog/2022/q3-update/index.md index 7c51ae0fd..d4c375ebb 100644 --- a/content/blog/2022/q3-update/index.md +++ b/content/blog/2022/q3-update/index.md @@ -49,11 +49,7 @@ We also ran hubs for several **community events**: - Eddy Symposium: [infrastructure#467](https://github.com/2i2c-org/team-compass/issues/467) - Allen Institute Summer Workshop on the Dynamic Brain [infrastructure#1621](https://github.com/2i2c-org/infrastructure/issues/1621) -For a recap of one of these events, see our recent [blog post on the Jack Eddy symposium](https://2i2c.org/blog/2022/eddy-symposium-report). - -{{% callout note %}} -If you are interested in partnering with 2i2c to have your own managed JupyterHub, please contact us at `partnerships@2i2c.org`. -We have a shared cluster on Google Cloud, with plans to deploy one on AWS soon, and dedicated clusters can be run on any major cloud provider. Please see [our service documentation](https://docs.2i2c.org/about/service/index.html) for more details. +Please see [our service documentation](https://docs.2i2c.org/community-lead/about/service-model) for more details. {{% /callout %}} ## Organization wide updates @@ -84,7 +80,7 @@ Here's a brief breakdown: **We expanded our shared clusters to new cloud providers and regions**. We now have shared clusters already deployed on Google Cloud Platform on `us-central1-b` and `europe-west2`. -**We defined an incident commander process**. This will allow us to coordinate and respond to major outages in our cloud infrastructure more efficiently. See [our incident response documentation](https://compass.2i2c.org/projects/managed-hubs/incidents.html) for more information. +**We defined an incident commander process**. This will allow us to coordinate and respond to major outages in our cloud infrastructure more efficiently. See [our incident response documentation](https://compass.2i2c.org/projects/managed-hubs/incidents) for more information. **We improved our cloud usage monitoring infrastructure**. We've deployed [a centralized Grafana Dashboard](https://github.com/2i2c-org/infrastructure/issues/328) that aggregates cloud usage across all of our partner communities, and allows us to keep track of any unexpected behavior or outages across them all. @@ -107,5 +103,5 @@ Many thanks to the 2i2c team, our partner communities, our funders, and the many {{% callout note %}} If you are interested in partnering with 2i2c to have your own managed JupyterHub, please contact us at `partnerships@2i2c.org`. -We have a shared cluster on Google Cloud, with plans to deploy one on AWS soon, and dedicated clusters can be run on any major cloud provider. Please see [our service documentation](https://docs.2i2c.org/about/service/index.html) for more details. +We have a shared cluster on Google Cloud, with plans to deploy one on AWS soon, and dedicated clusters can be run on any major cloud provider. Please see [our service documentation](https://docs.2i2c.org/community-lead/about/service-model) for more details. {{% /callout %}} \ No newline at end of file diff --git a/content/blog/2023/2022-year-in-review/index.md b/content/blog/2023/2022-year-in-review/index.md index 9027c510d..b87ae7de1 100644 --- a/content/blog/2023/2022-year-in-review/index.md +++ b/content/blog/2023/2022-year-in-review/index.md @@ -74,7 +74,7 @@ You can [read a write-up about these improvements in this blog post](https://2i2 Our goal is to frame each community hub as a partnership with a clear breakdown of responsibility to give communities more agency over the infrastructure and service. The Shared Responsibility Model provides a framework for assigning responsibility for various tasks with our partner communities. -See [our Shared Responsibility Model docs here](https://docs.2i2c.org/about/service/shared-responsibility.html). +See [our Shared Responsibility Model docs here](https://docs.2i2c.org/community-lead/about/shared-responsibility). ### We defined a formal Incident Response process @@ -82,7 +82,7 @@ Cloud infrastructure inevitably degrades over time, and running ongoing services To do so, we need clear processes to follow in order to quickly identify and respond to major incidents in the infrastructure. Our Incident Response process defines formal team roles and alerting mechanisms that are served by [PagerDuty](https://www.pagerduty.com/), following best-practices in industry. This will make our service more reliable and make our processes more transparent for our partner communities. -[Here's our current incident response process](https://compass.2i2c.org/projects/managed-hubs/incidents.html). +[Here's our current incident response process](https://compass.2i2c.org/projects/managed-hubs/incidents). ### We expanded our service offerings to include community and workflow guidance diff --git a/content/blog/2023/open-source-funding-principles/index.md b/content/blog/2023/open-source-funding-principles/index.md index 6ab61c646..5e4d29b9e 100644 --- a/content/blog/2023/open-source-funding-principles/index.md +++ b/content/blog/2023/open-source-funding-principles/index.md @@ -15,7 +15,7 @@ draft: false --- _This is a brainstorm to consider the principles and guidelines that 2i2c should follow in defining its strategy towards open source communities. -See [our open source policy documentation](https://compass.2i2c.org/open-source/index.html) for the product of this brainstorm._ +See [our open source policy documentation](https://compass.2i2c.org/open-source/) for the product of this brainstorm._ Over the past year the 2i2c team has focused its efforts on deploying, configuring, running, and managing cloud infrastructure that supports open source workflows in research and education. We've also done a lot of _upstream contribution_ as a part of our work. diff --git a/content/blog/2024/aws-cost-attribution/index.md b/content/blog/2024/aws-cost-attribution/index.md index 772ed63a9..4d4637b8f 100644 --- a/content/blog/2024/aws-cost-attribution/index.md +++ b/content/blog/2024/aws-cost-attribution/index.md @@ -21,7 +21,7 @@ Note that this feature is currently available to AWS hosted hubs only and will b ## Accessing the cloud cost dashboard -Community Champions can view the Cloud Cost dashboard from their Grafana instance (please see the [Service Guide](https://docs.2i2c.org/admin/howto/monitoring/grafana-dashboards/#getting-a-grafana-account) for how to gain access). +Community Champions can view the Cloud Cost dashboard from their Grafana instance (please see the [Service Guide](https://docs.2i2c.org/admin/monitoring/grafana-dashboards#getting-a-grafana-account) for how to gain access). From the main menu of Grafana, navigate to *Dashboards > Cloud cost dashboards > Cloud cost attribution* to view the dashboard. @@ -38,13 +38,13 @@ The dashboard is made of several panels: {{< video autoplay="true" loop="true" src="demo.mp4" >}} -For more detailed information on the data that each panel displays, please consult our [Service Guide](https://docs.2i2c.org/admin/howto/monitoring/cost-attribution/#understanding-the-cloud-cost-dashboard) for reference. +For more detailed information on the data that each panel displays, please consult our [Service Guide](https://docs.2i2c.org/admin/monitoring/cost-users#understanding-the-cloud-cost-dashboard) for reference. ## Sharing cost reports The dashboard can be shared with other community members and stakeholders so they can understand usage and cost patterns. Community Champions can export data to a CSV file, or they can generate a snapshot of the Grafana dashboard and share a public link. -For instructions on how to export data from the dashboard, please see our [Service Guide](https://docs.2i2c.org/admin/howto/monitoring/cost-attribution/#sharing-cost-reports) for reference. +For instructions on how to export data from the dashboard, please see our [Service Guide](https://docs.2i2c.org/admin/monitoring/cost-users#sharing-cost-reports) for reference. ## Next steps diff --git a/content/blog/2024/jupyterhub-binderhub-gesis/index.md b/content/blog/2024/jupyterhub-binderhub-gesis/index.md index 0de5869bc..67efff9c3 100644 --- a/content/blog/2024/jupyterhub-binderhub-gesis/index.md +++ b/content/blog/2024/jupyterhub-binderhub-gesis/index.md @@ -108,7 +108,7 @@ We have a demo of this running at [imagebuilding-demo.2i2c.cloud](https://imageb Want to set this up on your own JupyterHub? There is some [work in progress](https://github.com/2i2c-org/binderhub-service/pull/72) documentation and more is being worked on. Drop a line in the linked pull request and we'll be happy to help. The eventual goal is for *anyone* to be able to simply follow documentation and set this up for themselves. -We also have user facing documentation on using this service on [docs.2i2c.org](https://docs.2i2c.org/user/topics/dynamic-imagebuilding/#dynamic-image-building). +We also have user facing documentation on using this service on [docs.2i2c.org](https://docs.2i2c.org/user/environment/dynamic-imagebuilding#dynamic-image-building). ## Future work diff --git a/content/blog/2024/neurohackademy-summer-school-reflections/index.md b/content/blog/2024/neurohackademy-summer-school-reflections/index.md index 2d2514242..c88b41cec 100644 --- a/content/blog/2024/neurohackademy-summer-school-reflections/index.md +++ b/content/blog/2024/neurohackademy-summer-school-reflections/index.md @@ -35,7 +35,7 @@ NeuroHackademy has been an early adopter of the cloud-based JupyterHub model, se In terms of the software environment, the following tools and features that have benefited the event over the years include - [`nbgitpuller`](https://github.com/jupyterhub/nbgitpuller) allows students to synchronise lesson content with an organizational GitHub repository that is collaboratively maintained by the lesson instructors. -- [Shared data file storage](https://docs.2i2c.org/user/topics/data/sharing/) with read-only access for learners and read-write access for instructors +- [Shared data file storage](https://docs.2i2c.org/user/data/sharing) with read-only access for learners and read-write access for instructors - Access to an abundance of neuroimaging data hosted in cloud object storage - [The Human Connectome Project](https://www.humanconnectome.org/) - [The Natural Scenes Dataset](https://naturalscenesdataset.org/) @@ -53,7 +53,7 @@ This year 2i2c supported the following tools and features for NeuroHackademy ### Next year -One thing we have learned is that 2i2c automatically [shuts down a user server after one hour of inactivity](https://docs.2i2c.org/admin/howto/control-user-server/#stop-user-servers-after-inactivity) by default to ensure efficient resource usage and limit runaway cloud costs. Naturally, we are seeing increasing demand from learners for longer and more complex analyses. In response to this, we are keen to explore how the [`jupyter-keepalive`](https://github.com/minrk/jupyter-keepalive) extension can keep the server alive for long-running processes. +One thing we have learned is that 2i2c automatically [shuts down a user server after one hour of inactivity](https://docs.2i2c.org/admin/user-management/control-user-server#stop-user-servers-after-inactivity) by default to ensure efficient resource usage and limit runaway cloud costs. Naturally, we are seeing increasing demand from learners for longer and more complex analyses. In response to this, we are keen to explore how the [`jupyter-keepalive`](https://github.com/minrk/jupyter-keepalive) extension can keep the server alive for long-running processes. We are pleased that learners have made great progress in making use of cloud-native, open-source workflows for analyzing human neuroscience data. We are keen to benefit from lessons learned this year and are looking forward to collaborating with 2i2c once again to deliver the NeuroHackademy Summer School in 2025. diff --git a/content/blog/2025/cloud-cost-monitoring/index.md b/content/blog/2025/cloud-cost-monitoring/index.md index 833eb2156..e821b990a 100644 --- a/content/blog/2025/cloud-cost-monitoring/index.md +++ b/content/blog/2025/cloud-cost-monitoring/index.md @@ -11,7 +11,7 @@ tags: - cloud-costs --- -We are excited to announce that **dashboards to monitor cloud usage and costs at a per-user level** are now available! See the [cost monitoring documentation](https://docs.2i2c.org/admin/howto/monitoring/cost-users/) for more information. +We are excited to announce that **dashboards to monitor cloud usage and costs at a per-user level** are now available! See the [cost monitoring documentation](https://docs.2i2c.org/admin/monitoring/cost-users) for more information. A key goal of 2i2c is to make the cloud safe for science. By providing transparent cost monitoring, we give communities the confidence that they won't face unexpected bills and can better understand how their usage patterns translate to cloud costs. This visibility is especially valuable in our shared platform model, where each community gets their own independent hub while benefiting from shared infrastructure expertise. @@ -23,7 +23,7 @@ The user-level cost breakdown allows communities to identify individual usage tr ## Learn more -- [Cost monitoring documentation](https://docs.2i2c.org/admin/howto/monitoring/cost-users/) +- [Cost monitoring documentation](https://docs.2i2c.org/admin/monitoring/cost-users) ## Acknowledgements diff --git a/content/blog/2025/gcp-filestore-backups/index.md b/content/blog/2025/gcp-filestore-backups/index.md index 58a821afd..6c97eba0c 100644 --- a/content/blog/2025/gcp-filestore-backups/index.md +++ b/content/blog/2025/gcp-filestore-backups/index.md @@ -21,6 +21,6 @@ We have developed the [`gcp-filestore-backups` project](https://github.com/2i2c- Having these backups enabled means that, in the unlikely and unfortunate case of data loss or corruption, we can reinstate the home directories of the hub to a relatively recent state that is at a maximum of 1 day prior to the incident. -We have deployed `gcp-filestore-backups` to all our GCP hubs presently running, with a retention period of 2 days. If you would like to discuss this further with us, [please get in touch!](https://docs.2i2c.org/support/) +We have deployed `gcp-filestore-backups` to all our GCP hubs presently running, with a retention period of 2 days. If you would like to discuss this further with us, [please get in touch!](https://docs.2i2c.org/support) As ever, this project has been developed openly in line with our [Right to Replicate](https://2i2c.org/right-to-replicate/) so you can deploy it against your own infrastructure! diff --git a/content/blog/2025/jb-for-communities/index.md b/content/blog/2025/jb-for-communities/index.md index 3a8f45a3f..c704b809f 100644 --- a/content/blog/2025/jb-for-communities/index.md +++ b/content/blog/2025/jb-for-communities/index.md @@ -13,7 +13,7 @@ draft: false We're excited to announce out-of-the-box support for [Jupyter Book 2](https://next.jupyterbook.org) for our community members. This allows communities to create and share knowledge bases together for their community workflows. This post describes the motivation behind this new functionality, and how you can learn more about the project. -> ⭐ **Members of 2i2c's community network** can use this feature in their hubs by following [our documentation and sharing guide](https://docs.2i2c.org/sharing/documentation/). +> ⭐ **Members of 2i2c's community network** can use this feature in their hubs by following [our documentation and sharing guide](https://docs.2i2c.org/user/sharing/documentation). A core component of our mission to make research and education more _impactful_, _accessible_, and _delightful_ is leveraging our unique [global network of communities][network] to make meaningful improvements to the open-source tools that power their work. Learning from one community can then provide value to our entire network, e.g., [our work with PACE on speeding up their CNN model training][pace-gpu]. @@ -40,7 +40,7 @@ To learn more about this work, consider exploring a minimal example on [our Show [pace-gpu]: ../../2024/pace-hackweek/index.md [open-tech]: ../community-ownership/index.md -[svc-guide]: https://docs.2i2c.org/community/content/#deploy-documentation-with-jupyter-book +[svc-guide]: https://docs.2i2c.org/user/sharing/documentation [network]: https://2i2c.org/communities/ [jb-next]: https://next.jupyterbook.org [initiative]: https://github.com/2i2c-org/infrastructure/issues/5045 diff --git a/content/blog/2025/jetstream2-persistent-hub/index.md b/content/blog/2025/jetstream2-persistent-hub/index.md index dcd2b259b..60fd73161 100644 --- a/content/blog/2025/jetstream2-persistent-hub/index.md +++ b/content/blog/2025/jetstream2-persistent-hub/index.md @@ -15,7 +15,7 @@ When we first committed to offer [Jetstream2](https://jetstream-cloud.org/index. And although the initial exercise of reading about each of them independently was confusing, learning how they actually glued together was the key. This post is about Jetstream2, 2i2c persistent hub offerings, and the learning that took place in the process. -> ⭐ **Members of 2i2c's community network** can determine their eligibility and learn about JetStream2 in [our supported cloud providers documentation](https://docs.2i2c.org/about/distributions/#jetstream2). If needed, [reach out to 2i2c for support](https://docs.2i2c.org/support/). +> ⭐ **Members of 2i2c's community network** can determine their eligibility and learn about JetStream2 in [our supported cloud providers documentation](https://docs.2i2c.org/community-lead/about/cloud-providers#jetstream2). If needed, [reach out to 2i2c for support](https://docs.2i2c.org/support). ## Context diff --git a/content/blog/2025/jupyter-book-cors/index.md b/content/blog/2025/jupyter-book-cors/index.md index fa3654351..2c3eb7c7b 100644 --- a/content/blog/2025/jupyter-book-cors/index.md +++ b/content/blog/2025/jupyter-book-cors/index.md @@ -24,7 +24,7 @@ We've recently been working to integrate [Jupyter Book 2][jb2] workflows with ou - The Jupyter Book is defined with a [Binder specification](https://repo2docker.readthedocs.io/en/latest/specification.html) that has a recipe for re-building the environment needed to run te book's content. - From the professor's book, the student can choose to launch an interactive Binder sessions on _their university's Binder_, allowing them to interact with the book's content on their own infrastructure. -We want a workflow like this to be as seamless and un-complicated as possible. We also want it to follow the same fundamental workflow as the [nbgitpuller-based launch buttons](https://docs.2i2c.org/community/content/). Along the way, we realized that we needed to coordinate development across [Jupyter Book 2][jb2], [JupyterHub](https://jupyter.readthedocs.io), and [BinderHub](https://binderhub.readthedocs.io). +We want a workflow like this to be as seamless and un-complicated as possible. We also want it to follow the same fundamental workflow as the [nbgitpuller-based launch buttons](https://docs.2i2c.org/user/sharing/files). Along the way, we realized that we needed to coordinate development across [Jupyter Book 2][jb2], [JupyterHub](https://jupyter.readthedocs.io), and [BinderHub](https://binderhub.readthedocs.io). {{< figure src="./featured.png" caption="The three projects (Jupyter Book, BinderHub, and JupyterHub) that needed to work together to enable 'bring your own binderhub' workflows." >}} diff --git a/content/blog/2025/jupyterhub-groups-exporter/index.md b/content/blog/2025/jupyterhub-groups-exporter/index.md index 8bf245361..2f56733a0 100644 --- a/content/blog/2025/jupyterhub-groups-exporter/index.md +++ b/content/blog/2025/jupyterhub-groups-exporter/index.md @@ -15,7 +15,7 @@ draft: false Managing user groups in JupyterHub can be a challenging task, especially in environments with dynamic user bases and complex group structures. This post describes how we can leverage the latest group management features in JupyterHub, along with Prometheus and Grafana, to monitor group-level resource usage effectively. -> ⭐ **Members of 2i2c's community network** can use this feature in their hubs by [following our cost attribution documentation](https://docs.2i2c.org/admin/howto/monitoring/cost-attribution/). +> ⭐ **Members of 2i2c's community network** can use this feature in their hubs by [following our cost attribution documentation](https://docs.2i2c.org/admin/monitoring/cost-users). ![Grafana User Group Diagnostics Dashboard showing a memory usage over time with each line aggregating usage over a different user group.](./featured.png) diff --git a/content/blog/2025/per-user-storage-quota-gcp/index.md b/content/blog/2025/per-user-storage-quota-gcp/index.md index 8f0145b1b..f3bb723b1 100644 --- a/content/blog/2025/per-user-storage-quota-gcp/index.md +++ b/content/blog/2025/per-user-storage-quota-gcp/index.md @@ -23,7 +23,7 @@ Building upon our previous work developing [per-user storage quotas for our AWS To provide this feature on this vendor, we have updated our infrastructure provisioning system to create persistent disks, and enable automatic backups of the disk for disaster recovery purposes. However, the systems we had already developed for AWS, such as [`jupyterhub-home-nfs`](https://github.com/2i2c-org/jupyterhub-home-nfs) and our alerting system through [Prometheus Alertmanager](https://prometheus.io/docs/alerting/latest/alertmanager/), are vendor agnostic and work right out of the box with the new architecture! -If you would like to try this feature on your 2i2c-managed JupyterHub, [please get in touch](https://docs.2i2c.org/support/). +If you would like to try this feature on your 2i2c-managed JupyterHub, [please get in touch](https://docs.2i2c.org/support). ## Acknowledgements diff --git a/content/blog/2025/per-user-storage-quota/index.md b/content/blog/2025/per-user-storage-quota/index.md index 7bae2aec6..f3aad2da6 100644 --- a/content/blog/2025/per-user-storage-quota/index.md +++ b/content/blog/2025/per-user-storage-quota/index.md @@ -28,7 +28,7 @@ Under the hood, the Helm chart runs [NFS Ganesha](https://github.com/nfs-ganesha Since this feature moves our infrastructure away from managed filesystems (such as AWS's Elastic File System) that cannot support per-user storage quotas, we have also developed monitoring and alerting mechanisms that will let us know when the disks are getting full, and automated back-ups for disaster recovery. -If you would like to try this on your 2i2c-managed hub, [please get in touch](https://docs.2i2c.org/support/). +If you would like to try this on your 2i2c-managed hub, [please get in touch](https://docs.2i2c.org/support). This project can also be used with _any_ Kubernetes-based JupyterHub, as per our [Right to Replicate policy](https://2i2c.org/right-to-replicate/), so please try it out on your own deployment and let us know what you think! diff --git a/content/blog/2025/q2-highlights/index.md b/content/blog/2025/q2-highlights/index.md index f35f8cac7..1a28d2253 100644 --- a/content/blog/2025/q2-highlights/index.md +++ b/content/blog/2025/q2-highlights/index.md @@ -25,19 +25,19 @@ With that in mind, here's what stood out from the quarter: Building on our previous work delivering [usage monitoring using Prometheus and Grafana](https://2i2c.org/blog/2024/aws-cost-attribution/), we've released [jupyterhub-groups-exporter](https://2i2c.org/blog/2025/jupyterhub-groups-exporter/), allowing hub administrators to leverage the latest group management features in JupyterHub to monitor group-level resource usage effectively, making it easier to identify usage patterns across teams and departments. -> ⭐ Members of 2i2c's community network can learn how to use this in [our user guide to usage monitoring](https://docs.2i2c.org/admin/howto/monitoring/grafana-dashboards/#getting-a-grafana-account). See this [blog post announcing `jupyterhub-groups-exporter`](https://2i2c.org/blog/2025/jupyterhub-groups-exporter/). +> ⭐ Members of 2i2c's community network can learn how to use this in [our user guide to usage monitoring](https://docs.2i2c.org/admin/monitoring/grafana-dashboards#getting-a-grafana-account). See this [blog post announcing `jupyterhub-groups-exporter`](https://2i2c.org/blog/2025/jupyterhub-groups-exporter/). ## Improve creating and sharing custom environments -Last year we introduced [customizable servers via profile lists](https://2i2c.org/blog/2024/jupyterhub-fancy-profiles-rollout/). We're building on that - servers can now be configured to [allow users to dynamically specify, build, and share their own custom environment images](https://docs.2i2c.org/user/topics/dynamic-imagebuilding/) without the need for a hub administrator. This will allow community champions with diverse user bases to give their users greater flexibility to support a wide variety of custom computational workflows, accelerating knowledge discovery and sharing. Look out for a blog post on this development in the coming weeks and months. +Last year we introduced [customizable servers via profile lists](https://2i2c.org/blog/2024/jupyterhub-fancy-profiles-rollout/). We're building on that - servers can now be configured to [allow users to dynamically specify, build, and share their own custom environment images](https://docs.2i2c.org/user/environment/dynamic-imagebuilding) without the need for a hub administrator. This will allow community champions with diverse user bases to give their users greater flexibility to support a wide variety of custom computational workflows, accelerating knowledge discovery and sharing. Look out for a blog post on this development in the coming weeks and months. -> ⭐ Members of 2i2c's community network can learn how to use this in our **[dynamic image building quick start guide](https://docs.2i2c.org/user/topics/dynamic-imagebuilding/)**. +> ⭐ Members of 2i2c's community network can learn how to use this in our **[dynamic image building quick start guide](https://docs.2i2c.org/user/environment/dynamic-imagebuilding)**. ## Co-located narrative content with out-of-the-box Jupyter Book support Central to our communities' work is sharing new findings, best practices, and community resources. To facilitate that, we've added support for [Jupyter Book 2](http://next.jupyterbook.org) for all of our member communities. Our communities can rapidly build interactive starter documentation and provide users with a rich, interactive, and informative onboarding experience. With a suite of customizable landing-page layouts, colour themes, and component galleries ready to match a community's branding, it's now easier than ever to couple a hub with its own co-located narrative content. -> ⭐ Members of 2i2c's community network can learn how to use this in [our user guide to documentation and sharing](https://docs.2i2c.org/admin/howto/monitoring/cost-attribution/). See [this blog post for an announcement](https://2i2c.org/blog/2025/jb-for-communities/). +> ⭐ Members of 2i2c's community network can learn how to use this in [our user guide to documentation and sharing](https://docs.2i2c.org/admin/monitoring/cost-users). See [this blog post for an announcement](https://2i2c.org/blog/2025/jb-for-communities/). ## A better onboarding experience for our communities diff --git a/content/blog/2025/status-page/index.md b/content/blog/2025/status-page/index.md index 730b95c56..164dfcb15 100644 --- a/content/blog/2025/status-page/index.md +++ b/content/blog/2025/status-page/index.md @@ -28,6 +28,6 @@ There are still plenty of improvements we'd like to make: for example, we're foc ## Learn more - 👉 [The status page](https://2i2c-hubs.trust.pagerduty.com/posts/dashboard) -- 👉 [The status page documentation](https://docs.2i2c.org/admin/reliability/status-page/) +- 👉 [The status page documentation](https://docs.2i2c.org/admin/reliability/status-page) - 👉 [Our new process for incident response](https://github.com/2i2c-org/team-compass/pull/1021) - 👉 Follow an [in-progress initiative to improve the reliability of our infrastructure](https://github.com/2i2c-org/infrastructure/issues/6417) diff --git a/content/blog/drafts/2021-review-org.md b/content/blog/drafts/2021-review-org.md index 92120673b..822501adf 100644 --- a/content/blog/drafts/2021-review-org.md +++ b/content/blog/drafts/2021-review-org.md @@ -22,8 +22,8 @@ The one time that this *isn’t* the case is when you’re creating the organiza Perhaps our biggest accomplishment this year was **creating the foundation of a team**. What began as a free-form collection of people and GitHub repositories has slowly evolved into a more structured set of organizational practices and team norms. Here are a few major steps towards this accomplishment: - We created [Our Team Compass](http://team-compass.2i2c.org) as the definitive source of truth for all of 2i2c’s operations. This is the best single description of “what is 2i2c, and how does it operate?”. It is both a resource for our team, as well as for the outside world to understand what we’re doing and how we do it. -- Our [Structure and Governance](https://compass.2i2c.org/about/structure.html) page defined the major groups that make up 2i2c - as of the end of year 1, these are the Steering Council, Executive Director, Engineering Team, and our fiscal sponsor, [Code for Science and Society](http://codeforscience.org). In addition, our [Code of Conduct](https://compass.2i2c.org/code-of-conduct/index.html) describes the behaviors that we expect out of people that participate in 2i2c spaces. -- Our [Team Practices](https://compass.2i2c.org/practices/index.html) guide has information about our daily and weekly planning workflow. This describes how we coordinate and plan our actions as a distributed team. +- Our [Structure and Governance](https://compass.2i2c.org/about/structure) page defined the major groups that make up 2i2c - as of the end of year 1, these are the Steering Council, Executive Director, Engineering Team, and our fiscal sponsor, [Code for Science and Society](http://codeforscience.org). In addition, our [Code of Conduct](https://compass.2i2c.org/code-of-conduct/) describes the behaviors that we expect out of people that participate in 2i2c spaces. +- Our [Team Practices](https://compass.2i2c.org/practices/) guide has information about our daily and weekly planning workflow. This describes how we coordinate and plan our actions as a distributed team. There is a lot more in our team compass, and we invite you to give it a read to learn more about how we operate. These are living documents, and we’ll continue to improve them as we learn more. diff --git a/content/organization/about.md b/content/organization/about.md index b967d30d3..07d690116 100644 --- a/content/organization/about.md +++ b/content/organization/about.md @@ -15,7 +15,7 @@ We are a distributed team spread across South America, Western and Eastern Europ {{% callout %}} -[The organizational structure section of our team compass](https://compass.2i2c.org/organization/structure.html) has a lot more information about our organizational structure and roles. +[The organizational structure section of our team compass](https://compass.2i2c.org/organization/structure) has a lot more information about our organizational structure and roles. {{% /callout %}}