Component and Integration Pipelines
Table of Content:
Component Dependencies
-
Components towards the left are part of upstream dependency.
-
Components towards the right are part of downstream dependency.
Each component must have:
-
Its own pipeline.
-
Pipeline triggered by:
-
Change in component's code.
-
Any of the upstream dependency.
-
Visualizing Upstream Dependencies
Any change in the upstream components will trigger the build of the downstream component.
Visualizing Downstream Dependencies
Shows the versions of downstream components built for deploying an end product.
Component Pipeline
A component pipeline must:
-
Perform code compilation.
-
Run unit tests.
-
Run acceptance tests.
-
Support manual testing, where appropriate.
-
Assemble one or more binaries that can be deployed to any environment.
A component pipeline is an integral part of the integration pipeline.
Component Pipeline Scenarios
Component pipelines are used in below scenarios:
-
Split application parts with different lifecycle (like building an own version of an OS kernel and coding can be split, as both changes at a different frequency).
-
Functionally split application areas.
-
Components using different technologies.
-
Shared components used by other projects.
-
Stable components that do not frequently change.
What is Integration Pipeline?...
-
At second stage:
-
Deploy the application to a production-like environment.
-
Run smoke tests to identify any integration issues.
-
-
After passing through the second stage successfully, code enters the acceptance test stage.
-
After acceptance test stage, the normal sequence of stages follows.
Integration Pipeline Details
-
Components change between one run of the pipeline and the next.
-
Integrating successful builds of components, need not necessarily produce desired positive result.
-
If the build fails:
-
It will be difficult to conclude the version of the code that caused the failure (code could have changed after the build).
-
A simple solution is to build every possible combination of the good versions of the components.
-
Integration Pipeline Practices
Practices to adhere:
-
Provide build status visibility to the team.
-
Trigger downstream pipelines, as soon as binaries pass through the unit tests.
-
Traceability: Ability to trace back the versions of components that contribute to a successful or failure build.
-
Plan for short pipelines (long pipelines or chains of pipelines may compromise feedbacks).
Learn Continuous Deployment from scratch! This beginner-level course covers CI/CD pipelines, automation, and deployment strategies. Perfect for developers, testers, and IT professionals looking to streamline software delivery.