1. INFORMATION
    1. Joerg Lichtin
    2. Binary Studio Team
    3. Moving from Apprenda to Single Instance Solution
    4. Apprenda is unreliable
    5. REQUIREMENTS
      1. 5 months
      2. 2 developers
      3. 3rd Party auth system
  2. GOALS
    1. Remove Apprenda Cloud
    2. Remain tenant support
    3. Minimize influence on bussiness logic
    4. Simple deployment
    5. Leave possibility to deploy parts on different hosts
  3. Work Scope
    1. Persistence
      1. MS SQL
        1. Tennants table
        2. TenantId column in Every table
        3. Request Start: Obtain TenantID from user identity
        4. DB Save: fill TenantId in entity before save
        5. NHibernate Hooks for TenantId
      2. MongoDB
        1. No changes
    2. Logging
      1. codebase uses same interface
      2. replace internal log provider
    3. Codebase
      1. new Platform Providers
        1. Tenant Context
        2. User(Session) Context
        3. Application Context
          1. App Properties
        4. PermissionProvider
        5. LogProvider
        6. EventProvider
      2. IIS Sites
        1. Desktop communicates with MasterData Only
        2. MasterData
          1. replace Platform Providers
          2. 3 endpoints
          3. /client api
          4. /admin
          5. /services - for services
        3. SignalRHub
          1. replace Platform Providers
        4. Simple Admin Site
          1. monitor state of services
          2. edit App Properties
          3. tenant management
          4. view log/events
        5. WCF Services
          1. Host on IIS or self host
          2. replace Platform Providers
      3. new User Management
        1. API for managing users/roles in MD
        2. user can be in several tenants
        3. admin user can login to all tenants
      4. Scheduler Win Service
        1. no big changes
    4. Event Bus (optional)
      1. all modules can publish events to queue
      2. separate listener app/service
        1. listens to queue
        2. calls correspondent endpoint with event data
    5. Deployment
      1. one-click deploynment of all services on target host
  4. SCHEDULE (TODO)
    1. PHASE 1
      1. Auth services
      2. MasterData Site
      3. Tenant Management
      4. Separate services logic
      5. file logging
    2. MILESTONE 1
    3. PHASE 2
      1. Platform Providers
      2. All services in 1
      3. centralized logging
    4. MILESTONE 2
    5. PHASE 3
      1. 1-click deployment
      2. MD 3 endpoints
      3. Scheduler services
    6. MILESTONE 3
  5. RISK (TODO)
    1. RISK 1
      1. DESCRIPTION
      2. IMPACT
      3. SEVERITY
      4. PROBABILITY
      5. LIKELIHOOD OF PRIOR DETECTION
      6. MITIGATION APPROACH
      7. PROPOSED SOLUTIONS
  6. Questions
    1. How to deal with cache/ update cache?
    2. How to delete/disable tenants?