SlideShare uma empresa Scribd logo
1 de 32
Baixar para ler offline
;
Building and Deploying MediasalsaBuilding and Deploying Mediasalsa
A Drupal Digital Asset Management system as a ServiceA Drupal Digital Asset Management system as a Service
Julien PivottoJulien Pivotto
DrupalCon PragueDrupalCon Prague
September 26, 2013September 26, 2013
;
MediaMosa
• Drupal-based Digital Asset Management systemDrupal-based Digital Asset Management system
• Open-sourceOpen-source
• Store assetsStore assets
• Trancode videosTrancode videos
• Create, extract and manage metadata using open standards:Create, extract and manage metadata using open standards:
Dublin Core, Qualified DC, IEEE/LOM, CZPDublin Core, Qualified DC, IEEE/LOM, CZP
• Webservice orientedWebservice oriented
Julien Pivotto Building and Deploying Mediasalsa
;
MediaSalsa
==
MediaMosa as a ServiceMediaMosa as a Service
Julien Pivotto Building and Deploying Mediasalsa
;
MediaSalsa infrastructure (simplified)
• Backend: Core service (MediaMosa)Backend: Core service (MediaMosa)
• Frontends: OptionalFrontends: Optional
• Web serversWeb servers
• Database serverDatabase server
• Solr serverSolr server
• Transcoding serversTranscoding servers



for each environmentfor each environment
Julien Pivotto Building and Deploying Mediasalsa
;
Culture
Automation
Measurement
Sharing
Julien Pivotto Building and Deploying Mediasalsa
;
Inuits
• Inuits is an Open-Source companyInuits is an Open-Source company
⇒ We contribute backWe contribute back
• ± 40 people in 3 countries± 40 people in 3 countries
• One language: EnglishOne language: English
Julien Pivotto Building and Deploying Mediasalsa
;
Inuits
What do we do?
• Consulting and Internal projectsConsulting and Internal projects
• Development and System administrationDevelopment and System administration
Julien Pivotto Building and Deploying Mediasalsa
;
Inuits
Ideal world vs budget and realityIdeal world vs budget and reality
⇒ pragmatic approach⇒ pragmatic approach
Julien Pivotto Building and Deploying Mediasalsa
;
Distributed team
Communication = hell
How to fix it?
• Daily virtual stand-up over XMPP/HangoutDaily virtual stand-up over XMPP/Hangout
• Redmine project managmentRedmine project managment
• TasksTasks
• RepositoriesRepositories
• Documentation (wiki)Documentation (wiki)
• Internal mailing listsInternal mailing lists
• Jenkins notifications by mail and XMPPJenkins notifications by mail and XMPP
• Internal trainingInternal training
Julien Pivotto Building and Deploying Mediasalsa
;
Dev and Ops
DevDev
• Develop new featuresDevelop new features
• Write testsWrite tests
OpsOps
• Infrastructure (puppet)Infrastructure (puppet)
• CD and CI (jenkins)CD and CI (jenkins)
Ops teach dev to think about monitoring and distributed serviceOps teach dev to think about monitoring and distributed service
Dev teach to ops about required libraries and testsDev teach to ops about required libraries and tests
Julien Pivotto Building and Deploying Mediasalsa
;
Culture
Automation
Measurement
Sharing
Julien Pivotto Building and Deploying Mediasalsa
;
Puppet
Puppet automates all the things
⇒ mcollective orchestrates all the things
Julien Pivotto Building and Deploying Mediasalsa
;
CD
Continuous Delivery vs Continuous DeploymentContinuous Delivery vs Continuous Deployment
• Puppet codePuppet code
• Deployed to dev environmentDeployed to dev environment
• Same puppet code for each environmentSame puppet code for each environment
• User-triggered deployments to UAT and prodUser-triggered deployments to UAT and prod
• Feature flags in Puppet code per environmentFeature flags in Puppet code per environment
• Application codeApplication code
• Continuous integration in devContinuous integration in dev
• User-triggered deployments to UATUser-triggered deployments to UAT
• Deployment to prod is a business decisionDeployment to prod is a business decision
Julien Pivotto Building and Deploying Mediasalsa
;
Tests
Developers test a lot
. . . The tests don’t workThe tests don’t work
. . . It works on my machineIt works on my machine
. . . Wrong platformWrong platform
. . . Wrong PHP versionWrong PHP version
⇒ Fixed now, thanks to Jenkins!Fixed now, thanks to Jenkins!
Julien Pivotto Building and Deploying Mediasalsa
;
SCM
Code is under revision control (git)Code is under revision control (git)
• Prefer small commitsPrefer small commits
• Local features branchesLocal features branches
• PackagesPackages
Julien Pivotto Building and Deploying Mediasalsa
;
Using OS packaging system
• Consistency, security, dependenciesConsistency, security, dependencies
• Uniquely identify where files are coming fromUniquely identify where files are coming from
• Source repo may not be reacheableSource repo may not be reacheable
• Little overhead when you automateLittle overhead when you automate
• Configuration does not belong to a packageConfiguration does not belong to a package
Julien Pivotto Building and Deploying Mediasalsa
;
Pipelines
• A collection of jobsA collection of jobs
• Run one after anotherRun one after another
• Start on checkout, end on deploymentStart on checkout, end on deployment
• From the developers’ side:From the developers’ side:
⇒ Git pushGit push
⇐ Mail with changes + link to deployMail with changes + link to deploy
Julien Pivotto Building and Deploying Mediasalsa
;
Our pipelines
• PuppetizedPuppetized
• Puppet code and Application code (backend and frontends)Puppet code and Application code (backend and frontends)
• 1 pipeline/project/customer1 pipeline/project/customer
Defining a pipeline
salsajobs::pipeline::frontend {
’qwerty-inc’:
git_repository => ’ssh://git@redmine/qwerty.git’,
dashboard_view => ’mds-frontends’,
target_urls => {
’uat’ => ’http://qwerty.uat.mediasalsa.eu’,
’prod’ => ’http://qwerty.mediasalsa.eu’,
},
require => Salsajobs::Views::Dashboard[’mds-frontends’],
}
Julien Pivotto Building and Deploying Mediasalsa
;
Pipelines steps
• CheckoutCheckout
• Syntax: php -lSyntax: php -l
• Style: Drupal CoderStyle: Drupal Coder
• Package: FPMPackage: FPM
• Deploy to dev environment: McoDeploy to dev environment: Mco
• Tests in dev environment: drush run-testsTests in dev environment: drush run-tests
• Publish package and promote: McoPublish package and promote: Mco
Julien Pivotto Building and Deploying Mediasalsa
;
Promotion
• At the end of the pipelineAt the end of the pipeline
• Send a simple emailSend a simple email
• A link to the promotion pageA link to the promotion page
• The changelogThe changelog
• Promotion page contains one button per environmentPromotion page contains one button per environment
• Must promote to UAT before ProductionMust promote to UAT before Production
Julien Pivotto Building and Deploying Mediasalsa
;
Tools used with jenkins
• Pulp to manage RPM repositoriesPulp to manage RPM repositories
• Mcollective to update packages, run drushMcollective to update packages, run drush
Julien Pivotto Building and Deploying Mediasalsa
;
Culture
Automation
Measurement
Sharing
Julien Pivotto Building and Deploying Mediasalsa
;
Logstash
Collect all the logs
• Drupal logsDrupal logs
• Apache logsApache logs
• Deployment logsDeployment logs
• System logsSystem logs
⇒ Logstash, ES, kibana, statsd, graphiteLogstash, ES, kibana, statsd, graphite
Julien Pivotto Building and Deploying Mediasalsa
;
Icinga
Monitor everything
• "Basics""Basics"
+ vhostsvhosts
+ databasesdatabases
+ cronjobscronjobs
Julien Pivotto Building and Deploying Mediasalsa
;
Graphite + gdash
• CollectdCollectd
• Monitor platform usageMonitor platform usage
• FFmpeg usageFFmpeg usage
• Number of accounts (backend ID’s)Number of accounts (backend ID’s)
Julien Pivotto Building and Deploying Mediasalsa
;
FFmpeg
Julien Pivotto Building and Deploying Mediasalsa
;
Managed assets
Julien Pivotto Building and Deploying Mediasalsa
;
Number of backend ID’s
Julien Pivotto Building and Deploying Mediasalsa
;
Culture
Automation
Measurement
Sharing
Julien Pivotto Building and Deploying Mediasalsa
;
Sharing
We have just shared our experience. . .We have just shared our experience. . .
Any question?Any question?
Julien Pivotto Building and Deploying Mediasalsa
;
Contact
Julien PivottoJulien Pivotto
julien@inuits.eujulien@inuits.eu
@roidelapluie@roidelapluie
INUITS bvbaINUITS bvba
Duboisstraat 50Duboisstraat 50
2060 Antwerp2060 Antwerp
BelgiumBelgium
+32 473 441 636+32 473 441 636
https://inuits.euhttps://inuits.eu
Julien Pivotto Building and Deploying Mediasalsa
THANK YOU!
WHAT DID YOU THINK?
Locate this session at the
DrupalCon Prague website:
http://prague2013.drupal.org/schedule
Click the “Take the survey” link

