Apprenda’s Platform as a Service (PaaS) offers multiple benefits to enterprise technology organizations. It helps developers quickly build and deploy distributed applications. It also simplifies routine IT tasks through more efficient utilization of infrastructure and zero-impact server maintenance.
These benefits of PaaS are not limited to production environments. Apprenda can also support a wide variety of pre-production activities, including application builds and different types of software testing.
An increasing number of enterprises are embracing continuous integration (CI) practices. Apprenda through its intrinsic capabilities — such as container technologies, policy engines, and plug-and-play architecture — brings significant operational efficiencies when it underpins a CI pipeline.
Last year, Apprenda unveiled its integration with Jenkins. Since then, new features have been added to both the Apprenda-Jenkins plugin and the core platform to create more advanced CI pipelines. The new features include more granular control of application deployments, automated clean-up of temporary application instances created at earlier phases of the CI pipeline, and the ability to run Jenkins servers on the platform.
One apparent benefit of running CI tools on Apprenda is that the platform abstracts them from the underlying infrastructure in exactly the same way it abstracts guest applications. The infrastructure that supports build servers, especially in large organizations with many development teams, is not insignificant. Jenkins, one of the most popular CI tools, typically requires at least one dedicated VM or server.
When Apprenda runs the Jenkins master in a container, it abstracts the heavy build orchestration tool from the underlying server. This abstraction allows to an organization to perform server maintenance (patching or upgrades) without any impact on the build processes.
This setup also allows the organization to scale beyond one Jenkins master with less infrastructure. One DevOps team can now manage one or many instances of the Jenkins master on Apprenda and run CI pipelines for other developer teams on the platform. The containerized Jenkins master retains its ability to spin up Docker slaves, which are now running inside the Apprenda pool. It can also be extended with all necessary pluggable tools, including the Apprenda plugin.
The Apprenda Jenkins plugin further simplifies the deployment process and makes utilizations of the underlying compute resources more efficient. Typically, testing comprises multiple functional stages and often each stage is supported by a dedicated environment. The Apprenda Jenkins plugin uses the Apprenda API to create an instance of the containerized applications for testing purposes, lets Jenkins run the tests against this temporary application instance, and deletes the application containers when the testing is complete. This way the necessary compute resources are allocated only when testing is about to begin and then released when Jenkins moves on to the next step in the CI pipeline.
The Apprenda Jenkins plugin supports multiple Apprenda instances, which allows enterprises to have an Apprenda platform dedicated to testing along with the main production instance. Alternatively, the entire CI pipeline can be supported by a single Apprenda instance. Apprenda allows operators to segment the underlying infrastructure for the purposes of security compliance audits and more. A set of servers can be carved out for software testing.
Finally, the Apprenda Jenkins plugin can be configured to tag application instances in a special way and indicate that they are created for transient testing purposes only. The tags then trigger the deployment policies that ensure the application containers are orchestrated on the specially designated infrastructure and securely isolated from the other workloads.
This approach to continuous integration provides multiple benefits to large organizations. It decreases operational costs because dedicated infrastructure is no longer necessary to support temporary application instances. It also ensures consistency of the runtime across all phases of the continuous integration, with the applications being tested in the same runtime engine where they are ultimately deployed for production purposes.
To see continuous integration in Apprenda 6.5 in action, check out the video below: