SlideShare ist ein Scribd-Unternehmen logo
1 von 47
The OpenEuropa Initiative
An open source approach to software as a service
at the European Commission
Antonio De Marco
nuvole.org - info@nuvole.org - @nuvoleweb
About me
Hello, I’m Antonio.
● Director and co-founder of Nuvole
● From 2015 consulting part-time for Nuvole at the European Commission
● From 2018 co-founder and team leader of the OpenEuropa Initiative at
the Directorate-General for Informatics (DIGIT)
Disclaimer: the use case we are presenting today is built and maintained by a
large team of consultants, working for different companies.
2
About Nuvole
● From 2010, a proud Drupal company
● Complex Drupal projects
Interfacing with other systems or featuring complex front-end requirements
● Working with NGOs and public institutions
An international team rooted in NGOs and comfortable working with large NGOs and public
institutions (World Food Programme, European Commission, OECD, World Bank)
https://nuvole.org
3
Nuvole in the Drupal Community
● Long time Drupal contributors
Our open-source Drupal modules were downloaded more than 1 million times
● Drupal core contribution
Co-leading the official Drupal 8 Configuration Management Initiative
● Drupal events
Invited as presenters at several annual EU/US Drupal conferences (DrupalCon)
● Drupal trainers
10+ times official DrupalCon trainers + large organizations (HP, European Commission, etc.)
4
The European Union web presence
5
The European Union web presence
● 2 main institutional sites:
○ The European Commission: https://ec.europa.eu
○ The European Union: https://europa.eu
● 40 European agencies, such as:
○ EFSA, the European Food Safety Authority
○ Frontex, the European Border and Coast Guard Agency
● 27 Commission's Representations sites, such as
○ Italy: https://italy.representation.ec.europa.eu
○ Belgium: https://belgium.representation.ec.europa.eu
● Hundreds more: the Europass site, the COVID-19 response site, etc.
6
7
8
9
10
Managing institutional content is hard
● Multilingualism, supporting the 24 official languages in the EU
● Integration with the EU internal translation services
● Advanced content moderation workflow
● Scheduling content publication for sensitive news
● Harmonization of content categorization via shared taxonomies
● Centralized authentication and authorization system
● Integration with ECAS, the European Single Sign-On Service.
● Integration with the European Union Webtools widgets
● etc...
11
Drupal at the European Commission
12
Drupal at the European Commission
● 2012: a pilot project, the Multisite Platform, based on Drupal 7:
○ A common web management infrastructure
○ Rationalise the web presence of the EC
○ A coherent corporate image
○ Cost sharing amongst the different Directorate Generals
● 2014: the Europa platform, based on Drupal 7:
○ A Drupal 7 distribution built on the Multisite Platform experience
○ Aimed at migrating away from the then outdated web publishing platform
● 2015-2017: Migration of hundreds of websites to the Europa platform
○ Including the two main institutional sites
13
The Europa platform: a monolithic approach
● A SaaS built as a Drupal 7 distribution
● Organised in Drupal features, using the Features module
● Possibility for site owners to enable and disable features from the UI
● A first, genuine, attempt to business requirement orchestrations
● Allowed for extra customizations, on the final client’s expense
14
The Europa platform: a monolithic approach
Drupal 7 Core
Installation Profile
Feature A Feature B Feature C Feature D
Site custom code
15
The reality of a monolithic approach
● Large code base, difficult to maintain
● Long tests runs, not 100% covered
● New features might break existing sites
● Hard to involve people to contribute
● High deployment time
● Used more as a framework than a service
16
Other drawbacks
● A single codebase with tens of developers contributing to it
● Clients were hiring their own teams to manage the site
● 100 sites / 100 ways of implementing the same thing
○ Clients could extend it by hiring their own development team in house
○ Custom functionalities would require significant overrides
○ Development would then happen on a separate repository
● 100 ways of implementing the same thing / 1000 developers
○ Hard to maintain technical governance
○ Hard to monitor security
○ High cost of maintainability and quality assurance processes
17
The OpenEuropa Initiative
18
Drupal 8: an opportunity
In 2018 the migration of the Europa platform to Drupal 8 presented an
opportunity for a paradigm shift by leveraging:
● The maturity of a proper package management system
● The adoption of semantic versioning
● The raise of containerised applications
19
The OpenEuropa Initiative
OpenEuropa is a European Commission initiative aimed at strengthening the
adoption of open source tools and practices, particularly focused to:
● Build and maintain loosely-coupled, reusable software components,
● Build fully-fledged solutions for the European Institutions
● Establish reusable technical governance guidelines
● Contribute back to upstream open source projects, such as Drupal
https://github.com/openeuropa/documentation
20
21
A “component-based” approach (1/2)
Each component (e.g. a Drupal module, or a PHP library):
● Has its own repository
● Enjoys an independent release cycle
● Is tested separately
● Has a dedicated continuous integration pipeline
● Is semantically versioned (x.y.z)
● Describes its own dependencies
22
A “component-based” approach (2/2)
Each component has everything that a developer needs to kickstart
development, bundled right in its repository.
For example, in case of a Drupal module:
● Running composer install builds a fully functional site, right within
the component root directory, allowing to kickstart development
● Running docker-compose up -d spins off a fully functional
environment, with all needed services (web server, database, etc.)
● Behat and functional PHPUnit tests are run against the target site
● Context-switching for developers is reduced to the minimum
23
Project setup
Fully functional
development site
Continuous Integration
and deployment 24
Advantages
A component-based approach:
● Leverages modern dependency package manager, like Composer
● Leverages Drupal's modularity as a point of strength
● Makes it easier to write and maintain tests
● Allows for a shorter “time-to-market” per component
● Facilitates intra-team contributions
● Facilitates external contributions
● Facilitates the adoption of open source tools and practices
25
Breaking up the monolith
Core
Profile
A B Site specific
Site A
Core
Profile
C Site specific
Site B
A
1.1.0
A
1.1.1
A
2.0.0
C
0.0.1
C
0.0.2
C
0.1.0
B
0.1.0
B
0.2.0
B
0.2.1
B
1.0.0
B
1.0.1
C
1.0.0
Time
26
27
28
29
30
31
Building and maintaining OpenEuropa
32
An example: the EU’s visual identity
The Europa Component Library (ECL) is a comprehensive style guide
containing the design elements and visual standards to harmonize the
European Union web presence.
https://ec.europa.eu/component-library
33
EC EU
34
Aim: provide an ECL Drupal theme
The OpenEuropa Theme component must:
● Allow Drupal sites to feature an ECL look and feel
● Allow a site owner to choose between the EC and the EU branding
● Reuse the components in their native Twig implementation
35
Theme architecture
Three main components working together:
● ECL Twig Loader: loads ECL components using a custom Twig namespace
● OpenEuropa Theme: themes Drupal frontend using ECL components and
exposes them as UI Patterns
● Composer Artifacts: allows projects to use a fully built theme artifact
which contains ECL templates and compiled frontend assets
Other than “the usuals”: the Task Runner and the Code Review component
36
Europa
Component Library
ECL
Twig Loader
Provides reusable components
for an harmonized look and feel
Imports ECL templates in any PHP
application using Twig
{% include '@ecl/...' with {
'variant' : 'default' ,
'title': title,
'detail' : detail,
} %}
{% include '@ecl/...' with {
'Primary_image' : image,
'title': title,
'detail' : detail,
} %}
{% include '@ecl/...' with {
'secondary_image' : image,
'title': title,
'detail' : detail,
} %}
OpenEuropa
Theme
Drupal theme providing ECL
components integration
UI
Patterns
Field formatters
View displays
Entity view modes
37
Using the theme’s artifact
ECL ECL Loader Theme
Site builders
Site developers
Core components
38
Building a SaaS on top of OpenEuropa
39
A new SaaS for the EU web presence
OpenEuropa allows for a streamlined way of building and maintaining SaaS
platforms. Since 2018 we have been building a SaaS that is powering the next
generation of the European Union web presence.
The SaaS platform is:
● A private Drupal distribution
● Built using OpenEuropa components
● Tweaked by custom modules and themes, shipped within the distribution
40
Stitching it all together
Public
components
Private
distribution
Theme
Corporate
Content
Multilingual
support
Editorial
Workflow
OpenEuropa Modules
Translation
client
Composer
artifacts
OpenEuropa Libraries
Search API
Paragraphs
Contributed modules
Drupal profile
Custom module 1 Custom module 2 Custom theme
41
An economy of scale
A few non-functional requirements were clear since the beginning:
● The new SaaS platform is built to serve hundreds of sites
● Updates need to be rolled out all at the same time
● Each site needs to be built and managed by the site owners, without
employing any dedicated developer
● Eventually, a site owner can decide to “break free” from the flock, and
start its own development, while still keeping the possibility of upgrading
to newest SaaS versions
42
How we did it
● We have one repository called the master site:
○ A Composer-based Drupal site repository
○ It requires the SaaS Drupal profile
● Each other site instance gets its very own repository
● Each site instance repository is a git-fork of the master site
● A new release of the master site triggers a waterfall release pipeline,
which releases all the other site instances
43
Release one, deploy hundreds
44
Master site
Release manager
tags a release
Site A
Site B
Site C
Site D
Site A
Site B
Site C
PROD
PROD
Deployment pipeline
Test pipeline
Where we stand now
45
OpenEuropa in numbers
● More than 70 components, including Drupal modules, PHP libraries,
Docker images, development tools, templates, etc.
● More than 100 developers, divided in 20 teams, contribute daily to the
initiative
● Around 100 sites on the SaaS platform, out of which 50+ are currently
live, in production
● Tens of custom (non-SaaS) sites have been built using the OpenEuropa
components
46
Thank You
nuvole.org - info@nuvole.org

