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