Solutions Architecture Flashcards

1
Q

What are the three most popular architecture patterns?

A

Microservices, event-driven, and service-oriented.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is a microservices architecture?

A

A complex application is broken down into a collection of small, independent, and loosely coupled services.

Each microservice represents a specific business capability and can be developed, deployed, and scaled independently.

Communication between microservices typically occurs through lightweight protocols such as HTTP or messaging systems

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What is event-driven architecture?

A

Event-driven architecture (EDA) is an approach where systems respond to events by producing, consuming, and reacting to events.

An event represents a significant change or occurrence within the system or the external environment.

Events are typically asynchronous and can be produced or consumed by various components or services.

Events are the primary means of communication between components or services, promoting loose coupling.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What is service oriented architecture?

A

Service-oriented architecture (SOA) is an architectural style that focuses on organizing software systems as a collection of services.

Services are self-contained, reusable software components that expose well-defined interfaces and can be accessed and used by other services or applications.

Services encapsulate specific business functions or processes and expose them through standardized interfaces.

Services are designed to be loosely coupled, allowing them to evolve and be replaced without affecting other services.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

How can you optimise performance when designing a solution?

A
  1. Performance requirements: Clearly define early in the design process. Identify critical use cases and performance bottlenecks to focus optimization efforts.
  2. Scalability: Design the solution to scale horizontally or vertically as per the anticipated load. Use techniques such as load balancing, caching, and distributed computing to distribute the workload.
  3. Efficient data handling: Optimize data access and storage by using appropriate data structures, indexing, and caching mechanisms. Leverage technologies like in-memory databases or data grids for fast data retrieval.
  4. Performance testing: Conduct comprehensive performance testing to identify and address performance bottlenecks. Use load testing tools and simulate realistic usage scenarios to validate the solution’s performance.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

How can you optimise reliability when designing a solution?

A
  1. Redundancy and fault tolerance: Incorporate redundancy and fault-tolerant mechanisms at different levels, such as hardware, software, and infrastructure, to mitigate failures and ensure high availability.
  2. Automated monitoring and alerting: Implement robust monitoring and logging solutions to proactively identify issues. Set up alerts to notify administrators about critical system events and failures.
  3. Failure recovery and disaster resilience: Design the solution with disaster recovery plans, backup strategies, and failover mechanisms to minimize downtime and data loss in the event of failures.
  4. Error handling and fault isolation: Implement proper error handling mechanisms and design services or components to be isolated from one another to prevent cascading failures.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

How can you optimise availability when designing a solution?

A
  1. High availability architecture: Design the solution with redundancy and failover capabilities to minimize downtime. Use technologies such as load balancers, clustering, and hot standby servers to ensure continuous availability.
  2. Geographical distribution: Consider deploying the solution across multiple regions or data centers to provide better availability and reduce the impact of localized failures or outages.
  3. Service-level agreements (SLAs): Define and meet SLAs for availability. Set recovery time objectives (RTO) and recovery point objectives (RPO) to guide the design and implementation of the solution’s availability features.
  4. Continuous monitoring and maintenance: Continuously monitor the solution’s health and performance to detect and address potential issues before they impact availability. Regularly update and maintain the system to address security vulnerabilities and improve stability.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What are the 6 key factors to consider when evaluating different solution architecture options?

A
  1. Functional Requirements: align with the desired functionality, features, and use cases?
  2. Non-Functional Requirements:
    - Scalability
    - Reliability and Availability
    - Performance
    - Security
    - Maintainability
  3. Technology and Tools:
    - Compatibility with existing technology stacks, infrastructure, and development tools
    - Skills and Expertise within the team
    - Vendor Support
  4. Cost and ROI:
    - Upfront investments, licensing fees, operational expenses, and ongoing maintenance.
  5. Future Flexibility and Adaptability: future changes, scalability, and integration of new technologies or features.
  6. Stakeholder Alignment
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What is the 12 step process for analysing and designing solution architectures?

A
  1. Understand Business Requirements
  2. Identify Stakeholders and User Needs
  3. Define Architecture Objectives and Constraints
  4. Conduct Current State Analysis
  5. Decompose and Analyze
  6. Identify Architecture Patterns and Technologies
  7. Iterative Design and Validation
  8. Risk Assessment and Mitigation
  9. Iteratively Refine and Document
  10. Collaborate and Communicate
  11. Review and Governance
  12. Monitor and Adapt
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

How should a solution architect handle trade offs between cost, performance, scalability and maintainability?

A

This requires a holistic and pragmatic approach, involving understanding the unique requirements, priorities, and constraints of the specific project or organization and making well-informed decisions that strike a balance between these factors.

