Composure deploys, manages, optimizes and secures applications on container or VM-based clouds.
Multi-cloud and multi-architecture
Composure supports applications naturally spanning, or even autoscaling across multiple clouds. You can even freely mix containers, VM, functions and physical hosts in the same application.
Composure represents the clouds on which it operates in a graph knowledgebase, and acquires knowledge through cloud discovery as well as by connecting to the user’s monitoring tools.
The knowledge is used by the optimization algorithms that decide on the allocation of computing, network and storage resources, intelligent load balancing and scaling decisions and the configuration of firewalls and networks.
User defined optimization goals
The user can define its own optimization goals such as performance, efficiency, cost, hard or soft affinities between workloads as well as any combination of these. The optimization goals can be system wide or can vary from application to application.
The system will not only perform optimization at the initial deployment, but also during the lifetime of the application (for instance, when responding to increased load by scaling out).
Rigorous mathematical models
Rigorous mathematical models guarantee that the solutions found by Composure will be optimal given the resources available to the system.
By abstracting away the clouds in a knowledge graph, Composure is agnostic about the type or architecture of the applications it deploys and optimizes.
Composure supports AWS, Azure, OpenStack and Docker as well as hybrid/multi-cloud environments. Experimental support includes KVM, bare metal, Mesos and Kubernetes clusters.
The applications can range from an optimized Cassandra deployment to a three-tier web application with autoscaling across multiple clouds, a microservice based application composed of 50 containers and 5 VMs, or a data-flow based IoT application.