Efficient Upgrades Steve Mallam, Sales Engineer. Highly available systems 24/7/365 Service Level...

Preview:

Citation preview

Efficient Upgrades

Steve Mallam, Sales Engineer

• Highly available systems• 24/7/365• Service Level Agreements

• Mission critical operations

• Time sensitive work

• $$$£$

Upgrade Considerations

• Efficient for the users• Not necessarily for you

• Need to be planned in advance

• Need to be appropriate for the application

Efficient Upgrades

201x

• In-place installer upgrade

Basic Upgrade Process

• Application is down for the duration

20122013

• In-place installer upgrade

Basic Upgrade Process

• Application is down for the duration

• Fall-back can be difficult

2012

Parallel Installation

2013

• Install a second system alongside original

2012

• In-place installer upgrade

Basic Upgrade Process

2012

Parallel Installation

2013

• Install a second system alongside original

• Then cut over

2012

• Need to ensure data is up-to-date

Parallel Installation

2013

• Install a second system alongside original

• Then cut over

• Store data and code in separate databases

Separation of Data and Code

2012

DC

2013

C

• Store data and code in separate databases

Separation of Data and Code

2012

DC

2013

• Store data and code in separate databases

Separation of Data and Code

2012

DC C D

2013

D

• Store data and code in separate databases

Separation of Data and Code

2012

DC C

M2M1

InterSystems’ High-Availability solution

Mirroring

M

• Clients connect to virtual IP

• Updates replicated across both instance

NB: For more details see “Mirroring for High Availability” academy

M2M1M1

InterSystems’ High-Availability solution

Mirroring

M

• Clients connect to virtual IP

• Updates replicated across both instances

• If M1 fails…

NB: For more details see “Mirroring for High Availability” academy

M1 M2

InterSystems’ High-Availability solution

Mirroring

M

• Clients connect to virtual IP

• Updates replicated across both instances

• If M1 fails…

• …M2 can take over

NB: For more details see “Mirroring for High Availability” academy

M2M1

How does this help us…?

• Upgrade BackupM1

Mirroring

M

M2

How does this help us…?

• Upgrade Backup

• Force failover M1

Mirroring

M

M2M1

How does this help us…?

• Upgrade Backup

• Force failover

• Upgrade (original) Primary

Mirroring

M

How does this help us…?

• Upgrade Backup

• Force failover

• Upgrade (original) Primary

• (Optionally) fail back

M1 M2

Mirroring

M

• Introduce one or more Application Servers that execute code

D

App1

Enterprise Cache Protocol (ECP)

App2

Solution for horizontal scaling

• Introduce one or more Application Servers that execute code

• Can keep adding…

D

App1

Enterprise Cache Protocol (ECP)

App2 AppN…

Solution for horizontal scaling

M1 M2

Enterprise Cache Protocol (ECP)

M

Connection lost when mirror fails over

NB: For more details see “Mirroring for High Availability” academy

M2M1

Enterprise Cache Protocol (ECP)

M

Connection lost when mirror fails over

NB: For more details see “Mirroring for High Availability” academy

M1 M2

Enterprise Cache Protocol (ECP)

M

Connection lost when mirror fails over

NB: For more details see “Mirroring for High Availability” academy

M1 M2

App1

Enterprise Cache Protocol (ECP)

M

Connection lost when mirror fails over

• Introduce ECP

NB: For more details see “Mirroring for High Availability” academy

M2M1

App1

Enterprise Cache Protocol (ECP)

M

Connection lost when mirror fails over

• Introduce ECP

• When mirror fails

NB: For more details see “Mirroring for High Availability” academy

M1 M2

App1

Enterprise Cache Protocol (ECP)

M

Connection lost when mirror fails over

• Introduce ECP

• When mirror fails

• ECP maintains connection

NB: For more details see “Mirroring for High Availability” academy

M1 M2

App1

• Still need to upgrade the Application Server…

Enterprise Cache Protocol (ECP)

M

Connection lost when mirror fails over

• Introduce ECP

• When mirror fails

• ECP maintains connection

NB: For more details see “Mirroring for High Availability” academy

S

M1C

M2C

A truly robust solution

• Mount code in separate instance

Minimal Downtime Upgrades

App1

M

App2LoadBalancer

C

NB: For full details of this process see “Minimal Downtime Upgrades” academy

SC

M1C

M2C

A truly robust solution

• Mount code in separate instance

• Recompile

Minimal Downtime Upgrades

App1

M

App2LoadBalancer

NB: For full details of this process see “Minimal Downtime Upgrades” academy

SC

M1C

M2C

A truly robust solution

• Mount code in separate instance

• Recompile

• Mount on both mirror servers

Minimal Downtime Upgrades

App1

M

App2LoadBalancer

C C

NB: For full details of this process see “Minimal Downtime Upgrades” academy

App1

M1C

M2C

Upgrade App1

• Shutdown App1

• Upgrade

Minimal Downtime Upgrades

M

App2LoadBalancer

C C

App1

M1C

M2C

Upgrade App1

• Shutdown App1

• Upgrade

• Switch to new code

• Restart App1

Minimal Downtime Upgrades

M

App2LoadBalancer

C C

App2App1

M1C

M2C

Repeat for App 2

• Shutdown App2

• Upgrade

Minimal Downtime Upgrades

M

LoadBalancer

C C

Repeat for App 2

• Shutdown App2

• Upgrade

• Switch to new code

• Restart App2App2App1

M1 M2C

Minimal Downtime Upgrades

M

LoadBalancer

C C

M2Upgrade Mirrors

• Prevent failover

• Upgrade Mirror2

M1M1

App2App1

Minimal Downtime Upgrades

M

LoadBalancer

C C

M1Upgrade Mirrors

• Prevent failover

• Upgrade Mirror2

• Force failover

M2C

M2

App2App1

Minimal Downtime Upgrades

M

LoadBalancer

C C

M1Upgrade Mirrors

• Prevent failover

• Upgrade Mirror2

• Force failover

• Prevent failover

• Upgrade Mirror1

M2C

M2

App2App1

Minimal Downtime Upgrades

M

LoadBalancer

C C

• In-place upgrades

• Parallel installations

• Separation of code and data

• Mirroring

• ECP

Summary

Upgrade Mirrors

• Prevent failover

• Upgrade Mirror2

• Force failover

• Prevent failover

• Upgrade Mirror1

• (Optionally) fail back to Mirror 1

Application has NEVER been down!

M2M1

App2App1

Minimal Downtime Upgrades

M

LoadBalancer

C C

• Understand user needs

• Determine how you will handle upgrades

• Design the system to support the approach

• Speak to us!

Recommendations

• Mirroring for High Availability• Tuesday @ 11:00 • Wednesday @ 08:30

• Minimum Downtime Upgrades• Monday @ 16:30• Tuesday @ 08:30• Wednesday @ 14:00

Follow-On Academies

Orlando M

Orlando N

Efficient Upgrades

Steve Mallam, Sales Engineer

Recommended