Este breve artigo é resultado dos estudos sobre o DevOps Center da Salesforce. Aqui exploro alguns conceitos iniciais da prática DevOps e como o DevOps Center traz essas práticas para projetos Salesforce.
O que é DevOps
DevOps é um conjunto de práticas, culturas e ferramentas que visam a integração e automatização dos processos entre o desenvolvimento de software e os times de TI.
Sua origem se deu por volta de 2007, quando os times de desenvolvimento e de operações começaram a levantar preocupações sobre o modelo vigente até então, onde o trabalho era feito de forma completamente apartada; os desenvolvedores participavam apenas no processo de desenvolvimento e o time de operações trabalhava apenas com o processo de deploy e pós-deploy. Então veio a proposição de unir os times em um processo integrado e contínuo durante o ciclo de vida do produto, trazendo velocidade e qualidade nas implantações de software.
Fonte: What Is DevOps?
Segue uma pequena descrição das fases do fluxograma acima:
1. Discover: Fase de exploração, organização e priorização das ideias. Elas devem estar alinhadas com as metas gerais e entrega de valor do projeto para os usuários finais.
2. Plan: Planejamento e gerenciamento do projeto, a partir dos resultados da fase de discover.
3. Build: Fase de desenvolvimento das soluções propostas nos estágios anteriores.
4. Test: Testes de software, que garantem a qualidade e integridade das entregas, garantindo que os fluxos estejam de acordo com os critérios de aceitação descritos na fase de planejamento.
5. Deploy: Processo de implementação das soluções propostas em ambiente produtivo.
6. Operate: Gerenciamento das entregas das funcionalidades para os usuários finais do software/sistema. Aqui também pode acontecer os treinamentos com os usuários do sistema.
7. Observe: Monitoramento para identificação dos problemas que possam afetar a qualidade do ambiente.
8. Continuous feedback: Coletar feedbacks dos usuários finais para garantir novas entregas de valor que possam agregar o software/sistema.
O que é o DevOps Center
Produto para gerenciamento de alterações e implantações, promovendo integração entre os diversos ambientes Salesforce. Ele permite o uso das boas práticas de DevOps através de uma interface centralizada e fácil de utilizar.
O DevOps Center permite Integração rápida com o Github (a integração com o Bitbucket ainda está em BETA até o momento em que esse artigo está sendo escrito). A integração com o repositório permite a centralização do projeto, onde podemos facilmente retornar versões anteriores e manter a versão final completa e segura, atualizando os ambientes de desenvolvimento com as mudanças feitas por cada membro do time.
O gerenciamento do projeto no Devops Center é feito principalmente com o a utilização dos work items. Work Item é um objeto Salesforce criado para o DevOps Center. Ele permite que novas funcionalidades ou alterações propostas sejam enviadas e rastreadas durante todo o ciclo de desenvolvimento. Assim, podemos saber saber quais foram as mudanças e em quais estágios do pipeline elas aconteceram.
Quando work items diferentes possuem informações conflitantes que precisam ser resolvidas, podemos facilmente identificar e mesclá-las corretamente num único fluxo, mantendo a integridade e consistência do projeto.
Com seu uso, é possível verificar a lista de metadados e selecionar aqueles que devem ser migrados para os demais ambientes. A visualização do pipeline de desenvolvimento é simples e você pode rapidamente implantar alterações de uma fase para outra, ou migrar as alterações entre ambientes.
As atividades de desenvolvimento podem ser feitas tanto na interface do DevOps Center, quanto localmente, com o uso do Salesforce CLI. Isso permite que tanto desenvolvedores quanto administradores do sistema possam trabalhar de forma colaborativa, pois sua interface é amigável para aqueles profissionais que não estão acostumados com o uso do Salesforce CLI e IDEs de desenvolvimento.
O que são Sandboxes?
Durante o processo de desenvolvimento, normalmente seguimos uma ordem: o desenvolvedor constrói e realiza seus testes unitários sobre os componentes criados. Então, as atividades de cada desenvolvedor do time são reunidas num ambiente integrado, onde são realizados os testes manuais ou automatizados que garantam a qualidade e estejam de acordo com os requisitos mapeados durante a fase de descobrimento e planejamento. Então, após a fase de testes, normalmente são feitas implantações em ambientes de homologação e pré-produção, onde temos testes mais robustos de integração e performance, pois estes ambientes são os mais próximos do ambiente produtivo. Por fim, chega a hora de implantação em produção.
Cada fase de desenvolvimento é feita em ambientes diferentes, ou sandboxes. Salesforce Sandboxes são cópias isoladas do ambiente de produção, que permitem que os times de desenvolvimento testem as mudanças de forma isolada e conduzam implementações sem comprometer os dados reais. Múltiplas sandboxes permitem a colaboração entre os times, controle de versões, minizando riscos no sistema.
A Salesforce disponibiliza alguns tipos de sandbox:
- Developer Sandbox Pode ser atualizada diariamente, possui 200MB para armazenamento de dados e 200MB para armazenamento de arquivos. Todos os metadados de produção são copiados para esse ambiente. Mais comumente utilizada para desenvolvimento e testes unitários.
- Developer Pro Sandbox As mesmas configurações da sandbox Developer, com exceção do limite de armazenamento: 1GB para dados e 1BG para arquivos.
- Partial Copy Sandbox Pode ser atualizada a cada 5 dias, possui 5GB para armazenamento de dados, e o armazenamento de arquivos é o mesmo da organização de produção. Todos os metadados e alguns dados são copiados da organização de produção. Mais comumente utilizada para testes, como: testes de aceite e testes de integração, e treinamento com os usuários finais.
- Full Sandbox Pode ser atualizada a cada 29 dias, possui os mesmos espaços de armazenamento de dados e arquivos da organização de produção. Todos os metadados e dados são copiados da organização de produção. Mais comumente utilizada para testes de performance e carregamento.
Referências
What Is DevOps?
DevOps Tutorial
DevOps Center: Quick Look
Salesforce Sandboxes
Sandbox Types and Templates
Top comments (0)