Mastodon

Technical stack

Warren platform is built on novel open source technologies
Technical stack prometheus - warren.io
Technical stack mesos - warren.io
Technical stack jupyter - warren.io
Technical stack docker - warren.io
Technical stack tungsten - warren.io
Technical stack ceph - warren.io
Warren is built from the ground up following contemporary architectural principles with no dragging legacy restrictions while making sure the platform is highly available, scalable, reliable and easily maintainable.

Our general architectural approach to cope with the rapidly evolving technology development and market demand is the products’ modular and decoupled design that allows us to maintain flexibility.

To achieve reliability requirements of the service providers, we select only open source components that are proven to be enterprise-ready and do not define our roadmap nor lock us into a specific paradigm.

All architectural decisions are made keeping in mind the scalability and hardware-agnostic approach.

The following does not include “as a service” components like Kubernetes nor does it reflect the command layer, internal and public APIs.

Technical stack code - warren.io

Technologies used

Mesos

Mesos abstracts CPU, memory, storage, and other resources away from machines (physical or virtual), enabling fault-tolerant and elastic distributed systems to easily be built and run efficiently.
Technical stack Mesos logo - warren.io

Jupyterlab

JupyterLab is the next-generation user interface for Project Jupyter. It offers all the familiar building blocks of the classic Jupyter Notebook (notebook, terminal, text editor, file browser etc.) in a flexible and powerful user interface.
Technical stack Jupyter logo - warren.io

KVM

Kernel-based Virtual Machine (KVM) is a virtualization module in the Linux kernel that allows the kernel to function as a hypervisor. KVM provides hardware-assisted virtualization for a wide variety of guest operating systems.

Technical stack kvm logo - warren.io

Prometheus

Prometheus is an open source software application used for event monitoring and alerting. It records real-time metrics in a time series database built using a HTTP pull model, with flexible queries and real-time alerting.

Technical stack prometheus horizontal logo - warren.io

Ceph

Ceph’s foundation is the Reliable Autonomic Distributed Object Store (RADOS), which provides your applications with object, block, and file system storage in a single unified storage cluster—making Ceph flexible, highly reliable and easy for you to manage.
Technical stack ceph logo - warren.io

Docker

Docker is a tool designed to make it easier to create, deploy, and run applications by using containers. Containers allow a developer to package up an application with all necessary parts, such as libraries and other dependencies, and ship it all out as one package.

Technical stack docker logo - warren.io

Tungsten Fabric

Tungsten Fabric provides a scalable virtual networking platform that works with a variety of virtual machine and container orchestrators, and can integrate with physical networking and compute infrastructure. Tungsten Fabric uses networking industry standards such as BGP EVPN control plane and VXLAN overlays to seamlessly connect workloads in different orchestrator domains.

Technical stack tungsten-fabric logo - warren.io

Nix (The Purely Functional Package Manager)

Nix is a package manager for Linux and other Unix systems that makes package management reliable and reproducible. It provides atomic upgrades and rollbacks, side-by-side installation of multiple versions of a package, multi-user package management and easy setup of build environments.
Technical stack nixos logo - warren.io
Communication between the Warren Components is done via REST API interface that every component exposes.
How does it work?
Components communicate with REST calls either in the same cluster or between clusters, which makes different setup types and heterogeneous clusters possible.
Behind the scenes
Behind the scenes, asynchronous communication like responses from finished operations, Data updating (GALS principle), providing and gathering monitoring data, etc is done via distributed message bus as a stream.
More details can be found under documentation

Other open source components used

Marathon, PostgreSQL, InfluxDB, Telegraf, Kong, Oauth, JupyterHub, NixOS, NixOps, Grafana.

Libraries used

CNI, Libvirt, React, PhosphorJS, Spring, jOOQ, SQLAlchemy, Hug, Gunicorn.

Languages used

Primary: Java, Python, TypeScript, C++
Secondary: Go, JavaScript, SQL, Clojure, InfluxQL, Lua, Nix Expression Language.

Minimum hardware requirements

The hardware requirements enable an initial minimum setup to get Warren up and running and get you started as a public cloud provider.

Hardware configuration examples

Example of recommended hardware setups to scale from just a few nodes to several racks and multi-location deployments.
If you are interested in testing warren.io with your own data center please contact us.