Mais conteúdo relacionado

Mais procurados

Puppet Release Workflows at Jive Software
Puppet Release Workflows at Jive SoftwarePuppet Release Workflows at Jive Software
Puppet Release Workflows at Jive SoftwarePuppet
 
ContainerCon - Test Driven Infrastructure
ContainerCon - Test Driven InfrastructureContainerCon - Test Driven Infrastructure
ContainerCon - Test Driven InfrastructureYury Tsarev
 
Puppet and Software Delivery
Puppet and Software DeliveryPuppet and Software Delivery
Puppet and Software DeliveryJulien Pivotto
 
7 tools for your devops stack
7 tools for your devops stack7 tools for your devops stack
7 tools for your devops stackKris Buytaert
 
Deploying software at Scale
Deploying software at ScaleDeploying software at Scale
Deploying software at ScaleKris Buytaert
 
11 Tools for your Open Source devops stack
11 Tools for your Open Source devops stack 11 Tools for your Open Source devops stack
11 Tools for your Open Source devops stack Kris Buytaert
 
SaltConf14 - Justin Carmony, Deseret Digital Media - Teaching Devs About DevOps
SaltConf14 - Justin Carmony, Deseret Digital Media - Teaching Devs About DevOpsSaltConf14 - Justin Carmony, Deseret Digital Media - Teaching Devs About DevOps
SaltConf14 - Justin Carmony, Deseret Digital Media - Teaching Devs About DevOpsSaltStack
 
Continuous Development with Jenkins - Stephen Connolly at PuppetCamp Dublin '12
Continuous Development with Jenkins - Stephen Connolly at PuppetCamp Dublin '12Continuous Development with Jenkins - Stephen Connolly at PuppetCamp Dublin '12
Continuous Development with Jenkins - Stephen Connolly at PuppetCamp Dublin '12Puppet
 
How I hack on puppet modules
How I hack on puppet modulesHow I hack on puppet modules
How I hack on puppet modulesKris Buytaert
 
Immutable infrastructure:觀念與實作 (建議)
Immutable infrastructure:觀念與實作 (建議)Immutable infrastructure:觀念與實作 (建議)
Immutable infrastructure:觀念與實作 (建議)William Yeh
 
