Planet Odoo

Hosting Strategy 101

November 28, 2023 Season 1 Episode 44
Planet Odoo
Hosting Strategy 101
Show Notes Transcript

Choosing the ideal hosting plan for your new software can be a real headache, with so many options to pick from. From super customizable plans to ready-to-use packages, and deciding whether to set up your own server or use cloud infrastructure, it's easy to get confused.

To help you out, we've invited Favien Meghazi, the brain behind Odoo.sh, our most versatile hosting solution. He'll break down the different hosting options, explaining their pros and cons, so you can make an informed decision for your company. 

 So, tune in and let’s unlock the secrets of hosting together!
______________________________________________________

Don’t forget to support us by subscribing, leaving a review, and sharing your favorite episode!

➡️  Curious about Odoo? Try if for free.
➡️  Explore Odoo.sh here.

Concept and realization : Manuèle Robin, Ludvig Auvens, Marine Louis, Cécile Collart
Recording and mixing : Lèna Noiset, Judith Moriset
Host: Olivier Colson

 

Fabien:

You have many ways to host Odoo. The first one is the on-premise option. So is the method you will use if you want to host Odoo on your servers. Basically, you can do what you want because you own the servers, so it's the choice that will provide the maximum of freedom in your implementation. You have the SaaS, so it's the first platform of Odoo. Actually, I would say that the Odoo online is really the best choice for most companies because everything is out of the box. The advantage is that you don't have to care about all the system administration stuff. With this platform, we wanted to invite the partners on our servers. We wanted to let them concentrate on the business, concentrate on their customers and the the functional side of the development of a solution and less on the system administration stuff. Odoo.sh Handles that for you. It is in continuous development, most of the stuff we develop is not seen on the on the UI of Odoo.sh. We work a lot on the stability, the improvement bug fixes. A lot of features are not even in the front. Since the release date in 2018, we doubled the number of projects on the platform every year since that time.

Olivier:

Hi Odooers, welcome back for another episode. When deploying a new Odoo instance, a crucial element to consider is the choice of your hosting strategy. With so many options available, whether you're using your own server or the cloud, it's easy to feel lost and unsure about the best course of action. Indeed, each option has its own unique set of advantages and disadvantages. Whether you prioritize higher customization or prefer a more simple approach, we've got you covered. Joining us for this discussion is Fabian Megazzi, leading Odoo.sh, our most versatile hosting option. He'll be your guide for today, providing you with the keys to making an informed decision about your hosting strategy and explaining how Odoo.sh Really works. So tune in and let's unlock the secrets of hosting together. Hello, Fabien. Hello, Olivier.

Fabien:

Welcome in the podcast.

Olivier:

Thank you. Thank you for having me.

Fabien:

Oh my pleasure. So before we get started, I think there is a story you need to tell because you have a story that's a little special with Odoo yourself, right? Because you have an old friend of yours there. Yeah. Can you tell us who? Anthony LeSuisse,who is the CTO of Odoo. Well, I met him at school basically, we were 16, and basically we went from total strangers to best nerd geek friends for life in less than a year. The funny thing is that most projects start with a codename. I remember then someone asked me for afterwards. I remember that thing was called Odoo when I entered. Really, it was a codename.

Olivier:

I had a Commodore Amiga, which is another computer, but a neighbor had this So I asked him to bring that at school. I gave the floppy disk to the person asking for that. And the day after he told me, well, really, thank you for the virus. I was like, what? Of course the neighbor had a virus, I didn't knew, and I asked him to get back the floppy disk because I wanted to debug it. I had an an emulator on the Amiga to emulate the PC So you were curious to see what was inside of it? Yeah, that was a bit silly trying to debug a PC software on an Amiga, which is slower than the PC itself, but anyway. And he told me that he could not give it back to me because he gave the floppy disk with the virus to a guy, Anthony LeSuisse. I didn't knew anything about him except that he was referred as the weird guy. And so I asked him to give me the floppy disk. He told me, why do you want that disk? I said, I want to debug this virus. And he looked at me. What you're coding in assembly language? I said, yeah, and then we we never stopped talking about that. So hacking together, doing weird stuff. It was really destiny.

