This section gives information about services that can be deployed using Michman.
Michman supports a set of different databases, that could be easy deployed in the cloud.
Apache Ignite
Apache Ignite is a Distributed Database for high-performance computing with in-memory speed. It could be deployed in the distributed cluster of virtual machines in the cloud with Michman.
For now we support 7.1.1 Apache Ignite version.
Config parameter for ignite service type supports:
Following example shows request to create 3-nodes cluster with Apache Ignite with specified memory parameter.
curl http://michman_addr:michman_port/projects/{ProjectID}/clusters -XPOST -d
'{
"DisplayName": "my-cluster",
"Services": [
{
"Name": "ignite-service",
"Type": "ignite",
"Version": "7.1.1",
"Configs": {
"memory": "30"
}
}
],
"Image": "ubuntu",
"NHosts": 3
}'
Full and actual information about supported Apache Ignite configurations and versions you can get via following url:
curl http://michman_addr:michman_port/configs/ignite
Apache Cassandra
Apache Cassandra is a free and open-source, distributed, wide column store, NoSQL database management system designed to handle large amounts of data across many commodity servers, providing high availability with no single point of failure. It could be deployed in the distributed cluster of virtual machines in the cloud with Michman.
We can deploy Apache Cassandra connected to Spark.
For now we support 3.11.4 Apache Cassandra version.
Following example shows request to create 3-nodes cluster with Apache Cassandra and Spark.
curl http://michman_addr:michman_port/projects/{ProjectID}/clusters -XPOST -d
'{
"DisplayName": "my-cluster",
"Services": [
{
"Name": "cassandra-service",
"Type": "cassandra",
"Version": "3.11.4"
},
{
"Name": "spark-service",
"Type": "spark",
"Version": "2.3.0",
}
],
"Image": "ubuntu",
"NHosts": 3
}'
Full and actual information about supported Apache Cassandra configurations and versions you can get via following url:
curl http://michman_addr:michman_port/configs/cassandra
ClickHouse
ClickHouse is a fast open-source OLAP database management system. It could be deployed in the storage node in the cloud with Michman.
For now we support the latest ClickHouse version.
Config parameter for clickhouse service type supports:
Following example shows request to get the ClichHouse DBMS in the cloud.
curl http://michman_addr:michman_port/projects/{ProjectID}/clusters -XPOST -d
'{
"DisplayName": "my-cluster",
"Services": [
{
"Name": "clickhouse-service",
"Type": "clickhouse",
"Configs": {
"db_password": "secret"
}
}
],
"Image": "ubuntu",
"NHosts": 1
}'
Full and actual information about supported ClickHouse configurations and versions you can get via following url:
curl http://michman_addr:michman_port/configs/clickhouse
Apache CouchDB
Apache CouchDB is an open-source document-oriented NoSQL database, implemented in Erlang. It could be deployed in the storage node in the cloud with Michman.
For now we support the latest CouchDB version.
Config parameter for couchdb service type supports:
Following example shows request to get the CouchDB DBMS in the cloud.
curl http://michman_addr:michman_port/projects/{ProjectID}/clusters -XPOST -d
'{
"DisplayName": "my-cluster",
"Services": [
{
"Name": "couchdb-service",
"Type": "couchdb",
"Configs": {
"db_password": "secret"
}
}
],
"Image": "ubuntu",
"NHosts": 1
}'
Full and actual information about supported CouchDB configurations and versions you can get via following url:
curl http://michman_addr:michman_port/configs/couchdb
MariaDB
MariaDB - is a free and open-source relational database. It can be deployed as a cloud storage with the help of orchestration system Michman. Config parameter for MariaDB service type supports:
Following example shows request to get the MariaDB in the cloud.
curl http://michman_addr:michman_port/projects/{ProjectID}/clusters -XPOST -d
'{
"DisplayName": "test",
"Services": [
{
"Name": "mariadb",
"Type": "mariadb",
"Config": {
"db_password": "secret"
}
}
],
"Image": "ubuntu21.04",
"NHosts": 1
}'
Full and actual information about supported MariaDB configurations and versions you can get via following url:
curl http://michman_addr:michman_port/configs/mariadb
PostgreSQl
PostgreSQL is a free and open-source relational database management system (RDBMS) emphasizing extensibility and SQL compliance. It could be deployed in the storage node in the cloud with Michman.
For now we support the 9.6, 10, 11 and 12 PostgreSQL versions.
Config parameter for postgresql service type supports:
Following example shows request to get the PostgreSQl DBMS in the cloud.
curl http://michman_addr:michman_port/projects/{ProjectID}/clusters -XPOST -d
'{
"DisplayName": "my-cluster",
"Services": [
{
"Name": "postgresql-service",
"Type": "postgresql",
"Configs": {
"db_password": "secret"
}
}
],
"Image": "ubuntu",
"NHosts": 1
}'
Full and actual information about supported PostgreSQl configurations and versions you can get via following url:
curl http://michman_addr:michman_port/configs/postgresql
Redis
Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache, and message broker. It could be deployed in the storage node in the cloud with Michman.
For now we support the latest Redis version.
Config parameter for redis service type supports:
Following example shows request to get the Redis DBMS in the cloud.
curl http://michman_addr:michman_port/projects/{ProjectID}/clusters -XPOST -d
'{
"DisplayName": "my-cluster",
"Services": [
{
"Name": "redis-service",
"Type": "redis",
"Configs": {
"db_password": "secret"
}
}
],
"Image": "ubuntu",
"NHosts": 1
}'
Full and actual information about supported Redis configurations and versions you can get via following url:
curl http://michman_addr:michman_port/configs/redis
For complex computational tasks and problems with big data processing could be used such applications as Apache Spark and Apache Hadoop.
Apache Spark and Apache Hadoop
Apache Spark is a unified analytics engine for big data processing, with built-in modules for streaming, SQL, machine learning and graph processing. It could be deployed in the distributed cluster of virtual machines in the cloud with Michman.
The Apache Hadoop software library is a framework that allows for the distributed processing of large data sets across clusters of computers using simple programming models. It is designed to scale up from single servers to thousands of machines, each offering local computation and storage.
Michman runs Spark connected to Hadoop and supports different Spark plugins: Jupyter, Jupyterhub, Cassandra. Also, it may be launched with YARN Resource Manager.
For now we support following Spark versions: 1.0.0, 1.0.1, 1.0.2, 1.1.0, 1.1.1, 1.2.0, 1.2.1, 1.2.2, 1.3.0, 1.3.1, 1.4.0, 1.4.1, 1.5.0, 1.5.1, 1.5.2, 1.6.0, 1.6.1, 1.6.2, 2.0.0, 2.0.1, 2.0.2, 2.1.0, 2.2.0, 2.2.1, 2.3.0.
Config parameter for spark service type supports:
Following example shows request to create 3-nodes cluster with Apache Spark on YARN.
curl http://michman_addr:michman_port/projects/{ProjectID}/clusters -XPOST -d
'{
"DisplayName": "my-cluster",
"Services": [
{
"Name": "spark-service",
"Type": "spark",
"Version": "2.3.0",
"Configs": {
"use-yarn": "true"
}
}
],
"Image": "ubuntu",
"NHosts": 3
}'
Full and actual information about supported Apache Spark configurations and versions you can get via following url:
curl http://michman_addr:michman_port/configs/spark
Slurm
Slurm is an open source, and highly scalable cluster management and job scheduling system for large and small Linux clusters. The job scheduling system can be deployed in the cluster of virtual machines in the cloud with the help of orchestration system Michman. At the moment Slurm can be deployed on operating system Ubuntu. Two versions of slurm are supported now, which depends on image of OS. If image is ubuntu18.04, the version is slurm-wlm 17.11.2, ubuntu21.04 - slurm-wlm 20.11.4. Also there are four versions of deploying Slurm: Slurm - version of service without any additional services, Slurm-db -version with an accounting system, Slurm-nfs - version with shared file system, Slurm-db-nfs - version of service with shared file system and with an accounting system. REST API interface for Slurm is provided too.
Config parameter for Slurm service type supports:
use_rest – parameter for setting or not Slurm REST API. Parameter value can become true, if selected version of Slurm is Slurm-db and OS Image is == Ubuntu21.04. Defaault value: false. For correct working Slurm REST API user must export shell variable SLURM_JWT, that has been already generated, on the host from which the request will be sent. For these purposes user has to login to master-host, copy content of the file /var/log/slurm/slurm_token to terminal (execute SLURM_JWT= …). Variables X-SLURM-USER-NAME and X-SLURM-USER-TOKEN must be mentioned in the request, which values are fixed: X-SLURM-USER-NAME:root and X-SLURM-USER-TOKEN:${SLURM_JWT}.
Example of the request:
curl -H "X-SLURM-USER-NAME:root" -H "X-SLURM-USER-TOKEN:${SLURM_JWT}" http://{IP-адрес master-хоста}:6820/slurm/v0.0.36/ping
Examples of requests are located here: https://app.swaggerhub.com/apis/rherrick/slurm-rest_api/0.0.35.
Following example shows request to create 2-nodes cluster with Slurm service, including accounting system and REST API interface.
curl http://michman_addr:michman_port/projects/{ProjectID}/clusters -XPOST -d
'{
"DisplayName":"test",
"Services":[{
"Name":"Slurm service",
"Type":"slurm",
"Version": "Slurm-db",
"Config":{
"use_rest": "true"
}
}],
"Description": "cluster",
"Image": "ubuntu21.04",
"NHosts": 2
}'
Full and actual information about supported Slurm configurations and versions you can get via following url:
curl http://michman_addr:michman_port/configs/slurm
With Michman you can easy deploy the most populars web-based laboratories for interactive development: Jupyter and Jupyterhub.
Jupyter
JupyterLab is a web-based interactive development environment for Jupyter notebooks, code, and data. JupyterLab is flexible: configure and arrange the user interface to support a wide range of workflows in data science, scientific computing, and machine learning. It could be deployed in the master node in the cloud with Michman.
For now we support the 6.0.1 Jupyter version. It also could be deployed with Spark-connector plugin.
Following example shows request to create 3-nodes cluster with Jupyter service.
curl http://michman_addr:michman_port/projects/{ProjectID}/clusters -XPOST -d
'{
"DisplayName": "my-cluster",
"Services": [
{
"Name": "jupyter-service",
"Type": "jupyter"
}
],
"Image": "ubuntu",
"NHosts": 3
}'
Full and actual information about supported Jupyter configurations and versions you can get via following url:
curl http://michman_addr:michman_port/configs/jupyter
JupyterHub
JupyterHub brings the power of notebooks to groups of users. It gives users access to computational environments and resources without burdening the users with installation and maintenance tasks. Users - including students, researchers, and data scientists - can get their work done in their own workspaces on shared resources which can be managed efficiently by system administrators.
For now we support the 1.3.0 Jupyterhub version. It also could be deployed with Spark-connector plugin.
Following example shows request to create 3-nodes cluster with JupyterHub service.
curl http://michman_addr:michman_port/projects/{ProjectID}/clusters -XPOST -d
'{
"DisplayName": "my-cluster",
"Services": [
{
"Name": "jupyterhub-service",
"Type": "jupyterhub"
}
],
"Image": "ubuntu",
"NHosts": 3
}'
Full and actual information about supported JupyterHub configurations and versions you can get via following url:
curl http://michman_addr:michman_port/configs/jupyterhub
CVAT
CVAT is open-source, online, interactive video and image annotation tool for computer vision.
For now we support the 1.7.0 CVAT version.
Config parameter for cvat service type supports:
Note
You should specify the superuser password in CVAT-node using following command: “docker exec -it cvat bash -ic ‘python3 ~/manage.py createsuperuser’”.
Following example shows request to create CVAT service.
curl http://michman_addr:michman_port/projects/{ProjectID}/clusters -XPOST -d
'{
"DisplayName": "my-cluster",
"Services": [
{
"Name": "cvat-service",
"Type": "cvat",
"Config":{
"username": "admin",
"email": "admin@admin.com"
}
}
],
"Image": "ubuntu20.04",
"NHosts": 0
}'
Full and actual information about supported CVAT configurations and versions you can get via following url:
curl http://michman_addr:michman_port/configs/cvat
Michman provides services to easy work with data in the cloud.
NextCloud
Nextcloud is a suite of client-server software for creating and using file hosting services. Nextcloud is free and open-source, which means that anyone is allowed to install and operate it on their own private server devices. It could be deployed in the storage node in the cloud with Michman.
Config parameter for nextcloud service type supports:
Following example shows request to create 3-nodes cluster with Nextcloud service.
curl http://michman_addr:michman_port/projects/{ProjectID}/clusters -XPOST -d
'{
"DisplayName": "my-cluster",
"Services": [
{
"Name": "nextcloud-service",
"Type": "nextcloud"
}
],
"Image": "ubuntu",
"NHosts": 3
}'
Full and actual information about supported JupyterHub configurations and versions you can get via following url:
curl http://michman_addr:michman_port/configs/nextcloud
NFS Server
NFS (Network File Share) is a protocol that allows you to share directories and files with other Linux clients in a network. The directory to be shared is usually created on the NFS server and files added to it.
The client systems mount the directory residing on the NFS server, which grants them access to the files created. NFS comes in handy when you need to share common data among client systems especially when they are running out of space.
Config parameter for nfs-server service type supports: * weblab_name – name of Web Laboratory.
Following example shows request to create 3-nodes cluster with NFS server.
curl http://michman_addr:michman_port/projects/{ProjectID}/clusters -XPOST -d
'{
"DisplayName": "my-cluster",
"Services": [
{
"Name": "nfs-server",
"Type": "nfs"
}
],
"Image": "ubuntu",
"NHosts": 3
}'
Full and actual information about supported NFS Server configurations and versions you can get via following url:
curl http://michman_addr:michman_port/configs/nfs
You can launch with Michman standart logs managment stack in the cloud.
Elasticsearch
Elasticsearch is a search engine based on the Lucene library. It provides a distributed, multitenant-capable full-text search engine with an HTTP web interface and schema-free JSON documents. It could be deployed in the distributed cluster of virtual machines in the cloud with Michman.
For now we support the 7.1.1 Elasticsearch version.
Config parameter for elastic service type supports: * heap-size – use specific ElasticSearch heap size. Default heap size is 1g (1 GB).
Following example shows request to create 3-nodes cluster with Elasticsearch service.
curl http://michman_addr:michman_port/projects/{ProjectID}/clusters -XPOST -d
'{
"DisplayName": "my-cluster",
"Services": [
{
"Name": "elastic-server",
"Type": "elastic"
}
],
"Image": "ubuntu",
"NHosts": 3
}'
Full and actual information about supported Elasticsearch configurations and versions you can get via following url:
curl http://michman_addr:michman_port/configs/elastic
Kubernetes
Kubernetes is an open-source system for automating deployment, scaling, and management of containerized applications.
For now following versions are supported: * v1.19.0 *, * v1.19.1 *, * v1.19.2 *, * v1.19.3 *, * v1.19.4 *, * v1.19.5 *, * v1.19.6 *, * v1.19.7 *, * v1.19.8 *, * v1.19.9 *, * v1.19.10 *, * v1.20.0 *, * v1.20.1 *, * v1.20.2 *, * v1.20.3 *, * v1. 20.4 *, * v1.20.5 *, * v1.20.6 *, * v1.20.7 *.
Config parameters for Kubernetes service type are: * network_plugin – CNI plugin responsible for configuring overlay network.
- Available options:
- calico
- flannel
- weave
Default: calico
container_runtime – container runtime environment in which all the containers are deployed.
Default: docker
If container runtime implements CRI, crictl is installed.
enable_dashboard indicates if Kubernetes dashboard UI will be installed.
By default, dashboard is not exposed to the outer world, as it can be done in many different ways.
enable_netchecker indicates if the `netchecker`_ service will be deployed.
To get the most recent and cluster-wide network connectivity report, run from any of the cluster nodes:
curl http://<netchecker_service_ip>:31081/api/v1/connectivity_check
enable_helm indicates if helm package manager will be installed.
enable_ingress_nginx indicates if nginx ingress controller will be deployed.
Check with:
kubectl get all -n ingress-nginx
enable_cinder_csi indicates if Cinder CSI plugin will be installed. This allows one to request persistent storage for pods right from the kubernetes.
enable_keystone_auth indicates if Keystone Webhook authentication and authorization is available.
To access kubernetes cluster via kubectl you need * Download latest client-keystone-auth from GitHub * Configure your user in KUBECONFIG to use this client to get a token from Kubernetes
- name: your-user user: exec: command: path-to-client-keystone-auth apiVersion: client.authentication.k8s.io/v1beta1
More details in k8s-keystone-auth documentation.
Following example shows request to create 3-nodes cluster with Kubernetes service.
curl http://michman_addr:michman_port/projects/{ProjectID}/clusters -XPOST -d '{ "DisplayName": "k8s", "Image": "ubuntu18.04", "NHosts": 2, "Services": [ { "Name": "k8s", "Type": "kubernetes", "Version": "v1.20.7", "Config": { "network_plugin": "flannel", "container_runtime": "docker", "enable_dashboard": "true", "enable_helm": "true", "enable_ingress_nginx": "true", "enable_cinder_csi": "true", "enable_keystone_auth": "true", "keystone_admin_roles": "["member"]" } } ] }'
Full and actual information about supported Kubernetes configurations and versions you can get via following url:
curl http://michman_addr:michman_port/configs/kubernetes