Deployability Flashcards
Describe deployability
Deployability refers to a property of software indicating that it may be deployed—allocated to an environment for execution—within a predictable and acceptable amount of time and effort.
What is continuous deployment?
If this process is fully automated—that is, if there is no human intervention—then it is called continuous deployment.
Describe the major environments in the deployment pipeline.
- Code is developed in a development environment where it is subject to
standalone unit tests. When the code is committed it triggers the integration
environment. - An integration environment builds an executable version of a service.
- A staging environment tests for various qualities of the total system.
- Once in the production environment, the service is monitored.
What are the three important ways to measure quality of pipelines?
- Cycle time is the pace of progress through the pipeline.
- Traceability is the ability to recover all of the artifacts that led to an element
having a problem. - Repeatability is getting the same result when you perform the same action
with the same artifacts.
What are the benefits of the using the deployment pipeline?
Benefits:
* Time to market is reduced. Since each service is small and independently
deployable, a modification to a service can be deployed without coordinating
with other teams and services.
* Each team can make its own technology choices, as long as the technology
choices support message passing. This reduces errors due to incompatibilities.
* Services are more easily scaled than coarser-grained applications. Since each
service is independent, dynamically adding instances of the service is
straightforward. In this way, the supply of services can be more easily
matched to the demand.