Add dynamically populated organization-level environments page
Recent Updates - July 2023
We have decided not to move forward with the original concept in favour of the outcomes of the Environment Management Design Sprint.
We learned a lot of incredibly useful insights during the round of solution validation. There were aspects of the proposal that customers loved (addition of more detailed environment states, metrics, higher level visibility), but ultimately uncovered what I think we knew was wrong with the feature from the beginning.
The current state of the environments feature is not working as users expect - causing low adoption. They often use third party tools for everything from monitoring their environments, to sending notifications, or just forgo this with GitLab all together. Basically, the proposal we were validating was a nice addition to an already sub-par experience. We quickly realized it would be more productive enhance the current experience verse adding to it.
Along with this customers were all using Groups in different ways, which didn't scale to how they would want to monitor environments at that level. With all this being said, we are decided to move forward with the Design Sprint Concept of re-thinking environment management at GitLab.
Interested in following along with what's next? Everything will be linked in the following Epic.
Problem to solve
As a release manager / platform engineer, I want to see the status of my multi-project application’s production environment and recent changes in one place so I can easily understand everything that has been deployed to my end users.
Context
Users are interested in visualizing production environments across projects, for example, they have several microservices that are built in different projects are compiled in a pipeline and deployed to a single URL. There is no way to see that all these microservice project are populating a single end-user application.
Intended users
User experience goal
The user should be able to view see related Production project environments at the group in a new section under the Operations menu.
MVC rationale
- Groups are currently the closest entity we have to an organization and we have established them as such with our customers who are using it in this way
- The solution solves for the case where one group represents an org and there are many projects within the group that comprise one or multiple applications (a very common pattern). By showing production (and other environments), an operator can easily view the environment status of multiple projects.
- Sub-groups can be and are frequently used for teams so this solution maps nicely to a team view of environments and related projects
Known Limitations
Some limitations that we should call out and understand but will address in future iterations:
- Some organizations may use groups and sub-groups in more creative ways and the solution doesn’t immediately address their needs; in other words, the solution in highly group-centric
- There still isn’t a first-class concept of what constitutes an actual application and how specific projects relate to each other
- Components of applications may span multiple groups
-
production_tier
isn’t configured accurately or at all
Proposal
See Environments Design Sprint (gitlab-org/ci-cd/deploy-stage/environments-group&1)
Permissions and Security
-
Members with no access (0) should not be able to view the group page -
Guest (10) members of projects in group should not be able to view the page. -
Reporter (20) members of projects only in group should not be able to view the page, if a reporter at the group they can view the page. -
Developer (30) members at the group they can view the page. -
Maintainer (40) members at the group they can view the page. -
Owner (50) members at the group they can view the page.
Documentation
We should add documentation on Group Environments.
What does success look like, and how can we measure that?
We want to be able to measure number of users that visit the Group Environments Page in the last 28 days on both self managed and .com
Availability & Testing
What is the type of buyer?
Links / references
This page may contain information related to upcoming products, features and functionality. It is important to note that the information presented is for informational purposes only, so please do not rely on the information for purchasing or planning purposes. Just like with all projects, the items mentioned on the page are subject to change or delay, and the development, release, and timing of any products, features, or functionality remain at the sole discretion of GitLab Inc.