SlideShare a Scribd company logo
Drupal 7 Deployment Using Apache Ant Dmitriy Svetlichniy http://donetsk.drupal.ua
Drupal Cafe №2. Kharkiv Dmitriy Svetlichniy WDG Company Drupal 7 Deployment Using Apache Ant
Drupal Site Deployment. Problems Dev site Prod site ver. 2.0 ver. 1.0 Deployment
Main Deployment Task DON'T   LOSE current site   CONTENT and modules   SETTINGS (f.e., for Google Analytics module)
Drupal Site Deployment. Problems Drupal site deployment: Files – SVN, Git, FTP, SSH, etc. DB – ? Dev site Prod site ver. 2.0 ver. 1.0 files db
Disclaimer If  YOU  have any  suggestions any  commentaries found  bugs write here in Skype: svetlichniyd antonnavi dovgiy-dmitriy
Problem Solution Based on strict  agreement of the separating DB tables into “ settings ”  “ data ”
Problem Solution Step 1 settings data dev prod
Problem Solution Step 2 dev settings data variable variable prod
Problem Solution Step 3 settings data variable dev
Problem Solution Step 4 settings data dev prod
Algorithm Implementation Used technologies: Drupal 7; Apache Ant . Developed tools: Drupal 7 module “synchro”; Apache Ant script “build.xml”.
Module Interface
Module Interface
Module Interface
Module functionality Form submit: Ant script directory: [site-path]  /sites/default/files/synchro/ Form Data Ant Script
Module functionality Scanning for “variable_set()”
Apache Ant Installation  (for Ubuntu): sudo apt-get install ant Apache Ant script structure  (build.xml): XML project property target actions : echo, exec, mkdir...
Ant Script Functionality Script files: build.xml + .htaccess + compare.php Main script targets (tasks): merge_to_dev deploy_db restore_dev_db restore_prod_db
Ant Script Functionality Target “merge_to_dev” (part 1): mkdir “backups” and “temp” DB structure dumps (using mysqldump) compare DB structure (using compare.php) compare tables structure (using diff tool) DB dumps (using mysqldump)
Ant Script Functionality Target “merge_to_dev” (part 2): make settings + data dump (using mysqldump) merge setting with data on dev (using mysql) make “variable” dump from live (using mysql) merge “variable” on dev (using mysql) flush dev caches (using get + synchro.module API) clean temp folder
Testing Results Target “merge_to_dev”. Time of Ant script runnings: Testing on  initial  Drupal site: 7-8 s Testing on  10 000  data nodes: 40-45 s Testing on  100 000  data nodes: 230-250 s
Summary Problem Problem solution Solution implementation: Drupal 7  module Apache Ant  script
Helpful Links You can download module by this link: drupal.org/sandbox/wdg-company/1324828 http://drupal.org http://ant.apache.org http://ant.apache.org/manual http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html http://www.ubuntu.com/download
Drupal Cafe №2. Kharkiv Thank you! Skype: svetlichiyd E-mail:  [email_address] Sponsored by:

More Related Content

PDF
Big query - Command line tools and Tips - (MOSG)
PPTX
Viktor Tsykunov "Microsoft AI platform for every Developer"
PPTX
How to build your own OpenStack distro using Puppet OpenStack
PPTX
Access google command list from the command line
PPTX
Django via Docker
PDF
Managing Postgres with Ansible
PDF
SEP DevOps Ignite Talk - Packer
PDF
Using Composer with Drupal and Drush
Big query - Command line tools and Tips - (MOSG)
Viktor Tsykunov "Microsoft AI platform for every Developer"
How to build your own OpenStack distro using Puppet OpenStack
Access google command list from the command line
Django via Docker
Managing Postgres with Ansible
SEP DevOps Ignite Talk - Packer
Using Composer with Drupal and Drush

What's hot (20)

PDF
A One-Stop Solution for Puppet and OpenStack
PDF
Drush in the Composer Era
PPTX
Config/BuildConfig
PPT
Building and Deployment of Drupal sites with Features and Context
PPT
[Srijan Wednesday Webinar] Rails 5: What's in It for Me?
PDF
Velero search & practice 20210609
DOCX
Creating an nuget package for EPiServer
PDF
Drupal Console Deep Dive: How to Develop Faster and Smarter on Drupal 8
PDF
Docker at Djangocon 2013 | Talk by Ken Cochrane
PDF
Red Hat Satellite 6 - Automation with Puppet
PDF
Integrating cloud stack with puppet
PDF
[Srijan Wednesday Webinars] Ruling Drupal 8 with #d8rules
PPTX
SBT Concepts, part 2
PPTX
OpenStack Glance
PPTX
Zero to Continuous Delivery on Google Cloud
ODP
Infrastructure as code with Puppet and Apache CloudStack
PDF
Knex Postgresql Migration
PDF
Create a Varnish cluster in Kubernetes for Drupal caching - DrupalCon North A...
PPTX
Ex-8-hive.pptx
PDF
How we maintain 200+ Drupal sites in Georgetown University
A One-Stop Solution for Puppet and OpenStack
Drush in the Composer Era
Config/BuildConfig
Building and Deployment of Drupal sites with Features and Context
[Srijan Wednesday Webinar] Rails 5: What's in It for Me?
Velero search & practice 20210609
Creating an nuget package for EPiServer
Drupal Console Deep Dive: How to Develop Faster and Smarter on Drupal 8
Docker at Djangocon 2013 | Talk by Ken Cochrane
Red Hat Satellite 6 - Automation with Puppet
Integrating cloud stack with puppet
[Srijan Wednesday Webinars] Ruling Drupal 8 with #d8rules
SBT Concepts, part 2
OpenStack Glance
Zero to Continuous Delivery on Google Cloud
Infrastructure as code with Puppet and Apache CloudStack
Knex Postgresql Migration
Create a Varnish cluster in Kubernetes for Drupal caching - DrupalCon North A...
Ex-8-hive.pptx
How we maintain 200+ Drupal sites in Georgetown University
Ad

