Skip to content
Alen Pelin edited this page Apr 10, 2017 · 22 revisions

NextGen

aka SIM 2

Description

Implement a system to set up scaled Sitecore solution: several Sitecore instances deployed to different servers acting with different roles.

High-Level Overview

SIM 1.x was designed for development environment and rapid Sitecore installation of any version. The main purpose was to improve PSS support ticket workflow to perform investigation on clean Sitecore instance of given version. So entire process was built around this subject. Main features:

  • bypass security - to save time on typing passwords
  • app pool state control - to simulate production conditions
  • installation of modules/packages/tweaks
  • backup/restore - to recover previous instance state after unsuccessful experiment
  • reinstall - to prepare an instance for next ticket

SIM 2.0 will be designed for different purpose, it should be portable solution-wide multi-environment Sitecore-specific CI system that can be used for simple non-production deployments with support of

  • remote web/IIS servers,
  • remote SQL/Mongo/Solr servers

It should be possible to spin-up production-like one or several test environments with many Sitecore instances in each having either only a dev laptop or a bunch of geographically-distributed servers.

SIM 2.1 should expose Sitecore Information Service to download necessary Sitecore versions on-the-fly.

SIM 2.2 should deliver backup/restore and export/import functionality on the solution-scale level.

Format

It is proposed to stick to command-line interface first, in 2.0 have only two major commands:

  • to create a solution manifest and solution lock file
  • to deploy - take the manifest and lock file, and make a deployment

A solution manifest must not contain any connection strings, file paths etc. It must describe a solution configuration, number of servers, their roles and connections, but not the actual paths and connection strings.

A solution lock file contains necessary variables for the manifest file e.g. paths and connection strings.

Technical Aspects

  1. Command-line interface with no progress indication (workaround: realtime log viewer is monitoring log file)
  2. Not a Client-Server architecture.
  3. 8.1.2+ with Configuration Roles to avoid configuration hassle.
  4. .NET 4.5 with further optional migration to .NET Core
  5. TDD

Roadmap

SIM 2.0.0 must be able to setup a VS-project-less solution with 1xCM and 2xCD instances on a dev laptop using 2 different local SQL Servers (one for core+web, another for master+reporting) and using single local instance of MongoDB and Solr. Manifest should be stored in the current dir. Target: FY17Q4

SIM 2.0.1 should add a list of all solutions created on the dev laptop i.e. manifests must be stored in a user folder or in user-defined one.

SIM 2.0.2 should add support of environments - ability to have several independent copies of the solution including on the same dev laptop.

SIM 2.0.3 should add support of remote SQL Server instances.

SIM 2.0.4 should add support of remote IIS instances using IIS Administration API https://docs.microsoft.com/en-us/iis-administration/

TODO

  1. Existing solution - how to migrate to new format
  2. Development station - new solution: how to develop