- Multi-tenancy is an architecture in which a single instance of a software application serves multiple customers.
- Health Level-7 or HL7 refers to a set of international standards for transfer of clinical and administrative data between software applications used by various healthcare providers.
Sunday, June 17, 2018
Multi-tenancy
Architecture Concerns
- Scalability: how many users or transactions can it process concurrently?
- Performance: how fast does it respond? what is the max throughput?
- Recoverability: how does the application recover from a fault?
- Security: can it sustain attacks? is data protected?
- Maintainability: how easy is it to maintain?
- Operability: how easy is it to use and managed? how is it operated?
- Availability: is it available 24x7? and is it 99.9% or 99.99%?
Scalability
- Horizontal and Vertical Scalability
- Vertical: Add resources to a single computer (more CPU/RAM). vertical scaling is cheaper
- Horizontal: Add more boxes of similar memory & CPU
Performance
- Parallel Processing, Asynchronous Processing, Caching, multithreading
Recoverability
- Session replication - ability to replicate the user sessions to a secondary server in the cluster
- Backup
- Business Continuity or Disaster Recovery Infrastructure Requirements
Security
- Authentication & Authorization (LDAP, single sign-on), encryption
Maintainability
- Application complexity has direct correlation to maintainability. It is relatively easy to maintain a system with less dependencies.
- Logging
- Robust Error Handling - will keep the system's availability & uptime high
- No direct access to server
- Layered web application is easy to maintain. but multi-threaded application is hard to maintain
- KISS (simple design)
Operability
- Understands the purpose of the system
- Ask users what they really want and design accordingly
- Consistency - standard look & feel
Availability
- Is the amount of time that the system is up and running
- Robust Error Handling - will keep the system's availability & uptime high
- Backups & recovery
- Fault recovery
Backward error recovery (implementing transactions)
System is restored to a previous known valid state
- Exception Handling
Architecture Principles
- DRY ("Don't Repeat Yourself")
- KISS ("Keep It Short & Simple")
- Fit for Purpose (no gold plating)
- Black Box (implementation details should be hidden from inside)
- Divide & Conquer (Separating Responsibilities. mvc/layering)
- Prepare for Failure (designed to tolerate failure)
Blueprints
- Decomposing system in to parts.
- What capability each part delivers, and what capability each part must leverage
- Architect work with customer to determine requirement, based on req - he has the vision of high level components & he develops blueprints
- Blueprint helps architects to communicate with various stakeholders
Architecture Strawman
- Is an early representation of the key elements and concepts
- It does not contain all the levels of detail you can think of
- It will be replaced by TA blueprints
Architecture Patterns
- Architecture Patterns are broader, and can be used from the Solution phase on
- Architectural patterns are high-level strategies that concerns large-scale components
- Design patterns are solutions to software design problems
- Example: MVC, MVVM, Layered Architecture (UI, BL, DAL etc)
Subscribe to:
Posts (Atom)