Continuous delivery is a software development approach whereby software is built so that it can be released to production at any time. In other words, with continuous delivery, software should be easily deployable, on demand, to any environment, at any time. Companies seeking software agility are increasingly adopting continuous delivery and building pipelines to seamlessly move code changes across various phases of the development cycle by automating the entire process. Application containers, like Docker, are enabling new levels of agility by enabling best practices such as immutable images and simplifying deployment and management of software components. At Nirmata, we have further enabled continuous delivery automation by simplifying the creation of continuous delivery pipelines to automatically deliver code from a developer commit to running it in production environments. With the integration of JFrog Artifactory with Nirmata, continuous delivery of containerized applications can be streamlined effortlessly. In this post, I will describe the details.
JFrog Artifactory is a universal Artifact Repository Manager that fully supports software packages created in any language or technology including containers images.
Nirmata is a cloud service that fully automates application delivery and management on any public or private cloud. Nirmata provides comprehensive policy-based automation for deploying, operating, and optimizing containerized applications empowering enterprise DevOps teams by fully automating the complex operations and management of application containers.
The figure below shows how Nirmata integrates with JFrog Artifactory to enable continuous delivery.
Using Artifactory with Nirmata
Here are the steps to use Artifactory with Nirmata:
1. Add Artifactory in Nirmata
Prior to using an image registry in Nirmata, the registry needs to be added to Nirmata. To add Artifactory in Nirmata, go to the Image Registries screen and click on the ‘Add Image Registry…’ button. In the dialog, select JFrog Artifactory as the Registry Provider. Specify the registry name. For Artifactory, the registry name should be same as the registry name displayed in the Artifactory Repository Browser. Also, specify the artifactory URL in the location field along with the username and password. If all the information is correctly specified, you should be able to see a list of all the images stored in the registry.
2. Create Continuous Delivery Pipeline
In Nirmata, you can model a continuous delivery pipeline for your application by creating the environment types for each phase of your development cycle and specifying the “Accept Tag” and “Promote Tag” for each environment type. You can also specify the Update Policy for each environment type. Update policy is used to determine the action to take when a new image is available. For details on creating a continuous delivery pipeline, refer to this post.
3. Create Application Blueprint
Now, you can create a blueprint for your application. When creating a service for your application, you should be able to select image tags from the Artifactory created in step #1.
4. Deploy an Environment
Once the application blueprint is created, you are ready to deploy the application to an environment. When deploying the environment, you need to select the Environment Type. Based on the environment type selected, Nirmata will deploy application containers with the appropriate image tag i.e. as specified in the Accept Tag for the environment type.
5. Promote the image
Typically, once an environment is deployed, tests are performed to detect any issues. Once the testing is completed, you can promote the container image to the next stage in your pipeline by selecting the promote action. When an image is promoted, new tags will be added for that image in Artifactory. Based on these tags, the image is now ready to be accepted to the next environment in the pipeline.
6. Perform a rolling upgrade
Whenever a new image with a tag that matches the “Accept Tag” for an environment type is available, Nirmata checks the update policy for the environment to either notify the user that a new image is available or automatically perform a rolling upgrade of the service that uses the image.
As you can see, the integration of Nirmata with JFrog Artifactory allows DevOps teams to seamlessly create continuous delivery pipelines and streamline the delivery of code from development/test phase to production. Artifactory stores and tracks container images while Nirmata allows modeling of the pipeline and simplifies deployment and management of container images. This powerful combination delivers the software agility that enterprises are seeking, enabling them to reap the benefits offered by application containers and allowing them to confidently adopt end-to-end continuous delivery for their applications.
Here is the link to the blog post by JFrog team on our integration
Download eBook: Containerizing Traditional Applications