61
How to plan a successful multi-site deployment in Mura CMS By Max Appiah-Kubi

How To Plan A Successful Multi-Site Deployment In Mura CMS

Embed Size (px)

DESCRIPTION

Originally presented by Max Appiah-Kubi at MuraCon EU 2014 in Edinburgh, Scotland.

Citation preview

Page 1: How To Plan A Successful Multi-Site Deployment In Mura CMS

How to plan a successful multi-site deployment in Mura CMS By Max Appiah-Kubi

Page 2: How To Plan A Successful Multi-Site Deployment In Mura CMS

Who am I ?

Page 3: How To Plan A Successful Multi-Site Deployment In Mura CMS

Presentation Overview

Page 4: How To Plan A Successful Multi-Site Deployment In Mura CMS

Presentation Overview

• Planning

Page 5: How To Plan A Successful Multi-Site Deployment In Mura CMS

Presentation Overview

• Planning

• Developing the solution

Page 6: How To Plan A Successful Multi-Site Deployment In Mura CMS

Presentation Overview

• Planning

• Developing the solution

• Deployment

Page 7: How To Plan A Successful Multi-Site Deployment In Mura CMS

Presentation Overview

• Planning

• Developing the solution

• Deployment

• Monitoring

Page 8: How To Plan A Successful Multi-Site Deployment In Mura CMS

Presentation Overview

• Planning

• Developing the solution

• Deployment

• Monitoring

• Maintenance and enhancements

Page 9: How To Plan A Successful Multi-Site Deployment In Mura CMS

Before We Get Started

Page 10: How To Plan A Successful Multi-Site Deployment In Mura CMS

Before We Get Started

How do you define a successful deployment?

Page 11: How To Plan A Successful Multi-Site Deployment In Mura CMS

Before We Get Started

Page 12: How To Plan A Successful Multi-Site Deployment In Mura CMS

Planning

Why do we need to plan?

Page 13: How To Plan A Successful Multi-Site Deployment In Mura CMS

Planning

Start from project inception

Page 14: How To Plan A Successful Multi-Site Deployment In Mura CMS

Planning

Weighing the cost of not planning

Page 15: How To Plan A Successful Multi-Site Deployment In Mura CMS

Planning

Weighing the cost of not planning

Page 16: How To Plan A Successful Multi-Site Deployment In Mura CMS

Planning

Client / Organisation needs • Stakeholder participation • Requirements • Assessment

Page 17: How To Plan A Successful Multi-Site Deployment In Mura CMS

Planning

The team (Who to include?) • Project Manager • Developers • Ops • QA • Support

Page 18: How To Plan A Successful Multi-Site Deployment In Mura CMS

Planning

Infrastructure (Hardware) • Servers

• Load balancers

• Routers

• SAN

Page 19: How To Plan A Successful Multi-Site Deployment In Mura CMS

Planning

Infrastructure (Software) • Mura

• Application server

• OS

• Database

Page 20: How To Plan A Successful Multi-Site Deployment In Mura CMS

Planning

Fault Tolerance • Performance and High-Availability

• Redundancy

Page 21: How To Plan A Successful Multi-Site Deployment In Mura CMS

Planning

Capacity Planning

Page 22: How To Plan A Successful Multi-Site Deployment In Mura CMS

Planning

Environments •Development • Staging / Test •Production

Page 23: How To Plan A Successful Multi-Site Deployment In Mura CMS

Planning

Source Control Management

Page 24: How To Plan A Successful Multi-Site Deployment In Mura CMS

Planning

Security

Page 25: How To Plan A Successful Multi-Site Deployment In Mura CMS

Planning

Rollback, Backup and Recovery

Page 26: How To Plan A Successful Multi-Site Deployment In Mura CMS

Planning

Prototype the deployment

Page 27: How To Plan A Successful Multi-Site Deployment In Mura CMS

Planning

Timelines

Page 28: How To Plan A Successful Multi-Site Deployment In Mura CMS

Developing the solution

Page 29: How To Plan A Successful Multi-Site Deployment In Mura CMS

Developing the solution

Example Architecture