Similar to Drupal 7 Deployment Using Apache Ant. Dmitriy Svetlichniy. (20)

PPT
Maven: Managing Software Projects for Repeatable Results
PPTX
Getting started with agile database migrations for java flywaydb
PDF
22nd Athens Big Data Meetup - 1st Talk - MLOps Workshop: The Full ML Lifecycl...
PDF
Lean Drupal Repositories with Composer and Drush
PPTX
Faster Java EE Builds with Gradle
PPTX
Faster Java EE Builds with Gradle
PPTX
DevOps Hackathon: Session 3 - Test Driven Infrastructure
PPTX
WordPress Development Environments
PDF
Docman - The swiss army knife for Drupal multisite docroot management and dep...
PDF
IBM Index 2018 Conference Workshop: Modernizing Traditional Java App's with D...
PPTX
Tips and tricks for building Large web applications with Drupal
PPTX
Ideal Deployment In .NET World
PPT
Learn Dashing Widget in 90 minutes
PPT
An introduction to maven gradle and sbt
PDF
Integration tests: use the containers, Luke!
PPT
Recipe 14 of Data Warehouse and Business Intelligence - Build a Staging Area ...
PDF
Native Hadoop with prebuilt spark
PDF
Ansible new paradigms for orchestration
PDF
From Dev to DevOps - Codemotion ES 2012
Maven: Managing Software Projects for Repeatable Results
Getting started with agile database migrations for java flywaydb
22nd Athens Big Data Meetup - 1st Talk - MLOps Workshop: The Full ML Lifecycl...
Lean Drupal Repositories with Composer and Drush
Faster Java EE Builds with Gradle
Faster Java EE Builds with Gradle
DevOps Hackathon: Session 3 - Test Driven Infrastructure
WordPress Development Environments
Docman - The swiss army knife for Drupal multisite docroot management and dep...
IBM Index 2018 Conference Workshop: Modernizing Traditional Java App's with D...
Tips and tricks for building Large web applications with Drupal
Ideal Deployment In .NET World
Learn Dashing Widget in 90 minutes
An introduction to maven gradle and sbt
Integration tests: use the containers, Luke!
Recipe 14 of Data Warehouse and Business Intelligence - Build a Staging Area ...
Native Hadoop with prebuilt spark
Ansible new paradigms for orchestration
From Dev to DevOps - Codemotion ES 2012
Ad

More from DrupalCampDN (20)

PDF
Drupal - Changing the Web by Connecting Open Minds - Josef Dabernig
ODP
Dependency Injection in Drupal 8 - Стадник АндрейQweqwe
PDF
Our AWS Cloud Journey - Andrew Boag
PDF
Guzzle in Drupal 8 and as a REST client - Артем Мирошник
PDF
Blocks & Layouts in D7 - Josef Dabernig
PPTX
CKEditor в Drupal: тонкая настройка и кастомизация - Osman Seferov
PDF
Drush - use full power - Alexander Schedrov
PPTX
Это Drupal, %username%! - Андрей Черноус
PDF
Migrate - new way site upgrade
PPTX
Caching on highload Drupal site - Alexander Shumenko
PPTX
Rich Text in Drupal - Вадим Валуев
PDF
May the parallelity be with you! Distributed computing using Erlang language ...
PDF
Panels как философия - Alexander Danilenko
PDF
DrupalGap. How to create native application for mobile devices based on Drupa...
PPTX
Twig internals - Maksym MoskvychevTwig internals maksym moskvychev
PPT
Презентация модуля YandexMoney - Yury Glushkov
PDF
Drupal and Outer space - Martin Mayer
PPT
Boost your theming skills - Artem Shymko
PDF
Continious integration - Иван Лещёв
PPT
Rules - Yaroslav Doroshuk
Drupal - Changing the Web by Connecting Open Minds - Josef Dabernig
Dependency Injection in Drupal 8 - Стадник АндрейQweqwe
Our AWS Cloud Journey - Andrew Boag
Guzzle in Drupal 8 and as a REST client - Артем Мирошник
Blocks & Layouts in D7 - Josef Dabernig
CKEditor в Drupal: тонкая настройка и кастомизация - Osman Seferov
Drush - use full power - Alexander Schedrov
Это Drupal, %username%! - Андрей Черноус
Migrate - new way site upgrade
Caching on highload Drupal site - Alexander Shumenko
Rich Text in Drupal - Вадим Валуев
May the parallelity be with you! Distributed computing using Erlang language ...
Panels как философия - Alexander Danilenko
DrupalGap. How to create native application for mobile devices based on Drupa...
Twig internals - Maksym MoskvychevTwig internals maksym moskvychev
Презентация модуля YandexMoney - Yury Glushkov
Drupal and Outer space - Martin Mayer
Boost your theming skills - Artem Shymko
Continious integration - Иван Лещёв
Rules - Yaroslav Doroshuk