Fabien:

Funny story indeed. Okay. And so I suppose eventually you enter the Odoo. Otherwise you wouldn't be there. And what did you work on?

Olivier:

At first I worked on the the very first version of the Saas. Christophe Simonis was already working on that part. And when I joined I just helped him a bit, really a bit. But it was it was the first proof of concept for a Saas. Then, after that there was a swap day. Back in time, we just choose a pair of people and we swapped their job.

Fabien:

Okay, I didn't know that. That's something that we didn't do when I entered already.

Olivier:

No, no. Maybe it's too complex to do that today, but so I took the place of the web client, which at that time was really only server side. So it was not the web client we know today. And after having done working a bit on the web client, I really enjoyed that. And Anthony and Fabien asked me to work on the web client. So I did mainly some bug fixed for the release of Odoo 6. Yeah, I joined in 2010, so it should be the version six. And then after in a team of three, we worked on the new web client, full JavaScript. I would say that the web client that was released in Odoo 6.1, which was it's an architecture quite simple. If you look at what Géry Debongnie did today, which is really a full framework. But yeah, you have to start somewhere. And that was quite interesting because back in time, I think it was more complex than a web client for Twitter or Facebook. We had really a strong JavaScript code base. It was not a state of the art because the JavaScript ecosystem was not what it is today, but it's quite it was quite enjoyable to work on that.

Fabien:

But the web client is not at all what you're doing today anymore.

Olivier:

No.

Fabien:

How come? What is it then?

Olivier:

Because I quitted Odoo for a bit of time. For one year and a half, something like that. You know, Odoo, it's like ups and downs. It happened that at that time I was more in a down. And, yeah, I looked for something else but after one year and a half, I realized that the company I was working in was not really enjoyable. I said, Odoo is upside downs, and in this company, it was just a flat, flat line. It was boring.

Fabien:

It was boring, I said. So I had a discussion with, uh, with Anthony, um, and he proposed me to come back, and I asked him what was what were the projects I could work on. And so he explained a list of projects that they had. And when he told me about Odoo.sh, I said, I want to go back for that.

Olivier:

Okay. So Odoo.sh to keep things really short for now is some way to host Odoo. And with a bunch of services and a specific way, I would say, of working. But maybe before getting into the details of what Odoo.sh Provides, we should recall what the different possibilities are for hosting an Odoo instance. So could you tell us?

Fabien:

So yeah, you have many ways to host Odoo. The first one is the on premise option. So the it's the method you will use if you want to host Odoo on your servers. As Odoo is open source, you can use either the community version of Odoo, or you can use the set of enterprise modules. You can use that you have those two options on premise being able to host Odoo only with the the Open core version, the Community edition. It's only available if you use that on your servers. So on premises, the only way to host.

Olivier:

Just to be clear with with the term if someone doesn't know it on premise means Basically, I don't know, you can rent it. You can physically have the machine run it on your computer on a Raspberry Pi. I do it at home. These kind of things. Oh, okay. Yeah. Okay. So interesting. What are the advantages of doing that?

Fabien:

Yeah. So basically, you can do what you want because you own the platform. I mean, you own the servers. You have to decide for an infrastructure. So you do really what you want. If you have some specific needs in terms of implementation, you will be able really to do that freely. So it's the I would say it's the choice that will provide the maximum of freedom in your implementation.

Olivier:

But on the other hand, it's also the one that will require the most technical So whether you have them or you pay someone who has of course them.

Fabien:

