TOSCA is for you.
Yes, it’s an Opera about love in Rome, but it’s also TOSCA, the Topology & Orchestration Specification for Cloud Applications, from the OASIS standards body. TOSCA is similar to AWS Cloud Formation, but far more powerful and extensible, partly because it also includes orchestration, relationships, and much more.
We think TOSCA is the way to model cloud infrastructure, and also the applications built on clouds (or even physical servers). While TOSCA is fairly complex with several major parts for modeling, relationships, orchestration, and more, this is exactly what makes is great for our purposes of modeling and managing the world’s IT systems.
TOSCA was originally specified in XML, with all that goes with that, and thus now it’s more commonly used in its YAML format, making it much easier to process with modern tools, especially when used in and with JSON-based libraries and experience.
TOSCA starts with a DSL, or Domain-Specific-Language, that lays out all the ‘types' that are possible in a system. These include an inheritance system where everything is derived from a ‘root’ type, then things like network type, and from that, a VPC, a subnet, and an IP address range. Thus properties and other attributes are inherited, saving a lot of space and effort as the DSL gets large.
Importantly, TOSCA can specify dependencies and relationships, and the relationships can have their own attributes. This is very useful for complex systems where relationships and dependencies need additional information to model, monitor, and manage them.
From the DSL, you build a real system model by combining various types and adding attributes, much like you’d do in Cloud Formation - in fact, our OpsStack tools translate Cloud Formation to and from our TOSCA models (it can also reverse engineer running AWS systems into TOSCA, like Cloud Former, and build AWS systems directly from TOSCA).
The TOSCA system is not perfect, especially in that the various vendors have incompatible DSL, and there is no obvious portability between clouds, as most people have done very basic DSL for AWS that is not related to Azure, Google, and others. This will make things harder later, but is manageable.
TOSCA is not nearly as popular as it should be, in part as it’s a very standards-oriented process, which is perhaps a bit slow and cumbersome, and seems to involve a number of defunct academic projects as examples. The only real operating examples now seems to be Cloudify and Alien4Cloud, and Ubicity, each of which can build AWS and other cloud systems. And there is the ARIA TOSCA Orchestration Tool (http://ariatosca.org/).
Our interest with TOSCA in OpsStack is much bigger than this, as we want to do full-stack system modeling, with full Forward, Reverse, and Change Engineering of real systems through their whole life-cycle. In particular, we want to change and manage systems not originally built by TOSCA or Cloud Formation, something no one is doing, yet represents 99% of the systems in use. This is quite difficult to do, but we are well on the way to production systems this quarter.
We want to model and manage systems not built by any model
In addition, we’ve extended TOSCA to include and drive building and configuration of the rest of the stack, such as Linux OS, Web Servers, MySQL, and everything else. This results in a full model of the entire system, which can then be used for management, modeling, automation, tuning, troubleshooting, and much more.
The model is your friend.
See the TOSCA Opera if you’d like, but get a TOSCA model today.