Technical stack

Warren platform is built on novel open source technologies
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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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/general system overview

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.

Requirements

Minimum

Recommended

Please contact us if you need support with architecture and harware planning.
We also help with hardware puchases through our partner network to get best prices and fast delivery deadlines.

If you are interested in testing warren.io with your own data center please contact us.