Of course, sometimes you don't have choice. Maybe you you need to put in place an intranet or something that can not be accessible on the internet. So in that case, you even don't have any choice. But. Yet. If you have really have some some specific needs, it could be it could be sometimes the only solution you have and you will have to do everything yourself. Of course you have. You will have to handle handle the mails, which is something really hard to set up, especially nowadays because you know the spams. Maybe you have received some spam. You know what it is, I don't know. So it's it's really horrible. The email, the protocol for the email is the most aging protocol of the internet. And it's really hard to keep it's well configured.

Olivier:

And there is all that thing of having a your mail server trusted and have I mean, not being mistaken as a spam or spam or yourself. Otherwise your mails will just not arrive or will go into spam. And you don't want that.

Fabien:

You have to maintain a reputation and that's hard. You will have to handle the Postgres server. You will have to configure the web servers.

Olivier:

Also you have this pressure, I would say, of being responsible of the security Well the machine, the thing running on the machine, the machine will also but I think it's easier the fact that you I don't know if there is some, some breach somewhere you need to be aware of it. You need to make sure that you make the updates and these kind of things as well, I guess.

Fabien:

So it's a constant work because software evolves and yeah, you have to deal with versions. So it's a constant work. I know that because we do it okay.

Olivier:

And so what are the other options. So if you don't want to go on premise what can you do.

Fabien:

You have the you have the SaaS or Odoo online.

Olivier:

So SaaS means software as a service. And what is it exactly?

Fabien:

So it's the it's the first platform of Odoo, which has quite evolved since the but actually, I would say that the Odoo online is really the best choice for most companies because everything is out of the box if you don't have particular requirements, if you if you just use the the Odoo configuration, the flexibility that Odoo offers and it's already a lot I think you can do, most companies can really just use or do the. The business application suite is really complete and really configurable. So so I think it's it's really the best choice for, for, for starting because you have an instance really fast at the best price.

Olivier:

Yeah. So to be clear that means that you won't be on the SaaS. You're not able to to deploy your own code. And some people might be like, yeah, but uh, it doesn't happen that often happen that often that you have something, some customer that has no customization at all to do, but no personal code does not mean no customization, because as you said, uh, Odoo is pretty versatile. And so there is Studio, there is the ability to to change the views everywhere. So it's you still have room for customizations. It's just you can't be as crazy as when you go on premise. Pretty much anything is possible. So indeed. And so that would be the limit I guess with the with with the SaaS is that, yeah, sometimes you need a development of your own and it's not in standard Odoo.

Fabien:

And then exactly, this is the reason why you would not choose Odoo online. It's indeed if you need custom code, if you need to write Python code or to.

Olivier:

Install community modules, uh, I guess, yeah.

Fabien:

Yeah. Anything that requires to install a module with the. So actually you can there's a way to, to send a module which is only composed of XML files. You can send that on Odoo online. There's a way to do that. There's a based import module I think. But if you need to write Python code you cannot do that. That's the limitation of the platform.

Olivier:

That brings us to like the the Jewel of the Crown. Odoo sh, so what is it and how different is it from the the SaaS?

Fabien:

Yeah, indeed. With Odoo.sh we wanted to address this issue and actually Odoo platform.

Olivier:

What is that?

Fabien:

Okay. And CD is stands for continuous integration and continuous delivery or So it's the fact to to be able to constantly improve your your project, your solution and having all the to. Rules that allow a smooth flow in the development cycle.

Olivier:

So yeah, the idea is really you don't you don't, you don't stop it to to to You do it while it's running incrementally.

Fabien:

Okay.

Olivier:

Yeah. Okay. And so, uh, what are the advantages of having your instance hosted

Fabien:

The advantage is that you don't have to care about all the the system Basically, with this platform, we wanted to invite the partners on our servers. We wanted to let them concentrate on the business, concentrate on their customers, on the the functional side of the of the development of a solution and less on the system administration stuff, handling the servers, the security, everything. So Odoo handles that for you. You just only concentrate on the Odoo module you are developing.

Olivier:

