Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New Project: CNCF Project Summary Table #830

Open
CathPag opened this issue Jul 8, 2022 · 31 comments
Open

New Project: CNCF Project Summary Table #830

CathPag opened this issue Jul 8, 2022 · 31 comments
Assignees

Comments

@CathPag
Copy link

CathPag commented Jul 8, 2022

Hello, the Business Value Subcommittee (the working group who contributed the Landscape Guide) has a new project that should be associated with the Landscape per @caniszczyk.

Here's what we are proposing:

What it is

The CNCF Project Summary Table will provide a relatively standardized, qualitative summary of CNCF projects that eases project evaluation for end users.

Built as a dynamic website and broken down into various categories (as specified in the cloud native landscape), the content will be product manager-driven. Meaning, the responsibility for adding and keeping the information up to date lies on the projects themselves. While they don't have to participate, be believe they will see the value in it and help keep it up to date.

While we'll start with CNCF projects, we may extend it to all open source projects once proven successful and if desired.

Problem statement

The cloud native ecosystem is growing fast but there's still a lack of standardized, high-level overview content that allows end users to identify which technologies they should evaluate further for their projects. While there are analyst-driven comparisons that can be helpful, they often give a lot more weight to their clients' technologies leading to some degree of skepticism among practitioners. Product comparisons written by individuals can also be found for various categories. Although they can be useful, they merely represent the author's perspective.

We need a trusted source that doesn't rely on pay-for-play or someone's personal opinion.

Our goal

Provide end-users with a high-level overview of all CNCF projects from a source they trust. The framework aims at bringing some degree of objectivity through standardization.

The table is not meant to be a comprehensive overview of all the projects. Instead, its goal is to help end users identify which projects they should evaluate further — it's a "top-of-funnel" resource.

Aiming at objectivity

Although total objectivity is impossible to achieve, our goal is to come up with a framework that gets as close as possible. We'll balance strict guidelines with some degree of freedom for projects to position themselves in the ecosystem.

Tags vs open-ended descriptions

Project owners will describe their projects through a variety of descriptive tags defining key properties. Because these tags will focus on technical features it will allow for a degree of comparison.

Example: KubeEdge, Akri, OpenYurt, and SuperEdge all share the Edge tag indicating that they relate to the network edge. OpenYurt and SuperEdge also share the IoT tag, while KubeEdge and Akri don't. Metal3-io’s tags show it to be the only project dealing with baremetal and provisioning.

Not only can technologists infer project features, qualities, and properties from these tags, but when combined with the CNCF landscape graph it will also help illustrate deeper relationships between projects. These types of insights are extremely valuable for the cloud native community.

You can view our PoC here.

What's next

I believe @caniszczyk has given the thumbs up for this to move forward. The next step would be to get a repo and start building the table. Once the framework is built, we'll need to develop the site. Please advise on how to proceed.

@cjyabraham
Copy link

This sounds to be a similar use-case to the CNCF Radar site in that it provides end users with help in deciding which projects to use. That site has been dormant for a while and I wonder if there's any sense in combining both efforts so that the end user resources don't get too fragmented. Just my 2c ;)

@AndreyKozlov1984
Copy link
Contributor

Ok, provide me a bit more details or let me know if I should make all decisions myself, I'll be happy to make a prototype

@CathPag
Copy link
Author

CathPag commented Jul 8, 2022

I don't really see how this overlaps. We want to put technology next to technology to highlight how they differ in terms of capabilities in an objective way. The Radar assesses maturity based on a small group of CNCF end user members (those who participated). While useful, it is also kind of opinionated...and has a different focus anyways.

@iamNoah1
Copy link

iamNoah1 commented Jul 8, 2022

I like this, and I think the radar is something that could be used in addition to the project summary table but as @CathPag said has a different focus and level of objectiveness.

@caniszczyk
Copy link

caniszczyk commented Jul 8, 2022 via email

@onlydole
Copy link
Member

onlydole commented Jul 8, 2022

Howdy, folks! I agree that this would be a great supplement to the CNCF Radar and having the data in landscape.yml or within this repository would be helpful for sourcing information as we publish new editions.

@CathPag
Copy link
Author

CathPag commented Jul 14, 2022

So, how do we move this forward?

@AndreyKozlov1984
Copy link
Contributor

I need someone to draw me or make a vague description what exactly is expected.

@AndreyKozlov1984 AndreyKozlov1984 self-assigned this Jul 15, 2022
@AndreyKozlov1984
Copy link
Contributor

Do I understand correctly that we should just take a current landscape, chose only 1 or maybe 2 items form each category and display it ?

@CathPag
Copy link
Author

CathPag commented Jul 15, 2022

Oh, no. This is a separate project that ties into the landscape and should be part of this repo (like the guide). To get started, we'd need a repo our team can manage.

How we'll tie it to the landscape, we haven't figured out yet. Do we have any stats on how many people click the "guide" toggle or the info icons in the landscape?

@caniszczyk
Copy link

I think what I'd like to do is since we have 80% of the data we need in the landscape.yml is to just augment it with further data to make this work and build something like https://landscape.cncf.io/funding.html or https://landscape.cncf.io/acquisitions to start before we figure out what else to do it.

re: guide stats, we can try to get that next week, it's all in Google Analytics

@AndreyKozlov1984
Copy link
Contributor

I share the idea of using a landscape.yml as a source of our data, and that we should generate the page based on this data.

@CathPag
Copy link
Author

CathPag commented Jul 15, 2022

