Please enable JavaScript.
Coggle requires JavaScript to display documents.
Solution Architecture - Coggle Diagram
Solution Architecture
Principles
Scaling workload
Predictive scaling
(as adding
new resources may take some time)
collect historical data of application workload
actively scale resources on those periods such as month-end, campaign
Reactive scaling
deal with sudden traffic spikes
auto-scale
Building resilient architecture
Design for performance
Using replaceable resources
Treating your server as a replaceable resource, which enables you to move more quickly to accommodate changes such as upgrading applications and underlying software
Creating immutable infrastructure
during application upgrades, you will not only replace software, but hardware too
make your application stateless and avoid the
hardcoding of any server IP or database DNS name
Think loose coupling
Load balancer
Message-driven or event-driven
Async
Think service not server
Using the right storage for the right need
Durability requirement: How should data be stored to prevent data corruption?
Data availability: Which data storage system should be available to deliver data?
Latency requirement: How fast should the data be available?
Data throughput: What is the data read and write need?
Data size: What is the data storage requirement?
Data load: How many concurrent users need to be supported?
Data integrity: How to maintain the accuracy and consistency of data?
Data queries: What will be the nature of queries?
Think data-driven design
Overcoming constraints
prioritized requirement
Must have
Should have
Could have
Won't have
Define minimum viable product (MVP)
Adding security everywhere
Physical security of data center: All IT resources in data centers should be secure from unauthorized access.
Network security: The network should be secure to prevent any unauthorized server access.
Identity and Access Management (IAM): Only authenticated users should have access to the application, and they can do the activity as per their authorization.
Data security in-transit: Data should be secure while traveling over the network or the internet.
Data security at rest: Data should be secure while stored in the database or any other storage.
Security monitoring: Any security incident should be captured, and the team alerted to act.
Automating everything
Application testing
IT infrastructure using Infra as Code
Logging, monitoring, and alerting
Deployment automation
Security automation
Quality attributes
Scalability and elasticity
High availability and resiliency
Fault tolerance and redundancy
Disaster recovery and business continuity
Recovery Time Objective (RTO) and Recovery Point Objective (RPO): decreasing RTO/RPO will increasing cost.
Should classify mission-critical apps (ex: Diamond/Gold/Silver) and define RTO/RPO correspondingly
DR plans
Backup and Store (No DR)
Pilot Lite (hot-cold)
Warm Standby (hot-warm)
Multi-site (hot-hot)
Extensibility and reusability
Usability and accessibility
Portability and interoperability
Operational excellence and maintainability
Security and compliance
Authentication and Authorization
Web security
Network security
Infrastructure security
Data security
Cost optimization and budgets
Everyday aspect of solution architecture
Addressing the business needs and quality of
delivery
Selecting the best technology platform
Addressing solution constraints and issues
Helping in resource and cost management
Managing solution delivery and project life cycle
Addressing non-functional requirements
Disaster recovery
Security and compliance
High availability
Scalability:
Application performance