scale virtual machines and containers at runtime
Designed to support more complex scaling rules and advanced security features. MiCADOscale is an open-source Dev-Ops framework to automatically deploy, scale, manage and monitor containerized microservices orchestrated by Kubernetes.
No Vendor Lock-In
MiCADOscale supports 7 different types of infrastructures. In addition to AWS, Microsoft Azure and Google Cloud, some less known European providers and Open Source solutions, like OpenStack Nova are supported. Complex applications can be re-deployed to different supported cloud middleware simply by making small adjustments to the cloud infrastructure section of the ADT.
Each scaling action needs an event to trigger it. Bottlenecks at the container and virtual machine level (CPU, Memory, Network traffic, etc.) can be used to create custom scaling rules for all kinds of software. MiCADOscale uses Prometheus "node_exporter" and cAdvisor to track a wide variety of possible metrics. If the default metrics are not sufficient, it is simple to integrate custom Prometheus exporters into MiCADOscale. Everything Prometheus does provide to trigger alerts can be utilized to create scaling rules.
Scaling rules can easily be added to already existing software solutions. Contrary to the anchoring of scaling rules within the application itself (in the source code, the flow logic, etc.), scaling rules in MiCADOscale are defined outside your application. This saves on infrastructure dependent development costs and allows a faster time-to-market. Scaling rules can be created based on the Prometheus metrics using simple Python scripting.
Application traffic control
Inspect, control, and modify traffic at the application layer (OSI model level 7) and secure MiCADOscale clusters. The security middleware Zorp GPL secures all gateways of MiCADOscale. The application-level firewall monitors and controls all requests to MiCADOscale's sub-components in order to restrict the use to unauthorised people. Network Security Policies allow the limitation of access to virtual machines and traffic control.
The well-known container orchestration tool Kubernetes (K8s) was integrated into MiCADOscale to deploy and scale containers within the submitted applications. In addition to the core components of Kubernetes, we also integrated the Kubernetes Web UI (Dashboard) to allow for a quick inspection of your clusters.
Deadline based scaling
jQueuer or cQueue - in combination with MiCADOscale - can be used to perform multiple simulations simultaneously to meet a fixed deadline. Therefore, MiCADOscale allocates new nodes dynamically within the execution phase to finish the given amount of jobs with the lowest amount of nodes required. Both toolkits were originally developed for agent-based simulations but are well suited to any multi-job simulations where the computational framework can be containerised. For example, to parallelise multiple sequence alignment jobs.
Machine Learning based VM scaling
The MiCADOscale Optimizer component allows further improvement for your scaling rules. State-of-the-art machine learning algorithms determine the decision for the maximum required number (currently only) of virtual machines in operation. After the training phase has been completed, your production environment can adapt to all eventualities as far as possible.
Terraform & Occopus
Terraform and Occopus are the supported cloud orchestrators of MiCADOscale. Both can be configured during the initial deployment of the MiCADOscale Master-Node. They act as a central interface of the ADT to start, configure and shutdown Virtual Machines in the supported cloud infrastructures.
Prometheus was integrated to track metrics that will be used to force scaling rules to deployed applications. The build-in exporters of Prometheus support a wide variety of possible scaling rules to be applied on container and VM level. In addition, further custom exporters can easily be integrated into MiCADOscale as well.
Use makes mastery, isn’t it?
You can install, run, and manage MiCADOscale yourself or our experienced team can run it for you. Not all beginnings are difficult, especially when expert help is at hand. We are happy if you can manage it on your own, but nevertheless if your team is stuck and need support, we have our team on call. And this is where cloudSME steps in - cloudSME is the official support partner of MiCADOscale. No matter what you are looking for - cloudSME is there to support your team with some little extra DevOps power, to create fix patches or even serves you with full managed services of your application and infrastructure!
The developers behind MiCADOscale
MiCADOscale has been developed in the course of project COLA. After the end of COLA, MiCADOscale will still be actively developed by the original developers from the University of Westminster and SZTAKI. If you want to get in touch with our development team, feel free to contact us.