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

http://192.168.1.107:8000 

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