Pilha técnica

A plataforma Warren foi criada com novas tecnologias de código aberto
A Warren foi criada a partir do zero seguindo princípios arquitetônicos contemporâneos sem nenhuma restrição de legado que possa criar dificuldades, ao mesmo tempo em que garante que a plataforma seja altamente disponível, escalável, confiável e de fácil manutenção.

Nossa abordagem arquitetônica geral para lidar com o desenvolvimento de tecnologia em rápida evolução e a demanda do mercado é o design modular e desacoplado dos produtos que nos permite manter a flexibilidade.

Todas as decisões de arquitetura são feitas tendo em mente a escalabilidade e a abordagem independente de hardware.

Os seguintes não incluem componentes “como serviço”, como Kubernetes, nem refletem a camada de comando e APIs internas e públicas.

Tecnologias utilizadas

Mesos

Mesos abstrai CPU, memória, armazenamento e outros recursos das máquinas (físicas ou virtuais), permitindo que sistemas distribuídos elásticos e tolerantes a falhas sejam facilmente criados e executados com eficiência.

Jupyterlab

JupyterLab é a interface de usuário da próxima geração para o Projeto Jupyter. Ela oferece todos os blocos de desenvolvimento conhecidos do clássico Jupyter Notebook (bloco de notas, terminal, editor de texto, gerenciador de arquivos etc.) em uma interface de usuário flexível e poderosa.

KVM

Máquina Virtual baseada em Kernel (KVM) é um módulo de virtualização no kernel Linux que permite que este funcione como um hipervisor. A KVM fornece virtualização assistida por hardware para uma ampla variedade de sistemas operacionais convidados.

Prometheus

Prometheus é um software de código aberto usado para monitoramento e alerta de eventos. Ele registra métricas em tempo real em um banco de dados de séries temporais utilizando o método HTTP Pull, com consultas flexíveis e alertas em tempo real.

Ceph

A base do Ceph é o Armazenamento Autônomo Confiável de Objetos Distribuídos (RADOS), que fornece aos seus aplicativos armazenamento de objetos, blocos e sistemas de arquivos em um cluster de armazenamento unificado — tornando o Ceph flexível, altamente confiável e fácil de gerenciar.

Docker

Docker é uma ferramenta projetada para facilitar a criação, implementação e execução de aplicativos usando contêineres. Os contêineres permitem que um desenvolvedor provisione um aplicativo com todas as partes necessárias — como bibliotecas e outras dependências — e envie tudo como um pacote.

Tungsten Fabric

Tungsten Fabric fornece uma plataforma de networking virtual escalável que funciona com uma variedade de máquinas virtuais e orquestradores de contêineres e pode ser integrada a redes físicas e infraestrutura de computação. O Tungsten Fabric utiliza padrões da indústria de rede como plano de controle BGP EVPN e sobreposição VXLAN para conectar workloads sem interrupções em diferentes domínios do orquestrador.

Nix (O Gerenciador de Pacotes Totalmente Funcional)

Nix é um gerenciador de pacotes para Linux e outros sistemas Unix que torna o gerenciamento de pacotes confiável e reproduzível. Ele fornece atualizações e reversões atômicas, instalação paralela de várias versões de um pacote, gerenciamento de pacote multiusuário e fácil configuração de ambientes de desenvolvimento.

Prometheus

Prometheus é um software de código aberto usado para monitoramento e alerta de eventos. Ele registra métricas em tempo real em um banco de dados de séries temporais utilizando o método HTTP Pull, com consultas flexíveis e alertas em tempo real.

Tungsten Fabric

Tungsten Fabric fornece uma plataforma de networking virtual escalável que funciona com uma variedade de máquinas virtuais e orquestradores de contêineres e pode ser integrada a redes físicas e infraestrutura de computação. O Tungsten Fabric utiliza padrões da indústria de rede como plano de controle BGP EVPN e sobreposição VXLAN para conectar workloads sem interrupções em diferentes domínios do orquestrador.

Jupyterlab

JupyterLab é a interface de usuário da próxima geração para o Projeto Jupyter. Ela oferece todos os blocos de desenvolvimento conhecidos do clássico Jupyter Notebook (bloco de notas, terminal, editor de texto, gerenciador de arquivos etc.) em uma interface de usuário flexível e poderosa.

Prometheus

Prometheus é um software de código aberto usado para monitoramento e alerta de eventos. Ele registra métricas em tempo real em um banco de dados de séries temporais utilizando o método HTTP Pull, com consultas flexíveis e alertas em tempo real.

KVM

Máquina Virtual baseada em Kernel (KVM) é um módulo de virtualização no kernel Linux que permite que este funcione como um hipervisor. A KVM fornece virtualização assistida por hardware para uma ampla variedade de sistemas operacionais convidados.

Mesos

Mesos abstrai CPU, memória, armazenamento e outros recursos das máquinas (físicas ou virtuais), permitindo que sistemas distribuídos elásticos e tolerantes a falhas sejam facilmente criados e executados com eficiência.

A comunicação entre os componentes Warren é feita por meio da API REST de cada componente.
COMO FUNCIONA?

Os componentes se comunicam com chamadas REST no mesmo cluster ou entre clusters, o que possibilita diferentes tipos de configurações e clusters heterogêneos.

NOS BASTIDORES

Nos bastidores, a comunicação assíncrona — como respostas de operações concluídas, atualização de dados (princípio GALS), fornecimento e coleta de dados de monitoramento etc. — é realizada por meio do barramento de mensagens distribuído como fluxo.

Mais detalhes podem ser encontrados em documentação

Outros componentes de código aberto utilizados

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

Bibliotecas utilizadas

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

Linguagens utilizadas

Primárias: Java, Python, TypeScript, C++
Secundárias: Go, JavaScript, SQL, Clojure, InfluxQL, Lua, Nix Expression Language.

Requisitos

Mínimo

Recomendado

Entre em contato conosco se precisar de suporte com planejamento de arquitetura e hardware.

Se você estiver interessado em testar warren.io com seu próprio data center, entre em contato conosco.