Weitere ähnliche Inhalte

Was ist angesagt?

Efficient development workflows with composer
Efficient development workflows with composerEfficient development workflows with composer
Efficient development workflows with composernuppla
 
Efficient development workflows with composer
Efficient development workflows with composerEfficient development workflows with composer
Efficient development workflows with composernuppla
 
osCaddie Drupal/Alfresco Integration Technical Update
osCaddie Drupal/Alfresco Integration Technical UpdateosCaddie Drupal/Alfresco Integration Technical Update
osCaddie Drupal/Alfresco Integration Technical UpdateAppnovation Technologies
 
OpenCms Days 2015: Keynote - OpenCms 10 X marks the spot
OpenCms Days 2015: Keynote - OpenCms 10 X marks the spotOpenCms Days 2015: Keynote - OpenCms 10 X marks the spot
OpenCms Days 2015: Keynote - OpenCms 10 X marks the spotOpenCms
 
Drupal 6 to Drupal 8 Migration
Drupal 6 to Drupal 8 MigrationDrupal 6 to Drupal 8 Migration
Drupal 6 to Drupal 8 MigrationAmeex Technologies
 
Drupal in 5mins + Previewing Drupal 8.x
Drupal in 5mins + Previewing Drupal 8.xDrupal in 5mins + Previewing Drupal 8.x
Drupal in 5mins + Previewing Drupal 8.xWong Hoi Sing Edison
 