SaltConf14 - Craig Sebenik, LinkedIn - SaltStack at Web Scale
SaltConf14 - Craig Sebenik, LinkedIn - SaltStack at Web ScaleSaltConf14 - Craig Sebenik, LinkedIn - SaltStack at Web Scale
SaltConf14 - Craig Sebenik, LinkedIn - SaltStack at Web ScaleSaltStack
 
Jenkins Shared Libraries Workshop
Jenkins Shared Libraries WorkshopJenkins Shared Libraries Workshop
Jenkins Shared Libraries WorkshopJulien Pivotto
 
OSDC 2016 - Continous Integration in Data Centers - Further 3 Years later by ...
OSDC 2016 - Continous Integration in Data Centers - Further 3 Years later by ...OSDC 2016 - Continous Integration in Data Centers - Further 3 Years later by ...
OSDC 2016 - Continous Integration in Data Centers - Further 3 Years later by ...NETWAYS
 
Automating MySQL operations with Puppet
Automating MySQL operations with PuppetAutomating MySQL operations with Puppet
Automating MySQL operations with PuppetKris Buytaert
 
Continous Delivery of your Infrastructure
Continous Delivery of your InfrastructureContinous Delivery of your Infrastructure
Continous Delivery of your InfrastructureKris Buytaert
 
Repositories as Code
Repositories as CodeRepositories as Code
Repositories as CodeKris Buytaert
 
Cooking the Cake for Nuget packages
Cooking the Cake for Nuget packagesCooking the Cake for Nuget packages
Cooking the Cake for Nuget packagesSergey Dzyuban
 
PuppetConf 2016: A Tale of Two Hierarchies: Group Policy & Puppet – Matt Ston...
PuppetConf 2016: A Tale of Two Hierarchies: Group Policy & Puppet – Matt Ston...PuppetConf 2016: A Tale of Two Hierarchies: Group Policy & Puppet – Matt Ston...
PuppetConf 2016: A Tale of Two Hierarchies: Group Policy & Puppet – Matt Ston...Puppet
 

Mais procurados (20)

Puppet Release Workflows at Jive Software
Puppet Release Workflows at Jive SoftwarePuppet Release Workflows at Jive Software
Puppet Release Workflows at Jive Software
 
ContainerCon - Test Driven Infrastructure
ContainerCon - Test Driven InfrastructureContainerCon - Test Driven Infrastructure
ContainerCon - Test Driven Infrastructure
 
Puppet and Software Delivery
Puppet and Software DeliveryPuppet and Software Delivery
Puppet and Software Delivery
 
7 tools for your devops stack
7 tools for your devops stack7 tools for your devops stack
7 tools for your devops stack
 
Deploying software at Scale
Deploying software at ScaleDeploying software at Scale
Deploying software at Scale
 
11 Tools for your Open Source devops stack
11 Tools for your Open Source devops stack 11 Tools for your Open Source devops stack
11 Tools for your Open Source devops stack
 
SaltConf14 - Justin Carmony, Deseret Digital Media - Teaching Devs About DevOps
SaltConf14 - Justin Carmony, Deseret Digital Media - Teaching Devs About DevOpsSaltConf14 - Justin Carmony, Deseret Digital Media - Teaching Devs About DevOps
SaltConf14 - Justin Carmony, Deseret Digital Media - Teaching Devs About DevOps
 
Continuous Development with Jenkins - Stephen Connolly at PuppetCamp Dublin '12
Continuous Development with Jenkins - Stephen Connolly at PuppetCamp Dublin '12Continuous Development with Jenkins - Stephen Connolly at PuppetCamp Dublin '12
Continuous Development with Jenkins - Stephen Connolly at PuppetCamp Dublin '12
 
How I hack on puppet modules
How I hack on puppet modulesHow I hack on puppet modules
How I hack on puppet modules
 
Immutable infrastructure:觀念與實作 (建議)
Immutable infrastructure:觀念與實作 (建議)Immutable infrastructure:觀念與實作 (建議)
Immutable infrastructure:觀念與實作 (建議)
 
SaltConf14 - Craig Sebenik, LinkedIn - SaltStack at Web Scale
SaltConf14 - Craig Sebenik, LinkedIn - SaltStack at Web ScaleSaltConf14 - Craig Sebenik, LinkedIn - SaltStack at Web Scale
SaltConf14 - Craig Sebenik, LinkedIn - SaltStack at Web Scale
 
Jenkins Shared Libraries Workshop
Jenkins Shared Libraries WorkshopJenkins Shared Libraries Workshop
Jenkins Shared Libraries Workshop
 
OSDC 2016 - Continous Integration in Data Centers - Further 3 Years later by ...
OSDC 2016 - Continous Integration in Data Centers - Further 3 Years later by ...OSDC 2016 - Continous Integration in Data Centers - Further 3 Years later by ...
OSDC 2016 - Continous Integration in Data Centers - Further 3 Years later by ...
 
Automating MySQL operations with Puppet
Automating MySQL operations with PuppetAutomating MySQL operations with Puppet
Automating MySQL operations with Puppet
 
Continous Delivery of your Infrastructure
Continous Delivery of your InfrastructureContinous Delivery of your Infrastructure
Continous Delivery of your Infrastructure
 
Repositories as Code
Repositories as CodeRepositories as Code
Repositories as Code
 
Puppet & Jenkins
Puppet & JenkinsPuppet & Jenkins
Puppet & Jenkins
 
Cooking the Cake for Nuget packages
Cooking the Cake for Nuget packagesCooking the Cake for Nuget packages
Cooking the Cake for Nuget packages
 
Hacking on WildFly 9
Hacking on WildFly 9Hacking on WildFly 9
Hacking on WildFly 9
 
