O Apache DolphinScheduler 3.x inverte completamente a sua arquitetura. Equipes que ainda utilizam a versão 1.3 devem reconfigurar o layout do seu cluster e reescrever o esquema do banco de dados antes de poderem fazer o upgrade. O antigo master de nó único desaparece, sendo substituído por um sistema descentralizado baseado em plug-ins que agenda, armazena e registra logs de jobs de forma diferente.
Por que essa mudança é importante
A versão 1.3 dependia de um master centralizado que gerenciava todas as decisões de agendamento e oferecia apenas doze tipos de tarefas integrados. A versão 3.x substitui isso por um microkernel que carrega tipos de tarefas e adaptadores de armazenamento como plug-ins, e elimina o ponto único de falha ao permitir que masters e workers se comuniquem por meio de um serviço de registro (registry). Operadores ganham escalabilidade e resiliência; desenvolvedores estendem o scheduler simplesmente adicionando um arquivo JAR, em vez de alterar o código principal.
A reformulação arquitetural
- Sistema de plug-ins de microkernel – Definições de tarefas, manipuladores de recursos e verificações de integridade (health checks) personalizadas agora residem em módulos separados. Adicione um novo tipo de tarefa colocando seu plug-in no classpath e reiniciando os nós afetados.
- Coordenação descentralizada – Masters e workers se descobrem por meio de um registro. O registro pode ser o ZooKeeper (o padrão histórico), um banco de dados relacional baseado em JDBC ou um cluster Etcd. Escolha a tecnologia que combine com sua stack existente.
- **Catálogo de tarefas expand
Resumo: Mudar da versão 1.3 para a 3.x não é apenas uma simples atualização de versão; exige uma renomeação coordenada do banco de dados, uma migração de JSON para relacional e uma rearquitetura do seu cluster em torno de um modelo baseado em registro e habilitado para plug-ins. Siga o checklist passo a passo, realize testes antecipadamente e você obterá um agendador que escala horizontalmente, se recupera automaticamente e utiliza o mesmo protocolo que os serviços de nuvem modernos.
