Fase 7: Planejar a Infraestrutura como Código
Nesta fase, você define sua estratégia de Infraestrutura como Código (IaC) para automatizar a implantação e o gerenciamento de recursos do Databricks .
As ferramentas de Infraestrutura como Código são a maneira recomendada de iniciar e gerenciar um espaço de trabalho Databricks . Cada cloud possui sua própria ferramenta IaC Infraestrutura como Código), e também existem diversas ferramentas independentes cloud .
Escolha ferramentas de Infraestrutura como Código
Terraform (recomendado para infraestrutura lakehouse )
Terraform é uma ferramenta IaC de terceiros que possui amplo suporte em diversos setores. É a ferramenta IaC de terceiros mais popular, com um provedor Terraform oficialmente suportado pela Databricks. A documentação do provedor Terraform em Terraform oferece exemplos e orientações para ajudá-lo a começar rapidamente.
capacidades do Terraform
- Gerenciar recursos account Databricks (por exemplo, espaço de trabalho, redes, configurações de armazenamento).
- gerenciar recurso workspace (por exemplo, clusters, Job, Notebook, recurso Unity Catalog ).
- Independente de nuvem: Funciona na AWS, Azure e GCP com a mesma linguagem.
- Ecossistema amplo com módulos e melhores práticas.
- Suporte oficial da Databricks.
Padrões de implantação do Terraform
- Infraestrutura em nível de conta : espaço de trabalho, redes, credenciais de armazenamento, metastores.
- Configuração em nível de espaço de trabalho : política de cluster, pool de instâncias, configurações workspace .
- Unity Catalog : Catálogos, esquemas, locais externos, credenciais de armazenamento.
- Notebook e repositórios : implementou repositórios Notebook e Git no espaço de trabalho.
- Segredos : gerenciamento de segredos no Escopo de Segredos Databricks .
Melhores práticas para Terraform
- Utilize módulos Terraform para criar padrões reutilizáveis para sua organização.
- Armazene o estado do Terraform em backends remotos (por exemplo, S3, Azure Blob Storage, GCS) com bloqueio de estado.
- Utilize o espaço de trabalho Terraform ou arquivos de estado separados para isolar ambientes (por exemplo, desenvolvimento, teste e produção).
- Use variáveis do Terraform e arquivos
tfvarspara parametrizar configurações. - Habilite a revisão do plano no pipeline CI/CD antes de aplicar as alterações.
- Marque todos os recursos de forma consistente para fins de atribuição de custos e governança.
- Documentar os módulos e manter um registro de módulos.
- Utilize os exemplos oficiais do provedor Terraform do Databricks como ponto de partida.
Para obter documentação e exemplos de provedores Terraform, consulte o Registro Terraform do Databricks.
Pacotes de Automação Declarativa (recomendados para recursos de dados e AI )
O Declarative Automation Bundles é uma ferramenta Infrastructure-as-Code da Databricks que permite o empacotamento e a implantação consistentes de dados e recursos AI . Oferece suporte oficial e integração com o espaço de trabalho Databricks .
Recursos de pacotes de automação declarativa
- Tarefa implantada, pipeline e Notebook.
- implantar e gerenciar modelos ML .
- Gerenciar a implantação em diferentes ambientes (por exemplo, desenvolvimento, teste e produção).
- Integração do controle de versão com Git.
- Integração de CI/CD com GitHub Actions, Azure DevOps e GitLab CI.
- Criação de modelos para padrões comuns.
Casos de uso de pacotes de automação declarativa
- implantei fluxo de trabalho de engenharia de dados e pipeline declarativo LakeFlow Spark .
- implementei fluxo de trabalho de machine learning e modelo de endpoint específico.
- Implantei o Notebook e as consultas SQL .
- Configurações específicas do ambiente.
- Automatize a promoção do ambiente de desenvolvimento para o ambiente de teste e, em seguida, para o ambiente de produção.
Melhores práticas para pacotes de automação declarativa
- Utilize pacotes de automação declarativa para cargas de trabalho de dados e AI (por exemplo, tarefas, pipelines, modelos).
- Utilize Terraform para recursos de infraestrutura (por exemplo, espaço de trabalho, redes, Unity Catalog).
- Utilize o padrão Declarative Automation Bundles para casos de uso comuns.
- Integre com o pipeline CI/CD para implantações automatizadas.
- Utilize configurações específicas para cada ambiente: desenvolvimento, teste e produção.
- Definições de pacotes de controle de versão no Git.
Para obter documentação sobre pacotes de automação declarativa, consulte O que são pacotes de automação declarativa?
ferramentas nativas de Infraestrutura como Código em nuvem
Cada provedor cloud oferece ferramentas nativas IaC para gerenciar recursos cloud . Essas ferramentas podem complementar Terraform para infraestrutura específica cloud .
AWS CloudFormation
AWS utiliza o padrão AWS CloudFormation para automatizar a criação, atualização e exclusão de recursos cloud , como buckets S3 , funções IAM e VPCs.
Recursos do CloudFormation
- Gerenciar a infraestrutura AWS (por exemplo, VPCs, buckets S3 , função IAM ).
- Defina recursos personalizados usando funções AWS Lambda .
- Anteriormente utilizado para encapsular chamadas API de contas Databricks .
Limitações do CloudFormation
- Embora esse método tenha sido usado no passado para iniciar um workspace a partir do console account Databricks , ele não é mais o método preferido para iniciar um workspace Databricks .
- Use Terraform para gerenciar workspace Databricks .
Boa prática : Utilize o CloudFormation para infraestrutura AWS (por exemplo, VPCs, S3, IAM), mas utilize Terraform para recursos Databricks .
abordagem de implantação do projeto
e configuração account
Antes de executar qualquer automação ou criar manualmente qualquer workspace, o primeiro passo é assinar o Databricks em seu provedor cloud .
AWS
Existem duas maneiras de começar a usar Databricks on AWS:
Você não possui uma account AWS
A configuração expressa permite que você comece a usar Databricks sem acesso prévio a um provedor cloud . Cadastre-se e comece a usar Databricks agora mesmo. A configuração Express oferece um workspace serverless e créditos de avaliação gratuitos que você pode usar para começar a explorar a plataforma Lakehouse. Após o uso ou expiração dos seus créditos de teste gratuitos, você não poderá usar Databricks até que faça um upgrade adicionando um método de pagamento. Em seguida, você poderá criar espaços de trabalho adicionais em sua account.
Você deseja usar sua account AWS existente.
Você pode se inscrever para um teste gratuito do Databricks de duas maneiras (a forma como você se inscreve determina como a cobrança será feita após o término do período de teste gratuito):
- Cadastre-se pelo Databricks : Após o uso ou expiração dos seus créditos de teste gratuitos, você deverá inserir uma forma de pagamento para continuar usando Databricks.
- Inscreva-se pelo AWS Marketplace : Após o uso ou expiração dos seus créditos de avaliação gratuita, você será cobrado pela AWS e poderá gerenciar a cobrança no seu console AWS .
Como parte do processo de integração após a inscrição, um primeiro workspace é criado para o período de teste.
Implantações de produção
Após atualizar sua assinatura, você pode usar o console account Databricks para configurar sua account Databricks e criar um workspace. Para ambientes de produção, utilize instalações automatizadas como o Terraform.
Bootstrap com workspaceadministrativo
O primeiro passo antes de executar qualquer automação ou criar manualmente qualquer workspace é construir um workspace em cada região necessária, usado exclusivamente para fins administrativos (nenhum usuário da plataforma de dados deve ter acesso a ele).
Principais razões para construir um workspaceadministrativo
- APIsUnity Catalog : APIs Unity Catalog são principalmente APIs workspace - para criar catálogos, locais e assim por diante, é necessário um workspace .
- Tarefa administrativa : Utilizada para executar painéis de controle usando tabelas do sistema, executar a Ferramenta de Análise de Segurança (SAT) e outras operações administrativas.
- Hub de automação : Local centralizado para executar Terraform, Declarative Automation Bundles e outras ferramentas de automação.
Melhores práticas para espaços de trabalho administrativos
- Crie um workspace administrativo por região.
- Restrinja o acesso apenas aos administradores da plataforma.
- Utilize este workspace para o gerenciamento Unity Catalog e consultas às tabelas do sistema.
- implantar ferramentas de automação (por exemplo, Declarative Automation Bundles, executores Terraform ) neste workspace.
- Documente a finalidade e as restrições de acesso.
Padrões de implantação de design
Padrão 1: padrão de implantação do espaço de trabalho
Crie módulos Terraform para padrões comuns de implantação workspace mapeados para personas e casos de uso.
Exemplos de padrões workspace
- workspacede engenharia de dados : compute clássica, VPC de gerenciamento de clientes, pipeline declarativo Spark LakeFlow habilitado.
- workspaceanalítico : compute sem servidor, banco de dados SQL , integrações BI .
- workspacede aprendizadoML : clusters de GPU, ambiente de execução de aprendizado ML , MLflow habilitado.
- workspacede produção : Alta disponibilidade, Link Privado, chave de gerenciamento do cliente.
Benefícios
- Implantações consistentes em todos os ambientes.
- Redução de erros de configuração.
- Provisionamento mais rápido de novo espaço de trabalho.
- Separação clara de responsabilidades por perfil.
Padrão 2: Padrão de promoção ambiental
Criar padrões para promover cargas de trabalho do ambiente de desenvolvimento para o de teste e, em seguida, para o de produção.
Fluxo de trabalho de promoção ambiental
- Desenvolvimento : implantação no workspace de desenvolvimento usando Declarative Automation Bundles com configuração de desenvolvimento.
- Preparação : Promover para o workspace de preparação e executar testes de integração.
- Produção : Promover para o workspace de produção após aprovação.
Práticas recomendadas
- Utilize pacotes de automação declarativa para configurações específicas do ambiente.
- Automatize a promoção por meio do pipeline CI/CD .
- Exigir etapas de aprovação para implantações em produção.
- Teste em encenação antes da promoção da produção.
Padrão 3: Padrão de módulos reutilizáveis
Crie uma biblioteca de módulos Terraform como blocos de construção para padrões comuns.
Módulos de exemplo
- Módulo de espaço de trabalho : workspace implantado com conexão de rede, armazenamento e Unity Catalog .
- Módulo de catálogoUnity Catalog : Cria um catálogo com esquemas e permissões.
- Módulo política de cluster : Define a política de cluster para diferentes equipes ou casos de uso.
- Módulo de rede : Cria VPC/VNet com sub-redes, NAT e regras de firewall.
Benefícios
- Reduz a duplicação de código.
- Estabelece padrões organizacionais.
- Simplifica a manutenção e as atualizações.
- Permite o autosserviço para equipes.
Recomendações de Infraestrutura como Código
Recomendado
- Utilize uma ferramenta IaC para lançar espaços de trabalho e infraestrutura sempre que possível.
- Utilize Terraform para recursos de infraestrutura (por exemplo, espaço de trabalho, redes, Unity Catalog, armazenamento).
- Utilize pacotes de automação declarativa para cargas de trabalho de dados e AI (por exemplo, Job, pipeline, Notebook, modelos).
- Utilize os padrões existentes disponíveis para cada cloud (exemplos de provedores Terraform ).
- Crie um workspace administrativo em cada região necessária.
- Crie módulos Terraform reutilizáveis mapeados para personas e casos de uso.
- Armazene o estado da IaC em backends remotos com bloqueio de estado.
- Integre as implementações IaC com o pipeline de CI/CD .
- Documente os padrões de implantação e a utilização dos módulos.
- Utilize tags consistentes em todos os recursos.
Evite esses padrões
- Não crie espaços de trabalho manualmente em produção (use IaC para garantir a repetibilidade).
- Não armazene o estado do Terraform localmente (use backends remotos).
- Não implante sem revisão do plano (ative a aprovação do plano em CI/CD).
- Não misture IaC com configuração manual (escolha uma abordagem).
- Evite criar espaços de trabalho personalizados com configurações únicas.
Resultados da Fase 7
Após concluir a Fase 7, você deverá ter:
- Estratégia de ferramentas IaC selecionada (Terraform para infraestrutura, Declarative Automation Bundles para cargas de trabalho).
- Definição do uso de ferramentas IaC nativas em nuvem (por exemplo, CloudFormation, ARM/Bicep).
- Abordagem de inscrição e configuração account planejada.
- Definição do projeto workspace administrativo (um por região).
- Padrões de implantação projetados (por exemplo, padrões workspace , promoção de ambiente, módulos reutilizáveis).
- Biblioteca de módulos Terraform planejada (por exemplo, módulos workspace, Unity Catalog, rede e política de cluster ).
- Estratégia de integração CI/CD definida para implantações de IaC.
- Estratégia de gerenciamento de estado remoto projetada (por exemplo, S3, Azure Blob, GCS).
- Etiquetas e padrões de nomenclatura definidos para IaC-gerenciar recurso.
Próxima fase : Fase 8: Projetar a configuração compute
Orientações de implementação : Para obter instruções passo a passo sobre como implementar sua estratégia de IaC, consulte o provedor Terraform do Databricks e O que são pacotes de automação declarativa?.