Setting Up a Sandbox Presented by: Kevin Brunson Chief Technology Officer

Embed Size (px)

Citation preview

  • Slide 1
  • 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
  • Slide 32
  • Rename the Copies
  • Slide 33
  • Configure MinistryPlatformTesting web.config Connection String File Storage
  • Slide 34
  • 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.