PuppetConf 2016: A Tale of Two Hierarchies: Group Policy & Puppet – Matt Ston...
PuppetConf 2016: A Tale of Two Hierarchies: Group Policy & Puppet – Matt Ston...PuppetConf 2016: A Tale of Two Hierarchies: Group Policy & Puppet – Matt Ston...
PuppetConf 2016: A Tale of Two Hierarchies: Group Policy & Puppet – Matt Ston...
 

Destaque

Diving Into Puppet Providers Development: The Puppet-Corosync Module
Diving Into Puppet Providers Development: The Puppet-Corosync ModuleDiving Into Puppet Providers Development: The Puppet-Corosync Module
Diving Into Puppet Providers Development: The Puppet-Corosync ModuleJulien Pivotto
 
A call to give back puppetlabs-corosync to the community
A call to give back puppetlabs-corosync to the communityA call to give back puppetlabs-corosync to the community
A call to give back puppetlabs-corosync to the communityJulien Pivotto
 
Puppet and software delivery
Puppet and software deliveryPuppet and software delivery
Puppet and software deliveryJulien Pivotto
 
Augeas, swiss knife resources for your puppet tree
Augeas, swiss knife resources for your puppet treeAugeas, swiss knife resources for your puppet tree
Augeas, swiss knife resources for your puppet treeJulien Pivotto
 
Voxpupuli: a home for your puppet modules
Voxpupuli: a home for your puppet modulesVoxpupuli: a home for your puppet modules
Voxpupuli: a home for your puppet modulesJulien Pivotto
 
Augeas, swiss knife resources for your puppet tree
Augeas, swiss knife resources for your puppet treeAugeas, swiss knife resources for your puppet tree
Augeas, swiss knife resources for your puppet treeJulien Pivotto
 
An introduction to the Pulp project
An introduction to the Pulp projectAn introduction to the Pulp project
An introduction to the Pulp projectJulien Pivotto
 
Getting the maximum out of systemd
Getting the maximum out of systemdGetting the maximum out of systemd
Getting the maximum out of systemdJulien Pivotto
 
Monitoring at Cloud Scale
Monitoring at Cloud ScaleMonitoring at Cloud Scale
Monitoring at Cloud ScaleJulien Pivotto
 
CentOS Config Management SIG
CentOS Config Management SIGCentOS Config Management SIG
CentOS Config Management SIGJulien Pivotto
 
Managing a R&D Lab with Foreman
Managing a R&D Lab with ForemanManaging a R&D Lab with Foreman
Managing a R&D Lab with ForemanJulien Pivotto
 
Demystifying the Foreman
Demystifying the ForemanDemystifying the Foreman
Demystifying the ForemanJulien Pivotto
 

Destaque (20)

Diving Into Puppet Providers Development: The Puppet-Corosync Module
Diving Into Puppet Providers Development: The Puppet-Corosync ModuleDiving Into Puppet Providers Development: The Puppet-Corosync Module
Diving Into Puppet Providers Development: The Puppet-Corosync Module
 
A call to give back puppetlabs-corosync to the community
A call to give back puppetlabs-corosync to the communityA call to give back puppetlabs-corosync to the community
A call to give back puppetlabs-corosync to the community
 
Logstash and friends
Logstash and friendsLogstash and friends
Logstash and friends
 
Puppet and software delivery
Puppet and software deliveryPuppet and software delivery
Puppet and software delivery
 
Vox pupuli
Vox pupuliVox pupuli
Vox pupuli
 
DNSSec
DNSSecDNSSec
DNSSec
 
Augeas, swiss knife resources for your puppet tree
Augeas, swiss knife resources for your puppet treeAugeas, swiss knife resources for your puppet tree
Augeas, swiss knife resources for your puppet tree
 
Coworking with git
Coworking with gitCoworking with git
Coworking with git
 
Voxpupuli: a home for your puppet modules
Voxpupuli: a home for your puppet modulesVoxpupuli: a home for your puppet modules
Voxpupuli: a home for your puppet modules
 
Augeas, swiss knife resources for your puppet tree
Augeas, swiss knife resources for your puppet treeAugeas, swiss knife resources for your puppet tree
Augeas, swiss knife resources for your puppet tree
 
An introduction to the Pulp project
An introduction to the Pulp projectAn introduction to the Pulp project
An introduction to the Pulp project
 
DevOps, beyond agile
DevOps, beyond agileDevOps, beyond agile
DevOps, beyond agile
 
Vagrant and CentOS 7
Vagrant and CentOS 7Vagrant and CentOS 7
Vagrant and CentOS 7
 
Getting the maximum out of systemd
Getting the maximum out of systemdGetting the maximum out of systemd
Getting the maximum out of systemd
 
Monitoring at Cloud Scale
Monitoring at Cloud ScaleMonitoring at Cloud Scale
Monitoring at Cloud Scale
 
Dive into Puppet 4
Dive into Puppet 4Dive into Puppet 4
Dive into Puppet 4
 
CentOS Config Management SIG
CentOS Config Management SIGCentOS Config Management SIG
CentOS Config Management SIG
 
RPM experiments
RPM experimentsRPM experiments
RPM experiments
 
Managing a R&D Lab with Foreman
Managing a R&D Lab with ForemanManaging a R&D Lab with Foreman
Managing a R&D Lab with Foreman
 
Demystifying the Foreman
Demystifying the ForemanDemystifying the Foreman
Demystifying the Foreman
 

Semelhante a Building and Deploying MediaSalsa, a drupal-based DAM as a Service

Deploying your SaaS stack OnPrem
Deploying your SaaS stack OnPremDeploying your SaaS stack OnPrem
Deploying your SaaS stack OnPremKris Buytaert
 
The devops approach to monitoring, Open Source and Infrastructure as Code Style
The devops approach to monitoring, Open Source and Infrastructure as Code StyleThe devops approach to monitoring, Open Source and Infrastructure as Code Style
The devops approach to monitoring, Open Source and Infrastructure as Code StyleJulien Pivotto
 
