sandbox icon indicating copy to clipboard operation
sandbox copied to clipboard

[Sandbox] Threeport

Open lander2k2 opened this issue 1 year ago • 10 comments

Application contact emails

[email protected],[email protected]

Project Summary

Cloud native application orchestrator

Project Description

Threeport is an application orchestrator and software delivery control plane. It allows a user to define a workload and declare its dependencies, orchestrating the delivery of the workload with all of those dependencies connected and available.

As an alternative to continuous delivery pipelines that use git as the source of truth, Threeport stores state in a database instead of git. It leverages software controllers that access the database and reconcile the desired state to gracefully manage delivery, eliminating the need for sprawling DevOps tools and configuration languages.

Furthermore, Threeport provides a unified, global control plane for workloads. It functions as an orchestration system that manages cloud provider infrastructure and the software utilizing it across any region, all through a single, scalable control plane.

Org repo URL (provide if all repos under the org are in scope of the application)

N/A

Project repo URL in scope of application

https://github.com/threeport/threeport

Additional repos in scope of the application

No response

Website URL

https://threeport.io/

Roadmap

https://github.com/threeport/threeport/blob/main/ROADMAP.md

Roadmap context

No response

Contributing Guide

https://github.com/threeport/threeport/blob/main/docs/contributing.md

Code of Conduct (CoC)

https://github.com/threeport/threeport/blob/main/docs/code-of-conduct.md

Adopters

No response

Contributing or Sponsoring Org

https://qleet.io/

Maintainers file

https://github.com/threeport/threeport/blob/main/MAINTAINERS.md

IP Policy

  • [X] If the project is accepted, I agree the project will follow the CNCF IP Policy

Trademark and accounts

  • [X] If the project is accepted, I agree to donate all project trademarks and accounts to the CNCF

Why CNCF?

Being a part of the CNCF provides the Threeport project with exposure to a community of users that would find the project useful. We chose the CNCF because it embraces open source collaboration. Those that look to the CNCF as a reference point for cloud native projects tend to have the same values which aligns well with the aims of the Threeport project: provide valuable software and encourage participation in helping develop the project further.

Benefit to the Landscape

Software delivery and dependency management for distributed workloads in cloud native environments is challenging. Threeport exists to manage the deployment of a workload and its dependencies using a control plane as an alternative to continuous delivery pipelines. Threeport manages cloud infrastructure, Kubernetes clusters, managed services (provided by 3rd party providers) and support services (run on Kubernetes with tenant workloads) as dependencies of your application. It provides simplified abstractions for developers to provision and use Kubernetes to run their workloads. It puts Kubernetes within reach for more organizations and enhances the software delivery operations for those that already use it.

Cloud Native 'Fit'

With regard to the CNCF landscape, Threeport fits best in the Orchestration & category. Threeport is a cloud native project in the following respects:

  • Native support for deploying containerized workloads on Kubernetes.
  • Manages cloud provider infrastructure and managed services, e.g. RDS and S3, in response to application dependency requirements.
  • Orchestrates workload dependencies installed on Kubernetes, e.g. ingress, TLS termination using other cloud native projects.
  • Allows workloads to be declared as dependencies of other workloads, supporting a distributed or microservice architecture.

"Cloud native" usually means using containers, Kubernetes and other API-driven systems such as cloud infrastructure providers. Threeport is a control plane for managing application delivery in this environment.

Cloud Native 'Integration'

Threeport uses CNCF projects such as Kubernetes and cert-manager to orchestrate dependencies for user applications. We will be expanding the CNCF projects integrated, soon to add Prometheus and Fluentbit for orchestrating observability concerns for user applications.

Cloud Native Overlap

Threeport has some overlap with Crossplane in that Threeport is extensible and can be thought of as a tool for building cloud native control planes. It also has some overlap with various GitOps projects such as ArgoCD in that Threeport provides application delivery mechanisms.

Similar projects

I don't know of any projects that are approaching application orchestration in the way Threeport does.

Landscape

No

Business Product or Service to Project separation

Qleet provides fully hosted Threeport control planes as a service. The source code Qleet services live in an entirely separate github org from Threeport. Threeport also has it's own website and documentation. Threeport has its own release cycle and exists independently of Qleet, the company and service.

