|
|
En aquest document es planteja un model de **DevOps** per al desenvolupament de projectes d'*Odoo*
|
|
|
En aquest document es planteja un model de **DevOps** per al desenvolupament de projectes d'*Odoo* a partir de la versió 11.0
|
|
|
|
|
|
Aques model de DevOps ha de donar resposta al cicle bàsic de desenvolupamemt i desplegament de projectes:
|
|
|
Aquest model de DevOps ha de donar resposta al cicle bàsic de desenvolupamemt i desplegament de projectes:
|
|
|
|
|
|

|
|
|
|
... | ... | @@ -8,69 +8,27 @@ Aques model de DevOps ha de donar resposta al cicle bàsic de desenvolupamemt i |
|
|
|
|
|
* Creació d'un entorn de desenvolupament local
|
|
|
|
|
|
* Actualització del repositori
|
|
|
* Actualització del codi
|
|
|
|
|
|
* Desplegament del codi a la màquina de producció.
|
|
|
|
|
|
# Model actual *legacy*
|
|
|
|
|
|
Model actual *legacy*
|
|
|
=====================
|
|
|
|
|
|
El model de desenvolupament actual es basa en guardar instàncies senceres de l'Odoo per cada projecte.
|
|
|
Aquestes instàncies senceres contenen tot el codi *core* de l'Odoo, tots els mòduls,
|
|
|
tant els bàsics com els de millores i els personalitzats per a cada client,
|
|
|
així com tots els scripts d'execució.
|
|
|
|
|
|
<table>
|
|
|
<thead>
|
|
|
<tr>
|
|
|
<th width="50%"><strong>Pros</strong></th>
|
|
|
<th width="50%"><strong>Contres</strong></th>
|
|
|
</tr>
|
|
|
</thead>
|
|
|
<tbody>
|
|
|
<tr>
|
|
|
<td>
|
|
|
<ul>
|
|
|
<li>Facilita el desplegament de tot el codi amb una sola operació <code>git clone</code> o <code>git pull</code>.</li>
|
|
|
<li>Permet accedir a tot el codi bàsic a l'hora de desenvolupar i depurar codi en local.</li>
|
|
|
</ul>
|
|
|
</td>
|
|
|
<td>
|
|
|
<ul>
|
|
|
<li>Dificultat per actualitzar codi bàsic o de la comunitat en totes les instàncies de clients;
|
|
|
cal fer l'actualització d'una en una i de forma manual. Això pot generar incoherències en el nivell de codi.</li>
|
|
|
</ul>
|
|
|
</td>
|
|
|
</tr>
|
|
|
</tbody>
|
|
|
</table>
|
|
|
|
|
|
Model proposat
|
|
|
==============
|
|
|
|
|
|
El model proposat assumeix la següent estructura modular bàsica dels projectes desenvolupats per Minorisa:
|
|
|
El model de desplegament actual es basa en guardar instàncies senceres de l'Odoo per cada projecte, és a dir, utilitza l'eina git com a eina de desplegament.
|
|
|
|
|
|

|
|
|
Donat que el codi d'un projecte prové de diferents origens (Odoo bàsic, diferents projectes OCA, copi propi, etc.), el manteniment d'aquestes branques esdevé complex, possiblement amb multitud de directoris, submòduls, etc. que dificulta el seguiment de la duplicitat de mòduls i les versions que puguin tenir.
|
|
|
|
|
|
* **addons core**:
|
|
|
mòduls `addons`i `openerp/addons` bàsic de l'Odoo. També inclourien els mòduls OCA de la comunitat.
|
|
|
Aquests mòduls s'instal·len directament des de github.com/odoo/odoo i giyhub.com/odoo/OCA
|
|
|
## Model proposat
|
|
|
|
|
|
* **addons millores i PRO de Minorisa**:
|
|
|
mòduls creats per Minorisa per a clients *PRO*. El seu origen seria el GitLab.
|
|
|
Experimenten un cert grau de desenvolupament i millora. L'actualització de codi hauria de ser relativament fàcil.
|
|
|
El model proposat utilitza entorns virtuals amb Python 3, on els mòduls bàsics de l'Odoo i els mòduls de l'OCA passen a ser biblioteques estàndars de Python. L'eina `pip` dins d'un entorn virtual (`virtualenv`) facilita la instal·lació i actualització de mòduls, només a partir d'un fitxer de text `requirements.txt`. Per a completar els altres mòduls, només es necessitaria la següent estructura modular bàsica dels projectes desenvolupats per Minorisa:
|
|
|
|
|
|
* **addons del client:**
|
|
|
mòduls específics per a cada client. El seu origen seria el GitLab.
|
|
|
És on es produeix la major part del desenvolupament.
|
|
|

|
|
|
|
|
|
Desplegament
|
|
|
============
|
|
|
* **addons pro**:
|
|
|
mòduls propietaris de Minorisa, que pot utilitzar qualsevol client, per millorar funcions existents o afegir funcionalitat nova genèrica. Utilitzen un mètode de desplegament basat en git i submòduls.
|
|
|
|
|
|
El desplegament de codi consisteix en generar l'estructura modular abans esmentada en qualsevol màquina,
|
|
|
ja sigui de desenvolupament, proves o producció. Els mètodes de desplegament de codi han de permetre la seva automatització.
|
|
|
* **addons customer**:
|
|
|
mòduls propietaris de Minorisa específics de cada client. Utilitzen un mètode de desplegament basat en git i submòduls.
|
|
|
|
|
|
Contemplem un mètode de desplegament de codi orientat a entorn virtual.
|
|
|
Aquest sistema de desplegament es basa en el treball de l'OCA [Installing OCA addons, the easy way!](https://odoo-community.org/blog/our-blog-1/post/installing-oca-addons-the-easy-way-32#blog_content)
|
|
|
|
|
|
El repositori d'aquest projecte conté les instruccions per deslegar el codi en qualsevol màquina. |
|
|
\ No newline at end of file |