CONCEPTOS

Explicamos conceptos importantes que son utilizados constantemente en la plataforma.

User

Un User es una dirección de e-mail única en el sistema utilizada para autorizar y autenticar actores (pueden ser personas o bots) Cada User puede estar asociado a 1 o más Teams con diferentes roles. En el momento de creación de un nuevo User, se crea automáticamente un Team personal del User, del cual el User es owner o propietario. El Team personal sólo puede tener un User a diferencia de otros Teams creador por Users que pueden tener 1 o más usuarios, según el límite permitido.

El transporte de datos de autenticación se realiza mediante JWT, utilizando los mecanismos considerados adecuados (password-based auth, 2FA, etc)

Roles

Un rol es un conjunto de permisos para gestionar un Account en representación de un Team o para gestionar un Team de forma directa. Los roles son siempre asignados a un User+Team o a un User+Team+Account. Por ejemplo, un User puede ser Admin de un Team (User+Team), otro puede tener Rol de Billing en un Account administrada por un Team (User+Team+Account)

Los roles posibles son:

Para Teams

Owner Member

Para Account

Admin Billing Reporting

Team

La entidad Team nuclea 1 o más User como grupo de trabajo compartido. Cada Account puede ser administrado por no más y no menos de 1 Team.

Un Team generalmente representa a una persona (en el caso del Team personal del User) o un Equipo de Desarrollo, Agencia, Partner o empresa.

Un Team puede tener cargada información de Billing que puede usarse para el pago de servicios de sus Accounts, puede crear otros Accounts, tiene una cuenta de crédito (para referals o revenue sharing) y metadatos comerciales (tipo de equipo, idiomas)

Un Team debe tener siempre al menos 1 User con rol Owner.

Un User puede agregar o eliminar miembros al Team. Esta acción es instantanea y funciona aún cuando el miembro no esté registrado en la plataforma. El status del nuevo miembro será pending accept hasta tanto acepte formar parte del Team mediante un invite Link que recibirá por e-mail o en caso de no estar registrado, registrandose.

Account

Un Account es una entidad que núclea 0 o más Projects en un contexto limitado por las características de su Plan + Addons. Estas características se definen por política comercial.

Tiene capacidad de crear proyectos con Codetainers de distintos tipos (free, pago) y cuenta con una cantidad definida de Codetainers de cada tipo (según su plan), que pueden agregarse como Addon en caso de ser necesario.

Cada account es creado por un team que es a la vez el owner al momento de la creación y puede transferir el ownership a otro Team. Un nuevo account siempre tiene el plan Free inicialmente, a no ser que el Team creador tenga cargados datos de billing previamente. En ese caso puede optar por crear un nuevo Account con un plan Pago mediante su billing precargado. Caso contrario puede cargar datos de billing una vez creado el account y cambiarle el plan.

Gestiona 0 o más dominios custom (y sus subdominios y opcionalmente configuraciones DNS) Cada vez que se agrega un dominio/subdominio se debe verificar el status de delegación DNS del mismo, y rechequear periódicamente.

Gestiona 1 motor de correo electrónico que puede tener asociado 0 (desactivado) o más dominios.

Project

Un proyecto es conjunto aislado de recursos para prestar servicios HTTP (uid,gid,storage,cpu,ram,bw) cuyos limites están definidos por el tipo de VM (comercial) asignado al mismo. Puede ser free o pago.

Como características puede tener, entre otras: - 1 base/user MySQL (general) - 1 demonio memcached local (por instancia) - 1 demonio redis local (por instancia) - servicios de caché, aceleración de aplicaciones, emisiones de SSL automatica, backups, análisis de seguridad, logs, estadísticas, consola ssh web, acceso ftp, enlace con github, stack (lamp, mern, etc), distintas versiones de php con sus respectivas opciones de config, docroot, variables de entornos, settings del webserver (hotlinking, carpetas protegidas, directoryindex, errores configurables), WAF, Dos-Mode, herramientras de admin de aplicacion (en caso de instalar una app al crearlo) - App preinstalada al momento de la creación

El proyecto se puede transferir a otro Account. Debe ser aceptada por un User autorizado por el Team receptor, quien debe elegir el tipo de VM con que lo va a recibir y aceptar el pago del mismo si corresponde.

CodeTainer

CodeTainer es una instancia de un container aplicado a un proyecto. Tiene un conjunto de características predefinidas que no pueden modificarse.

  • Hobby: .25vCPU + 512MB RAM + 5GB storage + 1 MySQL (1GB) + 1 memcache + 1 redis

  • Tier1: 1vCPU + 2GB RAM + 50GB storage + 1 MySQL (10GB) + 1 memcache + 1 redis

  • Tier2: 2vCPU + 4GB RAM + 100GB storage + 1 MySQL (20GB) + 1 memcache + 1 redis

  • Tier3: 4vCPU + 8GB RAM + 150GB storage + 1 MySQL (40GB) + 1 memcache + 1 redis

Puede activarse múltiples instancias de un CodeTainer, que accederan al mismo storage. Archivos modificados desde un codetainer son visibles instantaneamente en todos. La capacidad de almacenamiento de cada Tier no se suma con cada nueva instancia activada, ni para web ni para MySQL.

Última actualización