Pipeline as code for your infrastructure as Code
Pipeline as code for your infrastructure as CodePipeline as code for your infrastructure as Code
Pipeline as code for your infrastructure as CodeKris Buytaert
 
Building and Deploying MediaSalsa, an Open Source DAM as Saas platform
Building and Deploying MediaSalsa, an Open Source DAM as Saas platformBuilding and Deploying MediaSalsa, an Open Source DAM as Saas platform
Building and Deploying MediaSalsa, an Open Source DAM as Saas platformKris Buytaert
 
Staging and Deployment
Staging and DeploymentStaging and Deployment
Staging and Deploymentheyrocker
 
Continuous Delivery of (y)our infrastructure.
Continuous Delivery of (y)our infrastructure.Continuous Delivery of (y)our infrastructure.
Continuous Delivery of (y)our infrastructure.Kris Buytaert
 
Towards Continuous Delivery in Mobile Apps
Towards Continuous Delivery in Mobile AppsTowards Continuous Delivery in Mobile Apps
Towards Continuous Delivery in Mobile AppsPhillip Wheatley
 
How bigtop leveraged docker for build automation and one click hadoop provis...
How bigtop leveraged docker for build automation and  one click hadoop provis...How bigtop leveraged docker for build automation and  one click hadoop provis...
How bigtop leveraged docker for build automation and one click hadoop provis...Evans Ye
 
'Intro to Infrastructure as Code' - DevOps Belfast
'Intro to Infrastructure as Code' - DevOps Belfast'Intro to Infrastructure as Code' - DevOps Belfast
'Intro to Infrastructure as Code' - DevOps BelfastJohn Fitzpatrick
 
Icinga Camp Amsterdam - Infrastructure as Code
Icinga Camp Amsterdam - Infrastructure as CodeIcinga Camp Amsterdam - Infrastructure as Code
Icinga Camp Amsterdam - Infrastructure as CodeIcinga
 
On the Importance of Infrastructure as Code
On the Importance of Infrastructure as CodeOn the Importance of Infrastructure as Code
On the Importance of Infrastructure as CodeKris Buytaert
 
Automatize everything
Automatize everythingAutomatize everything
Automatize everythingBoris Bucha
 
OSDC 2016 - Another 7 Tools for your #devops Stack by Kris Buytaert
OSDC 2016 - Another 7 Tools for your #devops Stack by Kris BuytaertOSDC 2016 - Another 7 Tools for your #devops Stack by Kris Buytaert
OSDC 2016 - Another 7 Tools for your #devops Stack by Kris BuytaertNETWAYS
 
Another 7 tools for your #devops stack
Another 7 tools for your #devops stackAnother 7 tools for your #devops stack
Another 7 tools for your #devops stackKris Buytaert
 
Fluo CICD OpenStack Summit
Fluo CICD OpenStack SummitFluo CICD OpenStack Summit
Fluo CICD OpenStack SummitMiguel Zuniga
 
How bigtop leveraged docker for build automation and one click hadoop provis...
How bigtop leveraged docker for build automation and  one click hadoop provis...How bigtop leveraged docker for build automation and  one click hadoop provis...
How bigtop leveraged docker for build automation and one click hadoop provis...Evans Ye
 
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...Lean IT Consulting
 
Devoxx PL 2018 - Microservices in action at the Dutch National Police
Devoxx PL 2018 - Microservices in action at the Dutch National PoliceDevoxx PL 2018 - Microservices in action at the Dutch National Police
Devoxx PL 2018 - Microservices in action at the Dutch National PoliceBert Jan Schrijver
 
Run stuff, Deploy Stuff, Jax London 2017 Edition
Run stuff, Deploy Stuff, Jax London 2017 EditionRun stuff, Deploy Stuff, Jax London 2017 Edition
Run stuff, Deploy Stuff, Jax London 2017 EditionKris Buytaert
 

Semelhante a Building and Deploying MediaSalsa, a drupal-based DAM as a Service (20)

Deploying your SaaS stack OnPrem
Deploying your SaaS stack OnPremDeploying your SaaS stack OnPrem
Deploying your SaaS stack OnPrem
 
The devops approach to monitoring, Open Source and Infrastructure as Code Style
The devops approach to monitoring, Open Source and Infrastructure as Code StyleThe devops approach to monitoring, Open Source and Infrastructure as Code Style
The devops approach to monitoring, Open Source and Infrastructure as Code Style
 
Pipeline as code for your infrastructure as Code
Pipeline as code for your infrastructure as CodePipeline as code for your infrastructure as Code
Pipeline as code for your infrastructure as Code
 
Building and Deploying MediaSalsa, an Open Source DAM as Saas platform
Building and Deploying MediaSalsa, an Open Source DAM as Saas platformBuilding and Deploying MediaSalsa, an Open Source DAM as Saas platform
Building and Deploying MediaSalsa, an Open Source DAM as Saas platform
 
Staging and Deployment
Staging and DeploymentStaging and Deployment
Staging and Deployment
 
Continuous Delivery of (y)our infrastructure.
Continuous Delivery of (y)our infrastructure.Continuous Delivery of (y)our infrastructure.
Continuous Delivery of (y)our infrastructure.
 
Towards Continuous Delivery in Mobile Apps
Towards Continuous Delivery in Mobile AppsTowards Continuous Delivery in Mobile Apps
Towards Continuous Delivery in Mobile Apps
 
How bigtop leveraged docker for build automation and one click hadoop provis...
How bigtop leveraged docker for build automation and  one click hadoop provis...How bigtop leveraged docker for build automation and  one click hadoop provis...
How bigtop leveraged docker for build automation and one click hadoop provis...
 
'Intro to Infrastructure as Code' - DevOps Belfast
'Intro to Infrastructure as Code' - DevOps Belfast'Intro to Infrastructure as Code' - DevOps Belfast
'Intro to Infrastructure as Code' - DevOps Belfast
 