Factors to consider:
- Understand Business Priorities
- Define Requirements and Constraints
- Analyze Impact and Dependencies
- Consider Lifecycle Costs
- Quantify Trade-offs
- Prioritize Performance-Critical Components (Invest more resources and effort in optimizing these areas)
- Leverage Cost-Effective Technologies
- Emphasize Modularity and Abstraction
- Plan for Scalability
- Automate Processes
- Consider Trade-off Reversibility
- Collaborate with Stakeholders

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

How can emerging technologies impact solution designs?

A

Emerging technologies significantly impact solution architecture by:
- expanding capabilities
- influencing architectural patterns
- introducing integration challenges
- improving scalability and performance
- raising security and privacy considerations
- affecting infrastructure and deployment models
- shaping data management and analytics approaches

Solution architects must embrace these technologies, understand their implications, and leverage them appropriately to design modern, efficient, and future-proof architectures.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What are the three security by design principles?

A
  1. least privilege
  2. defense-in-depth (multiple security measures)
  3. separation of concerns
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

How can a solution architect address security and compliance concerns in their designs?

A
  1. Understand Security and Compliance Requirements
  2. Adopt Security by Design Principles
  3. Perform Risk Assessment
  4. Implement Secure Authentication and Authorization
  5. Apply Secure Data Handling and data protection measures
  6. Secure Communication Channels
  7. Implement Threat Monitoring and Detection
  8. Conduct Regular Security Testing
  9. Establish Incident Response and Recovery Plans
  10. Stay Updated on Security Threats and Best Practices
  11. Collaborate with Security and Compliance Teams
  12. Document Security and Compliance Considerations
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What are the key features of Databricks?

A

Databricks is a unified analytics platform designed for big data processing and machine learning.

Key Features:

  1. Apache Spark Integration: provides optimized Spark runtime environment,
  2. Unified Workspace: collaborative environment for data engineers, data scientists, and analysts, including interactive notebooks and data sharing
  3. Automated Spark Cluster Management
  4. High Performance Computing: highly optimized runtime for Spark workloads
  5. Data Source Integration: seamless integration with various data sources and storage systems, e.g. Amazon S3, Azure Blob Storage, Hadoop Distributed File System (HDFS), and more.
  6. Machine Learning: MLlib and MLflow
  7. Streaming Analytics: integration with Apache Spark Streaming and Structured Streaming
  8. Data Engineering Capabilities: supports batch processing, real-time streaming, and complex data workflows
  9. Security and Governance: data protection, IAM, and compliance, role-based access control (RBAC), data encryption at rest and in transit, audit logs, and integration with external authentication systems.
  10. Scalable Cloud Infrastructure: runs on major cloud platforms such as AWS, Azure, and GCP. It leverages the underlying cloud infrastructure to provide scalable and elastic computing resources
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What is the benefit of Databricks’ integration with Spark?

A

Databricks’ integration with Apache Spark simplifies the deployment, management, and optimization of Spark workloads, enabling users to focus on data analysis, machine learning, and advanced analytics tasks rather than infrastructure management.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What are ACID guarantees?

A

ACID guarantees are provided by the open source Delta Lake protocol. ACID stands for atomicity, consistency, isolation, and durability.

  • Atomicity means that all transactions either succeed or fail completely.
  • Consistency guarantees relate to how a given state of the data is observed by simultaneous operations.
  • Isolation refers to how simultaneous operations potentially conflict with one another.
  • Durability means that committed changes are permanent.
17
Q

What is the Delta Lake?

A

Delta Lake is an open-source storage layer that brings reliability to data lakes by adding a transactional storage layer on top of data stored in cloud storage (on AWS S3, Azure Storage, and GCS).

It allows for ACID transactions, data versioning, and rollback capabilities. It allows you to handle both batch and streaming data in a unified way.

Delta tables are built on top of this storage layer and provide a table abstraction, making it easy to work with large-scale structured data using SQL and the DataFrame API.

18
Q

What are Delta Live Tables?

A

Delta table is a way to store data in tables, whereas Delta Live Tables allows you to describe how data flows between these tables declaratively.

Delta Live Tables is a declarative framework that manages many delta tables, by creating them and keeping them up to date.

In short, Delta tables is a data table architecture while Delta Live Tables is a data pipeline framework.

19
Q

What is Delta Sharing?

A

An open standard for secure data sharing, Delta Sharing enables data sharing between organizations regardless of their compute platform.

20
Q

What is Delta Engine?

A

A query optimizer for big data that uses Delta Lake open source technology included in Databricks.

Delta engine optimizes the performance of Spark SQL, Databricks SQL, and DataFrame operations by pushing computation to the data.