Project presentations

N/A

Project champions

No response

Additional information

No response

lander2k2 avatar Nov 27 '23 23:11 lander2k2

Hi @lander2k2 and thanks for the submission! We'd love to hear about this project in TAG App Delivery.

Our next open slot for presentations is December 20 in our TAG general meeting - would you be able to attend that day? We ask for a presentation for about 25 minutes on the architecture and features of your project, here's the tracking issue for you: https://github.com/cncf/tag-app-delivery/issues/512. We'll take notes and share the recording here for TOC's review too.

FWIW threeport seems to be architected similarly to Radius - see #65.

joshgav avatar Nov 28 '23 15:11 joshgav

@joshgav I totally can present on Dec 20. Looking forward to it.

Yes, there are indeed similarities between Threeport and Radius. I like what they're doing! We chatted with the Radius team at Kubecon and found a lot of common ground in how we're approaching our projects. I'd be happy to talk about the similarities and differences at the TAG general meeting if helpful.

lander2k2 avatar Nov 28 '23 21:11 lander2k2

Since the TAG-App Delivery presentation won't be until after the next Sandbox review, can you briefly explain here a bit of compare and contrast between Threeport, Crossplane, and ArgoCD to the best of your knowledge? What things do they do the same, and what differently? What are the tradeoffs between the platforms? In what contexts could the projects be used together?

CNCF has a "no kingmaker" policy so competing with accepted projects is not regarded as a problem. My questions are more around understanding how a user would evaluate using Threeport vs. other options.

jberkus avatar Dec 08 '23 21:12 jberkus

We have more time, this project is not currently scheduled for review.

amye avatar Dec 08 '23 21:12 amye

@jberkus I add some project comparisons for Crossplane and ArgoCD (as well as Radius) to our documentation here: https://docs.threeport.io/#comparable-projects

lander2k2 avatar Dec 18 '23 14:12 lander2k2

@joshgav wondering what next steps here might be. Any questions I can answer? Or any more info I can supply for this application?

lander2k2 avatar Jan 23 '24 12:01 lander2k2

@jberkus I add some project comparisons for Crossplane and ArgoCD (as well as Radius) to our documentation here: https://docs.threeport.io/#comparable-projects

interesting that we have Radius under review as well in https://github.com/cncf/sandbox/issues/65

Looks like EKS is deployed under the covers on AWS (not custom k8s installation on EC2)

dims avatar Apr 01 '24 19:04 dims

Looks like EKS is deployed under the covers on AWS (not custom k8s installation on EC2)

@dims That is correct. Threeport uses the aws-builder library to deploy EKS clusters (as well as RDS and S3 when used as part of an app stack). We opted to use this library - and the aws-sdk-go-v2 - instead of an intermediate tool or abstraction for maximum flexibility and to ensure we didn't hit any limitations in some dependent tooling.

lander2k2 avatar Apr 01 '24 23:04 lander2k2

@lander2k2 The TOC determined on today's call the following milestones should be achieved by the project in order to be reviewed at a later date:

  • Support for additional cloud service providers beyond AWS
  • While the project has a few active contributors, we'd like to see an increase in the community as it appears one person is the primary contributor.
  • We think this project is interesting and we would like to see it mature further

please reapply no earlier than 6 months from now once support for additional cloud services has been added, there are more active contributors, and it has grown a bit more.

TheFoxAtWork avatar Apr 09 '24 21:04 TheFoxAtWork

Thanks for the feedback @TheFoxAtWork . Really appreciate the TOC taking the time to review. For the milestones:

  • We've given a lot of consideration to more cloud provider support. We agree it's important. As such, we've added Azure support to our roadmap. GCP will come as well - where it sits in priorities is TBD.
  • While I've added the most commits, I'm definitely not the sole primary contributor. I've provided 60% of lines of code contributed while our two other contributors have committed about 20% each in terms of lines of code. That said, we'd love to attract more contributors and will endeavor to do exactly that before we re-submit.
  • We're very happy to hear you think Threeport is interesting and we'll continue to work hard at maturing the project.

Thanks for considering our application. We'll resubmit after 6 months has gone by and we've reached these milestones.

lander2k2 avatar Apr 10 '24 15:04 lander2k2