OpenCms Days 2014 - How Techem handles international customer portals
OpenCms Days 2014 - How Techem handles international customer portalsOpenCms Days 2014 - How Techem handles international customer portals
OpenCms Days 2014 - How Techem handles international customer portalsAlkacon Software GmbH & Co. KG
 
July OpenNTF Webinar - HCL Presents Keep, a new API for Domino
July OpenNTF Webinar - HCL Presents Keep, a new API for DominoJuly OpenNTF Webinar - HCL Presents Keep, a new API for Domino
July OpenNTF Webinar - HCL Presents Keep, a new API for DominoHoward Greenberg
 
OpenCms Days 2016: OpenCms at the swiss seismological service
OpenCms Days 2016: OpenCms at the swiss seismological serviceOpenCms Days 2016: OpenCms at the swiss seismological service
OpenCms Days 2016: OpenCms at the swiss seismological serviceAlkacon Software GmbH & Co. KG
 
Reproducible development to live applications with Red Hat CDK and Red Hat Op...
Reproducible development to live applications with Red Hat CDK and Red Hat Op...Reproducible development to live applications with Red Hat CDK and Red Hat Op...
Reproducible development to live applications with Red Hat CDK and Red Hat Op...Lalatendu Mohanty
 
Configuration as Dependency: Managing Drupal 8 Configuration with git and Com...
Configuration as Dependency: Managing Drupal 8 Configuration with git and Com...Configuration as Dependency: Managing Drupal 8 Configuration with git and Com...
Configuration as Dependency: Managing Drupal 8 Configuration with git and Com...Erich Beyrent
 
