Sub-organizações, ramos e grupos — e quando precisa de cada um
Uma sub-organização é um inquilino-filho. Um ramo é uma árvore interna por onde os papéis se propagam. Um grupo é aquilo através do qual as pessoas são inscritas. Quando usar cada um.
Uma sub-organização é uma organização-filha completa aninhada dentro de outra, com as suas próprias pessoas, programas, papéis, marca e domínio. Um ramo é uma árvore dentro de uma única organização — campus, departamentos, regiões — em que um papel atribuído num ramo se aplica a tudo o que está por baixo dele. Um grupo é a coorte, a turma ou a equipa através da qual as pessoas são de facto inscritas. Quase todas as plataformas vendem uma ou duas das três coisas sob a mesma palavra, e quase todos os compradores pedem as três sem as distinguir.
Não são alternativas. Uma configuração que funciona usa as três ao mesmo tempo, a alturas diferentes: sub-organizações para fronteiras, ramos para âmbito, grupos para inscrição. Pôr uma peça da sua estrutura à altura errada não é fatal, mas é caro de desfazer, porque quando dá por isso as pessoas já têm histórico agarrado àquilo de onde as quer agora tirar.
- Sub-organização — esta parte da estrutura precisa da sua própria marca, do seu próprio domínio, dos seus próprios administradores ou da sua própria fronteira na revisão de segurança de alguém? Então é uma sub-organização.
- Ramo — esta parte existe para que se possa pôr uma pessoa à frente de uma fatia da organização? Então é um ramo.
- Grupo — esta parte existe para que um conjunto de pessoas possa ser inscrito, ensinado e avaliado em conjunto, entre duas datas? Então é um grupo.
A ordem importa. Uma sub-organização é a resposta mais pesada e a mais difícil de reverter, pelo que deve ser aquela que tem de ser justificada. Um grupo é a mais leve, e uma fatia surpreendente daquilo que se pede num caderno de requisitos acaba por ser um grupo com um nome de som importante.
ORGANISATION Northwind Academy one tenant, one contract
SUB-ORG Acme Corp own domain, own admins, own boundary
BRANCH EMEA a role granted here reaches all below
BRANCH Dubai office
GROUP Compliance intake, September 40 people, one programme, two datesLido de cima para baixo, cada camada responde a uma pergunta diferente. Quem está separado de quem. Quem é responsável por quê. Quem está a aprender isto, em conjunto, agora.
Sub-organização: uma fronteira que poderia entregar a outros
Num modelo de sub-organizações, a organização é um registo de primeira classe e uma organização pode ter uma organização-mãe. Marca, domínio, utilizadores, papéis, conteúdos, inscrições e relatórios ficam todos pendurados nela. Uma organização-mãe vê para dentro das suas filhas; uma filha não vê para cima nem para os lados. O aninhamento vai tão fundo quanto for a sua estrutura real — um grupo de escolas, cada escola e, em alguns agrupamentos, uma federação acima do grupo.
Multi-inquilino
Uma instalação única de uma plataforma a servir muitas organizações, em que cada organização vê apenas as suas próprias pessoas, conteúdos, marca e relatórios. Uma sub-organização é multi-inquilino aplicado dentro de um cliente: um inquilino-filho com a sua própria fronteira, situado sob uma organização-mãe que vê para dentro dele. O teste não é se um inquilino recebe um logótipo diferente. É se a separação sobrevive a um erro — um novo ponto de exportação escrito sem filtro deve devolver nada, em vez de devolver os formandos de outra pessoa.
É neste último ponto que vale a pena insistir com qualquer fornecedor, connosco incluídos. Se um inquilino é uma coluna numa linha, a separação é aquilo por que o código da aplicação se lembrou de filtrar, e aguenta-se até à próxima funcionalidade que for lançada. Se a regra fica na base de dados, a consulta devolve nada quando o filtro está em falta.
O peso de uma sub-organização é real. Cada uma é configurada uma vez: marca, um domínio e o seu certificado, administradores, papéis, definições de retenção e de consentimento. Em troca, fica com uma coisa que pode entregar a outros. Uma sub-organização tem um dono que não é você, e a saída é uma subárvore que se apaga, em vez de uma lista de verificação de utilizadores, grupos, cursos e relatórios que alguém espera que esteja completa.
Qual é a diferença entre uma sub-organização e um ramo?
Uma sub-organização separa dados. É uma organização aninhada com os seus próprios utilizadores, marca, domínio, administradores e relatórios, e uma fronteira entre ela e as suas irmãs. Um ramo dá forma ao alcance. É um nó numa árvore dentro de uma organização, não tem marca nem domínio próprios, e existe para que um papel atribuído nesse nó se aplique a tudo o que está por baixo dele. A pergunta que decide é se esta parte da estrutura poderia alguma vez ser gerida por alguém fora da sua administração. Se sim, é uma sub-organização. Se for apenas e sempre um formato interno do seu próprio organigrama, é um ramo.
Ramo: onde uma atribuição para
Um ramo é um nó operacional dentro de uma organização. Campus, departamentos, faculdades, regiões, centros de formação, centros de custo, áreas de franquia — aquilo que o seu organigrama disser de facto. Os ramos partilham a marca da organização, o seu domínio, os seus utilizadores e a sua biblioteca de conteúdos. O que eles carregam é âmbito.
A propagação é a razão de ser de tudo isto. Dê a alguém um papel no ramo EMEA e ele cobre a EMEA e tudo o que está por baixo, hoje e depois de abrir mais dois escritórios. Sem uma árvore que propaga, a mesma pessoa precisa de uma atribuição por nó, e as atribuições sobrevivem à razão que as motivou. Ninguém se lembra de revogar a atribuição do Dubai quando o escritório do Dubai fecha, porque ninguém tem uma lista.
Uma região é um nó na árvore, pelo que o gestor regional é uma atribuição que já cobre o campus que vai abrir para o ano.
Uma região é uma convenção de nomenclatura, pelo que o gestor regional são nove atribuições e uma folha de cálculo a acompanhar quais delas ainda devem estar ativas.
É na profundidade que as árvores de ramos correm mal. A árvore deve espelhar o organigrama, não o horário. Cada nível que acrescenta é uma decisão que um humano toma sempre que entra uma pessoa, e uma árvore com cinco níveis e um só gestor lá dentro é administração sem leitor. Se nunca ninguém vai receber um papel a um determinado nível, esse nível é um filtro de relatório, não um ramo.
Grupo: a unidade através da qual as pessoas são inscritas
Um grupo é um conjunto de pessoas que aprendem alguma coisa em conjunto. A turma 4B. A entrada de setembro em conformidade. A coorte de recém-licenciados. A equipa de projeto que faz a formação do novo produto antes do lançamento. Um grupo tem uma composição que muda, normalmente um programa associado, e um fim.
Os grupos são o lugar a que pertence a rotatividade, e é esse o argumento para os manter separados dos outros dois. A composição muda todas as semanas. Alguém entra tarde, alguém é transferido, alguém repete um módulo com a entrada seguinte. Nada disso deve reescrever as permissões de uma pessoa nem movê-la entre organizações. Mudar um formando de grupo é um ato pequeno; mudar um formando de sub-organização é uma migração.
Um grupo pode controlar aquilo que alguém vê?
Não deve, e um sistema que o permita vai ensinar maus hábitos aos seus administradores. Um grupo responde a uma pergunta: quem está a aprender isto, em conjunto, agora. As permissões vêm dos papéis, atribuídos numa organização ou num ramo. Quando os grupos são usados como portadores de permissões, seguem-se duas falhas. Há pessoas que são acrescentadas a turmas em que não estão para poderem ver um relatório, o que corrompe todos os números de conclusão que essa turma produz. E retirar alguém de uma turma retira em silêncio o acesso a outra coisa sem relação, que ninguém liga à alteração que a causou. O grupo decide a inscrição; o papel decide o alcance.
Três exemplos trabalhados
Um grupo de escolas
Um agrupamento com duas escolas, ou uma editora que gere 114 delas, tem o mesmo formato com larguras diferentes. Cada escola é uma sub-organização: tem um nome que os pais reconhecem, uma direção que é dona da sua própria lista de pessoal, normalmente o seu próprio domínio e, muitas vezes, a sua própria inspeção e o seu próprio contrato de financiamento. O agrupamento situa-se acima delas e vê para baixo.
Dentro de uma escola, os ciclos e os departamentos são ramos — o responsável de ciências é uma atribuição que cobre todas as turmas de ciências da escola. As turmas, os grupos de direção de turma e os grupos de nível são grupos.
Riverside Trust the group
├── Riverside Primary SUB-ORG own domain, own head, own inspection
│ ├── Early years BRANCH
│ └── Key stage 2 BRANCH
│ └── Class 4B GROUP 28 pupils, one form tutor
└── Riverside High SUB-ORG own domain, own head
├── Sciences BRANCH head of department scoped here
└── Humanities BRANCH
└── Year 10 history, set 2 GROUPA armadilha aqui são os anos de escolaridade. Alguém quer os resultados por ano em todo o agrupamento, e por isso os anos de escolaridade são criados como organizações, e agora cada aluno está no tipo errado de contentor e as definições de marca e de domínio de cada escola têm de ser repetidas por ano. O ano é um atributo de um grupo e uma dimensão de um relatório. Não é um inquilino.
Uma academia corporativa
Veja-se uma academia corporativa que dá formação a 15 empresas clientes a partir de um único inquilino. Cada empresa cliente é uma sub-organização. Fica com o seu próprio domínio, com os seus próprios administradores, que podem publicar e extrair relatórios sem enviar um email à academia, com a sua própria marca, e com uma fronteira que se aguenta quando a equipa de segurança do cliente pergunta pelas outras 14.
Dentro de um cliente, as unidades de negócio e as regiões são ramos, porque o diretor de formação do próprio cliente precisa de uma atribuição que as cubra a todas e um gestor regional precisa de uma que cubra uma fatia. A entrada de acolhimento de setembro, a edição anual de anticorrupção, as doze pessoas que fazem o programa de liderança — esses são grupos, e são criados e fechados constantemente.
A armadilha aqui é uma sub-organização por contrato. Um cliente contrata três cursos, e por isso são criadas três organizações, cada uma com a sua marca para configurar e os seus administradores para convidar, e depois o cliente pede um relatório único sobre as três e ninguém o consegue produzir. Um cliente, uma sub-organização. Três cursos são três grupos.
Uma entidade formadora
Uma entidade formadora gere uma mistura, e é a mistura que faz o modelo justificar-se. Há um catálogo público com inscrições abertas sob a marca da própria entidade. Há contratos corporativos, cada um a querer uma academia com o aspeto do cliente. Há programas acreditados com coortes fixas, avaliadores e uma entidade certificadora que vai pedir registos.
Your training company everything below is yours to administer
├── Public catalogue BRANCH open enrolments, your own brand
│ └── Project management, Nov intake GROUP
├── Acme Corp SUB-ORG learn.acme.com, Acme's own admins
│ ├── EMEA BRANCH
│ └── Americas BRANCH
└── Borden Group SUB-ORG training.bordengroup.com
└── Borden Manufacturing SUB-ORG a subsidiary with its own brandDuas coisas a reparar. O catálogo público é um ramo, não uma sub-organização, porque é a sua marca, o seu domínio e o seu pessoal — não há nada a separar. E o terceiro nível é real: um cliente com filiais que têm identidade própria é um caso normal para uma entidade formadora, e é o caso que um modelo de subcontas com um só nível de profundidade não consegue exprimir sem convenções de nomenclatura.
Quatro perguntas antes de desenhar a árvore
- Que partes teriam de aparecer com uma marca diferente e um endereço diferente no navegador de um estranho? Essas são sub-organizações.
- Que partes precisam de ter uma pessoa concreta à frente delas? Essas são ramos.
- Que partes têm uma data de início e uma data de fim? Essas são grupos.
- Que partes existem apenas porque um relatório precisa de um filtro? Essas não são nenhuma das três.
A quarta pergunta é a que poupa mais trabalho. Constrói-se imensa estrutura porque alguém quer os números cortados de uma determinada maneira, e a estrutura é a forma mais cara que existe de obter um filtro. O âmbito dos relatórios deve seguir a árvore de ramos e o grupo, e não o contrário.
Cada campus deve ser a sua própria sub-organização?
Só se o campus tiver alguma coisa que uma fronteira proteja: a sua própria marca e o seu próprio domínio, os seus próprios administradores, que não devem ver os outros campus, ou o seu próprio regulador, inspeção ou contrato. Um campus que partilha uma marca, uma lista de pessoal e uma única equipa de administração é um ramo. A diferença prática está em quem faz o trabalho — as sub-organizações são configuradas uma a uma, ao passo que os ramos se desenham uma vez e tudo herda. Os grupos de escolas com nomes distintos acabam normalmente com uma sub-organização por escola. Uma universidade única com quatro polos acaba normalmente com ramos.
Como isto funciona na Lurno
A Lurno tem as três como primitivas distintas, e é por isso que este artigo justifica a extensão. As sub-organizações aninham-se arbitrariamente, cada uma com a sua própria marca e o seu próprio domínio personalizado com TLS automático — o lado da marca e dos domínios está exposto em marca branca. Dentro de uma organização há uma segunda árvore, separada, de ramos, e um papel atribuído num ramo propaga-se por ela para baixo. Os grupos são a primitiva de inscrição, e não têm permissões próprias.
A fronteira é imposta no Postgres e não no código da aplicação: 868 políticas de segurança ao nível da linha ao longo de 676 migrações, pelo que uma consulta que se esqueça do filtro devolve nada. É essa a afirmação a verificar com qualquer fornecedor — o detalhe está na página de segurança.
Dois limites, declarados de forma direta porque mudam a maneira como se planeia uma implementação. As contas são criadas por convite — o registo self-service e os pagamentos estão em desenvolvimento, pelo que uma organização cliente é configurada e faturada, em vez de se comprar a si própria. E o início de sessão via parceiro (silent SSO) está disponível hoje, ao passo que o SAML e o OIDC estão no roadmap e não foram lançados; se o departamento de informática de um cliente já decidiu como é que o pessoal se vai autenticar, levante essa questão cedo. O modelo de entrega para entidades formadoras que revendem formação está na página de entidades formadoras.
A versão curta
As sub-organizações separam. Os ramos delimitam o âmbito. Os grupos inscrevem. Quando não tiver a certeza do que é uma peça da sua estrutura, pergunte o que se parte se errar: pôr uma fronteira onde devia estar um ramo custa-lhe configuração repetida e um relatório que não consegue tirar, e pôr um ramo onde devia estar uma fronteira custa-lhe uma conversa com a equipa de segurança de alguém. Desenhe a árvore antes de carregar os dados, e obrigue alguém a defender cada sub-organização da lista.