LTS DEVELOPMENT
2020 - 2023
DEVOPS PLAN
SERVER DI STAGING
Nuova partnership con Digital Ocean
Più macchine di staging con Cody 🦊
https://github.com/lotrekagency/cody
Occorre creare il branch "staging" per ogni progetto
Tutto quello che è presente sul branch "staging" andrà deployato in staging
Usare sempre i branch feature/* o hotfix/* e mergiarli prima su "staging"
MASTER
STAGING
FEATURE/X
Modifica approvata
Mai mergiare staging con master
Si può resettare ogni tanto staging e riportarlo al pari di master
SERVER DI PRODUZIONE
Droplet dedicata per ogni progetto
Digital Ocean Panel
Responsabilità di deploy distribuita
Il team DevOps sarà solo a supporto dei deploy e delle configurazioni
Ogni deploy deve essere annunciato sul canale Slack #deployrequests
BACKUP
DISPONIBILITA' DATI
ACCESSI
VPN Interna: setup con Green Informatica ancora in corso
Un nuovissimo NAS per i reparti DEV, Video e Grafica
Accesso ai backup da rete interna
http://192.168.1.107:5000
Richiedete gli accessi a Lorenzo Vannucci
Interfaccia NAS
Please, welcome
Handyman
https://github.com/lotrekagency/handyman
Handyman risolverà 3 problemi:
- Backup automatici
- Disponibilità dati
- Monitoraggio live
NAS con
HANDYMAN
AUTOBACKUP & MONITORING
VPN
Rete esterna
Rete interna
La nostra istanza di Handyman gira su
Qui troverete gli accessi alle varie macchine di produzione e staging
DEVELOPMENT PLAN
TUTTO PARTE DALLO SCAFFOLDING
Yo Lotrèk Generator!
gitlab.com/lotrekdevteam/internals/generator-lotrek/
Setup Django con Docker
Django 2.2.x
Postgres 11.x
Python 3.6
Node 10.x - 12.x
Scaffolding per progetti WordPress con Docker
Wordpress > 5.2
Scaffolding per librerie Python
More....? 🤷🏼♀️
FRONTEND
Il mercato ha scelto Vue
Bootstrap > 4.2
+
Bootstrap Native JS
Continueremo lo studio e il supporto ad Angular
BOSSANOVA
Bossanova è il nostro framework per creare pannelli admin
Tecnologia
Angular 8/9
- Agosto/Settembre 2020: porting Bossanova a Angular 9
Configurabile tramite un unico file Json
{
"pretitle": "",
"title": "Cormancity",
"logo": "",
"favicon": "/static/img/favicon.png",
"languages" : {
"it" : "🇮🇹 Italiano"
},
"apiendpoint" : "/api",
"default_language" : "it",
"basehref" : "/",
"loadergif": "/static/img/loading.gif",
"theme": "./src/app/plugins/cormancity/app-theme-custom.scss",
"username_field": "email",
"role_field": "role",
"active_plugins" : [
{
"id": "camomilla",
"name": "Camomilla",
"exclude": ["Tag", "Contents", "Articles", "Pages", "Categories"]
},
{
"id": "cormancity",
"name": "Cormancity",
"exclude": [],
"dashboard": "cormancity/dash"
}
]
}
Necessita di una CLI per essere installato
docs.lotrek.net/products/bossanova/
CAMOMILLA
Camomilla è il nostro CMS custom interno scritto per Django
Versione 5 in beta altamente compatibile con la precedente ma semplificata
from camomilla.models import Page
def home(request):
context = {
'page' : Page.get(request, identifier='home'),
}
return render(request, 'website/home.html', context)
Supporto nativo ai contenuti dinamici
from camomilla.models import Article
from camomilla.exceptions import NeedARedirect
def blog_article(request, slug):
try:
context = {
'page' : Article.get(request, permalink=slug),
}
return render(request, 'website/blog_article.html', context)
except NeedARedirect as ex:
return redirect(ex.redirect_url)
Contenuti editabili da frontend con
djsuperadmin
{% load camomilla_filters %}
{% load djsuperadmintag %}
<div class="container text-center">
<img src='{% static "img/logo_ext.png" %}'>
{% with page|filter_content:'banner' as content %}
<h3>{{content.title}} </h3>
{% content_obj content 'content' %}
{% endwith %}
</div>
Gli oggetti Page e Content vengono creati automaticamente!
Testeremo e miglioreremo questo plan per 3 mesi
Prossimo appuntamento a Dicembre! 🎅🏻🎄
Domande?
LTS 2020 - 2023
By Andrea Stagi
LTS 2020 - 2023
- 1,378