HTML5 Apps on AGL Platform with the Web Application Manager (Automotive Grade...
HTML5 Apps on AGL Platform with the Web Application Manager (Automotive Grade...HTML5 Apps on AGL Platform with the Web Application Manager (Automotive Grade...
HTML5 Apps on AGL Platform with the Web Application Manager (Automotive Grade...Igalia
 
WebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 Revolution
WebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 RevolutionWebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 Revolution
WebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 Revolutionjuanjosanchezpenas
 
ICON UK 2016: Modernizing an IBM Notes applicaton using with AngularJS
ICON UK 2016: Modernizing an IBM Notes applicaton using with AngularJSICON UK 2016: Modernizing an IBM Notes applicaton using with AngularJS
ICON UK 2016: Modernizing an IBM Notes applicaton using with AngularJSMark Leusink
 
docker : how to deploy Digital Experience in a container drinking a cup of co...
docker : how to deploy Digital Experience in a container drinking a cup of co...docker : how to deploy Digital Experience in a container drinking a cup of co...
docker : how to deploy Digital Experience in a container drinking a cup of co...Matteo Bisi
 
Drupal 8 improvements for developer productivity php symfony and more
Drupal 8 improvements for developer productivity  php symfony and moreDrupal 8 improvements for developer productivity  php symfony and more
Drupal 8 improvements for developer productivity php symfony and moreAcquia
 
OVERVIEW: Chromium Source Tree
OVERVIEW: Chromium Source TreeOVERVIEW: Chromium Source Tree
OVERVIEW: Chromium Source TreeChang W. Doh
 
Continuous Integration Is for Teams: Moving past buzzword driven development
Continuous Integration Is for Teams: Moving past buzzword driven development Continuous Integration Is for Teams: Moving past buzzword driven development
Continuous Integration Is for Teams: Moving past buzzword driven development Pantheon
 

Was ist angesagt? (20)

Efficient development workflows with composer
Efficient development workflows with composerEfficient development workflows with composer
Efficient development workflows with composer
 
Efficient development workflows with composer
Efficient development workflows with composerEfficient development workflows with composer
Efficient development workflows with composer
 
osCaddie Drupal/Alfresco Integration Technical Update
osCaddie Drupal/Alfresco Integration Technical UpdateosCaddie Drupal/Alfresco Integration Technical Update
osCaddie Drupal/Alfresco Integration Technical Update
 
OpenCms Days 2015: Keynote - OpenCms 10 X marks the spot
OpenCms Days 2015: Keynote - OpenCms 10 X marks the spotOpenCms Days 2015: Keynote - OpenCms 10 X marks the spot
OpenCms Days 2015: Keynote - OpenCms 10 X marks the spot
 
Drupal 6 to Drupal 8 Migration
Drupal 6 to Drupal 8 MigrationDrupal 6 to Drupal 8 Migration
Drupal 6 to Drupal 8 Migration
 
Drupal in 5mins + Previewing Drupal 8.x
Drupal in 5mins + Previewing Drupal 8.xDrupal in 5mins + Previewing Drupal 8.x
Drupal in 5mins + Previewing Drupal 8.x
 
OpenCms Days 2014 - How Techem handles international customer portals
OpenCms Days 2014 - How Techem handles international customer portalsOpenCms Days 2014 - How Techem handles international customer portals
OpenCms Days 2014 - How Techem handles international customer portals
 
July OpenNTF Webinar - HCL Presents Keep, a new API for Domino
July OpenNTF Webinar - HCL Presents Keep, a new API for DominoJuly OpenNTF Webinar - HCL Presents Keep, a new API for Domino
July OpenNTF Webinar - HCL Presents Keep, a new API for Domino
 
OpenCms Days 2016: OpenCms at the swiss seismological service
OpenCms Days 2016: OpenCms at the swiss seismological serviceOpenCms Days 2016: OpenCms at the swiss seismological service
OpenCms Days 2016: OpenCms at the swiss seismological service
 
Drupal Best Practices
Drupal Best PracticesDrupal Best Practices
Drupal Best Practices
 
OpenCms Days 2016: Keynote - Introducing OpenCms 10.5
OpenCms Days 2016:   Keynote - Introducing OpenCms 10.5OpenCms Days 2016:   Keynote - Introducing OpenCms 10.5
OpenCms Days 2016: Keynote - Introducing OpenCms 10.5
 
Reproducible development to live applications with Red Hat CDK and Red Hat Op...
Reproducible development to live applications with Red Hat CDK and Red Hat Op...Reproducible development to live applications with Red Hat CDK and Red Hat Op...
Reproducible development to live applications with Red Hat CDK and Red Hat Op...
 
Configuration as Dependency: Managing Drupal 8 Configuration with git and Com...
Configuration as Dependency: Managing Drupal 8 Configuration with git and Com...Configuration as Dependency: Managing Drupal 8 Configuration with git and Com...
Configuration as Dependency: Managing Drupal 8 Configuration with git and Com...
 
HTML5 Apps on AGL Platform with the Web Application Manager (Automotive Grade...
HTML5 Apps on AGL Platform with the Web Application Manager (Automotive Grade...HTML5 Apps on AGL Platform with the Web Application Manager (Automotive Grade...
HTML5 Apps on AGL Platform with the Web Application Manager (Automotive Grade...
 
WebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 Revolution
WebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 RevolutionWebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 Revolution
WebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 Revolution
 
ICON UK 2016: Modernizing an IBM Notes applicaton using with AngularJS
ICON UK 2016: Modernizing an IBM Notes applicaton using with AngularJSICON UK 2016: Modernizing an IBM Notes applicaton using with AngularJS
ICON UK 2016: Modernizing an IBM Notes applicaton using with AngularJS
 
docker : how to deploy Digital Experience in a container drinking a cup of co...
docker : how to deploy Digital Experience in a container drinking a cup of co...docker : how to deploy Digital Experience in a container drinking a cup of co...
docker : how to deploy Digital Experience in a container drinking a cup of co...
 
Drupal 8 improvements for developer productivity php symfony and more
Drupal 8 improvements for developer productivity  php symfony and moreDrupal 8 improvements for developer productivity  php symfony and more
Drupal 8 improvements for developer productivity php symfony and more
 
OVERVIEW: Chromium Source Tree
OVERVIEW: Chromium Source TreeOVERVIEW: Chromium Source Tree
OVERVIEW: Chromium Source Tree
 
Continuous Integration Is for Teams: Moving past buzzword driven development
Continuous Integration Is for Teams: Moving past buzzword driven development Continuous Integration Is for Teams: Moving past buzzword driven development
Continuous Integration Is for Teams: Moving past buzzword driven development
 

Ähnlich wie The OpenEuropa Initiative

AD113 -- IBM Lotus Notes Discussion Template: Next Generation and Other OpenN...
AD113 -- IBM Lotus Notes Discussion Template: Next Generation and Other OpenN...AD113 -- IBM Lotus Notes Discussion Template: Next Generation and Other OpenN...
AD113 -- IBM Lotus Notes Discussion Template: Next Generation and Other OpenN...ddrschiw
 
xpages & dojo
xpages & dojoxpages & dojo
xpages & dojodominion
 
[HKDUG] #20151017 - BarCamp 2015 - Drupal 8 is Coming! Are You Ready?
[HKDUG] #20151017 - BarCamp 2015 - Drupal 8 is Coming! Are You Ready?[HKDUG] #20151017 - BarCamp 2015 - Drupal 8 is Coming! Are You Ready?
[HKDUG] #20151017 - BarCamp 2015 - Drupal 8 is Coming! Are You Ready?Wong Hoi Sing Edison
 
OpenNebulaConf2018 - Welcome and Project Update - Ignacio M. Llorente, Rubén ...
OpenNebulaConf2018 - Welcome and Project Update - Ignacio M. Llorente, Rubén ...OpenNebulaConf2018 - Welcome and Project Update - Ignacio M. Llorente, Rubén ...
OpenNebulaConf2018 - Welcome and Project Update - Ignacio M. Llorente, Rubén ...OpenNebula Project
 
uPortal Q1 2018 Quarterly Briefing
uPortal Q1 2018 Quarterly BriefinguPortal Q1 2018 Quarterly Briefing
uPortal Q1 2018 Quarterly BriefingChrisBeach22
 
Top Drupal 8 Distributions
Top Drupal 8 DistributionsTop Drupal 8 Distributions
Top Drupal 8 DistributionsOpenSense Labs
 
Introduction to drupal
Introduction to drupalIntroduction to drupal
Introduction to drupalPedro Cambra
 
DI4R 2018 - Ellip: a collaborative workplace for EO Open Science
DI4R 2018 - Ellip: a collaborative workplace for EO Open ScienceDI4R 2018 - Ellip: a collaborative workplace for EO Open Science
DI4R 2018 - Ellip: a collaborative workplace for EO Open Scienceterradue
 
Drupal 8 and Pantheon
Drupal 8 and PantheonDrupal 8 and Pantheon
Drupal 8 and PantheonPantheon
 
RNP Cloud Infrastructure model, services and challenges
RNP Cloud Infrastructure model, services and challengesRNP Cloud Infrastructure model, services and challenges
RNP Cloud Infrastructure model, services and challengesEUBrasilCloudFORUM .
 
2016 EDRLab roadmap at epubsummit
2016 EDRLab roadmap at epubsummit2016 EDRLab roadmap at epubsummit
2016 EDRLab roadmap at epubsummitLaurent Le Meur
 
AirBNB's ML platform - BigHead
AirBNB's ML platform - BigHeadAirBNB's ML platform - BigHead
AirBNB's ML platform - BigHeadKarthik Murugesan
 
Bighead: Airbnb’s End-to-End Machine Learning Platform with Krishna Puttaswa...
 Bighead: Airbnb’s End-to-End Machine Learning Platform with Krishna Puttaswa... Bighead: Airbnb’s End-to-End Machine Learning Platform with Krishna Puttaswa...
Bighead: Airbnb’s End-to-End Machine Learning Platform with Krishna Puttaswa...Databricks
 
JIO and WebViewers: interoperability for Javascript and Web Applications
JIO and WebViewers: interoperability  for Javascript and Web ApplicationsJIO and WebViewers: interoperability  for Javascript and Web Applications
JIO and WebViewers: interoperability for Javascript and Web ApplicationsXWiki
 
OpenShift As A DevOps Platform
OpenShift As A DevOps PlatformOpenShift As A DevOps Platform
OpenShift As A DevOps PlatformLalatendu Mohanty
 
P2Pvalue Directory: Using a Unique Open Resource for Research and Networking
P2Pvalue Directory: Using a Unique Open Resource for Research and NetworkingP2Pvalue Directory: Using a Unique Open Resource for Research and Networking
P2Pvalue Directory: Using a Unique Open Resource for Research and NetworkingDavid Rozas
 

Ähnlich wie The OpenEuropa Initiative (20)

AD113 -- IBM Lotus Notes Discussion Template: Next Generation and Other OpenN...
AD113 -- IBM Lotus Notes Discussion Template: Next Generation and Other OpenN...AD113 -- IBM Lotus Notes Discussion Template: Next Generation and Other OpenN...
AD113 -- IBM Lotus Notes Discussion Template: Next Generation and Other OpenN...
 
xpages & dojo
xpages & dojoxpages & dojo
xpages & dojo
 
[HKDUG] #20151017 - BarCamp 2015 - Drupal 8 is Coming! Are You Ready?
[HKDUG] #20151017 - BarCamp 2015 - Drupal 8 is Coming! Are You Ready?[HKDUG] #20151017 - BarCamp 2015 - Drupal 8 is Coming! Are You Ready?
[HKDUG] #20151017 - BarCamp 2015 - Drupal 8 is Coming! Are You Ready?
 
OpenNebulaConf2018 - Welcome and Project Update - Ignacio M. Llorente, Rubén ...
OpenNebulaConf2018 - Welcome and Project Update - Ignacio M. Llorente, Rubén ...OpenNebulaConf2018 - Welcome and Project Update - Ignacio M. Llorente, Rubén ...
OpenNebulaConf2018 - Welcome and Project Update - Ignacio M. Llorente, Rubén ...
 
uPortal Q1 2018 Quarterly Briefing
uPortal Q1 2018 Quarterly BriefinguPortal Q1 2018 Quarterly Briefing
uPortal Q1 2018 Quarterly Briefing
 
Drupal
DrupalDrupal
Drupal
 
Top Drupal 8 Distributions
Top Drupal 8 DistributionsTop Drupal 8 Distributions
Top Drupal 8 Distributions
 
Introduction to drupal
Introduction to drupalIntroduction to drupal
Introduction to drupal
 
DI4R 2018 - Ellip: a collaborative workplace for EO Open Science
DI4R 2018 - Ellip: a collaborative workplace for EO Open ScienceDI4R 2018 - Ellip: a collaborative workplace for EO Open Science
DI4R 2018 - Ellip: a collaborative workplace for EO Open Science
 
Drupal 8 and Pantheon
Drupal 8 and PantheonDrupal 8 and Pantheon
Drupal 8 and Pantheon
 
RNP Cloud Infrastructure model, services and challenges
RNP Cloud Infrastructure model, services and challengesRNP Cloud Infrastructure model, services and challenges
RNP Cloud Infrastructure model, services and challenges
 
devops@cineca
devops@cinecadevops@cineca
devops@cineca
 
2016 EDRLab roadmap at epubsummit
2016 EDRLab roadmap at epubsummit2016 EDRLab roadmap at epubsummit
2016 EDRLab roadmap at epubsummit
 
LOD2 Webinar: UnifiedViews
LOD2 Webinar: UnifiedViewsLOD2 Webinar: UnifiedViews
LOD2 Webinar: UnifiedViews
 
AirBNB's ML platform - BigHead
AirBNB's ML platform - BigHeadAirBNB's ML platform - BigHead
AirBNB's ML platform - BigHead
 
Bighead: Airbnb’s End-to-End Machine Learning Platform with Krishna Puttaswa...
 Bighead: Airbnb’s End-to-End Machine Learning Platform with Krishna Puttaswa... Bighead: Airbnb’s End-to-End Machine Learning Platform with Krishna Puttaswa...
Bighead: Airbnb’s End-to-End Machine Learning Platform with Krishna Puttaswa...
 
Polymer 101
Polymer 101Polymer 101
Polymer 101
 
JIO and WebViewers: interoperability for Javascript and Web Applications
JIO and WebViewers: interoperability  for Javascript and Web ApplicationsJIO and WebViewers: interoperability  for Javascript and Web Applications
JIO and WebViewers: interoperability for Javascript and Web Applications
 
OpenShift As A DevOps Platform
OpenShift As A DevOps PlatformOpenShift As A DevOps Platform
OpenShift As A DevOps Platform
 
P2Pvalue Directory: Using a Unique Open Resource for Research and Networking
P2Pvalue Directory: Using a Unique Open Resource for Research and NetworkingP2Pvalue Directory: Using a Unique Open Resource for Research and Networking
P2Pvalue Directory: Using a Unique Open Resource for Research and Networking
 

Mehr von Nuvole

Advanced Configuration Management with Config Split et al.
Advanced Configuration Management with Config Split et al.Advanced Configuration Management with Config Split et al.
Advanced Configuration Management with Config Split et al.Nuvole
 
Introducing the UI Patterns module: use atomic UI components everywhere in Dr...
Introducing the UI Patterns module: use atomic UI components everywhere in Dr...Introducing the UI Patterns module: use atomic UI components everywhere in Dr...
Introducing the UI Patterns module: use atomic UI components everywhere in Dr...Nuvole
 
Drupal 8 Configuration Management with Features
Drupal 8 Configuration Management with FeaturesDrupal 8 Configuration Management with Features
Drupal 8 Configuration Management with FeaturesNuvole
 
Configuration Management in Drupal 8: A preview (DrupalCamp Alpe Adria 2014)
Configuration Management in Drupal 8: A preview (DrupalCamp Alpe Adria 2014)Configuration Management in Drupal 8: A preview (DrupalCamp Alpe Adria 2014)
Configuration Management in Drupal 8: A preview (DrupalCamp Alpe Adria 2014)Nuvole
 
Configuration Management in Drupal 8: A preview (DrupalDays Milano 2014)
Configuration Management in Drupal 8: A preview (DrupalDays Milano 2014)Configuration Management in Drupal 8: A preview (DrupalDays Milano 2014)
Configuration Management in Drupal 8: A preview (DrupalDays Milano 2014)Nuvole
 
Automating Drupal Development: Makefiles, features and beyond
Automating Drupal Development: Makefiles, features and beyondAutomating Drupal Development: Makefiles, features and beyond
Automating Drupal Development: Makefiles, features and beyondNuvole
 
Building and Maintaining a Distribution in Drupal 7 with Features
Building and Maintaining a  Distribution in Drupal 7 with FeaturesBuilding and Maintaining a  Distribution in Drupal 7 with Features
Building and Maintaining a Distribution in Drupal 7 with FeaturesNuvole
 
Remote Collaboration and Institutional Intranets with Drupal and Open Atrium
Remote Collaboration and Institutional Intranets with Drupal and Open AtriumRemote Collaboration and Institutional Intranets with Drupal and Open Atrium
Remote Collaboration and Institutional Intranets with Drupal and Open AtriumNuvole
 
Public Works Monitoring
Public Works MonitoringPublic Works Monitoring
Public Works MonitoringNuvole
 
Extending and Customizing Open Atrium
Extending and Customizing Open AtriumExtending and Customizing Open Atrium
Extending and Customizing Open AtriumNuvole
 
Code driven development: using Features effectively in Drupal 6 and 7
Code driven development: using Features effectively in Drupal 6 and 7Code driven development: using Features effectively in Drupal 6 and 7
Code driven development: using Features effectively in Drupal 6 and 7Nuvole
 
Features based development workflow
Features based development workflowFeatures based development workflow
Features based development workflowNuvole
 
First Steps in Drupal Code Driven Development
First Steps in Drupal Code Driven DevelopmentFirst Steps in Drupal Code Driven Development
First Steps in Drupal Code Driven DevelopmentNuvole
 

Mehr von Nuvole (13)

Advanced Configuration Management with Config Split et al.
Advanced Configuration Management with Config Split et al.Advanced Configuration Management with Config Split et al.
Advanced Configuration Management with Config Split et al.
 
Introducing the UI Patterns module: use atomic UI components everywhere in Dr...
Introducing the UI Patterns module: use atomic UI components everywhere in Dr...Introducing the UI Patterns module: use atomic UI components everywhere in Dr...
Introducing the UI Patterns module: use atomic UI components everywhere in Dr...
 
Drupal 8 Configuration Management with Features
Drupal 8 Configuration Management with FeaturesDrupal 8 Configuration Management with Features
Drupal 8 Configuration Management with Features
 
Configuration Management in Drupal 8: A preview (DrupalCamp Alpe Adria 2014)
Configuration Management in Drupal 8: A preview (DrupalCamp Alpe Adria 2014)Configuration Management in Drupal 8: A preview (DrupalCamp Alpe Adria 2014)
Configuration Management in Drupal 8: A preview (DrupalCamp Alpe Adria 2014)
 
Configuration Management in Drupal 8: A preview (DrupalDays Milano 2014)
Configuration Management in Drupal 8: A preview (DrupalDays Milano 2014)Configuration Management in Drupal 8: A preview (DrupalDays Milano 2014)
Configuration Management in Drupal 8: A preview (DrupalDays Milano 2014)
 
Automating Drupal Development: Makefiles, features and beyond
Automating Drupal Development: Makefiles, features and beyondAutomating Drupal Development: Makefiles, features and beyond
Automating Drupal Development: Makefiles, features and beyond
 
Building and Maintaining a Distribution in Drupal 7 with Features
Building and Maintaining a  Distribution in Drupal 7 with FeaturesBuilding and Maintaining a  Distribution in Drupal 7 with Features
Building and Maintaining a Distribution in Drupal 7 with Features
 
Remote Collaboration and Institutional Intranets with Drupal and Open Atrium
Remote Collaboration and Institutional Intranets with Drupal and Open AtriumRemote Collaboration and Institutional Intranets with Drupal and Open Atrium
Remote Collaboration and Institutional Intranets with Drupal and Open Atrium
 
Public Works Monitoring
Public Works MonitoringPublic Works Monitoring
Public Works Monitoring
 
Extending and Customizing Open Atrium
Extending and Customizing Open AtriumExtending and Customizing Open Atrium
Extending and Customizing Open Atrium
 
Code driven development: using Features effectively in Drupal 6 and 7
Code driven development: using Features effectively in Drupal 6 and 7Code driven development: using Features effectively in Drupal 6 and 7
Code driven development: using Features effectively in Drupal 6 and 7
 
Features based development workflow
Features based development workflowFeatures based development workflow
Features based development workflow
 
First Steps in Drupal Code Driven Development
First Steps in Drupal Code Driven DevelopmentFirst Steps in Drupal Code Driven Development
First Steps in Drupal Code Driven Development
 

Kürzlich hochgeladen

Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbuapidays
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 

Kürzlich hochgeladen (20)

Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 

The OpenEuropa Initiative

  • 1. The OpenEuropa Initiative An open source approach to software as a service at the European Commission Antonio De Marco nuvole.org - info@nuvole.org - @nuvoleweb
  • 2. About me Hello, I’m Antonio. ● Director and co-founder of Nuvole ● From 2015 consulting part-time for Nuvole at the European Commission ● From 2018 co-founder and team leader of the OpenEuropa Initiative at the Directorate-General for Informatics (DIGIT) Disclaimer: the use case we are presenting today is built and maintained by a large team of consultants, working for different companies. 2
  • 3. About Nuvole ● From 2010, a proud Drupal company ● Complex Drupal projects Interfacing with other systems or featuring complex front-end requirements ● Working with NGOs and public institutions An international team rooted in NGOs and comfortable working with large NGOs and public institutions (World Food Programme, European Commission, OECD, World Bank) https://nuvole.org 3
  • 4. Nuvole in the Drupal Community ● Long time Drupal contributors Our open-source Drupal modules were downloaded more than 1 million times ● Drupal core contribution Co-leading the official Drupal 8 Configuration Management Initiative ● Drupal events Invited as presenters at several annual EU/US Drupal conferences (DrupalCon) ● Drupal trainers 10+ times official DrupalCon trainers + large organizations (HP, European Commission, etc.) 4
  • 5. The European Union web presence 5
  • 6. The European Union web presence ● 2 main institutional sites: ○ The European Commission: https://ec.europa.eu ○ The European Union: https://europa.eu ● 40 European agencies, such as: ○ EFSA, the European Food Safety Authority ○ Frontex, the European Border and Coast Guard Agency ● 27 Commission's Representations sites, such as ○ Italy: https://italy.representation.ec.europa.eu ○ Belgium: https://belgium.representation.ec.europa.eu ● Hundreds more: the Europass site, the COVID-19 response site, etc. 6
  • 7. 7
  • 8. 8
  • 9. 9
  • 10. 10
  • 11. Managing institutional content is hard ● Multilingualism, supporting the 24 official languages in the EU ● Integration with the EU internal translation services ● Advanced content moderation workflow ● Scheduling content publication for sensitive news ● Harmonization of content categorization via shared taxonomies ● Centralized authentication and authorization system ● Integration with ECAS, the European Single Sign-On Service. ● Integration with the European Union Webtools widgets ● etc... 11
  • 12. Drupal at the European Commission 12
  • 13. Drupal at the European Commission ● 2012: a pilot project, the Multisite Platform, based on Drupal 7: ○ A common web management infrastructure ○ Rationalise the web presence of the EC ○ A coherent corporate image ○ Cost sharing amongst the different Directorate Generals ● 2014: the Europa platform, based on Drupal 7: ○ A Drupal 7 distribution built on the Multisite Platform experience ○ Aimed at migrating away from the then outdated web publishing platform ● 2015-2017: Migration of hundreds of websites to the Europa platform ○ Including the two main institutional sites 13
  • 14. The Europa platform: a monolithic approach ● A SaaS built as a Drupal 7 distribution ● Organised in Drupal features, using the Features module ● Possibility for site owners to enable and disable features from the UI ● A first, genuine, attempt to business requirement orchestrations ● Allowed for extra customizations, on the final client’s expense 14
  • 15. The Europa platform: a monolithic approach Drupal 7 Core Installation Profile Feature A Feature B Feature C Feature D Site custom code 15
  • 16. The reality of a monolithic approach ● Large code base, difficult to maintain ● Long tests runs, not 100% covered ● New features might break existing sites ● Hard to involve people to contribute ● High deployment time ● Used more as a framework than a service 16
  • 17. Other drawbacks ● A single codebase with tens of developers contributing to it ● Clients were hiring their own teams to manage the site ● 100 sites / 100 ways of implementing the same thing ○ Clients could extend it by hiring their own development team in house ○ Custom functionalities would require significant overrides ○ Development would then happen on a separate repository ● 100 ways of implementing the same thing / 1000 developers ○ Hard to maintain technical governance ○ Hard to monitor security ○ High cost of maintainability and quality assurance processes 17
  • 19. Drupal 8: an opportunity In 2018 the migration of the Europa platform to Drupal 8 presented an opportunity for a paradigm shift by leveraging: ● The maturity of a proper package management system ● The adoption of semantic versioning ● The raise of containerised applications 19
  • 20. The OpenEuropa Initiative OpenEuropa is a European Commission initiative aimed at strengthening the adoption of open source tools and practices, particularly focused to: ● Build and maintain loosely-coupled, reusable software components, ● Build fully-fledged solutions for the European Institutions ● Establish reusable technical governance guidelines ● Contribute back to upstream open source projects, such as Drupal https://github.com/openeuropa/documentation 20
  • 21. 21
  • 22. A “component-based” approach (1/2) Each component (e.g. a Drupal module, or a PHP library): ● Has its own repository ● Enjoys an independent release cycle ● Is tested separately ● Has a dedicated continuous integration pipeline ● Is semantically versioned (x.y.z) ● Describes its own dependencies 22
  • 23. A “component-based” approach (2/2) Each component has everything that a developer needs to kickstart development, bundled right in its repository. For example, in case of a Drupal module: ● Running composer install builds a fully functional site, right within the component root directory, allowing to kickstart development ● Running docker-compose up -d spins off a fully functional environment, with all needed services (web server, database, etc.) ● Behat and functional PHPUnit tests are run against the target site ● Context-switching for developers is reduced to the minimum 23
  • 24. Project setup Fully functional development site Continuous Integration and deployment 24
  • 25. Advantages A component-based approach: ● Leverages modern dependency package manager, like Composer ● Leverages Drupal's modularity as a point of strength ● Makes it easier to write and maintain tests ● Allows for a shorter “time-to-market” per component ● Facilitates intra-team contributions ● Facilitates external contributions ● Facilitates the adoption of open source tools and practices 25
  • 26. Breaking up the monolith Core Profile A B Site specific Site A Core Profile C Site specific Site B A 1.1.0 A 1.1.1 A 2.0.0 C 0.0.1 C 0.0.2 C 0.1.0 B 0.1.0 B 0.2.0 B 0.2.1 B 1.0.0 B 1.0.1 C 1.0.0 Time 26
  • 27. 27
  • 28. 28
  • 29. 29
  • 30. 30
  • 31. 31
  • 32. Building and maintaining OpenEuropa 32
  • 33. An example: the EU’s visual identity The Europa Component Library (ECL) is a comprehensive style guide containing the design elements and visual standards to harmonize the European Union web presence. https://ec.europa.eu/component-library 33
  • 35. Aim: provide an ECL Drupal theme The OpenEuropa Theme component must: ● Allow Drupal sites to feature an ECL look and feel ● Allow a site owner to choose between the EC and the EU branding ● Reuse the components in their native Twig implementation 35
  • 36. Theme architecture Three main components working together: ● ECL Twig Loader: loads ECL components using a custom Twig namespace ● OpenEuropa Theme: themes Drupal frontend using ECL components and exposes them as UI Patterns ● Composer Artifacts: allows projects to use a fully built theme artifact which contains ECL templates and compiled frontend assets Other than “the usuals”: the Task Runner and the Code Review component 36
  • 37. Europa Component Library ECL Twig Loader Provides reusable components for an harmonized look and feel Imports ECL templates in any PHP application using Twig {% include '@ecl/...' with { 'variant' : 'default' , 'title': title, 'detail' : detail, } %} {% include '@ecl/...' with { 'Primary_image' : image, 'title': title, 'detail' : detail, } %} {% include '@ecl/...' with { 'secondary_image' : image, 'title': title, 'detail' : detail, } %} OpenEuropa Theme Drupal theme providing ECL components integration UI Patterns Field formatters View displays Entity view modes 37
  • 38. Using the theme’s artifact ECL ECL Loader Theme Site builders Site developers Core components 38
  • 39. Building a SaaS on top of OpenEuropa 39
  • 40. A new SaaS for the EU web presence OpenEuropa allows for a streamlined way of building and maintaining SaaS platforms. Since 2018 we have been building a SaaS that is powering the next generation of the European Union web presence. The SaaS platform is: ● A private Drupal distribution ● Built using OpenEuropa components ● Tweaked by custom modules and themes, shipped within the distribution 40
  • 41. Stitching it all together Public components Private distribution Theme Corporate Content Multilingual support Editorial Workflow OpenEuropa Modules Translation client Composer artifacts OpenEuropa Libraries Search API Paragraphs Contributed modules Drupal profile Custom module 1 Custom module 2 Custom theme 41
  • 42. An economy of scale A few non-functional requirements were clear since the beginning: ● The new SaaS platform is built to serve hundreds of sites ● Updates need to be rolled out all at the same time ● Each site needs to be built and managed by the site owners, without employing any dedicated developer ● Eventually, a site owner can decide to “break free” from the flock, and start its own development, while still keeping the possibility of upgrading to newest SaaS versions 42
  • 43. How we did it ● We have one repository called the master site: ○ A Composer-based Drupal site repository ○ It requires the SaaS Drupal profile ● Each other site instance gets its very own repository ● Each site instance repository is a git-fork of the master site ● A new release of the master site triggers a waterfall release pipeline, which releases all the other site instances 43
  • 44. Release one, deploy hundreds 44 Master site Release manager tags a release Site A Site B Site C Site D Site A Site B Site C PROD PROD Deployment pipeline Test pipeline
  • 45. Where we stand now 45
  • 46. OpenEuropa in numbers ● More than 70 components, including Drupal modules, PHP libraries, Docker images, development tools, templates, etc. ● More than 100 developers, divided in 20 teams, contribute daily to the initiative ● Around 100 sites on the SaaS platform, out of which 50+ are currently live, in production ● Tens of custom (non-SaaS) sites have been built using the OpenEuropa components 46
  • 47. Thank You nuvole.org - info@nuvole.org