So you have kind of the best of two worlds with the freedom of on premise and easiness of, of the SaaS, then.

Fabien:

That's it.

Olivier:

Okay, but I guess there are some limits. Nothing is perfect.

Fabien:

Nothing is perfect. Indeed. As we made a platform which is really designed to do Odoo development, we had to we had some barriers. Of course, the development cycle is really all the tools available will be made for the Odoo development itself. So if you have really specific implementation, if you really need third party softwares that are not available on the platform, I will take the example of Java for example. Java is not available on Odoo.sh Because it's a really heavy virtual machine eating all the memory. So we do not allow that. Yeah. You have some limitation. You don't have root access on the container you are working in. Everything is set up for you, but you cannot change everything.

Olivier:

Yeah, of course, I guess it makes sense because you have to draw the line Exactly. Yeah. Okay. Uh, let's talk a bit about the development of Odoo.sh, and I have something to say about it, because I remember that thing was called Odouche when I entered Odoo. It was the code name for development. So what can you tell us about Odouche and how it grew into Odoo.sh? Okay, I'm thinking good luck to explain that to non French speakers. And I guess you want me to explain.

Fabien:

Okay. It's okay.

Olivier:

So I think in the middle of the development. So in June 2018 I was in the kitchen at Odoo Farm one and I was preparing my lunch and Jerry d'Aubigny entered in the kitchen. We were just chit chatting, speaking about, talking about food and I think and then he said to me with something totally unrelated. He said, do you know that Odoo is H? When it's pronounced in French, it makes Odoo. And so I was like, okay. We started to make a lot of jokes with that, some that I cannot reveal publicly. But yeah, the funny thing is that most projects start with a code name, then they get the production name afterward. For the research, it was really the opposite. The same we had. The domain name was already available before the development. The name was there, and then we had the code name in the middle of the.

Fabien:

We had to drop this amazing code name. It's too bad. Um, okay. And how did the development go then? How long did it take? How many people were involved?

Olivier:

It's a bit difficult to answer, but I would say that it lasted one year So actually so I came back to do as I explained in, in the summer 2016, and I started developing alone some proof of concept in November, and then four months later in either in January or or in February, I was joined by Danilo Odoo. And I will say that the the real start of the development was beginning because we were too. So everyone is working on a part of the of the architecture and yeah, it it was going faster. Then in the summer 2018, we were joined by two more developers, Danny Vermeulen and Damian Bovi. And then yeah, we really worked. Hard to to to reach a better phase in in October, in November 2017.

Fabien:

And then after the beta or during the beta even how how did it really go? How was it welcome. And, uh, technically speaking, uh, did you have some challenges that arise, like right away or.

Olivier:

We, we had the actually, when I remember when we removed the flag beta, it was removing one line of code and it didn't change anything to anyone because some partners were already using it. And even if it was marked as beta, uh, partners were really using it in production. So it was.

Fabien:

Really like an enthusiasm to, to go and try it from partners. That's cool.

Olivier:

They were waiting for that, I guess, to happen. And so yeah, the beta with we had 1 or 2 problems. Uh, we fixed a lot of bugs during this period, but it was well received.

Fabien:

Could you give a few examples of, of of things that you had to fix like that?

Olivier:

Yes. What we had the memory. We had to implement a memory manager in Odoo itself because we Odoo it uses a really special hybrid mode of hosting. So, you know, and when you deploy that on premise or on Odoo online, it's using a pre fork model. And we use the same Odoo that you will use locally. But we spread it on many, many processes. So the hosting model is really, really different. And we had to implement a memory manager because we had to contain everything.

Fabien:

Okay with the interaction of the software as well, whether I don't know things or limitations that were found into the code in the way it worked, that proved well, wrong or bad for the the way you were hosting the server.

Olivier:

Yeah, yeah, that happened too, I remember. Yeah, we had some trouble with HTML to PDF to print the report. Yeah, the classic components, which is really hard because sometimes it can, it can eat up eight gigabytes of memory just like that to print a report. Thank you. And we had I remember we we collaborated together. Yeah.

