kuby-core
kuby-core copied to clipboard
Support for other lang apps
Thanks for the great deployment solution.
I am using amazon EKS to run my rails application. Along with rails monolith I am using sidekiq, a Ruby app that talks amazon SQS, and a golang App that provides a response to my mobile application. How can I run my Ruby app and golang using kuby? I feel we need to add separate plugins for these. If yes, I would like to give it a shot if you provide me with direction on how to approach it?
Hey @sivagollapalli, these are good questions. Some thoughts and questions:
- Kuby already supports Sidekiq via the kuby-sidekiq plugin. Hopefully it works for your use-case.
- Is the Ruby app that talks to SQS using a framework or is it like a standalone Ruby script? Is it already containerized?
- Is the golang app already containerized?
Containerization
Kuby should be able to handle the SQS and golang apps, but it will take some effort on your part to get them working. If they're not already containerized, I would suggest starting there. The Kuby docs contain a section that explains how to specify additional Docker images. Kuby will build and push these images when you run kuby build and kuby push respectively.
Kubernetes Resources
The next step is to create several Kubernetes resources for the apps. At minimum you'll need:
- Two
Deployments that specify how to run the images, how many replicas you want, etc. - Two
Services for routing HTTP requests to the apps. - Two
Ingresses for routing HTTP requests from the outside world to theServices.
Take a look at the rails_app plugin as a reference.
Plugins
The easiest way to define the additional Docker images and Kubernetes resources is via a couple of plugins, one for each app. If the plugin code you come up with is general enough (i.e. works with any golang app, etc) you might consider sharing your plugin with the community. Otherwise it's perfectly ok to keep the plugin code in your monolith and use it only for your own needs. Take a look at the plugin docs for more information.
Finally, don't hesitate to reach out with questions :)
@camertron Thanks for your reply.
I containerized my apps already and have been deploying them via Jenkins. I would like to use kuby and try how to deploy them. Let me try to add a generic plugin using docs that works with golang.
My idea would be open source them as well.
Ok thanks for the additional info. If your apps are already containerized then you can probably skip all the Docker stuff.
My idea would be open source them as well.
Cool! Looking forward to taking a look at the code when you're ready :)