Deploying Odoo ERP (Enterprise Resource Planning) Server. Distribute the traffic across multiple instances with a Load Balancer.

The image below represents the desired Architecture for this project

Odoo is a suite of business management software tools including, for example, CRM, e-commerce, billing, accounting, manufacturing, warehouse, project management, and inventory management. The Community version is libre software, licensed under the GNU LGPLv3.

— —

First created a Ubuntu VM Server in odoo-net and install odoo, postgresql, and wkhtmltopdf

wkhtmltopdf and wkhtmltoimage are open source (LGPLv3) command line tools to render HTML into PDF and various image formats using the Qt WebKit rendering engine.

— —

With netstat -tulpan tool I checked if the odoo listens on the default port 8069 

(if there is an error bash: netstat: command not found then install it with sudo apt install net-tools)

With this interface, I created a Database and set a password

In future steps, I will create an image from the odoo Server Disk and use it in the Instance template to create an instance group, and those Servers in the Instance group won’t have a public IP, so Cloud NAT will be used for Servers to communicate to the Internet for any updates.

Create a boot disk image

Create an Instance template with the custom image and no External IPv4.

Creating a new managed instance group with two always running Instances.

Map the port number 8069 to a specific port name and create a health check.

Overview of the Instance group and the health check status of the two newly created odoo Servers.

Creating Load Balancer and backend service (but before creating a Load Balancer, I Reserve a Static IP address and assign the domain name in DNS Server)

HTTPS frontend of the Load Balancer (it can take up to an hour to provision the TLS/SSL Certificate )

Odoo Servers are reachable on

Just for test, I created a new user “boshko” and Installed Discuss Chat and Video conference app. I logged in as user “boshko” from my local machine and test the Chat app.