Os contentores são a abordagem certa?
Muito hype tem acontecido na comunidade Sitecore em torno do Docker e contêineres desde o anúncio do suporte oficial para instalações conteinerizadas. O repositório Docker da comunidade tem fornecido muita ajuda com a preparação de imagens e scripts para que os desenvolvedores sejam configurados muito rapidamente. Os desenvolvedores estão ficando entusiasmados com a promessa de maior produtividade e gerenciamento de instalação mais fácil, e agora você precisa tomar uma decisão sobre se a organização adota a conteinerização como estratégia para a entrega do seu software.
Qual é a resposta rápida?
Infelizmente, a resposta é: "Depende".
Uma boa regra geral é que, se você é uma organização que usa máquinas virtuais, provavelmente está melhor com contêineres. Deve-se notar que seus desenvolvedores individuais podem se beneficiar do uso do Docker, mesmo que você decida não adotá-lo em toda a empresa para o fluxo completo de DevOps para a produção.
Geralmente, os desafios a seguir indicam que sua organização pode se beneficiar de uma estratégia de contêiner:
- O fluxo atual de DevOps está gerando um elevado custo das infraestruturas devido ao uso excessivo de recursos necessários para máquinas virtuais.
- É difícil para a organização gerenciar Sitecore infraestrutura por causa de Dependências variáveis entre diferentes versões do Sitecore.
- A organização é perder muito tempo Configuração de ambientes Sitecore.
- Os vários ambientes são implantado em várias nuvens ambientes de hospedagem.
- A equipa tem de ser capaz de replicar ambientes específicos rapidamente, como fazer suporte para problemas de produção relatados.
- A equipa precisa de trabalhar em diferentes sites/soluções/projetos, que também pode usar diferentes versões do Sitecore e exigir diferentes dependências (versões do SQL Server, sistemas operacionais, versões Solr, etc.).
- Os desenvolvedores mudam de um projeto Sitecore para outro, precisando Comece rapidamentee, em seguida, derrubar rapidamente.
- A equipe está lutando para encontrar uma maneira de teste isolado antes da implantação.
Os benefícios para o negócio
Aqui estão os meus As 4 principais escolhas de benefícios Isso pode ajudá-lo a explicar as razões para adotar uma estratégia de conteinerização:
Tempo de comercialização mais rápido
Muitas equipes de marketing vão se beneficiar graças a tempos de configuração de desenvolvedores mais rápidos, fluxos de implantação mais suaves entre ambientes e menos cenários de "trabalhos na minha máquina" que fazem com que a entrega técnica fique mais lenta. Isso permite que a equipe itere mais rapidamente e reduza o risco no desenvolvimento para a produção fluxo.
Desafio: A equipe precisa se adaptar a uma nova forma de trabalhar, então haverá um atraso em ver esses benefícios. Além disso, se a organização tiver outros motivos que estão impedindo o código de chegar à produção (como longos estágios de teste/aceitação), talvez seja necessário se concentrar nesses problemas de fluxo maiores primeiro.
Desafio: A equipe precisa se adaptar a uma nova forma de trabalhar, então haverá um atraso em ver esses benefícios. Além disso, se a organização tiver outros motivos que estão impedindo o código de chegar à produção (como longos estágios de teste/aceitação), talvez seja necessário se concentrar nesses problemas de fluxo maiores primeiro.
Custos de operação mais baixos
A equipe de TI verá uma redução nos custos de infraestrutura ao operar vários contêineres em um host em comparação com várias máquinas virtuais no mesmo host. Menos recursos são necessários para executar os contêineres no host, uma vez que o kernel do sistema operacional é compartilhado e não mais duplicado a cada vez.
Desafio: A facilidade de implantação de contêineres pode ter um efeito colateral de "expansão de contêineres", o que, na verdade, teria o efeito oposto em seus custos de operação. É extremamente importante ter uma orquestração e gerenciamento adequados de contêineres para garantir que seus custos operacionais sejam mantidos baixos. Kubernetes (K8s) é seu amigo aqui!
Flexibilidade na nuvem
Devido à natureza da maneira como os contêineres abstraem o sistema operacional, seus contêineres podem ser movidos entre diferentes fornecedores de nuvem. Isso dá à sua organização flexibilidade com quem ela lida para sua infraestrutura de nuvem.
Desafio: Embora os contêineres sejam flexíveis, se você planeja usar o 'Kubernetes as a Service' (também conhecido como Serviço Kubernetes Gerenciado), sua orquestração pode ser diferente entre os fornecedores de nuvem. Isso é algo para planejar se você quiser alternar entre fornecedores de nuvem ou executar em vários ao mesmo tempo.
Tempo médio de resolução reduzido (MTTR)
Se sua estratégia de contêiner flui em todos os ambientes, incluindo a produção, você poderá fazer com que sua equipe de suporte replique rapidamente os ambientes de produção localmente para que eles possam trabalhar na correção de problemas mais cedo e com menos chance de disparidade entre ambientes locais e de produção.
Desafio: Antes de ver um benefício para esse cenário, você terá que adotar isso em toda a cadeia de fluxo — não será suficiente apenas ter alguns desenvolvedores instalando o Docker. Isso deve ser abordado de forma holística para reconhecer o benefício.
Quando é que os contentores serão um desafio?
Há sinais que indicam que uma organização provavelmente enfrentará desafios com a adoção de uma estratégia de contêiner:
- Adotantes tardios. A organização tem dificuldade em adotar novas tecnologias à medida que vão surgindo. Eles não querem "descobrir", eles querem fazer as coisas da maneira que sabem como fazê-lo e deixar que os outros estabeleçam novas práticas bem documentadas primeiro. Essas organizações normalmente exibem comportamento de "adoção tardia", como políticas de "Versão menos um", execução em sistemas operacionais e versões de navegador mais antigos, hesitação em migrar para infraestrutura baseada em nuvem, etc. Em alguns cenários, essas infraestruturas mais antigas podem nem mesmo ser capazes de atender aos requisitos de virtualização para o Docker.
Embora o Kubernetes e o Docker não sejam exatamente novos, ainda é uma solução técnica mais recente na comunidade Sitecore e, portanto, terá lacunas na documentação, práticas comprovadas e adoção generalizada.
Enfrentar o desafio: Identifique estudos de caso de organizações atualmente em Sitecore com um perfil semelhante ao da sua própria organização. Tal contribuirá para dar alguma garantia às partes interessadas de que «isto já foi feito antes». Em seguida, seria necessária uma análise do estado atual da tecnologia de infraestrutura para garantir uma prontidão para contêineres.
- Ambientes altamente regulamentados. Quer se trate de legislação governamental ou políticas de nível empresarial, essas organizações têm muitas regras em vigor sobre como você pode levar o software do desenvolvimento para a produção. A equipe do DevSecOps pode não saber como traduzir suas políticas e regulamentações atuais para um mundo de contêineres. Como todas as equipes são instruídas sobre como garantir que os contêineres estejam cumprindo as políticas? Algumas dessas políticas foram provavelmente desenvolvidas há muitos anos e não reexaminadas em relação às tecnologias mais recentes.
Enfrentar o desafio: Este tem tudo a ver com educação. Não é que você não possa fazer isso, mas as pessoas não necessariamente saberão como. Ajuda a identificar alguns campeões que podem fazer provas de conceito e ter algo para "mostrar" a várias equipas para que possam compreender as diferenças entre a tecnologia existente e proposta.
- Os custos de infraestrutura parecem estar "sob controlo". As despesas gerais de infraestrutura são muito reduzidas, ou a entrega/operações técnicas foram externalizadas para um grupo externo em que o custo do serviço é razoável em comparação com a responsabilidade técnica reduzida.
OBSERVAÇÃO: A equipe que faz o trabalho terceirizado pode querer olhar para uma estratégia de contêiner para aumentar sua margem de lucro!
Enfrentar o desafio: Se os custos atuais de infraestrutura não estão atrapalhando o negócio, e você realmente sente que os contêineres são o caminho que a organização deve seguir, pode valer a pena olhar para o tempo de resolução (MTTR) para defeitos de produção ou os benefícios do tempo para o mercado, em vez de se concentrar apenas nos custos de infraestrutura. Sua organização verá mais valor nessas áreas?
- Base de aplicação madura e estável. Há muito poucas mudanças acontecendo no dia-a-dia nos ambientes Sitecore-hospedados. Talvez haja uma pequena equipe trabalhando com Sitecore, um único site, uma única versão de software. Nenhuma complexidade em torno da manutenção de ambientes diferentes, muito poucas mudanças estão acontecendo.
Enfrentar o desafio: Este estado é, na verdade, um sinal de alerta para a inovação! Você deve estar em um modelo de melhoria contínua e a falta de mudanças não é realmente uma coisa boa. Se a equipe está recuando na adoção de novas tecnologias por esse motivo, então você pode precisar de uma análise mais profunda sobre os problemas que estão levando a essa situação. Pode haver uma estratégia maior para abordar que não seja uma estratégia de contêiner.
- Automação de infraestrutura atrasada. Se a equipe responsável por toda a infraestrutura está tendo dificuldade em acompanhar a automação da infraestrutura atualmente, introduzir uma nova tecnologia que exija automação de infraestrutura pode ser um desafio. Se essas equipes não estão inovando na forma como gerenciam a infraestrutura, às vezes não estão dispostas a assumir essas novas tecnologias, especialmente se a organização se enquadrar em um dos dois primeiros desafios listados aqui.
Enfrentar o desafio: Antes de abordar uma estratégia de contêiner, esse desafio pode indicar que a prioridade está se concentrando em como a organização automatiza sua infraestrutura (ou não automatiza, conforme o caso). Um investimento geral em como sua equipe prioriza a automação pode ser um primeiro passo. Talvez uma estratégia de contêiner seja a maneira de fazer isso, mas você pode ter que fazer alguns pequenos passos aqui primeiro para levar a equipe a um ponto em que essa adoção cultural funcione.
Leitura adicional
- 5 razões comerciais pelas quais todo CIO deve considerar o Kubernetes, Kalyan Ramanathan, Lógica de Sumô
- O que são contentores e porque precisa deles?, Paulo Rubens, cio.com
- Arquitetura de referência do Docker: Protegendo o Docker Enterprise e as práticas recomendadas de segurança, Docker
- Kubernetes como serviço: GKE vs. AKS vs. EKS, Evan Klein, logz.io
Jason St-Cyr, Vice-Presidente, Engajamento, Fishtank Consulting
https://jasonstcyr.com