Fabien:

Because there was something with accounting. Yeah. Yeah quite recently a few months ago now in.

Olivier:

Version 14 if.

Fabien:

I. Yeah. But the bug was found. Well, the bug, the problem was found and you.

Olivier:

Help us to to.

Fabien:

Hopefully so yeah to to long story short that it was really weird actually Yeah. I don't remember if it was 14 or 15 but 14. Yeah. I guess there is that thing with the, with the reconciliation models, whatever. And so essentially it's running a huge SQL query depending on your configuration. And, and this query. Well, PostgreSQL cannot be killed in some parts of it because of reasons I don't know.

Olivier:

The reason is the git, the git in Postgres 14 we just found out recently.

Fabien:

And so and so that that was a problem. And we have to we had to, to change a little bit the implementation to have something that was running less query. And I think we added parameter to, to just break the the query in multiple sub queries. And so for the cases where this happened you just had to set this up. And and well it wouldn't anymore. But indeed it was. It was a weird problem. It was the first time I had something like that to solve. So it was interesting. Thank you.

Olivier:

Yeah. But we it happens sometimes. Yeah. Sometimes we have to to, to fix, to change stuff. Especially when we went from the long polling to the WebSocket implementation, but otherwise which is in continuous development, we're never done. It's still improving as we speak. We, we we have ten commits per week. Most of the stuff we develop is not seen on the on the UI of Odoo. We work a lot on the stability, the improvement bug fixes, a lot of features are not even in the front.

Fabien:

And you mentioned the end of the beta phase. That was pretty, pretty smooth. How did the number of projects on Odoo evolve since the the release of the service itself?

Olivier:

Well, at first we were kind of afraid that it would not get a traction.

Fabien:

I guess when you start something new, you're always a bit uncomfortable saying,

Olivier:

Yeah. So but the good news is that since the release date in February 2018, we the number of projects on the platform every year since. Since that time. Okay.

Fabien:

Can you give us a number of how many projects they are now?

Olivier:

Currently we have 30,000 of projects.

Fabien:

It's all right.

Olivier:

It includes the partnership files. So I think we should be at something like 22,000 for projects that are not strained. Yeah.

Fabien:

Cool cool. And so since we're talking about projects, let's say I want to make Like now what tools do I have. So I want to develop some modules in Odoo for, for, I don't know, very specific thingy. I'm obsessed with whatever pokemons I want to. I want a Pokemon module in Odoo. Why not? What do I have? What what tools do I have? So of course I do my code on my side. And then what happens?

Olivier:

So you will first need a code manager as we use GitHub. Actually Odoo is integrated with GitHub. Okay, so I hope that your Pokemon module will use. Will be versions. No problem.

Fabien:

So we choose GitHub because it was the most used platform for managing the code. It means that your code, which maybe you already started on GitHub, you can import the project in Odoo. Okay. If you haven't done that you can create a new one. And then the tools available are what you would need typically to do on your workstation. Yet you can program your your module on your editor of choice. But we have an editor in in Adobe Sage. So every database that is created on sage has a linked editor with it. You've got a web shell, so you've got a terminal. If you prefer a command line like Anthony Fabien I do I.

Olivier:

Actually you do.

Fabien:

And you've got some tools to to check the performance. You can you can see the. The monitoring of the of the database. Is it running well? You see the the resource usage.

Olivier:

And let's say so I deploy my thing and then at some point I want to support And so I'm doing some some new branch with that. How does the deployment of this new feature go. What do I need to do. What what what does the platform offer.

Fabien:

The platform actually tries to map the what you will do on your git repository. Indeed, you just say that you want to add a new feature. So you will create a new branch. And on Odoo you've got the concept of of of three stage production, which is where your project is running live. Then you've got the stagings, which allows you to test the new feature for your new Pokémon's new feature, and then you've got the development. This is where you actually make the development. So you will use those branch to to add your new feature. And Odoo provides a kind of a run, but which tests every build that, that if you commit something then it's a new build, it's a new database.