Icinga Camp Amsterdam - Infrastructure as Code
Icinga Camp Amsterdam - Infrastructure as CodeIcinga Camp Amsterdam - Infrastructure as Code
Icinga Camp Amsterdam - Infrastructure as Code
 
On the Importance of Infrastructure as Code
On the Importance of Infrastructure as CodeOn the Importance of Infrastructure as Code
On the Importance of Infrastructure as Code
 
Automatize everything
Automatize everythingAutomatize everything
Automatize everything
 
OSDC 2016 - Another 7 Tools for your #devops Stack by Kris Buytaert
OSDC 2016 - Another 7 Tools for your #devops Stack by Kris BuytaertOSDC 2016 - Another 7 Tools for your #devops Stack by Kris Buytaert
OSDC 2016 - Another 7 Tools for your #devops Stack by Kris Buytaert
 
Another 7 tools for your #devops stack
Another 7 tools for your #devops stackAnother 7 tools for your #devops stack
Another 7 tools for your #devops stack
 
Fluo CICD OpenStack Summit
Fluo CICD OpenStack SummitFluo CICD OpenStack Summit
Fluo CICD OpenStack Summit
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 
How bigtop leveraged docker for build automation and one click hadoop provis...
How bigtop leveraged docker for build automation and  one click hadoop provis...How bigtop leveraged docker for build automation and  one click hadoop provis...
How bigtop leveraged docker for build automation and one click hadoop provis...
 
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
 
Devoxx PL 2018 - Microservices in action at the Dutch National Police
Devoxx PL 2018 - Microservices in action at the Dutch National PoliceDevoxx PL 2018 - Microservices in action at the Dutch National Police
Devoxx PL 2018 - Microservices in action at the Dutch National Police
 
Run stuff, Deploy Stuff, Jax London 2017 Edition
Run stuff, Deploy Stuff, Jax London 2017 EditionRun stuff, Deploy Stuff, Jax London 2017 Edition
Run stuff, Deploy Stuff, Jax London 2017 Edition
 

Mais de Julien Pivotto

What's New in Prometheus and Its Ecosystem
What's New in Prometheus and Its EcosystemWhat's New in Prometheus and Its Ecosystem
What's New in Prometheus and Its EcosystemJulien Pivotto
 
Prometheus: What is is, what is new, what is coming
Prometheus: What is is, what is new, what is comingPrometheus: What is is, what is new, what is coming
Prometheus: What is is, what is new, what is comingJulien Pivotto
 
What's new in Prometheus?
What's new in Prometheus?What's new in Prometheus?
What's new in Prometheus?Julien Pivotto
 
Introduction to Grafana Loki
Introduction to Grafana LokiIntroduction to Grafana Loki
Introduction to Grafana LokiJulien Pivotto
 
Why you should revisit mgmt
Why you should revisit mgmtWhy you should revisit mgmt
Why you should revisit mgmtJulien Pivotto
 
Observing the HashiCorp Ecosystem From Prometheus
Observing the HashiCorp Ecosystem From PrometheusObserving the HashiCorp Ecosystem From Prometheus
Observing the HashiCorp Ecosystem From PrometheusJulien Pivotto
 
Monitoring in a fast-changing world with Prometheus
Monitoring in a fast-changing world with PrometheusMonitoring in a fast-changing world with Prometheus
Monitoring in a fast-changing world with PrometheusJulien Pivotto
 
5 tips for Prometheus Service Discovery
5 tips for Prometheus Service Discovery5 tips for Prometheus Service Discovery
5 tips for Prometheus Service DiscoveryJulien Pivotto
 
Prometheus and TLS - an Introduction
Prometheus and TLS - an IntroductionPrometheus and TLS - an Introduction
Prometheus and TLS - an IntroductionJulien Pivotto
 
Powerful graphs in Grafana
Powerful graphs in GrafanaPowerful graphs in Grafana
Powerful graphs in GrafanaJulien Pivotto
 
HAProxy as Egress Controller
HAProxy as Egress ControllerHAProxy as Egress Controller
HAProxy as Egress ControllerJulien Pivotto
 
Improved alerting with Prometheus and Alertmanager
Improved alerting with Prometheus and AlertmanagerImproved alerting with Prometheus and Alertmanager
Improved alerting with Prometheus and AlertmanagerJulien Pivotto
 
SIngle Sign On with Keycloak
SIngle Sign On with KeycloakSIngle Sign On with Keycloak
SIngle Sign On with KeycloakJulien Pivotto
 
Monitoring as an entry point for collaboration
Monitoring as an entry point for collaborationMonitoring as an entry point for collaboration
Monitoring as an entry point for collaborationJulien Pivotto
 
Incident Resolution as Code
Incident Resolution as CodeIncident Resolution as Code
Incident Resolution as CodeJulien Pivotto
 
Monitor your CentOS stack with Prometheus
Monitor your CentOS stack with PrometheusMonitor your CentOS stack with Prometheus
Monitor your CentOS stack with PrometheusJulien Pivotto
 
Monitor your CentOS stack with Prometheus
Monitor your CentOS stack with PrometheusMonitor your CentOS stack with Prometheus
Monitor your CentOS stack with PrometheusJulien Pivotto
 
An introduction to Ansible
An introduction to AnsibleAn introduction to Ansible
An introduction to AnsibleJulien Pivotto
 

Mais de Julien Pivotto (20)

The O11y Toolkit
The O11y ToolkitThe O11y Toolkit
The O11y Toolkit
 
What's New in Prometheus and Its Ecosystem
What's New in Prometheus and Its EcosystemWhat's New in Prometheus and Its Ecosystem
What's New in Prometheus and Its Ecosystem
 
