There are many different automation tools that are used by DevOps teams for provisioning, orchestration and configuration management such as Puppet, Chef, CFengine, bcfg2, Vagrant, and more. Other DevOps tools such as Jenkins, Maven, and Ant support build and deployment automation while infrastructure monitoring and application performance measurement are served by companies such as New Relic and AppDynamics respectively. Of course, these are just a small number of examples, as new solutions appear almost daily.
Cloud platforms such as Azure, Amazon Web Services, and OpenStack often provide competing and/or proprietary tools for DevOps or at least parts of DevOps. This both helps and hurts the DevOps cause and thus it became apparent that the development of industry DevOps and technology standards might help.
OASIS, a nonprofit consortium that drives the development, convergence and adoption of open standards for the global information society, answered the DevOps call with TOSCA, the Topology and Orchestration Specification for Cloud Applications.
TOSCA is a standard language to describe a topology of cloud-based services, their components, relationships, and the processes that manage them and support DevOps. The TOSCA standard includes specifications to describe the DevOps lifecycle processes that create or modify these services. As traditional service providers transform to virtualized, cloud-based services and DevOps techniques, TOSCA is attracting interest as a more logical approach for service modeling vs. NETCONF/Yang, which was designed to enable automation of L2 and L3 physical networks.
Why DevOps and TOSCA Now
DevOps sprang from applying newer agile and lean approaches to IT operations. Inspired by John Allspaw’s seminal Velocity 2009 presentation titled “10+ Deploys Per Day: Dev and Ops Cooperation”, DevOps has matured into a set of practices that enable real-time continuous development and delivery of applications often via cloud service providers.
Using cloud platforms with DevOps introduces both new capabilities and challenges, such as vendor lock-in. TOSCA addresses this and more. The goal of TOSCA is to enhance the portability of cloud applications. This also enables the interoperability of cloud services’ components through clearly defined relationships between the parts of cloud services that comprise a solution.
Further, TOSCA supports DevOps and enables service and application requirements to be automatically matched to corresponding cloud service provider capabilities. This supports a competitive market where cloud service providers can specialize and optimize their offerings.
Examples of where DevOps meets TOSCA
Cloudify is an open source TOSCA based cloud orchestration software platform that supports DevOps (like Amazon’s OpsWorks). It automates the process of installation, deployment and post-deployment such as monitoring, remediation, and auto-scaling of applications.
Cloudify supports multi-tier application deployments and to promote interoperability is integrated with OpenStack and other cloud platforms. Popular cloud platforms that are supported by Cloudify include AWS, CloudStack, Microsoft Azure, and VMWare.
Open source Project: Heat-Translator
Heat-Translator is an Openstack project that supports DevOps and takes non-Heat templates as an input and produces a Heat Orchestration Template (HOT), which then can be deployed by Heat. Currently, the development and testing is done with an aim to translate OASIS Topology and Orchestration Specification for Cloud Applications (TOSCA) templates to HOT.
Heat-Translator tool takes an in-memory graph from TOSCA Parser as an input, maps it to Heat resources and then produces a HOT.
Ubicity provides tooling and services to assist DevOps with the creation and management of TOSCA-based service templates. Ubicity uses the TOSCA standard to model all aspects of service topologies, including service composition, policies, and custom workflows.
Blue Planet is Ciena’s open network and service orchestration platform that leverages TOSCA to support the orchestration of both virtual and physical resources such as traditional L0-L3 networks. This multi-domain flexibility enables the end-to-end automation of services that extend across public/private clouds, NFV, Ethernet or IP-VPN networks, and more.
Blue Planet is based on a micro-services architecture, and incorporates an optional DevOps toolkit that enables network operators to on-board new network resources such as Virtual Network Functions (VNFs), routing equipment, or network domains, and use these new resources to automate and accelerate the delivery of new services.
DevOps Workflow and TOSCA Conclusion
DevOps is changing the way organizations develop, deploy, monitor, and improve applications. Cloud providers are changing the infrastructures on which those applications are often deployed via DevOps. Topology and Orchestration Specification for Cloud Applications (TOSCA) aims to bridge the new DevOps techniques with the modern day deployment platforms or clouds.