giantswarm / roadmap

Giant Swarm Product Roadmap
https://github.com/orgs/giantswarm/projects/273
Apache License 2.0
3 stars 0 forks source link

Developer Platform MVP aka Demoable Golden Path #2792

Open puja108 opened 10 months ago

puja108 commented 10 months ago

User Story

As a Developer I want to be able to create a new software project (written in golang) I want to get everything from pipeline setup through deployment to production up to introspection and alerting at runtime out-of-the-box with as minimal intervention from my side as needed I want my entire workflow to be as self-service as possible, especially without having to involve a platform team or other areas of my organization.

Details, Background

The goal of this MVP is a minimal golden path example that is demoable to customers and other stakeholders.

We want to be able to use it to test out some of our assumptions on the customer/user side by showing a full end-to-end usable golden path.

As a side goal we want to also test our assumptions on the technology side, especially seeing how far we can get by relying as much as possible on standard open source components and glueing those together.

### Horizon
- [ ] https://github.com/giantswarm/giantswarm/issues/27924
- [ ] https://github.com/giantswarm/giantswarm/issues/27086
- [ ] Get a project with a customer and define a timeline
- [ ] Talk to the teams and get their epics in here
### Honeybadger
- [ ] https://github.com/giantswarm/roadmap/issues/2774
- [ ] Create a project including its source code repo
- [ ] Deploy a project
- [ ] Setup OCI registry for images and charts
- [ ] View status of my projects and deployments
### Atlas
- [ ] Get out-of-the-box metrics for deployed projects
- [ ] Get logs for deployed projects
- [ ] Get basic alerts for deployed projects
- [ ] Have a generic Dashboard for deployed projects
- [ ] Get custom monitoring and alerting based on SLO
- [ ] Allow to configure custom metrics and a grafana dashboard
### Shield
- [ ] Scan for vulnerabilities at build time
- [ ] Scan for vulnerabilities at run time
- [ ] Scan for anomalies at run time
- [ ] Verify signatures in cluster (with Kyverno?)
### Cabbage
- [ ] Have Ingress setup out-of-the-box
- [ ] Get DNS and TLD config ootb
- [ ] Blackbox monitoring of network
- [ ] Blackbox monitoring through service mesh
- [ ] Service Identity / mTLS for services
puja108 commented 10 months ago

Added the tasks we gathered in the miro to tasklists per team.

@weatherhog (for honeybadger) I only added the high level ones that were marked for the MVP. Can you and @piontec detail out the high-level issues with the detailed tasks (most of which we already have in the phases in the board)?

@stone-z @TheoBrigitte @weatherhog (for Cabbage) I added some ideas that we thought of in the sprint this week. You can add more where you see fit. For context the recording of today's Platform Sync will be shared soon. Let's go through the items for your teams together and see which ones and in which scope can/should be done within the scope of the MVP and which ones we should rather move to future releases.

I'll also be creating further issues, where we can for now park features we want to build but will not be needed for this stage of the MVP.

puja108 commented 10 months ago

Here the link to the recording https://drive.google.com/file/d/1mcOJ3mguKsxyfVS1yhAD_X883vqT1nYd/view

teemow commented 10 months ago

@puja108 this is the epic we are currently working on

uvegla commented 10 months ago

We had a nice discussion in HoneyBadger about the current state and I would like to collect my thoughts about the current state based on my learnings building a similar system for some years.

Template repositories

I think they are good for quick start / demo purposes but in my experience they are very difficult to maintain in the long run:

Thoughts on Phase 1

In my experience it is okay if we think of this as using it for demo purposes. However if we aim for fully supporting this phase a projects lifecycle we lack - at the moment - thinking about some crucial parts, as creating a project is one thing and the easiest one, but:

Projet settings file

Highly depends on what we want to store here. In my experience this is nice approach but can turn bad quickly if some commonly principles are not laid down and followed:

I think it is fine we don't want to figure it all out right away, but it would have a huge impact on our MC and our current plans with them. Thinking of tenants vs admin access vs current MAPI / RBAC here.

Phase 2

I think we are already the strongest here. Crossplane can be a good bet, I see the value here. I personally had some bad experience with in the start but they are changing fast and from what I hear for the better. Thus my fears probably from my bad experience and lack of knowledge on this topic.

stone-z commented 8 months ago

Is the intent that we edit the items directly in the list or should there be some proposal/discussion first?

puja108 commented 8 months ago

I guess it might need a bit of discussion, so a proposal by each team would be good, so we can edit the list based on that

stone-z commented 6 months ago

Shield intends to focus first on the platform management experience for the platform/security teams, with the developer features being primarily feedback that the platform teams don't need to manage.

These features include (roughly in order of when we want to do them):

All of the above include exposing metrics. Reports from the underlying tools are already available and Policy API CRs will include more data in a tool-independent format.

Due to the difficulty of managing CI/CD pipelines Giant Swarm doesn't own, we don't plan to do much (if any) pipeline work with the resources we currently have. However, we might explore "out of band" options for supporting these features in CI. For example, maybe we don't provide a Jenkins config for all the scanners we use, but we might instead provide the policies in a CLI-friendly format to be used, or we expose an endpoint configured with the customers' current policies against which a dry run can be made from CI to validate the workload being built.

The features currently listed in the main issue are mostly already available:

puja108 commented 2 months ago

Moving this to waiting, as we lowered priority on this to first work on the foundation that can enable a real golden path.

We will definitely revive this once we feel the foundation is laid.

Putting this on hold does not mean we stop discovering and co-innovating with customers around this topic and how we can already help them towards such a goal.