Post

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:

  1. Emphasis on existing services on the cloud
    • Benefits:
    • Better SLA
    • Automation
    • Scaling
    • Security
  2. Emphasis on Cost optimization
    • Capex vs OpEx
This post is licensed under CC BY 4.0 by the author.