Lesson 84 - Defining Deployability

Updated: November 19, 2024

Mark Richards


Summary

The video discusses deployability as an architectural characteristic, emphasizing its importance in ease, frequency, and risk of deployment. Different architecture styles impact deployability, with layered architectures showing low deployability due to high deployment risks, while microservices offer the highest level with isolated changes allowing for daily to hourly deployments. Measuring deployability using tools like rally or JIRA and monitoring architectural refactorings are crucial for tracking improvements and reducing dependencies between services. The speaker recommends his book 'The Fundamentals of Software Architecture' for in-depth knowledge and mentions free architecture lessons and live virtual training opportunities for further learning.


Introduction to Deployability

The speaker introduces the concept of deployability as an architectural characteristic, defining it as the ease of deployment, frequency of deployment, and overall risk of deployment. He discusses how different architecture styles impact deployability, starting with layered architecture.

Layered Architecture

Layered architectures have low deployability due to the ceremony involved, high deployment risk, and infrequent deployments. Deployment involves 100% of functionality, increasing the chance of errors.

Modular Monolith

In the context of modular monoliths, deployability improves compared to layered architecture due to domain partitioning and consolidated changes within specific areas, leading to less deployment risk.

Service-Based Architecture

Service-based architectures show enhanced deployability with separately deployed domain services containing specific functionalities. Deployment risk reduces, allowing more frequent deployments within domain services.

Microservices

Microservices offer the highest level of deployability by defining each service as a separately deployed unit with specific purposes. Changes are isolated, leading to daily to hourly deployments with minimal risk and ceremony.

Measuring Deployability

The speaker discusses methods to measure deployability using tools like rally or JIRA. Metrics include deployment frequency, deployment errors, and deployment effort to track improvements or warning signs, such as increasing deployment time.

Architectural Refactorings

Monitoring architectural refactorings is crucial to ensure deployability. The speaker emphasizes the importance of reducing dependencies between services and highlighting warning signs like increased deployment difficulties.

Additional Information and Training

The speaker promotes his book 'The Fundamentals of Software Architecture' for in-depth knowledge on architectural characteristics. He also mentions free architecture lessons and live virtual training opportunities for further learning and interaction.


FAQ

Q: What is deployability in the context of architecture?

A: Deployability in architecture refers to the ease of deployment, frequency of deployment, and overall risk associated with deployment.

Q: How does layered architecture impact deployability?

A: Layered architectures have low deployability with high deployment risk, infrequent deployments, and involvement of 100% of functionality leading to increased chance of errors.

Q: What advantages do modular monoliths offer in terms of deployability compared to layered architecture?

A: Modular monoliths improve deployability through domain partitioning and consolidated changes within specific areas, reducing deployment risk.

Q: How do service-based architectures enhance deployability?

A: Service-based architectures improve deployability by having separately deployed domain services containing specific functionalities, reducing deployment risk and enabling more frequent deployments within domain services.

Q: Why are microservices considered to offer the highest level of deployability?

A: Microservices define each service as a separately deployed unit with isolated changes, enabling daily to hourly deployments with minimal risk and ceremony.

Q: What are some methods to measure deployability in architecture?

A: Tools like rally or JIRA can be used to measure deployability through metrics such as deployment frequency, deployment errors, and deployment effort to track improvements or warning signs.

Q: Why is monitoring architectural refactorings crucial for ensuring deployability?

A: Monitoring architectural refactorings is crucial to reduce dependencies between services and highlight warning signs like increased deployment difficulties, ensuring continuous deployability.

Q: What resources are recommended for a deeper understanding of architectural characteristics?

A: For in-depth knowledge on architectural characteristics, the book 'The Fundamentals of Software Architecture' is recommended.

Q: What further learning opportunities are mentioned in the text?

A: Free architecture lessons and live virtual training opportunities are mentioned for those seeking further learning and interaction.

Logo

Get your own AI Agent Today

Thousands of businesses worldwide are using Chaindesk Generative AI platform.
Don't get left behind - start building your own custom AI chatbot now!