Olivier:

So I can run the content of my branch in some test instance. I see how it goes. When I'm happy with it, I can just have something to deploy it.

Fabien:

That's it. And when you want your master Pokemon user to test your new feature, I mean real production data. So you can just create a staging which will hold a copy of the production, and then you can just merge. And I mean, it's really a drag and drop. You just drag and drop the branch on the stage on the staging branch. And you will be able to to test that. It's cool. So you have all the you can do it in like the most secure way and you have access to all the tools to do that without having to, to have that in mind yourself and to do it by hand. So it's cool. Yeah. Um, so now we're getting closer to the end of the episode. I would just like to give you the opportunity to develop some, some explanation on, on 1 or 2. Really cool feature, cool thing that you had to implement when building Odoo. So is there some, I don't know, some homemade thinkers? I know Odoo loves to do homemade homemade pieces of code. Uh, is there something like that for stage that you're really proud of and want to share?

Olivier:

If you are talking about wheels that we reinvented, there are some. Yeah.

Fabien:

Nice wheels for.

Olivier:

Myself, uh, there is a nice one I really like is that I had really no, no, no But for the stage, I made a container system because we would not use Docker. Of course that's not our wheel, so I'm exaggerating. But at that time Docker was not modular like it is today. So all requirements. So it was not.

Fabien:

Just for the fun.

Olivier:

It was not just for the fun, but I had really a lot of fun doing this because it was really cool. Cool.

Fabien:

All right. So as a conclusion, uh, let's talk a bit about the future. What is next for for what is coming. What can you say.

Olivier:

How the next feature. Actually we are working on a feature which is half implemented. The goal is to do a new static page because the current static page is really it hasn't this this part hasn't changed since the beta.

Fabien:

So it's a sign it's time to.

Olivier:

It's time to change that. And with time we realized that some some users have a hard time knowing what goes wrong when they see the system resources going up and some loneliness appearing. So the performance issue are yet hard to to, to find and to correct. So we want to analyze all the builds in a weekly. Recurrence to to bring more the try to find the common scenario that will lead to performance issues. If we see something that we know could be a problem, we want to display that in a static page.

Fabien:

So some kind of automatic diagnostic that would tell you exactly oh, I suspect logs.

Olivier:

And the data model, you know, we, we, we realized that a lot of, of customers do We've got a shell where you can explore everything. We've got some some performance tools. But I have the feeling that our customers would like to have a straight to the point static page that could explain.

Fabien:

Driving you to the more details, to detailed tools, what you.

Olivier:

Should explore, what you should check.

Fabien:

Yeah okay. That's good. Good feature I guess. And again, it's funny because it's intended for developers indeed. But it's kind of, you know, breaking the usual wall you have around this, these technical subjects also always, you know, you have to be an expert and you have to know everything if you want to do that. And and here it's adding things so that you are taken by hand and you can explore what you know. It's like putting a ladder around on that, that wall. So it's cool. Um, all right. Well, we'll be looking forward to this new features. Uh, and thank you for all your answers. Thank you for explaining all that. That was super interesting.

Olivier:

Thanks for having me. It was a pleasure.

Fabien:

I will come back anytime you want. Okay.

Olivier:

Thanks.

Fabien:

Thank you for joining us for yet another episode. We hope you found it both enjoyable and enlightening. Now that you've gained valuable insights and hosting, we are sure you'll be able to enjoy your Odoo database to its fullest. To keep the learning and exploration going, we encourage you to check out our discussion with Olivier Donny, where we delve into the hot topic of software security. We'll be back next week, but in the meantime, please consider leaving a review, share the show with your friends and colleagues and hit the subscribe button. Thank you for being a part of our community. Cheers!