We are planning to launch a SaaS service based on Odoo to allow the clients to subscribe and use a customized Odoo specifically tailored for the local market needs, Odoo SaaS Tools ([login to view URL]) looks like a good fit for this project, but I am open for other suggestions for SaaS solutions.
I am trying to design the system in a way that can help us focus on customer support rather than infrastructure and code, Odoo is resource hungry and requires specific setup to function smoothly, I am also worried about scaling it as it grows and gets larger, taking all that into consideration I am leaning toward a multi-server environment infrastructure based on a PaaS solution for easy management and scaling, and a containerized code approach based on Docker for easy deployment and manipulation, this way the solution can be managed and operated by regular operators with basic training making it ideal for a business environment.
I researched for a PaaS that is container friendly, the majority are Kubernetes oriented, I am considering D2C ([login to view URL]) as the PaaS, basically it allows the deployment of preconfigured stack builds based on Docker and manage the infrastructure in isolation of the deployed code making it possible to scale the infrastructure horizontally and vertically and move the code around it without affecting the services running, it also allows to update and upgrade the operating systems and the runtimes without interrupting the running services, but again I am open for other suggestions for PaaS.
On the database part, PostDock ([login to view URL]) looks like a good candidate as it offers a PostgreSQL cluster with High Availability and Self Healing.
We will need some help from someone experienced in Odoo, Odoo SaaS, PostgreSQL, and Docker, to plan and implement the solution, Furthermore, this will be an ongoing project, not a one time job, we will continue to need the help as we grow and expand.
The project has three elements:
1. Infrastructure design and implementation (Servers, PaaS, Scalability, CD and CI, Dev and Staging, etc..)
2. Odoo design and implementation (Rebranding, Theming, Modules needed, Customizations, Desktop and mobile clients, etc..)
3. SaaS design and implementation (Client isolation, Predefined setups, Online store, Payment Gateways, Subscription workflow, Subscription management, etc..)
We will start with the implementation, once we have a working Odoo SaaS base we will move forward with developing and customizing it. For the infrastructure and implementation, I need to clarify the following:
1. What Odoo SaaS solution do you recommend? Odoo SaaS Tools? Or do you suggest another solution?
2. What PaaS do you recommend? Do you think D2C is a good fit or do you suggest another solution?
3. What database cluster solution do you recommend? Do you think PostDock is a viable solution or do you suggest another solution?
4. Best possible architecture for the infrastructure, based on our research it seems that separate servers for load balancing, reverse proxy, app, and databases is the best approach for scaling without issues, also HA implementation is necessary for handling load, I would like to hear your thoughts about the system structure, what structure do you recommend?
5. What is the best way to solve the sessions and attachments issues in an Odoo SaaS setup?
6. Can each client DB have a separate container? For example being able to create each new DB in a separate Docker container? This will enable us to manage each client DB in isolation of other clients, small DB's can share a host and large DB's can have dedicated hosts.
7. What do you suggest to handle base code updates? The best approach to handle the updates so that Odoo base can be updated without affecting the customization done on top of it.
In addition to the above points, please describe clearly how you plan to design and implement the solution, and feel free to suggest any ideas.