cncf / landscapeapp

🌄Upstream landscape generation application
https://landscapes.dev/
Apache License 2.0
255 stars 125 forks source link

New Project: CNCF Project Summary Table #830

Open CathPag opened 2 years ago

CathPag commented 2 years ago

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 commented 2 years ago

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 commented 2 years ago

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 commented 2 years ago

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 commented 2 years ago

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 commented 2 years ago

I think this is a great idea, my biggest ask would be to see if we can store or build most of the data from the CNCF landscape (or stuff it in the landscape.yml).

We can then render a site anywhere using the same canonical data source.

On Fri, Jul 8, 2022 at 9:42 AM Noah Ispas @.***> wrote:

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

— Reply to this email directly, view it on GitHub https://github.com/cncf/landscapeapp/issues/830#issuecomment-1179067606, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAPSIL3T4VMC37OKBFKCPTVTA46LANCNFSM527IBR7A . You are receiving this because you were mentioned.Message ID: @.***>

-- Cheers,

Chris Aniszczyk https://aniszczyk.org

onlydole commented 2 years ago

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 commented 2 years ago

So, how do we move this forward?

AndreyKozlov1984 commented 2 years ago

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

AndreyKozlov1984 commented 2 years ago

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 commented 2 years ago

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 commented 2 years ago

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 commented 2 years ago

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 commented 2 years ago

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 commented 2 years ago

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 commented 2 years ago

@CathPag

image

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

caniszczyk commented 2 years ago

I like http://landscape.cncf.io/summary

We should also build some simple filtering mechanisms etc but all the data comes out of landscape.yml :)

On Fri, Jul 15, 2022 at 5:25 PM Andrey Kozlov @.***> wrote:

@CathPag https://github.com/CathPag [image: image] https://user-images.githubusercontent.com/230982/179312854-fdc47a37-deca-47b6-80e9-72c892797457.png Is it something like this what we should aim to display?

— Reply to this email directly, view it on GitHub https://github.com/cncf/landscapeapp/issues/830#issuecomment-1185956171, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAPSIIHAMLWGYBCGGWD7TTVUHJMNANCNFSM527IBR7A . You are receiving this because you were mentioned.Message ID: @.***>

-- Cheers,

Chris Aniszczyk https://aniszczyk.org

siforster commented 2 years ago

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 commented 2 years ago

How can we proceed with this?

AndreyKozlov1984 commented 2 years ago

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 commented 2 years ago

@CathPag https://landscape.cncf.io/summary

CathPag commented 2 years ago

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

caniszczyk commented 2 years ago

This is awesome, is there a way we can do a simple UI with react/typeahead features?

e.g., https://www.npmjs.com/package/react-bootstrap-typeahead or some table filter?

This is a great start we just need to beautify the interface a bit :)

On Tue, Aug 2, 2022 at 1:32 PM Catherine Paganini @.***> wrote:

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

— Reply to this email directly, view it on GitHub https://github.com/cncf/landscapeapp/issues/830#issuecomment-1203020847, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAPSIJKKDFCLCIRYBZ4CNLVXFLTBANCNFSM527IBR7A . You are receiving this because you were mentioned.Message ID: @.***>

-- Cheers,

Chris Aniszczyk https://aniszczyk.org

CathPag commented 2 years ago

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 commented 2 years ago

Let's hold on the colors for now and maybe if any particular data is missing?

I love the progress though, this is going to be useful once done!

On Wed, Aug 3, 2022 at 7:04 PM Catherine Paganini @.***> wrote:

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! :)

— Reply to this email directly, view it on GitHub https://github.com/cncf/landscapeapp/issues/830#issuecomment-1204567199, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAPSIPH3S7LTG7ZRL72623VXL3IZANCNFSM527IBR7A . You are receiving this because you were mentioned.Message ID: @.***>

-- Cheers,

Chris Aniszczyk https://aniszczyk.org

CathPag commented 2 years ago

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

AndreyKozlov1984 commented 2 years ago

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 commented 2 years ago

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

AndreyKozlov1984 commented 2 years ago

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 commented 2 years ago

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

siforster commented 2 years ago

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 commented 2 years ago

@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.