We definitely wanted to pull data from the landscape (and projects' GitHub). Hoping that some of the engineers on the team can help provide more details. But I believe we need a repo to start and then figure out how to pull the data...or do we have to decide that prior? Sorry, not really my wheelhouse.

@AndreyKozlov1984
Copy link
Contributor

I can tell you if it is better to have this as a part of cncf/landscapeapp project or as a separate project when you draw me a very simple sketch - how it should look like.

Most chances is this would be better a part of a landscape.cncf.io, so we can assign it to landscape.cncf.io/summary

@AndreyKozlov1984
Copy link
Contributor

@CathPag
image
Is it something like this what we should aim to display?

@caniszczyk
Copy link

caniszczyk commented Jul 17, 2022 via email

@siforster
Copy link

Hi @AndreyKozlov1984,

Thanks for your question. Yes, something like the table would be helpful to begin with - we put it together as a helpful PoC to illustrate the concept and it's a good starting point for a prototype. Perhaps a basic table, with some filteringIn line with Chris's and Taylor's points, we thought a lot of the data would already be available, and yes, it would make good sense to take advantage of landscape.yml.

Anything that could help make it easy for projects/contributors to add to the table could be helpful, but this might be a second phase. Most contributions are likely to be along the lines of either people adding 'tags' to each project, like in row 8 in the table, or free text in Row 9 - basically anything we don't have now already in the landscape, and that can't be put together with code.

Agreed, landscape.cncf.io/summary could work well as a link for it and would be great to eventually showcase it once it goes live. Furthermore, down the road this might help make some of the data added as part of this initiative available from the main landscape itself such as when people click on the card for a project.

Some filtering could be really helpful as well. The projects are arranged by columns right now, and it might be helpful to do this as a starting point. This small demo sheet shows us just the "Automation & Configuration" category within "Provisioning". Being able to filter and narrow down the selection of project this way would be really helpful so that a user of the table could see, for example, all the projects under "Provisioning", or "Runtime". Indeed the same filtering mechanism used on the landscape itself could be a helpful starting point. Except, instead of cards, you get the detail in the summary table.

Thanks again for your attention to this, and yes, the PoC table you have shows would be a great basis for a prototype.

@CathPag
Copy link
Author

CathPag commented Jul 26, 2022

How can we proceed with this?

@AndreyKozlov1984
Copy link
Contributor

I started a work on a table, right now I see there is a small set of projects which are eligible for the table(about 10), and I plan to use data from the landscape.yml and 3rd party sites like github
A lot of fields are already available, and I see one of the ways is filtering by tags, right now we do not support tags at all

At this moment it is a so small amount of items that it does not make sense to make any filtering, I'll try to get a first prototype on August, 2nd

@AndreyKozlov1984
Copy link
Contributor

@CathPag
Copy link
Author

CathPag commented Aug 2, 2022

Cool! Great to see we can pull that much stuff from the landscape!

@caniszczyk
Copy link

caniszczyk commented Aug 3, 2022 via email

@CathPag
Copy link
Author

CathPag commented Aug 3, 2022

Oh, we definitely need visual tweaks. I assumed that would happen further down the line. Should I provide feedback in terms of fonts, colors, and formatting now, or is it too early? I definitely have lots of opinions! :)

For instance, it should look and feel like the landscape. Same color scheme and fonts

@caniszczyk
Copy link

caniszczyk commented Aug 3, 2022 via email

@CathPag
Copy link
Author

CathPag commented Aug 3, 2022

Ok, that's what I thought. Yes, very excited to see this moving forward — thanks for the support, team CNCF! :)

@AndreyKozlov1984
Copy link
Contributor

I've switched everything to fetch data only from the landscape.yml !
I added the support for the extra summary_ fields in the extra section,
https://github.com/cncf/landscape/blob/master/landscape.yml#L176

I agree to make a better interface, so far React itself just makes everything quite complicated, but I am ready to add filters to chose the category or tags to filter items, right now the list of projects is the only hardcoded thing :

['KubeEdge', 'Akri', 'CDK for Kubernetes (CDK8s)', 'Cloud Custodian', 'Metal3-io', 'OpenYurt', 'SuperEdge'];

@AndreyKozlov1984
Copy link
Contributor

My nearest plan is to provide a UI to edit summary fields

@AndreyKozlov1984
Copy link
Contributor

I've updated the UI - now you have buttons to filter by category, plus I consider all CNCF projects eligible for this table. Please take a look!

@CathPag
Copy link
Author

CathPag commented Aug 10, 2022

Awesome, thank you! We have our meeting tomorrow and will provide feedback. Thanks again for your help with this!!

@siforster
Copy link

Hi Andrey,
We reviewed the work you have done and we think it's awesome. Our main request now would be to look at filtering by category and then subcategory as defined in landscape.yaml.

  - category:
    name: Provisioning
    subcategories:
      - subcategory:
        name: Automation & Configuration

Perhaps when first looking at the summary table you user could see the categories listed across the top, and then as they click Provisioning, the summary list changes to show Automation & Configuration, Container Registry, Security & Compliance, and Key Management.

The same type of filtering is available in the landscape when we switch to Card Mode, so this could be a good model. Another approach could be to list the Categories on one line, and then have the subcategories on a line below, updating depending on category selected, and the table also updating depending on the relevant category and subcategory selection.

Many thanks for your work on this; it is terrific.

@AndreyKozlov1984
Copy link
Contributor

@siforster, thank you for your review of my work!
Your new requirement is clear, I'll provide this filtering as soon as possible. I will hide empty subcategories.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants