Architecture Process
Introduction
- Below are the steps followed to desing an architecture:
1. Understand the System’s Requirements
Description
: This initial step involves understanding what the system should accomplish, essentially defining the functional requirements.Tasks
:- Clarify goals set by stakeholders.
- Collaborate with system analysts to define detailed functional requirements.
- Ensure clarity on what tasks the system needs to perform.
2. Understand the Non-Functional Requirements
Description
: Non-functional requirements focus on technical and service-level attributes such as performance, scalability, security, and reliability.Tasks
:- Define metrics like user loads, transaction volumes, and expected performance benchmarks.
- These are often derived from technical constraints and operational needs, not always explicitly stated by clients or analysts.
3. Map the Components
Description
: This step involves visually representing the tasks and interactions within the system to understand its functionality.Tasks
:- Create diagrams or flowcharts to depict system processes and interactions.
- Facilitate understanding and communication between architects, developers, and stakeholders.
- Ensure that non-technical stakeholders can grasp the system’s workings.
4. Select the Technology Stack
Description
: Choose appropriate technologies and frameworks for different layers of the application (backend, frontend, data storage, etc.).Tasks
:- Evaluate technologies based on functional and non-functional requirements.
- Consider factors like scalability, compatibility, and industry best practices.
- Ensure alignment with organizational standards and existing infrastructure.
5. Design the Architecture
Description
:- Design the overall structure and interaction patterns of the system based on requirements and selected technologies.
Tasks
:- Define high-level components/modules and their interactions.
- Specify communication protocols and data formats.
- Address key architectural concerns such as scalability, reliability, and maintainability.
6. Write Architecture Document
Description
: Document the architecture to provide a comprehensive overview for stakeholders, developers, and support teams.Tasks
:- Structure the document to include sections on architecture overview, components, deployment diagrams, and technology choices.
- Describe rationale behind design decisions and trade-offs.
- Ensure documentation is clear, concise, and accessible to all relevant parties.
7. Support the Team
Description
: Provide ongoing support to development and operational teams as they implement and maintain the system.Tasks
:- Collaborate with developers to clarify architectural guidelines and resolve design issues.
- Update architecture documentation as the system evolves.
- Assist support teams in understanding system architecture to troubleshoot issues effectively.
Architecting for the Cloud:
- Emphasis on existing services on the cloud
- Benefits:
- Better SLA
- Automation
- Scaling
- Security
- Emphasis on Cost optimization
- Capex vs OpEx
This post is licensed under CC BY 4.0 by the author.