Cloudify And Continuous Integration

Continuous integration for non-trivial applications, by nature, involves a significant amount of orchestration, and can become quite complex. This kind of problem is a natural fit for the Cloudify (http://cloudify.co) open source orchestrator, which excels both at complex automation tasks, and at integrating with other tools relevant to the space. This article discusses a CI toolchain that includes Cloudify and other tools such as Ansible and Terraform.

Continuous Integration Challenges

For many development organizations, continuous integration is a desirable yet difficult-to-achieve goal. The age of virtualization has brought with it the ability to spin up arbitrarily complex environments quickly, bringing within reach the ability to perform realistic integrations and tests on demand. Tools like Cloudify simplify the automation of virtual environments by modeling environments as a composite of building blocks that can be tailored for user requirements.

Image for post
Image for post

Cloudify Abstractions

Blueprints

Image for post
Image for post
Image for post
Image for post
Image for post
Image for post

CI Server Integration

Cloudify can be integrated with a CI server either by a purpose built plugin, as in the case of Jenkins, or by exploiting the Cloudify server’s northbound REST API.

Image for post
Image for post
Image for post
Image for post

Conclusion

Cloudify brings infrastructure automation to continuous integration in a comprehensive and opinionated way. Cloudify can tie together CI tools, node configuration tools, and virtualized environments both public and private, to provide a high level of test automation. Cloudify can also automate the promotion of a code base from dev to production, using versionable blueprints that support the “infrastructure as code” paradigm. This high order of automation advances CI goals to provide build quality feedback in the minimum time (and cost) possible.

Software developer and architect

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store