Hey everyone! We're transitioning an old on-premises application to Kubernetes and planning to use it across various production sites. Since we have specific requirements that go beyond standard functionality, we aim to create a single software core that can handle all needs, while allowing for multiple instances for each site. These instances should be updateable and manageable individually. I'm wondering if 'core' and 'instance' are the right terms for what we're trying to achieve. Also, what are some best practices for implementing this kind of setup? How are others in the industry handling similar scenarios? Thanks in advance for your insights!
3 Answers
Sounds like Kustomize is designed for situations like yours! It can help manage various Kubernetes configurations for each deployment. As for your in-house application features, make sure they're implemented properly to ensure flexibility.
Could you clarify a bit more? Tools like Kustomize or Helm can be really useful for deploying different configurations for identical software setups.
We have multiple production areas with unique needs. One idea is to create a specific app version for each area, leading to many versions to manage. Is it better to integrate all the requirements into one app and deploy multiple instances instead?
According to the twelve-factor app methodology, your application's configuration should come from the environment where it's running. This means that each instance of your application can be configured through things like environment variables and config files, which gives you the flexibility to use a single software image across different sites. You'll still have different software versions for releases, but the goal is to maintain a main version that adapts based on runtime parameters.
That's a neat approach! I'm curious, how widely accepted is the twelve-factor app in the industry? Are there similar guidelines folks are following?
Would using a single production image and enabling plugins through environment variables work well in this scenario?
Exactly! Using Kustomize for managing Kubernetes specifics alongside well-coded software functionality sounds like a solid plan.