SERVER VIRTUALIZATION WITH MICROSOFT HYPER

Download Report

Transcript SERVER VIRTUALIZATION WITH MICROSOFT HYPER

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.