Page 30: How To Plan A Successful Multi-Site Deployment In Mura CMS
Page 31: How To Plan A Successful Multi-Site Deployment In Mura CMS

Developing the solution

Setting up the infrastructure

Page 32: How To Plan A Successful Multi-Site Deployment In Mura CMS
Page 33: How To Plan A Successful Multi-Site Deployment In Mura CMS

Developing the solution

Setting up software stack • Operating system (Windows and Linux) • IIS or Apache • Railo or ColdFusion • Tomcat • Mura

Page 34: How To Plan A Successful Multi-Site Deployment In Mura CMS

Developing the solution

Configuration management

•Chef

•Puppet

Page 35: How To Plan A Successful Multi-Site Deployment In Mura CMS

Developing the solution

Mura (Multi instance or Single instance?)

Page 36: How To Plan A Successful Multi-Site Deployment In Mura CMS

Developing the solution

Target domains • Development • Staging • QA • Production

Page 37: How To Plan A Successful Multi-Site Deployment In Mura CMS

Developing the solution

Securing the setup

Page 38: How To Plan A Successful Multi-Site Deployment In Mura CMS

Developing a solution

Deployment pre-preparation

Page 39: How To Plan A Successful Multi-Site Deployment In Mura CMS

Deployment

Page 40: How To Plan A Successful Multi-Site Deployment In Mura CMS

Deployment

What is deployment? … and the most important things about it

Page 41: How To Plan A Successful Multi-Site Deployment In Mura CMS

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”

Page 42: How To Plan A Successful Multi-Site Deployment In Mura CMS

Deployment

Basics of deployment …things we typically have to do to get a system up and running

Page 43: How To Plan A Successful Multi-Site Deployment In Mura CMS

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

Page 44: How To Plan A Successful Multi-Site Deployment In Mura CMS

Deployment

How to perform a deployment …different approaches and their advantages and disadvantages

Page 45: How To Plan A Successful Multi-Site Deployment In Mura CMS

Deployment

Manual

Page 46: How To Plan A Successful Multi-Site Deployment In Mura CMS

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

Page 47: How To Plan A Successful Multi-Site Deployment In Mura CMS

Deployment

Manual • Pros

• Have more control • Have always done it

• Easy to do eg using FTP

• Scripts

Page 48: How To Plan A Successful Multi-Site Deployment In Mura CMS

Deployment

Automatic

Page 49: How To Plan A Successful Multi-Site Deployment In Mura CMS

Deployment

Automatic • Pros

• Faster • Less error prone

• Improves consistency

• Requires tools

• Eliminates communication problems

• If you set it up right it will run clockwork

Page 50: How To Plan A Successful Multi-Site Deployment In Mura CMS

Deployment

Modern deployment

Page 51: How To Plan A Successful Multi-Site Deployment In Mura CMS

Deployment

High level view of a deployment process

Page 52: How To Plan A Successful Multi-Site Deployment In Mura CMS

Deployment

Delivery pipeline • Continuous integration tooling

Page 53: How To Plan A Successful Multi-Site Deployment In Mura CMS

Deployment

Continuous integration tooling •VCS integration

Page 54: How To Plan A Successful Multi-Site Deployment In Mura CMS

Deployment

Continuous integration tooling •CI server - Jenkins

Page 55: How To Plan A Successful Multi-Site Deployment In Mura CMS

Deployment

CI Server - Jenkins (screenshot)

Page 56: How To Plan A Successful Multi-Site Deployment In Mura CMS

Monitoring

Page 57: How To Plan A Successful Multi-Site Deployment In Mura CMS

Monitoring

• FusionReactor • Visual VM • New Relic (Rackspace) • Nagios

Page 58: How To Plan A Successful Multi-Site Deployment In Mura CMS

Maintenance and enhancements

Page 59: How To Plan A Successful Multi-Site Deployment In Mura CMS

Maintenance and enhancements

• Sustainability

Page 60: How To Plan A Successful Multi-Site Deployment In Mura CMS

Maintenance and enhancements

• Sustainability

• Post launch support

Page 61: How To Plan A Successful Multi-Site Deployment In Mura CMS

Questions