Prometheus: What is is, what is new, what is coming
Prometheus: What is is, what is new, what is comingPrometheus: What is is, what is new, what is coming
Prometheus: What is is, what is new, what is coming
 
What's new in Prometheus?
What's new in Prometheus?What's new in Prometheus?
What's new in Prometheus?
 
Introduction to Grafana Loki
Introduction to Grafana LokiIntroduction to Grafana Loki
Introduction to Grafana Loki
 
Why you should revisit mgmt
Why you should revisit mgmtWhy you should revisit mgmt
Why you should revisit mgmt
 
Observing the HashiCorp Ecosystem From Prometheus
Observing the HashiCorp Ecosystem From PrometheusObserving the HashiCorp Ecosystem From Prometheus
Observing the HashiCorp Ecosystem From Prometheus
 
Monitoring in a fast-changing world with Prometheus
Monitoring in a fast-changing world with PrometheusMonitoring in a fast-changing world with Prometheus
Monitoring in a fast-changing world with Prometheus
 
5 tips for Prometheus Service Discovery
5 tips for Prometheus Service Discovery5 tips for Prometheus Service Discovery
5 tips for Prometheus Service Discovery
 
Prometheus and TLS - an Introduction
Prometheus and TLS - an IntroductionPrometheus and TLS - an Introduction
Prometheus and TLS - an Introduction
 
Powerful graphs in Grafana
Powerful graphs in GrafanaPowerful graphs in Grafana
Powerful graphs in Grafana
 
YAML Magic
YAML MagicYAML Magic
YAML Magic
 
HAProxy as Egress Controller
HAProxy as Egress ControllerHAProxy as Egress Controller
HAProxy as Egress Controller
 
Improved alerting with Prometheus and Alertmanager
Improved alerting with Prometheus and AlertmanagerImproved alerting with Prometheus and Alertmanager
Improved alerting with Prometheus and Alertmanager
 
SIngle Sign On with Keycloak
SIngle Sign On with KeycloakSIngle Sign On with Keycloak
SIngle Sign On with Keycloak
 
Monitoring as an entry point for collaboration
Monitoring as an entry point for collaborationMonitoring as an entry point for collaboration
Monitoring as an entry point for collaboration
 
Incident Resolution as Code
Incident Resolution as CodeIncident Resolution as Code
Incident Resolution as Code
 
Monitor your CentOS stack with Prometheus
Monitor your CentOS stack with PrometheusMonitor your CentOS stack with Prometheus
Monitor your CentOS stack with Prometheus
 
Monitor your CentOS stack with Prometheus
Monitor your CentOS stack with PrometheusMonitor your CentOS stack with Prometheus
Monitor your CentOS stack with Prometheus
 
An introduction to Ansible
An introduction to AnsibleAn introduction to Ansible
An introduction to Ansible
 

Último

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 

Último (20)

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 

