SlideShare a Scribd company logo
Migrating NYSenate.gov
Pantheon.io 2
Introductions
Ryan Blair
Digital Director
New York State Senate
Brad MacDonald
Sr Project Manager
Mediacurrent
Derek Reese
Drupal Developer
Mediacurrent
Erik Mathy
Enterprise Onboarding
Manager, Pantheon
Pantheon.io 3
Agenda
• Introductions
• Planning and strategy
• The Moving Target
• The Migration
• Pantheon Launch!
• Revise
• Advance
• Q&A
Pantheon.io
NY Senate 2.0
4
About nysenate.gov
Approaching the Migration
Pantheon.io 7
Migration - Starting Off
• Moving to Pantheon
• Initial Effort to Migrate
• Process/30 days to migrate
Pantheon.io
• Breaking down the
components
• Defining a realistic scope
• Determining priority
• Assign Responsibilities*
*Cancelling Vacations
8
Migration - Planning/Approach
Pantheon.io 9
Challenges
• Limited Time Window
• Moving Parts
• Differences in Solr
• Custom integrations/needs
The In-Depth Technical Notes
Pantheon.io 11
Development Items
● Get Custom Solr Search working on Pantheon
● Rebase migration branch with Pantheon core & modules
● Remove legacy environment modules from repo
● Update legacy environment custom code
● Fixing cron runs to work on Pantheon
● Create Pantheon migration drush script
● Test Pantheon with Restored DB
● Move code/DB to Pantheon dev env
● Fresh Migration on Pantheon stage env
● Verify that no site-breaking bugs remain after test migration
● No time to perform an exhaustive review of all the site's code for Pantheon-specific issues.
● “Pantheon should be expected to remark about errors piling up in the log. I suggest perhaps that starting in January we
tone down the feature enhancements a bit and focus on codebase quality and resolving the longstanding warnings and
minor errors that have persisted over from the site on the previous environment.”
● Enabled stage_file_proxy to auto download missing files.
● Build Solr index in each environment.
● Run a series of small, intensive load tests to check for code edge cases, performance bottlenecks and general site
stability.
A Lot.
Pantheon.io 12
Scripting the Migration
• Check for the Pantheon environment
• Set pantheon install profile via SQL &
system variable
• Uninstall unsupported modules
• Memcache_admin
• Custom unsupported apache SOLR
search modules
• Rebuild registry
• Clear out legacy DB tables from unsupported
modules & configuration
• Enable Pantheon-specific modules
• Apache SOLR support
• Re-install Apache SOLR & custom search
modules
• Set default Pantheon variables
• Apachesolr & active search modules
• Caching
• Aggregation
• variable_set('pantheon_apachesolr_schema',
'sites/all/modules/contrib/apachesolr/solr-
conf/solr-3.x/schema.xml');
• Revert features, especially for search
configuration
• Enable Redis
Migration Steps
Pantheon.io 14
Creating a Production backup DB
1. Copy the nysenate2 DB from prior production to staging.
2. Put the site in maintenance mode.
3. Disable and then uninstall all of the host proprietary modules
(search, connector etc.).
4. Clear caches.
5. Create a manual backup on prior host.
6. Download the backup.
7. Upload to pantheon using redirection.*
mysql -u -p pantheon < path/to/db.sql
Pantheon.io 15
Time for Execution
• Estimated 70 hours of effort
• “Crunch” due to timeline
• Don’t do this
• 48 hrs straight for codebase
and dev work
• 24 hrs straight for migration
and support standby
Pantheon.io 16
Migration - Technical Solution
PLANNING + STRATEGY
BEAT
Uncertainty!
Pantheon.io 17
Executing the Migration
1. Push the 2.x code with the merged migration PR to the Pantheon remote
using the --force option.
2. Allow code to be deployed through to the Production environment.
3. Drop the existing Production database via mysql command line.
4. Create a new blank Production database.
5. Load the Production backup DB from previous host.
6. Run the drush command `pantheon-migrate` via terminus.
7. Clear any hanging cache and DB updates via drush `updb -y`.
8. Verify & then take out of maintenance mode.
Pantheon.io 18
Outcome/results
Refined the MVP for an on-time launch
Collaborated on a more robust Solr solution
Launch!
Current Status
Pantheon.io 20
Nysenate.gov:
Participatory Governance Tools for All
• 1.0 was D6 version
• 2.0 realized on D7
• Currently v2.18.0
• Working towards release version 3.0
• The goal of 3.0
○ A “full open architecture version
○ Available on github”.
○ The challenges in generalizing, securing and releasing the code for 3.0.
○ Open source the site to enable participatory and transparent governance.
Pantheon.io 21
The Future on Pantheon:
Advancing Tools for Participatory Governance
• Multi-dev - a game change for collaborative development
• Advancements in Bills
• To include dev tools
• Full setup to make it easy for citizens to contribute
• Needs to be error/notice/warning free
• Runs out of the box
• Available on Pantheon as an publically available upstream for sites
Questions?

More Related Content

What's hot (20)

PDF
OpenCms Days 2014 - OpenCms cloud setup with the FI-TS
Alkacon Software GmbH & Co. KG
 
PPTX
Globus Connect Server 5.1 Webinar
Globus
 
PDF
KUBERNETES AS A FRAMEWORK FOR WRITING DEVOPS & MICROSERVICES TOOLING
CodeOps Technologies LLP
 
PPTX
Mysql ecosystem in 2018
Alkin Tezuysal
 
PDF
OpenShift for Java EE Developers
Markus Eisele
 
PDF
GWT Enterprise Edition
Gilad Garon
 
PPTX
Microservices and Container Management with NGINX Plus and Mesosphere DC/OS
NGINX, Inc.
 
PPTX
Command box, Package Manager, Automation, REPL
ColdFusionConference
 
PDF
Securing your database servers from external attacks
Alkin Tezuysal
 
PDF
MySQL Query Optimization (Basics)
Karthik .P.R
 
PPT
Docker pipelines
Chris Mague
 
PPT
MySQL HA Percona cluster @ MySQL meetup Mumbai
Remote MySQL DBA
 
PDF
Filipe paternot - Case Study: Zabbix Deployment at Globo.com
Zabbix
 
PDF
DevOpsDays Houston 2019 - Shaun Ladewig, Robert Stone - From OverTheWallOps t...
DevOpsDays Houston
 
PDF
lakeFS Community Call no. 2
lakeFS
 
PPTX
Gocd – Kubernetes/Nomad Continuous Deployment
Leandro Totino Pereira
 
PDF
Gr8Conf 2016 - GORM Inside and Out
graemerocher
 
PDF
What's New in WildFly 9?
Virtual JBoss User Group
 
PDF
Building and Releasing a Golang CLI Tool
Bradley Cypert
 
PDF
Who needs containers in a serverless world
Matthias Luebken
 
OpenCms Days 2014 - OpenCms cloud setup with the FI-TS
Alkacon Software GmbH & Co. KG
 
Globus Connect Server 5.1 Webinar
Globus
 
KUBERNETES AS A FRAMEWORK FOR WRITING DEVOPS & MICROSERVICES TOOLING
CodeOps Technologies LLP
 
Mysql ecosystem in 2018
Alkin Tezuysal
 
OpenShift for Java EE Developers
Markus Eisele
 
GWT Enterprise Edition
Gilad Garon
 
Microservices and Container Management with NGINX Plus and Mesosphere DC/OS
NGINX, Inc.
 
Command box, Package Manager, Automation, REPL
ColdFusionConference
 
Securing your database servers from external attacks
Alkin Tezuysal
 
MySQL Query Optimization (Basics)
Karthik .P.R
 
Docker pipelines
Chris Mague
 
MySQL HA Percona cluster @ MySQL meetup Mumbai
Remote MySQL DBA
 
Filipe paternot - Case Study: Zabbix Deployment at Globo.com
Zabbix
 
DevOpsDays Houston 2019 - Shaun Ladewig, Robert Stone - From OverTheWallOps t...
DevOpsDays Houston
 
lakeFS Community Call no. 2
lakeFS
 
Gocd – Kubernetes/Nomad Continuous Deployment
Leandro Totino Pereira
 
Gr8Conf 2016 - GORM Inside and Out
graemerocher
 
What's New in WildFly 9?
Virtual JBoss User Group
 
Building and Releasing a Golang CLI Tool
Bradley Cypert
 
Who needs containers in a serverless world
Matthias Luebken
 

Viewers also liked (17)

PDF
Testing Your Code as Part of an Industrial Grade Workflow
Pantheon
 
PDF
Test Coverage for Your WP REST API Project
Pantheon
 
PDF
Drush in the Composer Era
Pantheon
 
PDF
How Drupal 8 Reaches Its Full Potential on Pantheon
Pantheon
 
ODP
Start with Drupal CMS
Edeth Meng
 
PDF
WP or Drupal (or both): A Framework for Client CMS Decisions
Pantheon
 
PPTX
Level Up: 5 Expert Tips for Optimizing WordPress Performance
Pantheon
 
PDF
Drupal 8 and Pantheon
Pantheon
 
PDF
Lean Drupal Repositories with Composer and Drush
Pantheon
 
PDF
Continuous Integration Is for Teams: Moving past buzzword driven development
Pantheon
 
PPTX
Decoupled Architecture and WordPress
Pantheon
 
PDF
Drupal Performance
Pantheon
 
PDF
WordPress REST API: Expert Advice & Practical Use Cases
Pantheon
 
PDF
Why Your Site is Slow: Performance Answers for Your Clients
Pantheon
 
PDF
Creating a Smooth Development Workflow for High-Quality Modular Open-Source P...
Pantheon
 
PDF
Automating & Integrating Pantheon with JIRA, Slack, Jenkins and More
Pantheon
 
PDF
Development Workflow Tools for Open-Source PHP Libraries
Pantheon
 
Testing Your Code as Part of an Industrial Grade Workflow
Pantheon
 
Test Coverage for Your WP REST API Project
Pantheon
 
Drush in the Composer Era
Pantheon
 
How Drupal 8 Reaches Its Full Potential on Pantheon
Pantheon
 
Start with Drupal CMS
Edeth Meng
 
WP or Drupal (or both): A Framework for Client CMS Decisions
Pantheon
 
Level Up: 5 Expert Tips for Optimizing WordPress Performance
Pantheon
 
Drupal 8 and Pantheon
Pantheon
 
Lean Drupal Repositories with Composer and Drush
Pantheon
 
Continuous Integration Is for Teams: Moving past buzzword driven development
Pantheon
 
Decoupled Architecture and WordPress
Pantheon
 
Drupal Performance
Pantheon
 
WordPress REST API: Expert Advice & Practical Use Cases
Pantheon
 
Why Your Site is Slow: Performance Answers for Your Clients
Pantheon
 
Creating a Smooth Development Workflow for High-Quality Modular Open-Source P...
Pantheon
 
Automating & Integrating Pantheon with JIRA, Slack, Jenkins and More
Pantheon
 
Development Workflow Tools for Open-Source PHP Libraries
Pantheon
 
Ad

Similar to Migrating NYSenate.gov (20)

PPTX
Oscon London 2016 - Docker from Development to Production
Patrick Chanezon
 
PDF
Upgrading CentOS on the Facebook fleet
Davide Cavalca
 
PPTX
Private Cloud Deployment Automation with XebiaLabs and OpenShift
XebiaLabs
 
PPTX
Symfony under control. Continuous Integration and Automated Deployments in Sy...
Max Romanovsky
 
PPTX
Symfony Under Control by Maxim Romanovsky
php-user-group-minsk
 
PDF
From XPages Hero to OSGi Guru: Taking the Scary out of Building Extension Lib...
Paul Withers
 
PPT
Deployment Strategies: Managing Code, Content, and Configurations
nyccamp
 
PDF
Leveraging Docker for Hadoop build automation and Big Data stack provisioning
DataWorks Summit
 
PDF
Leveraging docker for hadoop build automation and big data stack provisioning
Evans Ye
 
PDF
Reproducible work environments for data scientists using Nix
AvikBasu22
 
PPTX
What's new in Docker - InfraKit - Docker Meetup Berlin 2016
Patrick Chanezon
 
PPTX
Fluo CICD OpenStack Summit
Miguel Zuniga
 
PDF
Scylla Summit 2016: Compose on Containing the Database
ScyllaDB
 
PDF
Alibaba Cloud Conference 2016 - Docker Open Source
John Willis
 
PPTX
Learning to Scale OpenStack: Juno Update from the Rackspace Public Cloud
Rainya Mosher
 
PDF
Get Rapid Right-sized and Recent with the Liberty Repository
Graham Charters
 
PPTX
Symfony2 for legacy app rejuvenation: the eZ Publish case study
Gaetano Giunta
 
PDF
MIGRATION - PAIN OR GAIN?
DrupalCamp Kyiv
 
PPTX
Intro Docker october 2013
dotCloud
 
PPT
Containers 101
Black Duck by Synopsys
 
Oscon London 2016 - Docker from Development to Production
Patrick Chanezon
 
Upgrading CentOS on the Facebook fleet
Davide Cavalca
 
Private Cloud Deployment Automation with XebiaLabs and OpenShift
XebiaLabs
 
Symfony under control. Continuous Integration and Automated Deployments in Sy...
Max Romanovsky
 
Symfony Under Control by Maxim Romanovsky
php-user-group-minsk
 
From XPages Hero to OSGi Guru: Taking the Scary out of Building Extension Lib...
Paul Withers
 
Deployment Strategies: Managing Code, Content, and Configurations
nyccamp
 
Leveraging Docker for Hadoop build automation and Big Data stack provisioning
DataWorks Summit
 
Leveraging docker for hadoop build automation and big data stack provisioning
Evans Ye
 
Reproducible work environments for data scientists using Nix
AvikBasu22
 
What's new in Docker - InfraKit - Docker Meetup Berlin 2016
Patrick Chanezon
 
Fluo CICD OpenStack Summit
Miguel Zuniga
 
Scylla Summit 2016: Compose on Containing the Database
ScyllaDB
 
Alibaba Cloud Conference 2016 - Docker Open Source
John Willis
 
Learning to Scale OpenStack: Juno Update from the Rackspace Public Cloud
Rainya Mosher
 
Get Rapid Right-sized and Recent with the Liberty Repository
Graham Charters
 
Symfony2 for legacy app rejuvenation: the eZ Publish case study
Gaetano Giunta
 
MIGRATION - PAIN OR GAIN?
DrupalCamp Kyiv
 
Intro Docker october 2013
dotCloud
 
Containers 101
Black Duck by Synopsys
 
Ad

More from Pantheon (13)

PDF
Drupal Migrations in 2018
Pantheon
 
PDF
Architecting Million Dollar Projects
Pantheon
 
PDF
Streamlined Drupal 8: Site Building Strategies for Tight Deadlines
Pantheon
 
PDF
Getting Started with Drupal
Pantheon
 
PDF
Defense in Depth: Lessons Learned Securing 200,000 Sites
Pantheon
 
PDF
Automate Your Automation | DrupalCon Vienna
Pantheon
 
PDF
Sub-Second Pageloads: Beat the Speed of Light with Pantheon & Fastly
Pantheon
 
PDF
Building a Network of 195 Drupal 8 Sites
Pantheon
 
PDF
Hacking Your Agency Workflow: Treating Your Process Like A Product
Pantheon
 
PDF
Best Practice Site Architecture in Drupal 8
Pantheon
 
PDF
Preparing for the Internet Zombie Apocalypse
Pantheon
 
PDF
Content as a Service: What to Know About Decoupled CMS
Pantheon
 
PDF
Drupal 8 CMI on a Managed Workflow
Pantheon
 
Drupal Migrations in 2018
Pantheon
 
Architecting Million Dollar Projects
Pantheon
 
Streamlined Drupal 8: Site Building Strategies for Tight Deadlines
Pantheon
 
Getting Started with Drupal
Pantheon
 
Defense in Depth: Lessons Learned Securing 200,000 Sites
Pantheon
 
Automate Your Automation | DrupalCon Vienna
Pantheon
 
Sub-Second Pageloads: Beat the Speed of Light with Pantheon & Fastly
Pantheon
 
Building a Network of 195 Drupal 8 Sites
Pantheon
 
Hacking Your Agency Workflow: Treating Your Process Like A Product
Pantheon
 
Best Practice Site Architecture in Drupal 8
Pantheon
 
Preparing for the Internet Zombie Apocalypse
Pantheon
 
Content as a Service: What to Know About Decoupled CMS
Pantheon
 
Drupal 8 CMI on a Managed Workflow
Pantheon
 

Recently uploaded (20)

PPTX
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
PDF
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
PDF
RAT Builders - How to Catch Them All [DeepSec 2024]
malmoeb
 
PPTX
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
PDF
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
PDF
Generative AI vs Predictive AI-The Ultimate Comparison Guide
Lily Clark
 
PDF
The Future of Artificial Intelligence (AI)
Mukul
 
PPTX
AVL ( audio, visuals or led ), technology.
Rajeshwri Panchal
 
PDF
OFFOFFBOX™ – A New Era for African Film | Startup Presentation
ambaicciwalkerbrian
 
PPTX
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
PDF
Economic Impact of Data Centres to the Malaysian Economy
flintglobalapac
 
PDF
How ETL Control Logic Keeps Your Pipelines Safe and Reliable.pdf
Stryv Solutions Pvt. Ltd.
 
PPTX
Simple and concise overview about Quantum computing..pptx
mughal641
 
PDF
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
PDF
NewMind AI Weekly Chronicles – July’25, Week III
NewMind AI
 
PDF
Make GenAI investments go further with the Dell AI Factory
Principled Technologies
 
PDF
Structs to JSON: How Go Powers REST APIs
Emily Achieng
 
PDF
Build with AI and GDG Cloud Bydgoszcz- ADK .pdf
jaroslawgajewski1
 
PDF
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
PPTX
Farrell_Programming Logic and Design slides_10e_ch02_PowerPoint.pptx
bashnahara11
 
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
RAT Builders - How to Catch Them All [DeepSec 2024]
malmoeb
 
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
Generative AI vs Predictive AI-The Ultimate Comparison Guide
Lily Clark
 
The Future of Artificial Intelligence (AI)
Mukul
 
AVL ( audio, visuals or led ), technology.
Rajeshwri Panchal
 
OFFOFFBOX™ – A New Era for African Film | Startup Presentation
ambaicciwalkerbrian
 
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
Economic Impact of Data Centres to the Malaysian Economy
flintglobalapac
 
How ETL Control Logic Keeps Your Pipelines Safe and Reliable.pdf
Stryv Solutions Pvt. Ltd.
 
Simple and concise overview about Quantum computing..pptx
mughal641
 
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
NewMind AI Weekly Chronicles – July’25, Week III
NewMind AI
 
Make GenAI investments go further with the Dell AI Factory
Principled Technologies
 
Structs to JSON: How Go Powers REST APIs
Emily Achieng
 
Build with AI and GDG Cloud Bydgoszcz- ADK .pdf
jaroslawgajewski1
 
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
Farrell_Programming Logic and Design slides_10e_ch02_PowerPoint.pptx
bashnahara11
 

Migrating NYSenate.gov

  • 2. Pantheon.io 2 Introductions Ryan Blair Digital Director New York State Senate Brad MacDonald Sr Project Manager Mediacurrent Derek Reese Drupal Developer Mediacurrent Erik Mathy Enterprise Onboarding Manager, Pantheon
  • 3. Pantheon.io 3 Agenda • Introductions • Planning and strategy • The Moving Target • The Migration • Pantheon Launch! • Revise • Advance • Q&A
  • 7. Pantheon.io 7 Migration - Starting Off • Moving to Pantheon • Initial Effort to Migrate • Process/30 days to migrate
  • 8. Pantheon.io • Breaking down the components • Defining a realistic scope • Determining priority • Assign Responsibilities* *Cancelling Vacations 8 Migration - Planning/Approach
  • 9. Pantheon.io 9 Challenges • Limited Time Window • Moving Parts • Differences in Solr • Custom integrations/needs
  • 11. Pantheon.io 11 Development Items ● Get Custom Solr Search working on Pantheon ● Rebase migration branch with Pantheon core & modules ● Remove legacy environment modules from repo ● Update legacy environment custom code ● Fixing cron runs to work on Pantheon ● Create Pantheon migration drush script ● Test Pantheon with Restored DB ● Move code/DB to Pantheon dev env ● Fresh Migration on Pantheon stage env ● Verify that no site-breaking bugs remain after test migration ● No time to perform an exhaustive review of all the site's code for Pantheon-specific issues. ● “Pantheon should be expected to remark about errors piling up in the log. I suggest perhaps that starting in January we tone down the feature enhancements a bit and focus on codebase quality and resolving the longstanding warnings and minor errors that have persisted over from the site on the previous environment.” ● Enabled stage_file_proxy to auto download missing files. ● Build Solr index in each environment. ● Run a series of small, intensive load tests to check for code edge cases, performance bottlenecks and general site stability. A Lot.
  • 12. Pantheon.io 12 Scripting the Migration • Check for the Pantheon environment • Set pantheon install profile via SQL & system variable • Uninstall unsupported modules • Memcache_admin • Custom unsupported apache SOLR search modules • Rebuild registry • Clear out legacy DB tables from unsupported modules & configuration • Enable Pantheon-specific modules • Apache SOLR support • Re-install Apache SOLR & custom search modules • Set default Pantheon variables • Apachesolr & active search modules • Caching • Aggregation • variable_set('pantheon_apachesolr_schema', 'sites/all/modules/contrib/apachesolr/solr- conf/solr-3.x/schema.xml'); • Revert features, especially for search configuration • Enable Redis
  • 14. Pantheon.io 14 Creating a Production backup DB 1. Copy the nysenate2 DB from prior production to staging. 2. Put the site in maintenance mode. 3. Disable and then uninstall all of the host proprietary modules (search, connector etc.). 4. Clear caches. 5. Create a manual backup on prior host. 6. Download the backup. 7. Upload to pantheon using redirection.* mysql -u -p pantheon < path/to/db.sql
  • 15. Pantheon.io 15 Time for Execution • Estimated 70 hours of effort • “Crunch” due to timeline • Don’t do this • 48 hrs straight for codebase and dev work • 24 hrs straight for migration and support standby
  • 16. Pantheon.io 16 Migration - Technical Solution PLANNING + STRATEGY BEAT Uncertainty!
  • 17. Pantheon.io 17 Executing the Migration 1. Push the 2.x code with the merged migration PR to the Pantheon remote using the --force option. 2. Allow code to be deployed through to the Production environment. 3. Drop the existing Production database via mysql command line. 4. Create a new blank Production database. 5. Load the Production backup DB from previous host. 6. Run the drush command `pantheon-migrate` via terminus. 7. Clear any hanging cache and DB updates via drush `updb -y`. 8. Verify & then take out of maintenance mode.
  • 18. Pantheon.io 18 Outcome/results Refined the MVP for an on-time launch Collaborated on a more robust Solr solution Launch!
  • 20. Pantheon.io 20 Nysenate.gov: Participatory Governance Tools for All • 1.0 was D6 version • 2.0 realized on D7 • Currently v2.18.0 • Working towards release version 3.0 • The goal of 3.0 ○ A “full open architecture version ○ Available on github”. ○ The challenges in generalizing, securing and releasing the code for 3.0. ○ Open source the site to enable participatory and transparent governance.
  • 21. Pantheon.io 21 The Future on Pantheon: Advancing Tools for Participatory Governance • Multi-dev - a game change for collaborative development • Advancements in Bills • To include dev tools • Full setup to make it easy for citizens to contribute • Needs to be error/notice/warning free • Runs out of the box • Available on Pantheon as an publically available upstream for sites