I detrattori parlano di un declino di Drupal: sempre meno developer lo scelgono per realizzare siti. Eppure se osserviamo la qualità dei progetti basati su Drupal, è evidente che si tratti di progetti di impatto sempre maggiore, per lo più a livello enterprise, in grado di garantire vere e proprie esperienze digitali innovative.
Drupal rimane non solo il più potente e sicuro CMS open source enterprise-grade, ma è diventato un CMF solido che ha saputo rinnovarsi seguendo i principi del framework MACH che promuove piattaforme basate su microservizi, che siano API-first, cloud native ed headless. Quindi no, nessun declino, Drupal è al passo con le migliori tecnologie esistenti sul mercato.
Ecco di cosa parliamo oggi: la nuova major release di Drupal è alle porte e vogliamo raccontarvi tutte le novità per utenti e developer.
3. Cosa vedremo
NOVITÀ
●Symfony
●PHP 8
●Drupal e symfony
I PRINCIPI MACH
●Definizioni
●Drupal e microservizi
●Le iniziative Api-first
●JSON:API ecosystem
●12factor app
CONCLUSIONI
4. Drupal 10: le novità
- Symfony 6 e PHP 8.1
- CKEditor 5
- Olivero tema Front-end di default
- Claro tema amministrativo di default
- Core più snello
- Decoupled Menus (previsto dalla 10.1)
- Nessun supporto per IE11 🎉
- Conversione di alcuni componenti jQuery con Javascript più moderno
5. Symfony 6
Drupal 10 userà la nuova release 6.2 per un miglior supporto sul lungo termine
6. PHP 8.1 (8.2 ready)
Alcune nuove features introdotte a partire dalla versione 8.0:
- JIT
- Null safe operator
- Attributes
- Union and intersection types
- Match expression
- Named arguments
- Enums
- Fibers
7. Drupal e Symfony
Drupal e Symfony
Punti di contatto
- Console
- Dependency-injection
- Event-dispatcher
- Filesystem
- Http-foundation
- Http-kernel
- Routing
- Serializer
- Validator
- yaml
9. Drupal e Symfony
It’s really the Drupal community and not so much the
software that makes the Drupal project what it is. So
fostering the Drupal community is actually more important
than just managing the code base. Dries Buytaert
10. I principi del
MACH alliance
● Microservices
● API-First
● Cloud-native
● Headless
"Future proof enterprise technology
and propel current and future digital
experiences"
14. Wikipedia
Microservizi
Martin Fowler
While there is no precise definition of
“Microservice Architecture”, there are
certain common characteristics
around organization around business
capability, automated deployment,
intelligence in the endpoints, and
decentralized control of languages
and data.
Non c’è una singola definizione di
microservizi.
I servizi in un’architettura a
microservizi sono spesso processi
che comunicano su un network per
raggiungere un obiettivo usando
protocolli technology-agnostic come
HTTP.
CNCF
Microservices are a modern approach
to application development that
takes advantage of cloud native
technologies
16. Drupal As A Service (the big picture)
Microservizi
- Può essere rimodulato per specifiche funzioni di business
- Permette una governance decentralizzata
- Permette un data management decentralizzato
- Completamente automatizzabile al livello infrastrutturale (CI/CD)
- Comunicazione network con protocolli standard (di solito HTTP)
17. Drupal al microscopio
Microservizi
- Core estremamente modulare
- Servizi debolmente accoppiati tramite diversi meccanismi (sia Drupal che
Symfony)
- Composer e SemVer per un controllo serrato su dipendenze ed estensioni
- Facilmente estendibile
- Facilmente aggiornabile
- Rilasci di sicurezza frequenti
- Community attiva sia su nuove iniziative che sulla gestione delle issues
18. Microservizi
Services
Dependency Injection
- Dependency
inversion principle
- Facilita la testabilità
del software
- Overridable
- Decorator pattern
- Service Tags
- Service Providers
- Configurazione
tramite yaml file
(module_name.servi
ces.yaml)
- Sono definiti nel DIC
Plugins
- Discovery by
Annotations
- A runtime
- Estendibili
- KISS principle
- Factory e decorator
design patterns
Event dispatcher
- Observer pattern
- Subscribers definiti
con un tagged
service
19. Si, Drupal è ancora un monolite, ma un monolite estremamente modulare
21. Iniziative
API-first
Api-first initiative
- Creata il 29 Jun 2016
- Arrivata al capolinea
https://www.drupal.org/project/drupal/issues/3170020
- REST (core)
- JSON:API (core)
- GraphQL (contrib)
- OpenAPI (contrib)
22. Iniziative
API-first
Decoupled menus initiative
- Creata 10 settembre 2020
- https://www.drupal.org/project/decoupled_menus_init
iative
- In pieno sviluppo
- Al momento atteso nel core dalla 10.1
- Già disponibile come contrib module per Drupal 9
https://www.drupal.org/project/decoupled_menus
23. API-first
What’s coming
- Disaccoppiamento completo tra funzionalità del core e responsabilità delle logiche e dei
dati grazie anche ai seguenti moduli contrib:
- JSON:API Hypermedia support ( https://www.drupal.org/project/jsonapi_hypermedia)
- JSON:API Resources (https://www.drupal.org/project/jsonapi_resources)
- json-schema.org support (https://www.drupal.org/project/jsonapi_schema)
- JSON:API cross-bundles support
(https://www.drupal.org/project/jsonapi_cross_bundles)
- OpenApi per JSON:API (https://www.drupal.org/project/openapi_jsonapi)
- Nuovi scenari di integrazione cross-sites con Entity Share
(https://www.drupal.org/project/entity_share)
29. 12 factor app
Cloud Native
Business
● Riduzione dei costi
● Servizi più affidabili
● Migliori performance
● Nessun downtime durante i deploy
30. 12 factor app
Cloud Native
Tech
● Deploy più frequenti e più veloci (anche di venerdì
pomeriggio dopo le 17)
● Scalabilità con poco sforzo
● Nessun bisogno di accedere all’infrastruttura
● Divergenza minima tra ambiente di sviluppo e
produzione
● Onboard di nuovi sviluppatori minimizzato
31. ● Configurazione (anche) in code
● Dependencies management con Composer
● Drush per la linea di comando
● S3fs come filesystem
(https://www.drupal.org/project/s3fs)
● Integrazione con Prometheus
(https://www.drupal.org/project/prometheusio_e
xporter)
Drupal 10 è a
misura dei
DevOps
Cloud Native
32. ● Ddev per il local stack
● DrupalPod
(https://github.com/shaal/DrupalPod)
● MinIO con s3fs module
● Monolog
(https://www.drupal.org/project/monolog)
● WebProfiler
(https://www.drupal.org/project/webprofi
ler)
● Config Manager (core)
● Upgrade paths con drush deploy
Ma anche
per i devs
Cloud Native
35. Alcune soluzioni già disponibili con e per Drupal
- REST (core)
- JSON:API (core)
- GraphQL (contrib)
- Next.js per Drupal (https://next-drupal.org/)
Headless
38. Headless
const article = await drupal.createResource("node--article",
{
attributes: {
title: "Title of Article",
body: {
value: "<p>Content of body field</p>",
format: "full_html",
},
},
})
39. Drupal 10: un framework PHP di sviluppo Cloud Native moderno
Conclusioni
- Semplicemente OOP e design patterns
- Ampio spazio di manovra su molti fronti
- Up-to-date con le ultime novità sul campo
- Backward compatible (nel limiti del possibile)
- Mai noioso 😄
42. WE ARE A TECH COMPANY OF ENGINEERS,
DEVELOPERS AND DESIGNERS WHO WILL
THINK, DESIGN AND BUILD YOUR CUSTOM APPLICATIONS,
MODERNIZE YOUR LEGACY AND TAKE YOU TO THE
CLOUD NATIVE ERA.
SPARKFABRIK
43. We help italian businesses to bridge
the gap with China thanks to our
Official Partnership with
Alibaba Cloud.
SparkFabrik is Cloud Native
Computing Foundation
Silver Member.
SparkFabrik is Google Cloud Platform
Technology Partner.
SparkFabrik is AWS
Official Partner.
PROUD OF OUR PARTNERSHIPS