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

Create How_Conxai_uses_Knative_Eventing_to_provide_AI_APIs_in_the_con… #6167

Merged
merged 7 commits into from
Nov 27, 2024

Conversation

tikr7
Copy link
Contributor

@tikr7 tikr7 commented Nov 27, 2024

@matzew as you requested I wrote a small blog post how we use Knative Eventing =)

@knative-prow knative-prow bot requested review from mmejia02 and ReToCode November 27, 2024 14:36
Copy link

knative-prow bot commented Nov 27, 2024

Welcome @tikr7! It looks like this is your first PR to knative/docs 🎉

@knative-prow knative-prow bot added the size/S Denotes a PR that changes 10-29 lines, ignoring generated files. label Nov 27, 2024
Copy link

netlify bot commented Nov 27, 2024

Deploy Preview for knative ready!

Built without sensitive environment variables

Name Link
🔨 Latest commit bcef98a
🔍 Latest deploy log https://app.netlify.com/sites/knative/deploys/674743176e90b100087c4fbf
😎 Deploy Preview https://deploy-preview-6167--knative.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

@matzew
Copy link
Member

matzew commented Nov 27, 2024

@tikr7 thanks a lot!

Can you please add your blog article to the navigation?

Done in here -> https://github.com/knative/docs/blob/main/blog/config/nav.yml#L51

@@ -0,0 +1,24 @@
## How Conxai uses Knative Eventing to provide AI APIs in the construction industry

Copy link
Member

Choose a reason for hiding this comment

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

I'd add an author, like

Author: NAME, TITLE @ SHOP

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Done.

@tikr7
Copy link
Contributor Author

tikr7 commented Nov 27, 2024

@tikr7 thanks a lot!

Can you please add your blog article to the navigation?

Done in here -> https://github.com/knative/docs/blob/main/blog/config/nav.yml#L51

Done.

If something is wrong, pls do let me know.


First, the customer uploads an image to be blurred via our API, which saves the image on S3. The S3 event is routed to our AWS EventBridge. The TriggerMesh AWSEventBridgeSource automatically configures an Amazon SQS queue and EventBridge Rule to forward the S3 event into that Amazon SQS queue. Because TriggerMesh has been deprecated, we will switch to Knative Serving [IntegrationSource](https://knative.dev/blog/articles/consuming_sqs_data_with_integrationsource/) approach with AWS SQS in the future. Then it passes that event into the Knative Broker which is backed by Amazon MSK - Kafka. Since we heavily rely on S3 key/file names, we wrote our own router service in Golang which modifies the EventType using regex patterns and sends it back to the Knative Broker.

Another Knative Trigger moves it into our transformer which handles preprocessing first. As the next step, the transformer calls the predictor (Nvidia Triton) directly over HTTP. We use the "Collocate transformer and predictor in same pod" [feature](https://kserve.github.io/website/0.13/modelserving/v1beta1/transformer/collocation/) to maximize inference speed and throughput. After receiving model results, the transformer does the postprocessing and finally saves the model results on S3.
Copy link
Member

Choose a reason for hiding this comment

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

Could we have a little sub-header above this blog as well?

Saying something about KServe / AI ?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Thank you for the feedback. I integrated something about Kserve.

Copy link
Member

@pierDipi pierDipi left a comment

Choose a reason for hiding this comment

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

Thanks for sharing your adoption story @tikr7 !

In the future, I would love to know more about your router server to see if Knative could provide a generalized version of it and, at the same time, remove that from your plate.

A very small comment/suggestion


## Our blurring product step by step

First, the customer uploads an image to be blurred via our API, which saves the image on S3. The S3 event is routed to our AWS EventBridge. The TriggerMesh AWSEventBridgeSource automatically configures an Amazon SQS queue and EventBridge Rule to forward the S3 event into that Amazon SQS queue. Because TriggerMesh has been deprecated, we will switch to Knative Serving [IntegrationSource](https://knative.dev/blog/articles/consuming_sqs_data_with_integrationsource/) approach with AWS SQS in the future. Then it passes that event into the Knative Broker which is backed by Amazon MSK - Kafka. Since we heavily rely on S3 key/file names, we wrote our own router service in Golang which modifies the EventType using regex patterns and sends it back to the Knative Broker.
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
First, the customer uploads an image to be blurred via our API, which saves the image on S3. The S3 event is routed to our AWS EventBridge. The TriggerMesh AWSEventBridgeSource automatically configures an Amazon SQS queue and EventBridge Rule to forward the S3 event into that Amazon SQS queue. Because TriggerMesh has been deprecated, we will switch to Knative Serving [IntegrationSource](https://knative.dev/blog/articles/consuming_sqs_data_with_integrationsource/) approach with AWS SQS in the future. Then it passes that event into the Knative Broker which is backed by Amazon MSK - Kafka. Since we heavily rely on S3 key/file names, we wrote our own router service in Golang which modifies the EventType using regex patterns and sends it back to the Knative Broker.
First, the customer uploads an image to be blurred via our API, which saves the image on S3. The S3 event is routed to our AWS EventBridge. The TriggerMesh AWSEventBridgeSource automatically configures an Amazon SQS queue and EventBridge Rule to forward the S3 event into that Amazon SQS queue. Because TriggerMesh has been deprecated, we will switch to Knative Eventing [IntegrationSource](https://knative.dev/blog/articles/consuming_sqs_data_with_integrationsource/) approach with AWS SQS in the future. Then it passes that event into the Knative Broker which is backed by Amazon MSK - Kafka. Since we heavily rely on S3 key/file names, we wrote our own router service in Golang which modifies the EventType using regex patterns and sends it back to the Knative Broker.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@pierDipi nice little detail, thank you! I changed "Serving" to "Eventing" :)

@knative-prow knative-prow bot added size/M Denotes a PR that changes 30-99 lines, ignoring generated files. and removed size/S Denotes a PR that changes 10-29 lines, ignoring generated files. labels Nov 27, 2024
@tikr7
Copy link
Contributor Author

tikr7 commented Nov 27, 2024

Thanks for sharing your adoption story @tikr7 !

In the future, I would love to know more about your router server to see if Knative could provide a generalized version of it and, at the same time, remove that from your plate.

A very small comment/suggestion

We can hop on a call at some point. Let's sync on Slack. I texted you a message.

Copy link
Member

@matzew matzew left a comment

Choose a reason for hiding this comment

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

/lgtm

@knative-prow knative-prow bot added the lgtm Indicates that a PR is ready to be merged. label Nov 27, 2024
@dprotaso
Copy link
Member

/approve

If anyone has further edits feel free to do it in a follow up.

Copy link

knative-prow bot commented Nov 27, 2024

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: dprotaso, matzew, tikr7

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@knative-prow knative-prow bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Nov 27, 2024
@knative-prow knative-prow bot merged commit a6d3e5f into knative:main Nov 27, 2024
19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. lgtm Indicates that a PR is ready to be merged. size/M Denotes a PR that changes 30-99 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants