diff options
author | Andrew Newdigate <andrew@gitlab.com> | 2017-09-29 12:42:41 +0300 |
---|---|---|
committer | Andrew Newdigate <andrew@gitlab.com> | 2017-09-29 12:42:41 +0300 |
commit | f2ba5502be96f5b5be11c9d30098cfd3002bcbb5 (patch) | |
tree | 13da25bfbfd486ed8fee7dbbe90e4ee4149e4556 | |
parent | 0a014bd71c8a6786cae95159e642d056df64cd4b (diff) |
Gitaly Roadmap
-rw-r--r-- | README.md | 7 | ||||
-rw-r--r-- | doc/ROADMAP.md | 40 |
2 files changed, 46 insertions, 1 deletions
@@ -4,6 +4,7 @@ **Quick Links**: [**Migration Board**](https://gitlab.com/gitlab-org/gitaly/boards/331341?scope=all&utf8=%E2%9C%93&state=opened&label_name[]=Migration) | + [**Roadmap**](doc/ROADMAP.md) | [Open Conversations](https://gitlab.com/gitlab-org/gitaly/issues?label_name%5B%5D=Conversation) | [Unassigned Conversations](https://gitlab.com/gitlab-org/gitaly/issues?scope=all&utf8=%E2%9C%93&state=opened&label_name[]=Conversation&label_name[]=To%20Do&assignee_id=0) | [Migrations](https://gitlab.com/gitlab-org/gitaly/issues?scope=all&utf8=%E2%9C%93&state=opened&label_name[]=Conversation&label_name[]=Migration) | @@ -37,7 +38,11 @@ This will be achieved by focusing on two areas (in this order): ## Current Status -Gitaly has been shipped as part of GitLab since 9.0. We are migrating git operations from in-process Rugged implementations to Gitaly service endpoints. The migration process is [documented](/doc/MIGRATION_PROCESS.md). +Gitaly has been shipped as part of GitLab since 9.0. We are migrating git operations from in-process Rugged implementations to Gitaly service endpoints. + +[The roadmap is available here](doc/ROADMAP.md). + +The migration process is [documented](/doc/MIGRATION_PROCESS.md). If you're interested in seeing how well Gitaly is performing on GitLab.com, we have dashboards! diff --git a/doc/ROADMAP.md b/doc/ROADMAP.md new file mode 100644 index 000000000..9c18f3ff0 --- /dev/null +++ b/doc/ROADMAP.md @@ -0,0 +1,40 @@ +# Gitaly Product Roadmap + +## Gitaly Version 1.0 + +_Timeframe_: Q4 2017 + +**GitLab.com running with 100% of Git operations going through Gitaly**: no rugged operations or git process spawns from the Ruby monolith. NFS operations/sec to git file servers down to zero. + +At this point, the GitLab Kubernetes Helm Charts can move towards running Gitaly as one-or-more StatefulSets. Since some features will be opt-in, these setup will be experimental. + +## Gitaly Version 1.1 + +_Timeframe_: Q1 2018 + +**All features are mandatory**. Rugged code in `Gitlab::Git` is removed from the monolith and now only exists in Gitaly-Ruby. + +Kubernetes Helm Charts using multiple Gitaly Git-Storage StatefulSets become standard. + +## Gitaly Version 2 + +_Timeframe_: Q2 2018 + +This milestone will focus on optimizing the Gitaly endpoints through caching, moving from spawned child processes to in-process operations where appropriate. + +## Future Plans + +Once Gitaly is complete and fast, many new features can be added, but have yet to undergo prioritization: + +In no particular order. + +* **Multiple replicas** of Git data, for high-availability +* **Repository repair**: fix missing refs, remove old tmp files etc +* Automatic **fault detection** and auto-migration of git data to healthy servers +* **Shared object databases** for optimized file storage requirements +* **Object-storage blob-store** backend option +* Per-user, per-group, per-repo CPU IOPS Memory resource **accounting** and **limiting** +* Auto **shard rebalancing** of repositories across replica sets based on accounting +* **Microsoft Git Virtual File System** support: https://gitlab.com/gitlab-org/gitlab-ce/issues/27895 +* **Git-optimized indexing**. Customized indexing solution would allow us to index _all_ branches of a repository in time+cpu efficient manner. +* **Clonebundle support** for fast, efficient clones to specialized clients (for example, Gitlab CI): https://gitlab.com/gitlab-org/gitaly/issues/610 |