SERVER VIRTUALIZATION WITH MICROSOFT HYPER

advertisement

Setting Up a Sandbox

Presented by:

Kevin Brunson

Chief Technology Officer

What is a sandbox?

Expectation:

World’s Coolest Sand Castle!

Reality:

Pile of Sand

Reality:

Disappointment

Reality:

Sand In Eyes

Software Development

Picture it in your head

Change your code

Blow up your production environment

The Goal

• Make changes in an environment that doesn’t matter.

• Preferably an exact copy of your production environment.

• Test your changes to see if the result ends up looking like it did in your head.

• Avoid accidentally breaking your production environment.

The Solution

• A sandbox instance is a separate copy of the

Ministry Platform application in IIS

• Accessing a separate copy of the Ministry

Platform database in SQL

• Because it looks just like your production environment, your sandbox is a perfect place to see how changes to your system will behave

• Without affecting your production environment.

What do you need?

Hardware Resources

You will need to have system resources available to support a second copy of Ministry Platform.

Most churches run the sandbox instance on the same server(s) as the production instance.

Disk Resources

• Enough disk space on your SQL server for a second copy of your MinistryPlatform database

• Enough disk space on your IIS server for a second copy of any Ministry Platform application directories you want to duplicate (checkin, portal, etc)

• If you want to be able to make backups of your sandbox, you will need enough disk space to store the backups

Memory and CPU Resources

• Since the sandbox won’t have a lot of simultaneous users it shouldn’t require a lot of

CPU cycles, but if your system is already overloaded adding a sandbox might not be the best idea

• Since it will be running a separate database you can expect memory usage to jump when you add a sandbox.

Software Resources

• If your sandbox will be on the same server as your production environment you shouldn’t have to purchase any additional software

• If you decide to build your sandbox on a different server there are a lot of software licensing scenarios that could come into play, so I can’t really comment without knowing specifics

Now that all the basics are out of the way, how do you create a sandbox?

Making changes to your system has risks.

HUGE RISKS!

So be careful, and don’t get in over your head.

Performing any of these steps incorrectly could cause downtime or data loss. We can’t take any responsibility for problems that may occur.

Risk Avoidance

Backups

Snapshots

The MinistryPlatform Ecosystem

When it comes to the process of creating a sandbox you can break the process into 3 sets

• MinistryPlatform/API

• MPCoreTools

• Portal/Checkin(2)/ClassroomManager/MPMobile/etc

Before you can create a development environment for any of the other apps, you have to start with

MinistryPlatform and MinistryPlatformAPI.

A Few Notes

• Creating a MinistryPlatformTesting application will not automatically create a testing instance of all the other applications, including MPCoreTools

• We generally ignore MobileTools when setting up a sandbox. It is not hard to do but there is not much point.

• A sandbox of Reporting Services is WAY beyond the scope of this discussion. Most churches don’t bother.

If you absolutely need a sandbox of reporting services you should discuss it with ThinkMinistry.

Creating the MinistryPlatformTesting

Application - Overview

• Restore a backup of your production

MinistryPlatform database to a new database

• SQL housekeeping (via script)

• Copy the MinistryPlatform files

• Create and configure the application in IIS

Back Up Your Database

Back Up Your Database

Restore Your Database

Restore Your Database

Restore Your Database

Restore Your Database

Restore Your Database

Update the Testing Database

• Change the Application Name

• Update Database Security and Ownership

• Generate new Domain_GUID

• Set a new API Password

• Re-enable the Service Broker

This process is very different in Platform 2

Thankfully all the changes are now in a script

Download it from: https://dl.dropboxusercontent.com/u/11507174/SetupTestingDatabase.zip

Running the Script

• Edit the ‘newAPIPassword’ variable

• Execute the query against your

MinistryPlatformTesting database

• Make note of the Domain_GUID value since you will need it later:

Create Testing Folders

• In the root of your web server you should see the following:

• Create the 3 new folders in the same location:

• Copy the contents of _MinistryPlatformTools into the new _MinistryPlatformTestingTools folder

Copy Application Files

Copy and Paste the MinistryPlatform and

MinistryPlatformAPI folders

Rename the Copies

Configure MinistryPlatformTesting web.config

Connection String

File Storage

Configure MinistryPlatformTestingAPI web.config

Connection String

File Storage and API Password

Create MinistryPlatformTesting

Internal Application Pool

Create MinistryPlatformTesting

Internal Application Pool

Cronfigure MinistryPlatformTesting

Internal Application Pool

Convert to Application

Configure Application

Success!

Reminder

Core Tools will be pointed at your production database if you stop here, which could result in unwanted data changes.

MPCoreTools

Creating a sandbox for MPCoreTools

• Create a copy of the MPCoreTools folder called

MPCoreToolsTesting

• Update the API path and password in

MPCoreToolsTesting web.config

• Update the URLs for MPCoreTools in the

MinistryPlatformTesting database with the path to point to the new sandbox

Copy Core Tools to New Folder

Update API path in web.config

Use the API Password you specified in the SQL script to update the testing database

Convert to Application

Update URLs in Testing Database

Everything Else

Create a Sandbox for the Checkin2 and

Classroom Manager

Checkin2 and ClassroomManager use the same basic process for creating a sandbox

• Create a copy of the application folder

• Update the APIGUID, APIPassword, and ImagePath in the web.config

• Update the path to the MP API in the web.config

• Convert to Application in IIS

Update APIGUID

Update API Path

Create a Sandbox for Portal

Portal is very similar to Checkin2 and

ClassroomManager, but the section headings look a bit different

• Create a copy of the application folder

• Update the APIGUID, APIPassword, and root folder in the web.config

• Update the path to the MP API in the web.config

• Convert to Application in IIS

Update portal web.config

Wrap-Up

Test, Test, Test

Before you start making changes, it is important to make sure everything worked as expected

• Login to all of your new sandbox applications to make sure they launch as expected

• Create a new record in your production

MinistryPlatform application. Search for that record in your sandbox. If it shows up in the sandbox then something went wrong

• Create a new record in your sandbox. Check your production environment for that record. Again, if you find the new record something went wrong.

Back Up Your Sandbox

Before you start making changes, make a backup of your new applications

• MinistryPlatformTesting database in MS SQL

• Folders for each sandbox application you created on your IIS server

Decide whether you want to add the sandbox database to your SQL scheduled backups. If you have the space it is highly recommented.

Questions??

About the Presenter:

Kevin Brunson is the Chief Technology Officer of

Higher Ground Technologies in Collierville, TN.

He holds a BA degree from Crichton College and a myriad of industry certifications including

MCSE. Kevin has been working with church technology since 2000.

Higher Ground Technologies, Inc exists to serve the unique technology needs of churches nationwide. The company provides network design and consulting services, system integration and a full suite of IT management services for churches wishing to outsource some or all of their technology management. Higher

Ground Technologies also provides VoIP communication systems, enterprise wireless networks, secure online backup services, 24x7 network monitoring and support, and high performance, extremely reliable network servers and security devices.

Download