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

Adding design doc #31

Merged
merged 6 commits into from
Feb 4, 2021
Merged

Adding design doc #31

merged 6 commits into from
Feb 4, 2021

Conversation

arschles
Copy link
Collaborator

@arschles arschles commented Feb 1, 2021

I've added a design document and linked to it from the README

Checklist

  • Commits are signed with Developer Certificate of Origin (DCO)

Fixes #18

README.md Outdated Show resolved Hide resolved
docs/design.md Outdated

## Architecture Diagram

Below is a complete architecture diagram.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is missing, is this on purpose?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yup, I forgot to mark this as WIP - sorry about that 😄

docs/design.md Outdated

There are three major components in this system. You can find more detail and discussion about each in sections below this one.

- [Operator](./operator) - This component listens for events related to `HTTPScaledObject`s and creates, updates or removes internal machinery as appropriate.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This link is broken

docs/design.md Outdated

- [Operator](./operator) - This component listens for events related to `HTTPScaledObject`s and creates, updates or removes internal machinery as appropriate.
- [Interceptor](./interceptor) - This component accepts and routes external HTTP traffic to the appropriate internal application, as appropriate.
- [Scaler](./scaler) - This component tracks the size of the pending HTTP request queue for a given app and reports it to KEDA. It acts as an [external scaler](https://keda.sh/docs/2.1/scalers/external-push/).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This link is broken

docs/design.md Outdated
There are three major components in this system. You can find more detail and discussion about each in sections below this one.

- [Operator](./operator) - This component listens for events related to `HTTPScaledObject`s and creates, updates or removes internal machinery as appropriate.
- [Interceptor](./interceptor) - This component accepts and routes external HTTP traffic to the appropriate internal application, as appropriate.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This link is broken

docs/design.md Outdated

We've introduced a new [Custom Resource (CRD)](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/) called `HTTPScaledObject.http.keda.sh` - `HTTPScaledObject` for short. Fundamentally, this resource allows an application developer to submit their HTTP-based application name and container image to the system, and have the system deploy all the necessary internal machinery required to deploy their HTTP application and expose it to the public internet.

The [operator](./operator) runs inside the Kubernetes namespace to which they're deploying their application and watches for these `HTTPScaledObject` resources. When one is created, it will create a `Deployment` and `Service` for the app, interceptor, and scaler, and a [`ScaledObject`](https://keda.sh/docs/2.1/concepts/scaling-deployments/) which KEDA then uses to scale the application.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it will create a Deployment and Service for the app

We might want to check this once it gets more ready for release because I'm not sure if that should be our responsibility where, instead, we could just scale a deployment that is provided to 0 (similar to core KEDA)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Or support both use cases?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

True!

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree regarding both use cases, I think they cover two different types of users. I created #35 to track that feature.

Copy link
Member

@zroubalik zroubalik left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@arschles arschles changed the title Adding design doc [WIP] Adding design doc Feb 2, 2021
@arschles arschles force-pushed the design-doc branch 2 times, most recently from 625c625 to e28dcdb Compare February 2, 2021 22:36
@arschles
Copy link
Collaborator Author

arschles commented Feb 2, 2021

@tomkerkhove @zroubalik I've made updates that you requested. Can you take another loook?

(the DCO violation is because I committed a suggested fix and apparently GitHub doesn't sign those by default)

@zroubalik
Copy link
Member

LGTM, @tomkerkhove wdyt?

Fixes kedacore#18

Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
@arschles arschles changed the title [WIP] Adding design doc Adding design doc Feb 4, 2021
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
@arschles arschles merged commit ffd8857 into kedacore:main Feb 4, 2021
@arschles arschles deleted the design-doc branch February 4, 2021 21:02
kingdonb pushed a commit to kingdonb/http-add-on that referenced this pull request Jun 12, 2023
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

Successfully merging this pull request may close these issues.

Provide design doc
3 participants