Recently uploaded (20)

PPTX
Cloud computing and distributed systems.
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
DOCX
The AUB Centre for AI in Media Proposal.docx
PPTX
Spectroscopy.pptx food analysis technology
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Spectral efficient network and resource selection model in 5G networks
PPTX
Big Data Technologies - Introduction.pptx
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
A Presentation on Artificial Intelligence
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
Electronic commerce courselecture one. Pdf
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Cloud computing and distributed systems.
Encapsulation_ Review paper, used for researhc scholars
MYSQL Presentation for SQL database connectivity
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
The AUB Centre for AI in Media Proposal.docx
Spectroscopy.pptx food analysis technology
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Dropbox Q2 2025 Financial Results & Investor Presentation
Spectral efficient network and resource selection model in 5G networks
Big Data Technologies - Introduction.pptx
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Unlocking AI with Model Context Protocol (MCP)
Chapter 3 Spatial Domain Image Processing.pdf
Review of recent advances in non-invasive hemoglobin estimation
A Presentation on Artificial Intelligence
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Electronic commerce courselecture one. Pdf
Diabetes mellitus diagnosis method based random forest with bat algorithm
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx

Drupal 7 Deployment Using Apache Ant. Dmitriy Svetlichniy.

  • 1. Drupal 7 Deployment Using Apache Ant Dmitriy Svetlichniy http://donetsk.drupal.ua
  • 2. Drupal Cafe №2. Kharkiv Dmitriy Svetlichniy WDG Company Drupal 7 Deployment Using Apache Ant
  • 3. Drupal Site Deployment. Problems Dev site Prod site ver. 2.0 ver. 1.0 Deployment
  • 4. Main Deployment Task DON'T LOSE current site CONTENT and modules SETTINGS (f.e., for Google Analytics module)
  • 5. Drupal Site Deployment. Problems Drupal site deployment: Files – SVN, Git, FTP, SSH, etc. DB – ? Dev site Prod site ver. 2.0 ver. 1.0 files db
  • 6. Disclaimer If YOU have any suggestions any commentaries found bugs write here in Skype: svetlichniyd antonnavi dovgiy-dmitriy
  • 7. Problem Solution Based on strict agreement of the separating DB tables into “ settings ” “ data ”
  • 8. Problem Solution Step 1 settings data dev prod
  • 9. Problem Solution Step 2 dev settings data variable variable prod
  • 10. Problem Solution Step 3 settings data variable dev
  • 11. Problem Solution Step 4 settings data dev prod
  • 12. Algorithm Implementation Used technologies: Drupal 7; Apache Ant . Developed tools: Drupal 7 module “synchro”; Apache Ant script “build.xml”.
  • 16. Module functionality Form submit: Ant script directory: [site-path] /sites/default/files/synchro/ Form Data Ant Script
  • 17. Module functionality Scanning for “variable_set()”
  • 18. Apache Ant Installation (for Ubuntu): sudo apt-get install ant Apache Ant script structure (build.xml): XML project property target actions : echo, exec, mkdir...
  • 19. Ant Script Functionality Script files: build.xml + .htaccess + compare.php Main script targets (tasks): merge_to_dev deploy_db restore_dev_db restore_prod_db
  • 20. Ant Script Functionality Target “merge_to_dev” (part 1): mkdir “backups” and “temp” DB structure dumps (using mysqldump) compare DB structure (using compare.php) compare tables structure (using diff tool) DB dumps (using mysqldump)
  • 21. Ant Script Functionality Target “merge_to_dev” (part 2): make settings + data dump (using mysqldump) merge setting with data on dev (using mysql) make “variable” dump from live (using mysql) merge “variable” on dev (using mysql) flush dev caches (using get + synchro.module API) clean temp folder
  • 22. Testing Results Target “merge_to_dev”. Time of Ant script runnings: Testing on initial Drupal site: 7-8 s Testing on 10 000 data nodes: 40-45 s Testing on 100 000 data nodes: 230-250 s
  • 23. Summary Problem Problem solution Solution implementation: Drupal 7 module Apache Ant script
  • 24. Helpful Links You can download module by this link: drupal.org/sandbox/wdg-company/1324828 http://drupal.org http://ant.apache.org http://ant.apache.org/manual http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html http://www.ubuntu.com/download
  • 25. Drupal Cafe №2. Kharkiv Thank you! Skype: svetlichiyd E-mail: [email_address] Sponsored by: