Setting Up a Sandbox Presented by: Kevin Brunson Chief
Technology Officer
Slide 2
What is a sandbox?
Slide 3
Expectation: Worlds Coolest Sand Castle!
Slide 4
Reality: Pile of Sand
Slide 5
Reality: Disappointment
Slide 6
Reality: Sand In Eyes
Slide 7
Software Development Picture it in your head Change your code
Blow up your production environment
Slide 8
The Goal Make changes in an environment that doesnt 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.
Slide 9
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.
Slide 10
What do you need?
Slide 11
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.
Slide 12
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
Slide 13
Memory and CPU Resources Since the sandbox wont have a lot of
simultaneous users it shouldnt 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.
Slide 14
Software Resources If your sandbox will be on the same server
as your production environment you shouldnt 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 cant really comment without knowing
specifics
Slide 15
Now that all the basics are out of the way, how do you create a
sandbox?
Slide 16
Making changes to your system has risks. HUGE RISKS! So be
careful, and dont get in over your head. Performing any of these
steps incorrectly could cause downtime or data loss. We cant take
any responsibility for problems that may occur.
Slide 17
Risk Avoidance Backups Snapshots
Slide 18
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.
Slide 19
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 dont bother. If you absolutely
need a sandbox of reporting services you should discuss it with
ThinkMinistry.
Slide 20
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
Slide 21
Back Up Your Database
Slide 22
Slide 23
Restore Your Database
Slide 24
Slide 25
Slide 26
Slide 27
Slide 28
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
Slide 29
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:
Slide 30
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
Slide 31
Copy Application Files Copy and Paste the MinistryPlatform and
MinistryPlatformAPI folders
Configure MinistryPlatformTestingAPI web.config Connection
String File Storage and API Password
Slide 35
Create MinistryPlatformTesting Internal Application Pool
Slide 36
Slide 37
Cronfigure MinistryPlatformTesting Internal Application
Pool
Slide 38
Convert to Application
Slide 39
Configure Application
Slide 40
Success!
Slide 41
Reminder Core Tools will be pointed at your production database
if you stop here, which could result in unwanted data changes.
Slide 42
MPCoreTools
Slide 43
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
Slide 44
Copy Core Tools to New Folder
Slide 45
Update API path in web.config Use the API Password you
specified in the SQL script to update the testing database
Slide 46
Convert to Application
Slide 47
Update URLs in Testing Database
Slide 48
Everything Else
Slide 49
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
Slide 50
Update APIGUID
Slide 51
Update API Path
Slide 52
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
Slide 53
Update portal web.config
Slide 54
Wrap-Up
Slide 55
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.
Slide 56
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.
Slide 57
Questions??
Slide 58
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.
Slide 59
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.