Driving a new Kubernetes Pipeline
Your pipeline will soon be changing. Supporting microservices in a CI/CD process is different from a monolithic application. First of all, you will go from a few workflows to hundreds. The CI step (check-out and build) will involve less compiling and focus on building and registering a container image. Configuration management will shift from deciding what source and libraries to include in the build, to linking at run-time using APIs. So while you still have a pipeline process, it will look different. DeployHub fits into this new pipeline landscape.
The DeployHub CircleCI Deployment Orb
DeployHub empowers high performing software developers to simplify a microservice architecture through configuration and inventory management. DeployHub catalogs, publishes, shares and deploys microservices across the organization, quickly and safely on a hosted (SaaS) platform. DeployHub integrates with CircleCI to enrich the CI/CD pipeline around microservices. Critical to the process is the ability to perform configuration management, versioning and tracking of microservices across clusters and teams. DeployHub’s CircleCI orb includes the ability to perform automated version and dependency management of microservices tracking application and microservice relationships, their versions and their deployment meta data.
Check-out our Webinar “Pivoting from monolithic to microservices with CircleCI and DeployHub”
And while you are thinking this will break the budget in terms of cost, let me stop you there. DeployHub is an open source solution, hosted for free by DeployHub Inc. You can start with a single project and begin learning how to incorporate DeployHub’s inventory and configuration management as part of your CircleCI pipeline.
DeployHub tasks and the CircleCI deployment orb
The DeployHub CircleCI orb calls DeployHub to perform:
- ApproveJob- Allows CircleCI to call DeployHub’s approval process to approve an application version to be moved to the next stage of the pipeline. The approval occurs as the UserID is passed from CircleCI to DeployHub. Depending on your DeployHub configuration, you may need to call the ApproveJob. This would happen if an approval gate is defined in DeployHub. CircleCI will pass the application version and the ‘Move’ task to DeployHub.
- MoveJob – Executes the DeployHub ‘Move’ task which promotes or demotes an application version to a different pipeline state.
- Microservice_version_update_job – Automatically increments the version number of a microservice and the application prior to deployment. Tracks dependency relationships between microservices and applications to create dependency maps.
- DeployJob- Deploys an application version to a specified environment. CircleCI will pass the application version name and environment to DeployHub.
You do not need to use the ‘ApproveJob ‘or ‘MoveJob’ tasks. The use of these tasks is determined by how you define your CircleCI pipeline. If you are using Approvals in CircleC, the ApproveJob records the approval information as part of the microservice deployment meta. A ‘Move’ process tracks where the microservice and application versions are in the pipeline. You would generally perform a ‘Move’ and then a ‘Deploy.’ Using the Microservice_version_update_job is recommended before the DeployJob. This allows DeployHub to perform your versioning, configuration management, dependency mapping and comparisons. The DeployJob calls on DeployHub’s back in release engine to move the objects to endpoints (clusters for example.)
Installing the CircleCI Deployment Orb
To start using the DeployHub CircleCI Deployment Orb, you will need to create a .circleci/config.yml to define your workflow to CircleCI for that project. That workflow will define calls to the DeployHub jobs and define the variables such as Application Version, Environment, UserID and Password that will be passed to the DeployHub CircleCI Orb.
For a full description, go to the CircleCI orb registry
Two-way communication and shared logging
DeployHub and CircleCI have a two-way logging communication. The DeployHub CircleCI Deployment orb includes the ability for all logs about software deployments to be reported in both solutions. CircleCI can report to DeployHub when deployments are ready to be executed, with DeployHub reporting back the status of the deployment. For most users, CircleCI remains their primary location to find results and logs.
Image 2: Job Executions for the Workflow
Image 3: Deployment Execution Results
Now that you have included DeployHub into your pipeline process, you have the ability to track versions of your ‘logical application’ to the versions of the microservices your application is consuming. You can track each version over time and easily see the differences between two releases. Think of this as your new Bill of Material report you used to have in your build. DeployHub serves a key role in the new microservice pipeline. We’ve made it easy for you to start decomposing your application without losing it altogether.
Image 4: Microservice Dependency Maps
DeployHub’s Key Features
- Blueprint your application’s logical view
- Publish and Catalog Microservices
- Version Microservice Configurations
- Release and Track Microservices
- Manage Database Deployments
- Continuous Deployment Blogs
- Understanding a Microservice Pipeline
- Microservice Continuous Integration – Where’s the Build?
- Working with Helm for your Microservices Releases
- Kubernetes Pipeline Challenges
- Managing Embedded Configurations
- Questions and Answers on managing a K8s Pipeline
- Running Safe Blue / Green Deployments
- The DeployHub Jenkins Plug-in
- Setting Up the Jenkins Plug-in
- The DeployHub CircleCI Orb
- Creating a Continuous Feedback Loop
- Release Agents – the Enemy of Continuous Deployments
- DeployHubs Release Architecture
- Why we need Application Packages for CD
- Agentless Deployments with DeployHub’s Engine
- Version Jumps and Tracking
- Blogs on Microservice Configuration Management