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

|
|
|
|
|
|
* Creació d'un repositori nou al [GitLab](http://git.desarrollo.minorisa.net>)
|
|
|
|
|
|
* Creació d'un entorn de desenvolupament local
|
|
|
|
|
|
* Actualització del repositori
|
|
|
|
|
|
* Desplegament del codi a la màquina de producció.
|
|
|
|
|
|
|
|
|
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>
|
|
|
<li>Duplicació de codi bàsic</li>
|
|
|
</ul>
|
|
|
</td>
|
|
|
</tr>
|
|
|
</tbody>
|
|
|
</table>
|
|
|
|
|
|
Model proposat
|
|
|
==============
|
|
|
|
|
|
El model proposat assumeix la següent estructura modular bàsica dels projectes desenvolupats per Minorisa:
|
|
|
|
|
|
* **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 *rarament* cal actualitzar-los.
|
|
|
El seu origen podria ser directament a GitHub o es podria mantenir un *fork* local al GitLab per anar incorporant-hi *patches* i *fixes*.
|
|
|
Només *rarament* caldria actualitzar el codi.
|
|
|
|
|
|
* **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.
|
|
|
|
|
|
* **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
|
|
|
============
|
|
|
|
|
|
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ó.
|
|
|
|
|
|
Contemplem un mètode de desplegament de codi orientat a entorn virtual. |