Building and Deploying MediaSalsa, a drupal-based DAM as a Service

  • 1. ; Building and Deploying MediasalsaBuilding and Deploying Mediasalsa A Drupal Digital Asset Management system as a ServiceA Drupal Digital Asset Management system as a Service Julien PivottoJulien Pivotto DrupalCon PragueDrupalCon Prague September 26, 2013September 26, 2013
  • 2. ; MediaMosa • Drupal-based Digital Asset Management systemDrupal-based Digital Asset Management system • Open-sourceOpen-source • Store assetsStore assets • Trancode videosTrancode videos • Create, extract and manage metadata using open standards:Create, extract and manage metadata using open standards: Dublin Core, Qualified DC, IEEE/LOM, CZPDublin Core, Qualified DC, IEEE/LOM, CZP • Webservice orientedWebservice oriented Julien Pivotto Building and Deploying Mediasalsa
  • 3. ; MediaSalsa == MediaMosa as a ServiceMediaMosa as a Service Julien Pivotto Building and Deploying Mediasalsa
  • 4. ; MediaSalsa infrastructure (simplified) • Backend: Core service (MediaMosa)Backend: Core service (MediaMosa) • Frontends: OptionalFrontends: Optional • Web serversWeb servers • Database serverDatabase server • Solr serverSolr server • Transcoding serversTranscoding servers    for each environmentfor each environment Julien Pivotto Building and Deploying Mediasalsa
  • 6. ; Inuits • Inuits is an Open-Source companyInuits is an Open-Source company ⇒ We contribute backWe contribute back • ± 40 people in 3 countries± 40 people in 3 countries • One language: EnglishOne language: English Julien Pivotto Building and Deploying Mediasalsa
  • 7. ; Inuits What do we do? • Consulting and Internal projectsConsulting and Internal projects • Development and System administrationDevelopment and System administration Julien Pivotto Building and Deploying Mediasalsa
  • 8. ; Inuits Ideal world vs budget and realityIdeal world vs budget and reality ⇒ pragmatic approach⇒ pragmatic approach Julien Pivotto Building and Deploying Mediasalsa
  • 9. ; Distributed team Communication = hell How to fix it? • Daily virtual stand-up over XMPP/HangoutDaily virtual stand-up over XMPP/Hangout • Redmine project managmentRedmine project managment • TasksTasks • RepositoriesRepositories • Documentation (wiki)Documentation (wiki) • Internal mailing listsInternal mailing lists • Jenkins notifications by mail and XMPPJenkins notifications by mail and XMPP • Internal trainingInternal training Julien Pivotto Building and Deploying Mediasalsa
  • 10. ; Dev and Ops DevDev • Develop new featuresDevelop new features • Write testsWrite tests OpsOps • Infrastructure (puppet)Infrastructure (puppet) • CD and CI (jenkins)CD and CI (jenkins) Ops teach dev to think about monitoring and distributed serviceOps teach dev to think about monitoring and distributed service Dev teach to ops about required libraries and testsDev teach to ops about required libraries and tests Julien Pivotto Building and Deploying Mediasalsa
  • 12. ; Puppet Puppet automates all the things ⇒ mcollective orchestrates all the things Julien Pivotto Building and Deploying Mediasalsa
  • 13. ; CD Continuous Delivery vs Continuous DeploymentContinuous Delivery vs Continuous Deployment • Puppet codePuppet code • Deployed to dev environmentDeployed to dev environment • Same puppet code for each environmentSame puppet code for each environment • User-triggered deployments to UAT and prodUser-triggered deployments to UAT and prod • Feature flags in Puppet code per environmentFeature flags in Puppet code per environment • Application codeApplication code • Continuous integration in devContinuous integration in dev • User-triggered deployments to UATUser-triggered deployments to UAT • Deployment to prod is a business decisionDeployment to prod is a business decision Julien Pivotto Building and Deploying Mediasalsa
  • 14. ; Tests Developers test a lot . . . The tests don’t workThe tests don’t work . . . It works on my machineIt works on my machine . . . Wrong platformWrong platform . . . Wrong PHP versionWrong PHP version ⇒ Fixed now, thanks to Jenkins!Fixed now, thanks to Jenkins! Julien Pivotto Building and Deploying Mediasalsa
  • 15. ; SCM Code is under revision control (git)Code is under revision control (git) • Prefer small commitsPrefer small commits • Local features branchesLocal features branches • PackagesPackages Julien Pivotto Building and Deploying Mediasalsa
  • 16. ; Using OS packaging system • Consistency, security, dependenciesConsistency, security, dependencies • Uniquely identify where files are coming fromUniquely identify where files are coming from • Source repo may not be reacheableSource repo may not be reacheable • Little overhead when you automateLittle overhead when you automate • Configuration does not belong to a packageConfiguration does not belong to a package Julien Pivotto Building and Deploying Mediasalsa
  • 17. ; Pipelines • A collection of jobsA collection of jobs • Run one after anotherRun one after another • Start on checkout, end on deploymentStart on checkout, end on deployment • From the developers’ side:From the developers’ side: ⇒ Git pushGit push ⇐ Mail with changes + link to deployMail with changes + link to deploy Julien Pivotto Building and Deploying Mediasalsa
  • 18. ; Our pipelines • PuppetizedPuppetized • Puppet code and Application code (backend and frontends)Puppet code and Application code (backend and frontends) • 1 pipeline/project/customer1 pipeline/project/customer Defining a pipeline salsajobs::pipeline::frontend { ’qwerty-inc’: git_repository => ’ssh://git@redmine/qwerty.git’, dashboard_view => ’mds-frontends’, target_urls => { ’uat’ => ’http://qwerty.uat.mediasalsa.eu’, ’prod’ => ’http://qwerty.mediasalsa.eu’, }, require => Salsajobs::Views::Dashboard[’mds-frontends’], } Julien Pivotto Building and Deploying Mediasalsa
  • 19. ; Pipelines steps • CheckoutCheckout • Syntax: php -lSyntax: php -l • Style: Drupal CoderStyle: Drupal Coder • Package: FPMPackage: FPM • Deploy to dev environment: McoDeploy to dev environment: Mco • Tests in dev environment: drush run-testsTests in dev environment: drush run-tests • Publish package and promote: McoPublish package and promote: Mco Julien Pivotto Building and Deploying Mediasalsa
  • 20. ; Promotion • At the end of the pipelineAt the end of the pipeline • Send a simple emailSend a simple email • A link to the promotion pageA link to the promotion page • The changelogThe changelog • Promotion page contains one button per environmentPromotion page contains one button per environment • Must promote to UAT before ProductionMust promote to UAT before Production Julien Pivotto Building and Deploying Mediasalsa
  • 21. ; Tools used with jenkins • Pulp to manage RPM repositoriesPulp to manage RPM repositories • Mcollective to update packages, run drushMcollective to update packages, run drush Julien Pivotto Building and Deploying Mediasalsa
  • 23. ; Logstash Collect all the logs • Drupal logsDrupal logs • Apache logsApache logs • Deployment logsDeployment logs • System logsSystem logs ⇒ Logstash, ES, kibana, statsd, graphiteLogstash, ES, kibana, statsd, graphite Julien Pivotto Building and Deploying Mediasalsa
  • 24. ; Icinga Monitor everything • "Basics""Basics" + vhostsvhosts + databasesdatabases + cronjobscronjobs Julien Pivotto Building and Deploying Mediasalsa
  • 25. ; Graphite + gdash • CollectdCollectd • Monitor platform usageMonitor platform usage • FFmpeg usageFFmpeg usage • Number of accounts (backend ID’s)Number of accounts (backend ID’s) Julien Pivotto Building and Deploying Mediasalsa
  • 26. ; FFmpeg Julien Pivotto Building and Deploying Mediasalsa
  • 27. ; Managed assets Julien Pivotto Building and Deploying Mediasalsa
  • 28. ; Number of backend ID’s Julien Pivotto Building and Deploying Mediasalsa
  • 30. ; Sharing We have just shared our experience. . .We have just shared our experience. . . Any question?Any question? Julien Pivotto Building and Deploying Mediasalsa
  • 31. ; Contact Julien PivottoJulien Pivotto julien@inuits.eujulien@inuits.eu @roidelapluie@roidelapluie INUITS bvbaINUITS bvba Duboisstraat 50Duboisstraat 50 2060 Antwerp2060 Antwerp BelgiumBelgium +32 473 441 636+32 473 441 636 https://inuits.euhttps://inuits.eu Julien Pivotto Building and Deploying Mediasalsa
  • 32. THANK YOU! WHAT DID YOU THINK? Locate this session at the DrupalCon Prague website: http://prague2013.drupal.org/schedule Click the “Take the survey” link