Upload
mura-cms
View
238
Download
2
Embed Size (px)
DESCRIPTION
Originally presented by Max Appiah-Kubi at MuraCon EU 2014 in Edinburgh, Scotland.
Citation preview
How to plan a successful multi-site deployment in Mura CMS By Max Appiah-Kubi
Who am I ?
Presentation Overview
Presentation Overview
• Planning
Presentation Overview
• Planning
• Developing the solution
Presentation Overview
• Planning
• Developing the solution
• Deployment
Presentation Overview
• Planning
• Developing the solution
• Deployment
• Monitoring
Presentation Overview
• Planning
• Developing the solution
• Deployment
• Monitoring
• Maintenance and enhancements
Before We Get Started
Before We Get Started
How do you define a successful deployment?
Before We Get Started
Planning
Why do we need to plan?
Planning
Start from project inception
Planning
Weighing the cost of not planning
Planning
Weighing the cost of not planning
Planning
Client / Organisation needs • Stakeholder participation • Requirements • Assessment
Planning
The team (Who to include?) • Project Manager • Developers • Ops • QA • Support
Planning
Infrastructure (Hardware) • Servers
• Load balancers
• Routers
• SAN
Planning
Infrastructure (Software) • Mura
• Application server
• OS
• Database
Planning
Fault Tolerance • Performance and High-Availability
• Redundancy
Planning
Capacity Planning
Planning
Environments •Development • Staging / Test •Production
Planning
Source Control Management
Planning
Security
Planning
Rollback, Backup and Recovery
Planning
Prototype the deployment
Planning
Timelines
Developing the solution
Developing the solution
Example Architecture
Developing the solution
Setting up the infrastructure
Developing the solution
Setting up software stack • Operating system (Windows and Linux) • IIS or Apache • Railo or ColdFusion • Tomcat • Mura
Developing the solution
Configuration management
•Chef
•Puppet
Developing the solution
Mura (Multi instance or Single instance?)
Developing the solution
Target domains • Development • Staging • QA • Production
Developing the solution
Securing the setup
Developing a solution
Deployment pre-preparation
Deployment
Deployment
What is deployment? … and the most important things about it
Deployment
What is deployment? … and the most important things about it
“Software deployment is all of the activities that make a software system available for use”
Deployment
Basics of deployment …things we typically have to do to get a system up and running
Deployment
• Synchronise source code • Configure web server • Configure site options • Set environment-specific configuration (file paths, database
details, hostnames, SSL on/off, e-mail addresses, debugging etc.)
• Set up database server • Deploy database • Set up scheduled jobs • Configure DNS
Deployment
How to perform a deployment …different approaches and their advantages and disadvantages
Deployment
Manual
Deployment
Manual • Cons
• They are slow • Time consuming
• They aren’t consistent across environments
• Likely to fail in production
• No audit trail, you don’t who deployed what, where or when
Deployment
Manual • Pros
• Have more control • Have always done it
• Easy to do eg using FTP
• Scripts
Deployment
Automatic
Deployment
Automatic • Pros
• Faster • Less error prone
• Improves consistency
• Requires tools
• Eliminates communication problems
• If you set it up right it will run clockwork
Deployment
Modern deployment
Deployment
High level view of a deployment process
Deployment
Delivery pipeline • Continuous integration tooling
Deployment
Continuous integration tooling •VCS integration
Deployment
Continuous integration tooling •CI server - Jenkins
Deployment
CI Server - Jenkins (screenshot)
Monitoring
Monitoring
• FusionReactor • Visual VM • New Relic (Rackspace) • Nagios
Maintenance and enhancements
Maintenance and enhancements
• Sustainability
Maintenance and enhancements
• Sustainability
• Post launch support
Questions