1. BusinessOperations ManagementEscolhendo o melhor provedor de serviços em nuvem, recursos e ferramentas para DevOps

Por Emily Freeman

O sucesso da sua iniciativa DevOps depende muito do acompanhamento do processo, mas também é importante usar as ferramentas certas. Selecionar um provedor de serviços em nuvem não é uma escolha fácil, especialmente quando o DevOps é sua motivação motriz. GCP (Google Cloud Platform), AWS (Amazon Web Services) e Azure têm mais em comum do que separados.

Geralmente, sua decisão depende mais do nível de conforto da equipe de DevOps com um determinado provedor de nuvem ou com sua pilha atual mais do que o próprio provedor de nuvem. Depois de decidir mudar para a nuvem, a próxima decisão é escolher um provedor de nuvem que atenda às suas necessidades de DevOps. Aqui estão algumas coisas a considerar ao avaliar os provedores de nuvem com os princípios do DevOps em mente:

  • Sólido histórico. A nuvem que você escolher deve ter um histórico de decisões financeiras responsáveis ​​e capital suficiente para operar e expandir grandes datacenters ao longo de décadas. Conformidade e gerenciamento de riscos. Estrutura formal e políticas de conformidade estabelecidas são vitais para garantir que seus dados estejam seguros. Idealmente, revise as auditorias antes de assinar contratos. Reputação positiva. A confiança do cliente é absolutamente essencial. Você confia que pode contar com esse provedor de nuvem para continuar crescendo e dar suporte às crescentes necessidades de DevOps? Acordos de nível de serviço (SLAs). Qual nível de serviço você precisa? Normalmente, os provedores de nuvem oferecem vários níveis de confiabilidade do tempo de atividade, com base no custo. Por exemplo, o tempo de atividade de 99,9% será significativamente mais barato que o tempo de atividade de 99,999%. Métricas e monitoramento. Que tipos de informações, monitoramento e telemetria de aplicativos o fornecedor fornece? Certifique-se de obter um nível adequado de insights sobre seus sistemas o mais próximo possível do tempo real.

Por fim, verifique se o provedor de nuvem que você escolhe possui excelentes recursos técnicos que fornecem serviços que atendem às suas necessidades específicas de DevOps. Geralmente, procure

  • Recursos de computação Soluções de armazenamento Recursos de implantação Registro e monitoramento Interfaces de usuário amigáveis

Você também deve confirmar a capacidade de implementar uma solução de nuvem híbrida, caso precise, em algum momento, além de fazer chamadas HTTP para outras APIs e serviços.

Os três principais provedores de nuvem são o Google Cloud Platform (GCP), Microsoft Azure e Amazon web Services (AWS). Você também pode encontrar provedores de nuvem menores e certamente vários provedores de nuvem privada, mas a maior parte do que você precisa saber vem da comparação dos provedores de nuvem pública.

Amazon Web Services (AWS)

Assim como os outros principais provedores de nuvem pública, a AWS fornece computação sob demanda por meio de uma assinatura paga conforme o uso. Os usuários da AWS podem se inscrever em qualquer número de serviços e recursos de computação. A Amazon é a atual líder de mercado entre os provedores de nuvem, mantendo a maioria dos assinantes de nuvem.

Oferece um conjunto robusto de recursos e serviços em regiões do mundo todo. Dois dos serviços mais conhecidos são o Amazon Elastic Compute Cloud (EC2) e o Amazon Simple Storage Service (Amazon S3). Assim como outros provedores de nuvem, os serviços são acessados ​​e a infraestrutura é provisionada por meio de APIs.

Microsoft Azure

Antes da Microsoft lançar esse provedor de nuvem como Microsoft Azure, ele era chamado Windows Azure. A Microsoft a projetou para fazer exatamente o que o nome indica - servir como um provedor de nuvem para organizações de TI tradicionalmente Windows. Porém, à medida que o mercado se tornou mais competitivo e a Microsoft começou a entender melhor o cenário da engenharia, o Azure se adaptou, cresceu e evoluiu.

Embora ainda seja indiscutivelmente menos robusto que o AWS, o Azure é um provedor de nuvem completo, focado na experiência do usuário. Por meio de vários lançamentos e aquisições de produtos - principalmente o GitHub - a Microsoft investiu pesadamente na infraestrutura do Linux, o que permitiu fornecer serviços mais robustos a um público mais amplo.

Google Cloud Platform (GCP)

O Google Cloud Platform (GCP) tem a menor participação de mercado dos três principais provedores públicos de nuvem, mas oferece um conjunto substancial de serviços em nuvem em quase duas dezenas de regiões geográficas.

Talvez o aspecto mais atraente do GCP seja o fato de oferecer aos usuários a mesma infraestrutura que o Google usa internamente. Essa infraestrutura inclui serviços extremamente poderosos de computação, armazenamento, análise e aprendizado de máquina. Dependendo do seu produto específico, o GCP pode ter ferramentas especializadas ausentes (ou menos maduras) na AWS e no Azure.

Localizando ferramentas e serviços do DevOps na nuvem

Literalmente, centenas de ferramentas e serviços estão à sua disposição através dos principais provedores de nuvem. Essas ferramentas e serviços geralmente são separados nas seguintes categorias:

  • Calcular Armazenamento Trabalho em rede Gestão de recursos Inteligência Artificial em Nuvem (AI) Identidade Segurança Sem servidor IoT

A seguir, é apresentada uma lista dos serviços mais usados ​​nos três principais fornecedores de nuvem. Esses serviços incluem implantação de aplicativos, gerenciamento de máquina virtual (VM), orquestração de contêiner, funções sem servidor, armazenamento e bancos de dados.

Serviços adicionais estão incluídos, como gerenciamento de identidade, armazenamento em bloco, nuvem privada, armazenamento de segredos e muito mais. Está longe de ser uma lista exaustiva, mas pode servir como uma base sólida para você, ao começar a pesquisar suas opções e ter uma idéia do que diferencia os provedores de nuvem.

  • Implantação de aplicativo: solução de plataforma como serviço (PaaS) para implantar aplicativos em uma variedade de idiomas, incluindo Java, .NET, Python, Node.js, C #, Ruby e Go Azure: Serviços em Nuvem do Azure AWS: AWS Elastic Beanstalk GCP: Google App Engine
  • Gerenciamento de máquina virtual (VM): opção de infraestrutura como serviço (IaaS) para executar máquinas virtuais (VMs) com Linux ou Windows Azure: Máquinas Virtuais do Azure AWS: Amazon EC2 GCP: Google Compute Engine
  • Kubernetes gerenciados: permite um melhor gerenciamento de contêineres através do popular orquestrador Kubernetes Azure: Serviço de Kubernetes do Azure (AKS) AWS: Amazon Elastic Container Service (ECS) para Kubernetes GCP: Google Kubernetes Engine
  • Sem servidor: permite que os usuários criem fluxos de trabalho lógicos de funções sem servidor Azure: Funções do Azure AWS: AWS Lambda GCP: Funções do Google Cloud
  • Armazenamento em nuvem: armazenamento de objetos não estruturados com armazenamento em cache Azure: Armazenamento de Blob do Azure AWS: Amazon S3 GCP: Google Cloud Storage
  • Bancos de dados: bancos de dados SQL e NoSQL, sob demanda Azure: BD do Cosmos do Azure AWS: Amazon Relational Database Service (RDS) e Amazon DynamoDB (NoSQL) GCP: Google Cloud SQL e Google Cloud BigTable (NoSQL)

Ao explorar os três principais provedores de nuvem, você percebe uma longa lista de serviços. Você pode se sentir oprimido pelas centenas de opções à sua disposição. Se, por acaso, você não encontrar o que precisa, o mercado provavelmente fornecerá algo semelhante. O mercado é onde desenvolvedores independentes oferecem serviços que se conectam à nuvem - hospedados pelo Azure, AWS ou GCP.

A tabela abaixo lista serviços adicionais fornecidos pela maioria dos provedores de nuvem, se não todos.

  1. BusinessOperations ManagementPor que o DevOps é importante: 11 maneiras que o DevOps beneficia sua organização

Por Emily Freeman

Quando feito corretamente, o DevOps oferece vantagens significativas para sua organização. Este artigo apresenta os principais pontos para saber como os DevOps beneficiam sua organização. Use-o como uma referência para ajudá-lo a persuadir seus colegas ou reforçar sua compreensão sobre por que você escolheu seguir a rota do DevOps quando a estrada fica irregular.

Benefícios do DevOps

O DevOps ajuda você a aceitar mudanças constantes

O cenário tecnológico é um ambiente em constante mudança. Alguns idiomas evoluem e novos são criados. Estruturas vêm e vão. As ferramentas de infraestrutura são alteradas para atender às crescentes demandas de hospedagem de aplicativos com mais eficiência e entrega de serviços mais rapidamente. As ferramentas continuam abstraindo a computação de baixo nível para reduzir as despesas gerais de engenharia.

A única constante é a mudança. Sua capacidade de se adaptar a essa mudança determinará seu sucesso como colaborador, gerente ou executivo individual. Independentemente do papel que você ocupa atualmente em sua empresa ou espera desempenhar, é vital se adaptar rapidamente e remover o máximo de atrito possível do crescimento. O DevOps permite que você se adapte e cresça melhorando a comunicação e a colaboração.

DevOps abraça a nuvem

A nuvem não é o futuro; é neve. Embora você ainda esteja em transição ou ainda não esteja pronto para a mudança, perceba que a nuvem é o caminho a seguir para todas, exceto algumas empresas. Dá a você mais flexibilidade do que a infraestrutura tradicional, reduz o estresse das operações e (geralmente) custa significativamente menos por causa de uma estrutura de preços de acordo com o uso.

Nuvens públicas, privadas e híbridas oferecem infinitas possibilidades para gerenciar melhor seus negócios. A capacidade de ativar (ativar) recursos em minutos é algo que a maioria das empresas nunca experimentou antes da nuvem.

Essa agilidade fornecida pela nuvem anda de mãos dadas com o DevOps. Omri Gazitt, da Puppet, uma empresa focada no gerenciamento de automação e configuração, coloca da melhor maneira: "À medida que as organizações se deslocam para a nuvem, estão revisando suas principais suposições sobre como entregam software".

Com a nuvem, as APIs conectam todos os serviços, plataformas e ferramentas de infraestrutura para que você possa gerenciar seus recursos e aplicativos sem problemas. Ao migrar para a nuvem, é possível reavaliar as decisões anteriores da arquitetura e fazer a transição lenta de seu aplicativo e sistema para ser nativo da nuvem ou projetado com a nuvem em mente.

O DevOps ajuda você a contratar os melhores

Devido ao aumento da demanda, grandes engenheiros são escassos. Simplesmente, não há engenheiros suficientes para preencher todos os empregos atualmente abertos ou para atender à demanda do mercado na próxima década e além. Embora encontrar engenheiros possa ser difícil, não é impossível, especialmente se você se concentrar em descobrir engenheiros que abraçam a curiosidade e não têm medo de falhar. Se você implementar o DevOps em sua cultura geral de engenharia, poderá aumentar o nível de engenheiros e treiná-los na metodologia e na tecnologia que suportam a melhoria contínua.

É difícil medir o potencial em uma entrevista. Geralmente, sussurros de talentos. Os engenheiros mais talentosos geralmente não são gregários ou se gabam; eles deixaram seu trabalho falar por eles. O DevOps permite que você ouça mais de perto os interesses pessoais e profissionais dos engenheiros que entrevistar.

Tente escolher candidatos com base no seu nível de curiosidade, habilidades de comunicação e entusiasmo. Essas qualidades podem ver sua equipe através de vales de medo, incerteza e dúvida. Eles podem conduzir a equipe através de decisões difíceis, tomadas dentro de restrições, na tentativa de resolver problemas difíceis.

Você pode ensinar uma habilidade a alguém, mas ensinar alguém a aprender é uma questão totalmente diferente. A cultura de aprendizado que você cria na sua organização do DevOps permite priorizar uma mentalidade de crescimento sobre as proezas técnicas. No DevOps, a contratação para a equipe é fundamental. Cada indivíduo é um pedaço de um todo, e a equipe deve ter um equilíbrio holístico. Atingir esse equilíbrio significa que às vezes você não contrata o "melhor" engenheiro, contrata o melhor para a equipe.

Ao contratar para a equipe do DevOps, você pode, como cavalos de tração unidos, puxar mais peso do que poderia individualmente. Com o DevOps, você pode multiplicar os componentes individuais de sua equipe e, como um todo, criar a potência de uma equipe.

DevOps mantém você competitivo

O Relatório anual do State of DevOps divulgado pela DevOps Research and Assessment (DORA) deixa claro: Empresas de todo o mundo estão usando o DevOps para ajustar suas práticas de engenharia e estão colhendo os benefícios. Eles vêem aumentos na produção de engenharia e reduções no custo. Com o DevOps, essas empresas estão mudando de processos e sistemas desajeitados para uma maneira simplificada de desenvolver software focado no usuário final.

O DevOps permite que as empresas criem infraestrutura confiável e utilizem essa infraestrutura para liberar software de forma mais rápida e confiável. O ponto principal é o seguinte: as organizações de alto desempenho usam o DevOps e estão superando a concorrência aumentando a frequência de implantação e diminuindo significativamente as falhas que ocorrem devido a alterações no sistema.

Se você deseja competir, deve adotar as sólidas metodologias de DevOps. Talvez nem todos eles, e definitivamente nem todos de uma vez - mas o tempo para esperar e ver se o DevOps vale a pena.

DevOps ajuda a resolver problemas humanos

Os seres humanos atingiram um ponto em nossa evolução em que a tecnologia está evoluindo mais rapidamente que nossos cérebros. Assim, os maiores desafios que os humanos enfrentam são devidos a limitações humanas - não as limitações de software ou infraestrutura. Diferente de outras metodologias de desenvolvimento de software, o DevOps se concentra holisticamente no seu sistema sociotécnico.

A adoção do DevOps requer uma mudança na cultura e na mentalidade. Mas se você atingir uma cultura e mentalidade de DevOps, você e sua organização colherão benefícios quase ilimitados. Quando os engenheiros têm o poder de explorar, livres da pressão e do medo do fracasso, coisas incríveis acontecem.

Os engenheiros descobrem novas maneiras de resolver problemas. Eles abordam projetos e problemas com uma mentalidade saudável e trabalham juntos com mais fluidez, sem concorrência desnecessária e negativa.

O DevOps desafia os funcionários

O DevOps acelera o crescimento de engenheiros individuais e o da equipe de engenharia como um todo. Engenheiros são pessoas inteligentes. Eles também são naturalmente curiosos. Um grande engenheiro que adota uma mentalidade de crescimento precisa de novos desafios depois de dominar uma tecnologia, ferramenta ou metodologia específica, ou se sente estagnado.

Eles precisam sentir como se seus conjuntos de habilidades e cérebro estivessem esticados - não a ponto de ficarem sobrecarregados ou estressados, mas o suficiente para sentir que estão crescendo. Essa é a tensão descrita por Dan Pink no Drive. Se você conseguir esse equilíbrio, seus engenheiros prosperarão - como indivíduos e como uma equipe.

A metodologia do DevOps promove habilidades em forma de T, o que significa que os engenheiros se especializam em uma área com profundo conhecimento e têm um amplo entendimento de muitas outras áreas. Essa abordagem permite que os engenheiros explorem outras áreas de interesse.

Talvez um engenheiro Python tenha interesse em infraestrutura de nuvem, por exemplo. Nenhuma outra metodologia de engenharia permite e incentiva os engenheiros a explorar tanto quanto o DevOps, e é um grande contribuinte para a contratação e retenção de talentos.

DevOps preenche lacunas

Um dos desafios das empresas de tecnologia moderna é essa lacuna entre as necessidades dos negócios e as de engenharia. Em uma empresa tradicional, com estratégias de gerenciamento tradicionais, existe um atrito natural entre a engenharia e os departamentos, como marketing, vendas e desenvolvimento de negócios. Esse atrito decorre da falta de alinhamento. Cada departamento é medido por diferentes indicadores de sucesso.

O DevOps procura unificar cada departamento de uma empresa e criar um entendimento e respeito compartilhados. Esse respeito pelos empregos e contribuições uns dos outros é o que permite que todas as pessoas na empresa prosperem. Remove o atrito e melhora a aceleração.

Pense em uma equipe de cães de trenó. Se cada cão está se movendo em direções separadas, o trenó não leva a lugar algum. Agora imagine os cães trabalhando juntos, concentrados em seguir em frente - juntos. Quando você não tem atrito interno, os únicos desafios que enfrenta são externos, e os desafios externos quase sempre são mais gerenciáveis ​​que os conflitos internos.

O DevOps permite que você falhe bem

O fracasso é inevitável. É simplesmente inevitável. Prever todas as maneiras pelas quais seu sistema pode falhar é impossível por causa de todas as incógnitas. (E pode falhar espetacularmente, não é?) Em vez de evitar falhas a todo custo e sentir-se arrasado quando a falha ocorre, você pode se preparar para isso. O DevOps prepara as organizações para responder à falha, mas não de maneira apavorada e induzida pelo estresse.

Os incidentes sempre envolvem algum nível de estresse. Em algum momento da estrutura de comando, é provável que um executivo grite com a perda de dinheiro durante uma interrupção do serviço. Mas você pode reduzir o estresse que sua equipe experimenta usando a falha como uma maneira de aprender e adaptar seu sistema para se tornar mais resiliente.

Cada incidente é uma oportunidade para melhorar e crescer, como indivíduos e em equipe.

O DevOps abraça o kaizen, a arte da melhoria contínua. Quando as experiências de sua equipe fluem em seu trabalho, elas podem fazer pequenas escolhas todos os dias que contribuem para o crescimento a longo prazo e, finalmente, um produto melhor.

O DevOps permite melhorar continuamente

A melhoria contínua é um ingrediente essencial no DevOps. Use a visualização de um ciclo interminável ao aplicar o DevOps à sua organização. O ciclo não deve invocar medos através dos pensamentos de Sísifo, empurrando uma pedra por uma colina por toda a eternidade. Em vez disso, pense nesse ciclo como movimento, como uma bola de neve rolando ladeira abaixo, ganhando força e massa.

Ao adotar o DevOps e integrar cada vez mais princípios básicos ao seu fluxo de trabalho diário, você testemunhará essa aceleração em primeira mão. O ciclo de melhoria contínua deve sempre estar centrado no cliente. Você deve pensar continuamente no usuário final e integrar o feedback ao seu ciclo de vida de entrega de software.

Fundamental para este ciclo é o CI / CD. A adoção de CI / CD não é um requisito de tudo ou nada do DevOps; em vez disso, é um processo lento de implementação. Você deve se concentrar em dominar a integração contínua primeiro. Incentive os engenheiros a compartilhar código livremente e mesclar código com freqüência. Essa abordagem evita que o isolamento e os silos se tornem bloqueadores em sua organização de engenharia.

Depois que sua organização dominar a integração contínua, passe para a entrega contínua, a prática de automatizar a entrega de software. Esta etapa requer automação porque o código passará por várias verificações para garantir a qualidade. Depois que todo o seu código estiver seguro e acessível em um repositório de código-fonte, você poderá começar a implementar pequenas alterações continuamente. Seu objetivo é remover barreiras manuais e melhorar a capacidade da sua equipe de descobrir e corrigir erros sem o impacto do cliente.

O DevOps automatiza o trabalho

Aceleração e maior eficácia estão no centro da metodologia DevOps. Ao automatizar processos manuais que exigem muita mão-de-obra, o DevOps libera engenheiros para trabalhar em projetos que tornam o software e os sistemas mais confiáveis ​​e de fácil manutenção - sem o caos de interrupções inesperadas do serviço.

A engenharia de confiabilidade do local (SRE) lida com a labuta, que é o trabalho necessário para manter os serviços em funcionamento, mas é manual e repetitivo. A labuta pode ser automatizada e carece de valor a longo prazo. Talvez o mais importante de tudo, o trabalho escala linearmente, o que limita o crescimento. Observe que o trabalho não se refere à sobrecarga de necessidades administrativas, como reuniões e planejamento. Esse tipo de trabalho, se implementado com uma mentalidade de DevOps, é benéfico para a aceleração a longo prazo de sua equipe.

Um dos princípios básicos de ferramentas de sua prática de DevOps é a automação. Você pode automatizar seu pipeline de implantação para incluir um conjunto de testes detalhado, além de outras portas pelas quais o código deve passar para ser liberado. De várias maneiras, o SRE é o próximo passo lógico na evolução do DevOps e deve ser o próximo passo depois que você e sua organização dominam os principais conceitos do DevOps e implementam a prática em sua equipe.

DevOps acelera a entrega

O ciclo de vida da entrega do software evoluiu do processo lento e linear da Waterfall para um loop ágil e contínuo do DevOps. Você não pensa mais em um produto, desenvolve-o completamente e depois o libera para os clientes, esperando seu sucesso.

Em vez disso, você cria um ciclo de feedback em torno do cliente e entrega continuamente alterações iterativas aos seus produtos. Esse circuito conectado permite melhorar continuamente seus recursos e garantir que o cliente esteja satisfeito com o que você está entregando.

Quando você conecta todos os pontos e adota totalmente o DevOps em sua organização, observa como sua equipe pode fornecer um software melhor mais rapidamente. As alterações serão pequenas no início, assim como as alterações lançadas. Mas, com o tempo, essas mudanças aparentemente insignificantes se somam e criam uma equipe que acelera a entrega de software de qualidade.

  1. BusinessOperations ManagementFaça mais das suas ferramentas na nuvem: Automatizando o DevOps na nuvem

Por Emily Freeman

Casar com a prática de DevOps na nuvem pode acelerar o trabalho que você já realizou. Quando usados ​​juntos, o DevOps e a nuvem podem impulsionar a transformação digital da sua empresa.

Você verá resultados desde que enfatize as prioridades do DevOps: pessoas, processos e tecnologia. A nuvem - junto com outras ferramentas - se enquadra diretamente na parte técnica da sua implementação do DevOps.

DevOps e computação em nuvem

A computação em nuvem permite a automação para seus desenvolvedores e pessoal de operações de uma maneira que simplesmente não é possível quando você gerencia sua própria infraestrutura física. O provisionamento da infraestrutura por meio de código na nuvem - que é um sistema conhecido como Infraestrutura como Código (IaC) - permite criar modelos e processos repetíveis.

Ao rastrear alterações no código de infraestrutura por meio do controle de origem, você permite que sua equipe opere perfeitamente e rastreie as alterações. O IaC é muito mais repetitivo e automatizado - para não mencionar mais rápido - do que os engenheiros clicarem em um portal.

Mesmo as instruções no portal não são à prova de idiotas. Você corre o risco de fazer pequenas, mas significativas, alterações na configuração da infraestrutura, se você criar consistentemente a mesma configuração através do portal, em vez de um arquivo YAML.

Levando sua cultura de DevOps para a nuvem

As pessoas costumam falar sobre DevOps e computação em nuvem como se estivessem entrelaçadas e, de várias maneiras, estão. Esteja ciente, no entanto, de que você pode adotar o DevOps - ou começar a transformar sua organização de engenharia - sem precisar usar a nuvem. É perfeitamente razoável que você primeiro estabeleça os padrões, práticas e processos para sua equipe antes de mudar sua infraestrutura para um provedor de nuvem.

Embora as pessoas falem como se todos já estivessem na nuvem, você ainda está na vanguarda da mudança para a nuvem. Os provedores de nuvem estão se tornando mais robustos a cada dia, e as empresas de engenharia estão migrando lentamente seus serviços auto-hospedados para a nuvem. Com isso em mente, seria recomendável que uma organização que adota o DevOps considere utilizar os serviços de um grande provedor de nuvem.

Qualquer pessoa com experiência em DevOps provavelmente não chamaria a nuvem de solução NoOps, mas poderia chamar de OpsLite. Os serviços em nuvem geralmente abstraem a arquitetura de operações complexas de uma maneira que torna a arquitetura mais amigável para os desenvolvedores e os capacita a assumir mais propriedade de seus componentes.

Se você já reclamou que os desenvolvedores deveriam ser incluídos em uma rotação de plantão, você está certo - eles deveriam estar. A inclusão de desenvolvedores na rotação de plantão é uma ótima maneira de aumentar seu conhecimento sobre a implantação de código, além de gerenciar e provisionar a infraestrutura na qual seus serviços são executados. Isso reduz a sobrecarga operacional e libera o tempo dos especialistas em operações para trabalhar em soluções proativas.

Aprendendo com a adoção do DevOps

Se sua equipe é capaz de adotar o DevOps e mudar para a utilização da computação em nuvem ao mesmo tempo, você pode usar essas mudanças como oportunidades de aprendizado para desenvolvedores e pessoal de operações.

Enquanto sua equipe muda para a nuvem, os desenvolvedores têm a oportunidade de familiarizar os especialistas em operações com código - talvez até idiomas específicos - e controle de origem, e o pessoal de operações pode ensinar aos desenvolvedores sobre infraestrutura. Quando os dois grupos são especialistas e novatos, nenhum dos grupos tem que lidar muito com uma transferência de conhecimento prejudicial ao ego.

A confiança, o relacionamento e a dinâmica saudável que emergem dessas interações galvanizarão sua equipe e durarão muito mais tempo do que o trabalho imediato levou. De várias maneiras, você reforça sua cultura de DevOps por meio de ferramentas na sua prática de DevOps.

Beneficiando-se dos serviços em nuvem em sua iniciativa DevOps

As operações modernas estão mudando e evoluindo. Seus concorrentes já estão adotando novas formas de inovar mais rapidamente e acelerar seus ciclos de vida de entrega de software.

A computação em nuvem representa uma grande mudança em relação à maneira tradicional como as empresas pensam sobre os recursos de TI. Ao terceirizar grande parte de seus requisitos de infraestrutura e operações a um provedor de nuvem, você reduz a sobrecarga e liberta sua equipe para se concentrar em fornecer um software melhor para seus usuários.

Aqui estão seis razões comuns pelas quais as organizações estão recorrendo aos serviços de computação em nuvem:

  • Melhorando a acessibilidade. Os provedores de nuvem permitem que você selecione apenas os serviços necessários, quando precisar deles. Imagine se você pudesse acessar a TV a cabo, mas pagar apenas pelos canais que assistir. Você adoraria isso, não é? A maioria dos membros da equipe do DevOps faria isso! Os provedores de nuvem fazem exatamente isso, além de fornecer o hardware de computação mais atualizado, alojado em datacenters fisicamente seguros. Automatizando implantações. Alterações no sistema - implantações - são os contribuidores mais comuns de interrupções ou interrupções no serviço. Os provedores de nuvem tornam o código de liberação um processo repetitivo e automatizado, diminuindo significativamente a probabilidade de cometer erros nas versões manuais e introduzir bugs. As implantações automatizadas também permitem que os desenvolvedores liberem seu próprio código. Por fim, as implantações automatizadas simplificam o processo, reduzindo o tempo de inatividade do site e a triagem reacionária na produção. Acelerando a entrega. A nuvem reduz o atrito ao longo de quase todas as fases do ciclo de vida de entrega do software. Embora a configuração seja necessária, geralmente não leva mais que o dobro do tempo necessário para executar o processo manualmente, e você precisa configurar um serviço ou processo apenas uma vez. Entrega acelerada oferece uma tonelada de flexibilidade. Aumentando a segurança. Os provedores de nuvem fazem da segurança parte de sua oferta. O Microsoft Azure, o Amazon Web Services (AWS) e o Google Cloud Platform (GCP) atendem a diferentes padrões de conformidade e fornecem políticas, serviços e controles que ajudarão a reforçar a segurança do seu sistema. Além disso, se você utilizar uma ferramenta de pipeline de implantação na nuvem, poderá adicionar verificações de segurança antes que o novo código seja lançado em um ambiente, reduzindo assim a possibilidade de vulnerabilidades de segurança. Falha decrescente. Por meio de pipelines de criação e lançamento na nuvem, sua equipe é capaz de criar testes automatizados para confirmar a funcionalidade, a qualidade do código, a segurança e a conformidade de qualquer código introduzido em seus sistemas. Esse recurso diminui a possibilidade de erros e também reduz o risco de implantações problemáticas. Construindo sistemas mais resilientes e escaláveis. A nuvem permite que as organizações aumentem, escalem e aumentem a capacidade em segundos. Esse escalonamento elástico permite aumentar os recursos de computação e armazenamento, conforme necessário, não importa em que lugar do mundo seus usuários interajam com seu produto. Essa abordagem permite que você atenda melhor seus clientes e gerencie com mais eficiência os custos de infraestrutura.

A abordagem do DevOps tem tudo a ver com a criação de um método cíclico, no qual você se beneficia e aprende com o processo cada vez que passa por ele.

  1. BusinessOperations ManagementTips para melhorar o desempenho de engenharia com DevOps

Por Emily Freeman

Melhorar o desempenho da engenharia como parte do processo de DevOps pode ter impactos deslumbrantes sobre toda a empresa. Racionalização do ciclo de vida de desenvolvimento e eliminar os estrangulamentos servirá para acelerar o desempenho geral do negócio - em última análise, aumentar a linha de fundo. E se você acha que, como engenheiro de DevOps, não precisa se preocupar com o desempenho dos negócios, está errado.

De acordo com DevOps Pesquisa e Avaliação (DORA), de alto desempenho equipes DevOps consistentemente superar seus concorrentes em quatro áreas principais:

  • frequência de implantação: Este termo refere-se a quantas vezes seus engenheiros podem implantar código. A melhoria de desempenho se alinha com a implantação de várias vezes por dia, como desejado. Prazo de execução: O prazo de execução é quanto tempo você leva para ir de cometer novo código para executar esse código em um ambiente de produção. As maiores performers, de acordo com Dora, têm um tempo de espera de menos de uma hora, enquanto nível médio precisar de até um mês. MTTR (Mean Time recuperar): MTTR refere-se a quanto tempo você leva para restaurar um serviço depois de um incidente ou interrupção ocorrer. Idealmente, você quer apontar para menos de uma hora. Uma interrupção custa dinheiro sério, especialmente quando afeta centros de lucro da aplicação. interrupções longas destruir a confiança, diminuição moral, e implica desafios organizacionais adicionais. Mudança fracasso: Este termo refere-se à velocidade com que alterações no seu sistema impactar negativamente o desempenho. Embora você nunca vai chegar a uma taxa de falha de mudança de zero por cento, você pode perfeitamente se aproximam de zero, aumentando seus testes automatizados e contando com um pipeline de implantação com cheques de integração contínua e portões - todos os quais garantir a qualidade.

Eliminando a perfeição como uma medida de DevOps sucesso

DevOps depende da mantra “Feito é melhor do que perfeito.” Parece ser uma dessas citações impossível de atributo, mas as palavras, no entanto, falar a verdade. A tentativa de alcançar a perfeição é inimiga da eficácia e produtividade.

A maioria dos engenheiros, incluindo aqueles da variedade DevOps, sofrem de alguma versão de análise paralisia - uma aflição mental que limita a sua produtividade em uma tentativa de overanalyze seu trabalho e contornar qualquer acidente potencial.

Treinando imperfeição em seu trabalho exige que você abraçar a possibilidade de falha ea inevitabilidade da refatoração. Criando loops de feedback em torno do cliente e looping de volta para vários estágios do gasoduto são inquilinos primárias de DevOps. Em DevOps, você está ligando as extremidades para dobrar a linha em um círculo.

Quando você pensa de forma iterativa e circular, empurrando para fora o código que não é perfeito parece muito menos assustador porque o código não é esculpida em pedra. Em vez disso, ele está em um estado temporário que DevOps engenheiros melhorar frequentemente como você reunir mais dados e feedback.

Projetando equipes pequenas para DevOps

Você já deve ter ouvido falar de equipas “de dois pizza” da Amazon. O conceito amplamente fala à importância de pequeno porte equipes. Agora, o número exato de pessoas que compõem uma equipe de duas pizzas varia de acordo com o seu apetite.

É uma boa idéia para manter equipes com menos de 12 pessoas. Quando um grupo se aproxima de 9, 10 ou 11 pessoas, tente dividi-la em dois. O ponto ideal para o tamanho do grupo é de cerca de 4-6 pessoas. Seu número exato pode variar dependendo das pessoas envolvidas, mas o ponto é este: quando grupos se muito grande, a comunicação torna-se um desafio, cliques forma e os sofre de trabalho em equipe.

Aqui está um outro objetivo bônus quando formando equipes DevOps: números pares. É uma boa idéia para dar às pessoas um “amigo” no trabalho - alguém que pode confiar acima de todos os outros. Em grupos de pares, todo mundo tem um amigo e ninguém é deixado de fora. Você pode emparelhar de maneira uniforme e tende a funcionar bem. Formando grupos de números pares nem sempre é possível por causa de números pessoais, mas é algo a ter em mente.

Uma fórmula para medir os canais de comunicação é n (n - 1) / 2, onde n representa o número de pessoas. Você pode estimar o quão complexo de comunicação da sua equipe estará fazendo um cálculo simples. Por exemplo, a fórmula para uma equipe de duas pizzas de 10 seria 10 (10 - 1) / 2 = 45 canais de comunicação. Você pode imaginar como as equipes maiores podem se tornar complexas.

Monitoramento de seu DevOps trabalho

Se você conseguir superar a pequena sobrecarga de anotar o que faz todos os dias, os resultados fornecerão um valor excepcional. Ter dados reais de como você usa seu tempo ajuda você a rastrear você e eficácia da sua equipe. Como Peter Drucker disse a famosa frase: “Se você não consegue medir, você não pode melhorá-lo.”

Quantos dias você sai do trabalho sentindo que não fez nada? Você apenas teve reunião após reunião ou interrupções aleatórias o dia todo. Você não está sozinho. Muitos trabalhadores têm o mesmo problema. Pode ser difícil acompanhar seu progresso e, portanto, sua produtividade. A divergência entre os nossos sentimentos de eficácia e a realidade da nossa eficácia é um território perigoso para qualquer equipa DevOps.

Tente usar caneta e papel ao invés de alguma ferramenta automatizada para isso. Sim, você pode usar o software para controlar como você usa seu tempo em seu computador. Pode dizer-lhe quando você está lendo e-mail, quando você está slacking, e quando você está programando, mas que carece de nuance e muitas vezes falta ou incorretamente categoriza grandes pedaços de tempo.

Depois de ter uma idéia do que está fazendo e quando, você pode começar a identificar quais atividades se enquadram em quais quadrantes da matriz de decisão Eisenhower. O trabalho ocupado que você está fazendo rotineiramente que fornece nenhum valor para você ou a organização?

Reduzindo o atrito em projetos DevOps

Uma das melhores coisas que um gerente pode fazer por uma equipe de engenharia DevOps é deixá-los sozinhos. Contratar engenheiros curiosos que são capazes de resolver problemas de forma independente e, em seguida, deixá-los fazer o seu trabalho. Quanto mais você pode reduzir o atrito que atrasa o seu trabalho de engenharia, mais eficaz a sua equipa vai ser.

Reduzindo o atrito inclui a fricção que existe entre as equipas - especialmente operações e desenvolvimento. Não se esqueça especialistas como segurança, também.

Alinhando objetivos e incentivos aumentos de velocidade. Se todo mundo está focado em alcançar as mesmas coisas, eles podem se unir como um time e mover metodicamente em direção a essas metas.

Humanizando alertas para o sucesso do DevOps

Cada equipe de engenharia tem alertas sobre ações ou eventos que não importam. Tendo todos esses alertas dessensibiliza engenheiros para os alertas verdadeiramente importantes. Muitos engenheiros têm torna-se condicionado a ignorar-mails de alertas por causa de um excesso de mensagens.

aflige fadiga alerta muitas organizações de engenharia e tem um custo elevado. Se você está inundado diariamente, escolhendo o importante de um mar da importância é impossível. Você pode até dizer que essas mensagens são urgentes, mas não importantes. . . .

E-mail não é um veículo ideal para alertar porque não é sensível ao tempo (muitas pessoas verificar e-mail apenas algumas vezes por dia) e é facilmente enterrado em outras minúcias.

Aplicando o que você aprendeu sobre iteração rápida, reavaliar seus limiares de alerta regularmente para garantir uma quantidade adequada de cobertura sem muitos falsos positivos. Identificar quais os alertas não são necessárias leva tempo e trabalho. E provavelmente vai ser um pouco assustador, certo? Excluindo um alerta ou aumentar um limite sempre vem com um pouco de risco.

E se o alerta é realmente importante? Se for, você vai descobrir isso. Lembre-se, você não pode temer o fracasso de uma organização DevOps. Você deve abraçá-lo para que você possa avançar e melhorar continuamente. Se você deixar o medo guiar suas decisões, ficará estagnado - como engenheiro e como organização.

  1. BusinessOperations ManagementComo formar equipes de DevOps em sua organização

Por Emily Freeman

O DevOps não possui uma estrutura organizacional ideal. Como tudo na área de tecnologia, a resposta "certa" referente à estrutura da sua empresa depende da sua situação única: sua equipe atual, seus planos de crescimento, tamanho da sua equipe, conjuntos de habilidades disponíveis, seu produto e assim por diante.

Alinhar a visão da sua equipe de DevOps deve ser sua primeira missão. Somente depois de remover o fruto baixo do atrito óbvio entre as pessoas é que você deve reorganizar as equipes. Mesmo assim, permita alguma flexibilidade.

Se você abordar uma reorganização com abertura e flexibilidade, envie a mensagem que deseja ouvir e dê autonomia à sua equipe - um princípio básico do DevOps.

Você já pode ter um desenvolvedor Python ou Go apaixonado e curioso sobre gerenciamento de infraestrutura e configuração. Talvez essa pessoa possa mudar para um papel mais focado nas operações em sua nova organização. Coloque-se no lugar dessa pessoa. Você não seria leal a uma organização que se arriscou? Você não gostaria de trabalhar duro? E essa emoção é contagiosa.

Aqui, você aprende como alinhar as equipes que já possui, dedicar uma equipe às práticas de DevOps e criar equipes multifuncionais - todas as abordagens nas quais você pode optar por orientar suas equipes para o DevOps.

Você pode escolher uma abordagem e permitir que ela evolua a partir daí. Não pense que esta decisão seja permanente e imóvel. O DevOps se concentra na iteração rápida e na melhoria contínua, e esse é o principal benefício dessa metodologia. Essa filosofia também se aplica às equipes.

Alinhando equipes funcionais para DevOps

Nesta abordagem, você cria uma forte colaboração entre suas equipes tradicionais de desenvolvimento e operações. As equipes permanecem funcionais por natureza - uma focada em operações, outra focada em código. Mas seus incentivos estão alinhados. Eles crescerão para confiar um no outro e trabalharão como duas equipes unidas.

Para organizações de engenharia menores, alinhar equipes funcionais é uma escolha sólida. Mesmo como primeiro passo, esse alinhamento pode reforçar as mudanças positivas que você fez até o momento. Você normalmente inicia o alinhamento reservando um tempo para criar rapport. Certifique-se de que cada pessoa de ambas as equipes não apenas compreenda intelectualmente o papel e as restrições da outra equipe, mas também tenha empatia com os pontos problemáticos.

Para essa abordagem, é uma boa ideia promover uma política de "Você constrói, você apóia". Essa política significa que todos - desenvolvedores e pessoas de operações - participam de sua rotação de plantão.

Essa participação permite que os desenvolvedores comecem a entender as frustrações de ser chamado no meio da noite e enfrentando problemas de olhos enevoados e sem cafeína para corrigir um bug que está afetando os clientes. O pessoal de operações também começa a confiar no compromisso de seus desenvolvedores com o trabalho deles. Mesmo essa pequena mudança cria uma quantidade extraordinária de confiança.

Uma palavra de cautela: se os desenvolvedores lutam arduamente contra estar de plantão, um problema maior está em jogo na sua organização. A resposta não é incomum porque estar de plantão é muito diferente de suas responsabilidades diárias normais. A reação geralmente vem de um lugar de desconforto e medo. Você pode ajudar a atenuar essa reação abordando o fato de que seus desenvolvedores podem não saber o que fazer nas primeiras vezes em que estão de plantão.

Eles podem não estar familiarizados com a infraestrutura, e tudo bem. Incentive-os a escalar o incidente e paginar alguém com mais experiência. Por fim, crie um runbook com alertas comuns e quais ações executar. O fornecimento desse recurso ajudará a aliviar um pouco de medo até que eles comecem a pegar o jeito.

Outra tática para ajudar a estimular a colaboração para formar uma equipe de DevOps mais coesa é a introdução de um dia de sombreamento, com cada equipe "negociando" um colega. A pessoa comercializada simplesmente acompanha outra pessoa da equipe, senta-se à mesa (ou na área) e ajuda nas responsabilidades do dia-a-dia. Eles podem ajudar no trabalho, discutir problemas em equipe (programação em pares) e aprender mais sobre o sistema sob um ponto de vista diferente. Esse estilo de ensino não é prescritivo.

Em vez disso, presta-se à curiosidade e constrói confiança. Os colegas devem se sentir à vontade para fazer perguntas - mesmo a variedade "estúpida" - e aprender livremente. Não existem expectativas de desempenho. O tempo deve ser gasto simplesmente para nos conhecermos e apreciarmos o trabalho um do outro. Qualquer produção produtiva é um bônus!

Nessa abordagem de alinhamento, as duas equipes absolutamente devem estar envolvidas nos processos de planejamento, arquitetura e desenvolvimento. Eles devem compartilhar responsabilidades e prestação de contas durante todo o ciclo de vida do desenvolvimento.

Dedicando uma equipe de DevOps

Uma equipe de DevOps dedicada é mais uma evolução do Sys Admin do que uma verdadeira equipe de DevOps. É uma equipe de operações com uma mistura de conjuntos de habilidades. Talvez alguns engenheiros estejam familiarizados com o gerenciamento de configuração, outros IaC (infraestrutura como código) e talvez outros sejam especialistas em contêineres ou infraestrutura nativa na nuvem ou CI / CD (integração contínua e entrega / desenvolvimento contínuos).

Se você acha que colocar um grupo de humanos em uma equipe oficial é suficiente para quebrar os silos, você está enganado. Humanos são mais complexos que planilhas. Hierarquia não significa nada se seus silos tiverem entrado em uma fase em que não são saudáveis ​​e tribais. Nas culturas tóxicas, pode surgir um estilo de liderança mais forte, quase sempre seguido por pessoas que tomam partido. Se você vê isso em sua própria equipe, tem trabalho a fazer.

Embora qualquer abordagem possa funcionar para sua equipe, essa abordagem de equipe dedicada é a que você deve pensar mais. A maior desvantagem de uma equipe dedicada de DevOps é que ela se torna facilmente uma continuação das equipes de engenharia tradicionais sem reconhecer a necessidade de alinhar equipes, reduzir silos e remover o atrito. Os riscos de fricção contínua (ou criação de mais) são altos nessa abordagem. Siga com cuidado para garantir que você esteja escolhendo esta organização de equipe por um motivo específico.

Os benefícios dessa abordagem do DevOps é ter uma equipe dedicada para lidar com grandes mudanças ou ajustes na infraestrutura. Se você está enfrentando problemas centrados nas operações que estão diminuindo a velocidade de suas implantações ou causando problemas de confiabilidade no site, essa pode ser uma boa abordagem, mesmo que temporariamente.

Uma equipe dedicada, se você planeja mover um aplicativo herdado para a nuvem. Mas, em vez de chamar essa equipe de equipe de DevOps, tente rotulá-la de equipe de automação.

Esse grupo dedicado de engenheiros pode se concentrar totalmente em garantir que você configure as ferramentas corretas de infraestrutura e automação. Em seguida, você pode continuar confiante de que seu aplicativo chegará à nuvem sem grandes interrupções. Ainda assim, essa abordagem é temporária. Se você mantiver a equipe isolada por muito tempo, corre o risco de descer uma ladeira escorregadia do crescimento rápido para o silo incorporado.

Criando equipes multifuncionais de produtos para DevOps

Uma equipe multifuncional é formada por um único foco no produto. Em vez de ter equipes separadas para desenvolvimento, interface do usuário e experiência do usuário (UI / UX), garantia de qualidade (QA) e operações, você combina pessoas de cada uma dessas equipes.

Uma equipe multifuncional funciona melhor em organizações de médio a grande porte. Você precisa de desenvolvedores e pessoal de operações suficientes para preencher as posições de cada equipe de produto. Cada equipe multifuncional parece um pouco diferente.

É uma boa ideia ter, no mínimo, uma pessoa de operações por equipe. Não peça a uma pessoa de operações para dividir suas responsabilidades entre duas equipes. Esse cenário é injusto para eles e criará rapidamente atritos entre as duas equipes de produtos. Dê a seus engenheiros o privilégio de poder se concentrar e se aprofundar em seu trabalho.

Se a sua organização ainda é pequena ou na fase de inicialização, você pode pensar em toda a sua organização de engenharia como uma equipe multifuncional. Mantenha-o pequeno e focado. Quando você começar a aproximar-se de 10 a 12 pessoas, comece a pensar em como reorganizar os engenheiros.

A imagem abaixo mostra como poderiam ser suas equipes multifuncionais. Mas lembre-se de que sua composição varia de equipe para equipe e de organização para organização. Alguns produtos têm um forte foco no design, o que significa que você pode ter vários designers em cada equipe. Outros produtos são técnicos, projetados para engenheiros que não se importam muito com a estética. As equipes para esse tipo de produto podem ter um designer - ou nenhum.

Equipe de produto do DevOps

Se sua organização for grande o suficiente, você certamente poderá criar várias equipes usando diferentes idéias e abordagens do DevOps. Lembre-se de que sua organização é única. Sinta-se habilitado a tomar decisões com base em suas circunstâncias atuais e ajustar a partir daí. Aqui estão algumas combinações possíveis de vários tipos de equipes de produtos.

  • Equipe de produto herdada: gerente de projeto (PM), desenvolvedor front-end, desenvolvedor back-end, desenvolvedor back-end, engenheiro de confiabilidade do site (SRE), engenheiro de automação, testador de controle de qualidade Equipe de transformação em nuvem: SRE, SRE, engenheiro de operações, engenheiro de automação, desenvolvedor de back-end Equipe de MVP: PM, Designer, Engenheiro de UX, Desenvolvedor front-end, Desenvolvedor de back-end, Engenheiro de operações

A desvantagem de uma equipe multifuncional de produtos é que os engenheiros perdem a camaradagem de engenheiros com seus mesmos conjuntos de habilidades e paixões. Ter um grupo de indivíduos afins com quem você pode socializar e com quem você pode aprender é um aspecto importante da satisfação no trabalho. Confira uma solução para esse problema abaixo.

Como mostrado abaixo, você pode dar a seus engenheiros tempo de trabalho dedicado para gastar com suas tribos. Você pode fazer algo tão generoso quanto pagar o almoço uma vez por semana, para que eles possam se reunir e conversar. Ou você pode fornecer 10 a 20% do tempo de trabalho para que eles trabalhem em projetos como uma tribo. De qualquer forma, você precisa que seus engenheiros permaneçam nítidos.

As tribos compartilham conhecimento do setor, fornecem feedback sólido e apoiam o crescimento da carreira. Reserve tempo para seus engenheiros aprenderem com as pessoas com quem compartilham educação, experiência e objetivos. Desta vez, é um lugar seguro, onde eles podem relaxar e se sentir em casa.

Tribos do DevOps

Nenhuma quantidade de financiamento perfeito superará os déficits de uma cultura organizacional ruim. Mas se você prestou atenção até agora e fez os progressos apropriados, o próximo passo é formar equipes que reforcem os ideais culturais que você já implementou.

  1. Mudança para processos de DevOps: de uma linha para um circuito

Por Emily Freeman

A abordagem do DevOps envolve um ciclo e não uma linha. Permite integração e entrega contínuas, obtendo feedback consistente ao longo do processo. A metodologia DevOps é apenas um exemplo de como os processos evoluíram.

Os processos de desenvolvimento mudaram radicalmente nas últimas décadas e por boas razões. Na década de 1960, Margaret Hamilton liderou a equipe de engenharia que desenvolveu o software para a missão Apollo 11. Você não lança seres humanos no espaço iterativamente - pelo menos eles não o fizeram na década de 1960. Não é uma área de software em que "falhar rápido" parece ser uma abordagem particularmente boa. Vidas estão em jogo, sem mencionar milhões de dólares.

Hamilton e seus colegas tiveram que desenvolver software usando a metodologia em cascata. A imagem abaixo mostra um exemplo de processo de desenvolvimento em cascata (ocorrendo em linha reta).

processo em cascata

A imagem a seguir adiciona as fases. Observe como as setas vão em uma direção. Eles mostram um começo claro e um fim claro. Quando você termina, você termina. Certo?

Não. Por mais que muitas pessoas gostariam de se afastar de partes de suas bases de código para sempre (ou matá-las com fogo), elas geralmente não têm o privilégio.

O software desenvolvido por Hamilton e sua equipe foi um grande sucesso (é surpreendente pensar que eles se desenvolveram no Assembly com zero auxiliares, como mensagens de erro). Nem todos os projetos foram igualmente bem-sucedidos, no entanto.

Mais tarde, onde a cachoeira falhou, o Agile conseguiu. (O DevOps nasceu do movimento Agile.) O Agile procura pegar a linha reta da cascata e dobrá-la em um círculo, criando um circuito interminável através do qual sua equipe de engenharia pode melhorar iterativa e continuamente.

pipeline de desenvolvimento em cascata

A imagem abaixo mostra como pensar no ciclo de vida do desenvolvimento circular.

Circuito DevOps

Muitas vezes, os vários loops prescritos por diferentes organizações são influenciados pelos produtos que esses fornecedores vendem. Por exemplo, se o fornecedor vender software e ferramentas de infraestrutura, provavelmente enfatizará essa parte do ciclo de vida do desenvolvimento, talvez se concentrando mais na implantação, monitoramento e suporte do seu software.

Não há nada à venda aqui. Os estágios focados aqui são os mais críticos para os desenvolvedores, junto com os que as pessoas mais lutam ao aprender a gerenciar melhor o desenvolvimento de software e a adotar o DevOps.

Os cinco estágios do ciclo de vida de desenvolvimento de software são

  • Planejamento: a fase de planejamento do seu processo de desenvolvimento do DevOps é talvez a chave para a sua missão do DevOps. Ele prepara você para o sucesso ou fracasso no caminho. É também o momento mais fértil para reunir todos. Para todos, isso significa partes interessadas nos negócios, vendas e marketing, engenharia, produto e outros. Design: na maioria das empresas, a fase de design é mesclada na fase de codificação. Esse amálgama monstruoso de design e código não permite a separação da estratégia de arquitetura da implementação. No entanto, se você deixar coisas como design de banco de dados, logística de API e opções de infraestrutura importantes até o final do pipeline de desenvolvimento - ou, talvez pior, para os desenvolvedores individuais que trabalham em recursos separados - você encontrará rapidamente sua base de código em silos. como sua equipe de engenharia. Codificação: o desenvolvimento real dos recursos é o rosto do processo do DevOps e recebe toda a glória. Mas este é um dos passos menos importantes no seu ciclo de vida de desenvolvimento. De muitas maneiras, é simplesmente a execução das áreas anteriores do seu pipeline. Se bem feita, a codificação deve ser um processo relativamente simples e direto.

Agora, se você é desenvolvedor e apenas engasgou com a última frase porque lidou com centenas de bugs aleatórios e difíceis de resolver, é fácil entender como você se sente. A codificação é difícil. Nada sobre o desenvolvimento de software é fácil. Mas, dominando o planejamento, o design e a arquitetura (e separando-os da implementação real do código), você garante que as decisões mais difíceis do desenvolvimento de software sejam abstraídas.

  • Teste: o teste é uma área do seu pipeline, na qual engenheiros de todas as áreas de especialização podem se envolver e se envolver, possibilitando uma oportunidade única para aprender sobre testes, manutenção e segurança. Os seis estágios do desenvolvimento de software oferecem diferentes tipos de testes para garantir que seu software funcione conforme o esperado. Implantação: a implantação é o estágio que talvez seja o mais intimamente associado às operações. Tradicionalmente, sua equipe de operações pegava o código desenvolvido por seus desenvolvedores e testado por sua equipe de controle de qualidade (QA) e depois o liberava para os clientes - tornando-os responsáveis ​​pelo processo de lançamento. O DevOps teve um enorme impacto nesta fase do processo de desenvolvimento. Além disso, a implantação é uma das áreas para encontrar o máximo de ferramentas de automação. Da perspectiva do DevOps, sua prioridade é simplificar o processo de implantação, para que todo engenheiro da sua equipe seja capaz de implantar o código. Isso não quer dizer que as operações não tenham conhecimento exclusivo ou que as equipes de operações possam ser dissolvidas.

O pessoal de operações sempre terá conhecimento exclusivo sobre infraestrutura, balanceamento de carga e similares. De fato, a remoção da tarefa manual de implantação de software da sua equipe de operações permitirá economizar tempo e dinheiro em outros lugares. Eles terão tempo para melhorar a confiabilidade e a capacidade de manutenção do seu aplicativo.

O aspecto mais importante de um ciclo de vida de entrega na estrutura do DevOps é que ele é um loop real. Quando você chega ao fim, volta ao começo. Além disso, se você receber feedback de suporte dos clientes a qualquer momento, volte para a fase subseqüente (ou a fase de planejamento), para que você possa desenvolver software da maneira que melhor atenda seus clientes.

A primeira parte da construção de um pipeline é tratá-lo linearmente. Você está construindo uma linha reta com etapas e pontos de verificação definidos ao longo do caminho. Nessa estrutura, você pode visualizar o ciclo de vida de desenvolvimento de software como algo que você inicia e termina. Os amantes da cachoeira ficariam orgulhosos.

Mas a realidade não permite que você trabalhe em linha reta. Você não pode simplesmente começar a produzir código, concluir e ir embora. Em vez disso, você é forçado a desenvolver o software básico lançado no seu primeiro ciclo iterativo e aprimorá-lo até o segundo ciclo. E assim por diante. O processo nunca termina e você nunca para de melhorar.

O processo do DevOps ajuda a conectar o início e o final desse pipeline direto, para que você comece a entendê-lo como um circuito inteiro ou loop, para que você possa desenvolver e melhorar continuamente.

  1. Técnicas de entrevista para criar uma equipe de DevOps: obtendo as habilidades técnicas certas

Por Emily Freeman

Pode ser difícil avaliar candidatos para o conjunto de habilidades certo ao contratar empregos para o DevOps ... mas não impossível. Com um pouco de criatividade e vontade de sair da caixa, você pode usar técnicas de entrevista para ajudar a encontrar candidatos com as habilidades técnicas certas para suas iniciativas de DevOps.

Entrevistas do DevOps

A era dos enigmas obtusos e das entrevistas no quadro de indução do suor está diminuindo - e por boas razões. Se uma entrevista no quadro de comunicações for facilitada por um engenheiro que se preocupa mais em enganar o candidato do que em discutir uma conversa técnica, você não vai a lugar nenhum rapidamente.

Recentemente, as entrevistas do quadro de comunicações têm recebido muito calor por colocar grupos sub-representados e marginalizados - que incluem mulheres e pessoas de cor - em desvantagem. Nesta era, é absolutamente vital que as empresas de tecnologia contratem diversas forças de trabalho, portanto essa situação é inaceitável. No entanto, você precisa avaliar de alguma forma a capacidade técnica de uma pessoa.

Qual é a resposta? Bem, a boa notícia é que você tem opções. (As más notícias são... Você tem opções.)

Como você contrata determinará quem você é.

Revise a entrevista do quadro branco para os candidatos a trabalho do DevOps

A entrevista no quadro branco nunca teve a intenção de ser o que se tornou. Em uma entrevista no quadro branco, o candidato a DevOps recebeu um programa de computador impresso em oito folhas de papel. As instruções? "Depure o programa." Umm. . . Com licença?

A entrevista no quadro branco tornou-se uma situação em que você dá a um candidato um problema aparentemente impossível, envia-o ao quadro com um marcador e observa-o suar profusamente enquanto quatro ou cinco pessoas observam seu pânico. Esse tipo de entrevista não fornece a ninguém informações de qualidade sobre se o empregador ou o entrevistado são adequados para a outra parte.

Embora outros tenham pedido a eliminação da entrevista no quadro branco, aqui está uma sugestão mais sutil: altere-o para adequá-lo às suas necessidades de DevOps. Faça uma discussão entre duas pessoas sobre um pedaço de código ou um problema específico. Não faça do problema algo louco, como equilibrar uma árvore de pesquisa binária. A menos que o trabalho para o qual você esteja entrevistando esteja literalmente escrevendo código no Assembly, você não precisa avaliar a capacidade do candidato de escrever no Assembly.

Conheça o trabalho do DevOps que você deseja preencher, os conjuntos de habilidades necessárias e a melhor maneira de medir essas habilidades em um candidato. Peça a um único engenheiro de sua equipe que se sente com o candidato e fale sobre o problema. Como você começaria a conversa? Quais problemas você encontra ao longo do caminho? Como vocês dois adaptariam suas soluções aos desafios que encontrarem?

Essa abordagem de conversação realiza duas coisas para os candidatos a trabalho do DevOps:

  • Reduz o pânico. A maioria das pessoas não pensa bem sob pressão. Além disso, você não faz seu trabalho todos os dias enquanto alguém olha por cima do seu ombro, criticando todos os erros de digitação ou erro. Você deixou o emprego em um instante. Portanto, não force as pessoas a entrevistar dessa maneira. Em vez disso, dê a seus candidatos a chance de mostrar o que eles podem fazer. Você terá uma ideia de como eles pensam e se comunicam. Imita o trabalho real. A entrevista conversacional fornece uma idéia de como seria trabalhar com essa pessoa. Você não resolve problemas difíceis no trabalho assistindo um ao outro lutar. (Pelo menos você não deveria. Realmente. Isso não é muito colaborativo ou do DevOps, deixando seus colegas sofrendo no silo.) Em vez disso, você trabalha em conjunto, troca idéias, pensa nas coisas, comete erros, recupera e encontra uma solução - juntos.

As melhores entrevistas do quadro branco são colaborativas, comunicativas e centradas na curiosidade - tudo o que os profissionais amam no DevOps.

Oferecer testes para levar para casa para candidatos a trabalho DevOps

Uma alternativa para uma entrevista mais tradicional no quadro branco é o teste para levar para casa. Esse tipo de teste é particularmente amigável para pessoas que têm algum tipo de ansiedade ou deficiência invisível que afeta sua capacidade de participar de uma entrevista no quadro branco. Esse estilo de entrevista também é amigável para engenheiros que lutam intensamente com a síndrome dos impostores.

A síndrome do impostor descreve indivíduos de alto desempenho que lutam para internalizar seus sucessos e experimentam um sentimento persistente de serem expostos como uma fraude.

Um teste para levar para casa consiste em algum tipo de problema que um candidato a DevOps pode resolver em casa, em seu próprio tempo. Os testes para levar para casa geralmente são configurados como um conjunto de testes para o qual o candidato deve escrever um código para que os testes sejam aprovados.

Como alternativa, o problema pode ser relativamente pequeno, como, por exemplo, “Crie um programa no [idioma de sua escolha] que receba uma entrada e inverta os caracteres.” As opções são infinitas e você pode adaptar o teste à sua pilha de tecnologia como você achar melhor.

Você pode até pedir aos candidatos a DevOps para implantarem seus aplicativos. Certifique-se de permitir que os candidatos usem ferramentas de código aberto ou forneça as assinaturas necessárias para usar tecnologias específicas.

A principal desvantagem dos testes para levar para casa é que você está pedindo às pessoas que tirem um tempo durante as noites ou fins de semana para fazer o que é essencialmente trabalho gratuito. Mesmo que você pague pelo trabalho realizado no teste para levar para casa, esse estilo de entrevista poderá afetar injustamente um candidato a DevOps que tenha outras responsabilidades fora do trabalho, incluindo cuidar de filhos, parceiro ou pais doentes.

Nem todo grande engenheiro tem tempo ilimitado para se comprometer com seu ofício. Mas se você limitar seu pool de candidatos a DevOps a pessoas que podem dedicar de 5 a 10 horas a um teste para levar para casa, rapidamente descobrirá que sua equipe se tornará homogênea e estagnada.

Revise o código com os candidatos a trabalho do DevOps

Uma técnica de entrevista que pode ser realmente reveladora é quando você se senta com um engenheiro ou um grupo de engenheiros para resolver erros reais em código real juntos. Você pode adotar algumas abordagens para uma entrevista de código em tempo real.

Você pode imitar um teste para levar para casa e dar ao candidato uma hora ou mais para criar um programa ou escrever uma função para fazer uma série de testes passar. Você também pode organizar a entrevista como uma revisão de código na qual você cria um PR real e analisa o que o código está fazendo e o que poderia ser melhorado.

De várias maneiras, a natureza da programação em pares de uma revisão de código combina as melhores partes de uma entrevista no quadro branco e de um teste em casa - mas sem algumas das principais desvantagens.

A programação em pares é uma prática de engenharia na qual dois engenheiros se sentam e trabalham juntos em um problema. Normalmente, uma pessoa “dirige” possuindo o teclado, mas elas decidem colaborativamente qual é a melhor abordagem, qual código adicionar e o que levar.

Se a posição do DevOps envolver uma função focada nas operações, o uso dessa abordagem de codificação em tempo real será ainda melhor. Embora muitas pessoas de operações estejam aprendendo a implementar infraestrutura como código ou gerenciar configurações, elas não têm a mesma experiência que os desenvolvedores.

Revisar o que algo faz e como pode funcionar é uma maneira fantástica de confirmar que o candidato tem experiência na lista de ferramentas e tecnologias em seu currículo, além de garantir que o candidato possa se comunicar com uma equipe.

Construir sua equipe de DevOps é uma busca individual. Sua equipe de DevOps não precisa corresponder a outras pessoas que você já viu. Avalie suas metas e selecione o candidato certo para cada tarefa do DevOps.

  1. BusinessOperations ManagementIntegração Contínua e Entrega Contínua: Implementando e Beneficiando do CI / CD

Por Emily Freeman

O crescimento da cultura DevOps mudou a maneira como os desenvolvedores constroem e distribuem software. Antes do surgimento da mentalidade ágil, as equipes de desenvolvimento receberam um recurso, o construíram e o esqueceram. Eles jogaram o código para a equipe de controle de qualidade, que o jogou de volta por causa de bugs ou o moveu para a equipe de operações. As operações foram responsáveis ​​pela implantação e manutenção do código na produção.

Esse processo foi desajeitado, para dizer o mínimo, e causou bastante conflito. Como as equipes existiam em silos, elas tinham pouca ou nenhuma percepção de como as outras equipes operavam, incluindo seus processos e motivações.

O CI / CD, que significa integração contínua e entrega (ou implantação) contínua, visa derrubar os muros que historicamente existiam entre as equipes e, em vez disso, instituir um processo de desenvolvimento mais suave.

Benefícios da integração contínua e entrega contínua

O CI / CD oferece muitos benefícios. No entanto, o processo de construção de um pipeline de CI / CD pode ser demorado, além de exigir a adesão da equipe e da liderança executiva.

Alguns benefícios do IC / CD incluem:

  • Teste automatizado completo: até a implementação mais simples de CI / CD requer um conjunto de testes robusto que pode ser executado no código toda vez que um desenvolvedor confirma suas alterações na ramificação principal. Loop de feedback acelerado: os desenvolvedores recebem feedback imediato com o CI / CD. Testes automatizados e integrações de eventos falharão antes da fusão do novo código. Isso significa que os desenvolvedores podem reduzir o ciclo de desenvolvimento e implantar recursos mais rapidamente. Diminuição do conflito interpessoal: automatizar processos e reduzir o atrito entre equipes incentiva um ambiente de trabalho mais colaborativo, no qual os desenvolvedores fazem o que fazem de melhor: soluções de engenharia. Processo de implantação confiável: qualquer pessoa que tenha revertido uma implantação na sexta-feira à tarde pode dizer o quão importante é que as implantações ocorram sem problemas. A integração contínua garante que o código seja bem testado e tenha um desempenho confiável em um ambiente semelhante à produção antes que ele chegue ao usuário final.

Implementando integração contínua e entrega contínua

O CI / CD está enraizado em metodologias ágeis. Você deve pensar em implementar o CI / CD como um processo iterativo. Cada equipe pode se beneficiar de uma versão do CI / CD, mas a personalização da filosofia geral dependerá muito da sua pilha de tecnologias atual (idiomas, estruturas, ferramentas e tecnologia que você usa) e cultura.

Integração contínua

As equipes que praticam integração contínua (IC) mesclam as alterações de código de volta ao ramo mestre ou de desenvolvimento o mais rápido possível. O IC normalmente utiliza uma ferramenta de integração para validar a compilação e executar testes automatizados em relação ao novo código.

O processo de IC permite que os desenvolvedores de uma equipe trabalhem na mesma área da base de código, mantendo as alterações mínimas e evitando grandes conflitos de mesclagem.

Para implementar a integração contínua:

  • Escreva testes automatizados para todos os recursos. Isso evita que erros sejam implantados no ambiente de produção. Configure um servidor de IC. O servidor monitora o repositório principal em busca de alterações e aciona os testes automatizados quando novas confirmações são enviadas. Seu servidor de IC deve poder executar testes rapidamente. Atualize os hábitos do desenvolvedor. Os desenvolvedores precisam mesclar as alterações novamente na base de código principal com freqüência. No mínimo, essa mesclagem deve ocorrer uma vez por dia.

Entrega contínua

A entrega contínua é um avanço do IC, pois os desenvolvedores tratam todas as alterações no código como entregáveis. No entanto, ao contrário da implantação contínua, uma versão deve ser acionada por um humano e a alteração pode não ser entregue imediatamente a um usuário final.

Em vez disso, as implantações são automatizadas e os desenvolvedores podem mesclar e implantar seu código com um único botão. Ao fazer iterações pequenas e frequentemente entregues, a equipe garante que eles possam solucionar facilmente as alterações.

Depois que o código passa nos testes automatizados e é criado, a equipe pode implantar o código em qualquer ambiente que especificar, como controle de qualidade ou preparação. Freqüentemente, um par revisa manualmente o código antes que um engenheiro o mescla em uma ramificação de liberação da produção.

Para implementar a entrega contínua:

  • Tenha uma base sólida em CI. O conjunto de testes automatizados deve crescer em correlação com o desenvolvimento de recursos e você deve adicionar testes sempre que um bug for relatado. Automatize lançamentos. Um ser humano ainda inicia implantações, mas a versão deve ser um processo de uma etapa - um simples clique de um botão. Considere sinalizadores de recursos. Os sinalizadores de recursos ocultam recursos incompletos de usuários específicos, garantindo que seus colegas e clientes vejam apenas a funcionalidade desejada.

Implantação contínua

A implantação contínua leva a entrega contínua ainda mais um passo que a entrega contínua. Toda mudança que passa em todo o pipeline de liberação da produção é implementada. É isso mesmo: o código é colocado diretamente em produção.

A implantação contínua elimina a intervenção humana do processo de implantação e requer um conjunto de testes totalmente automatizado.

Para implementar a implantação contínua:

  • Mantenha uma forte cultura de testes. Você deve considerar o teste como parte essencial do processo de desenvolvimento. Documente novos recursos. As liberações automatizadas não devem ultrapassar a documentação da API. Coordenar com outros departamentos. Envolva departamentos como marketing e sucesso do cliente para garantir um processo de implementação suave.
  1. As 10 principais armadilhas do DevOps: por que seus projetos de software falham

Por Emily Freeman

Promover uma cultura DevOps e selecionar ferramentas para dar suporte à sua abordagem DevOps beneficiará sua organização. A abordagem do DevOps galvaniza sua equipe de engenharia e concentra o desenvolvimento do seu produto no cliente.

No entanto, sempre que você tenta fazer uma mudança maciça na tendência atual da sua organização, você enfrenta desafios e precisa lidar com contratempos. À medida que você se transforma no DevOps, descobre lombadas únicas para você e sua equipe superar.

Embora você não possa prever todos os obstáculos que enfrentar, este artigo pode prepará-lo para as dez armadilhas mais comuns do DevOps. Lembre-se de que, independentemente de como você aborda sua prática de DevOps, suas prioridades devem permanecer focadas em pessoas, processos e tecnologia - nessa ordem.

Falha ao priorizar a cultura no seu projeto DevOps

Mais do que qualquer outra coisa, o DevOps é um movimento cultural. A cultura que você constrói em sua organização criará ou interromperá sua prática de DevOps. Sua cultura do DevOps deve enfatizar a colaboração, a confiança e o empoderamento da engenharia. Se você prega a automação, mas sente falta desses componentes culturais, provavelmente falhará.

Na verdade, o ferramental não importa muito. As ferramentas que você tem à sua disposição são mais semelhantes do que não. Embora os problemas que eles resolvem sejam importantes, nenhum desses problemas pode ser comparado à frustração quase interminável de tentar unir desenvolvedores e operações - bem como outras equipes, como segurança - em uma organização tradicional de engenharia.

O DevOps procura galvanizar engenheiros (bem como grupos de negócios). Ele cria uma base sobre a qual todos podem aprender, compartilhar e crescer. Essa aceleração pessoal alimentará toda a sua organização de engenharia para criar um software DevOps melhor e mais rápido. Os engenheiros que você tem em sua equipe são o ativo mais valioso que você possui. Trate-os bem, dando-lhes respeito e espaço para fazer o que eles fazem de melhor - criando soluções.

Deixando os outros para trás à medida que avança com o DevOps

Apresentar o caso internamente para o DevOps determinará o tipo de base que você cria para sua cultura. Procure solo fértil. Se você se move rápido demais e não convence as pessoas-chave da importância de uma transformação do DevOps, as pessoas observam seus movimentos com ceticismo e pulam na primeira oportunidade de mostrar a todos que você está errado. Essa não é uma posição divertida para se estar, e você nunca quer começar essa jornada com pessoas esperando que você falhe.

Para ter sucesso, você precisa de todos a bordo do navio DevOps, até dos pessimistas e céticos. Os engenheiros podem ser céticos. Depois de uma década ou duas nesse setor, elas viram muitas idéias e novas abordagens surgiram e desapareceram. Eles podem facilmente ignorar o DevOps como "apenas mais uma abordagem falhada" para os mesmos problemas antigos. E se você implementá-lo mal, o DevOps será de fato apenas outra abordagem falhada. Você e sua equipe devem persuadir outras pessoas do potencial e agir de maneira a convidar todos para a mesa.

Tente convencer os executivos com dados e o potencial para entrega acelerada de software. Mas os engenheiros precisam saber como o DevOps tornará seus trabalhos mais agradáveis. Mostre a eles como o DevOps se alinha às necessidades dos negócios e reduz o atrito ao longo do pipeline de entrega do software.

Apenas certifique-se de não exagerar no conceito. Os desafios do DevOps acontecerão. O DevOps não é uma bala de prata e exige um trabalho intenso no início para garantir que a equipe crie uma cultura de aprendizado na qual os engenheiros sejam livres para cometer erros e crescer.

Depois de atingir um horizonte de eventos no qual pessoas suficientes acreditam no DevOps, prossiga com o conhecimento de que tem o apoio da sua organização e das pessoas dentro dela.

Esquecendo de alinhar incentivos em seu projeto DevOps

Se você não pretende alinhar os incentivos com o que espera de determinadas equipes ou engenheiros específicos, surgem mais desafios. A ferramenta real do DevOps, se você pode dominá-lo, é o empoderamento. Você deseja capacitar seus engenheiros para fazerem o trabalho deles bem, sem interferências. Você contratou engenheiros talentosos, portanto confie na capacidade deles de cumprir suas responsabilidades.

Por exemplo, quando os desenvolvedores atuam em uma rotação de plantão, algumas organizações consideram isso um castigo. "Você construiu, apóia", não enche exatamente as pessoas de sentimentos felizes. Em vez disso, parece apenas mais uma forma de responsabilidade isolada. Mas uma rotação de plantão humanizada e uniformemente distribuída não apenas capacita os desenvolvedores a se apropriarem de seu trabalho, mas também cria oportunidades de aprendizado para toda a equipe.

No DevOps, você não pune engenheiros por trabalho imperfeito; em vez disso, você compartilha a responsabilidade e cultiva uma organização que valoriza o aprendizado e capacita todos a serem curiosos e a participar de áreas de tecnologia nas quais eles são menos familiares.

Alinhar incentivos e criar oportunidades de colaboração impulsiona seu objetivo de melhorar seus produtos e atender melhor seus clientes. Se todos estiverem alinhados com o objetivo de criar serviços incríveis para seus clientes por meio do DevOps, você verá o grupo começar a galvanizar.

Ficar quieto sobre seu projeto DevOps

DevOps é a antítese de segredos e negociações de bastidores. Em vez disso, coloca tudo sobre a mesa e obriga a confiar na integridade das pessoas em sua organização. Quando você introduz a comunicação aberta, o conflito parece aumentar. Não Em vez disso, você está vendo os pontos de atrito pela primeira vez. Em vez de deixar o conflito fermentar sob a superfície, as pessoas se sentem seguras o suficiente para expressar suas preocupações e expressar suas opiniões.

Um aspecto importante da comunicação aberta é mantê-la durante todo o ciclo de vida do produto - da concepção à produção. Você deve incluir engenheiros no planejamento de discussões, decisões de arquitetura, atualizações de progresso no desenvolvimento e implantações.

Embora essa ênfase na comunicação crie discussões mais detalhadas, também permite que os engenheiros tenham visibilidade fora de sua área de especialização principal, o que por sua vez os capacita a aconselhar outras pessoas, enquanto equipado com o contexto necessário para tomar decisões acertadas.

Mantenha o cliente - e o que eles esperam do produto que você está construindo - no centro de todas as discussões e decisões. Se você permanecer alinhado com essa meta, certamente seguirá em frente como uma unidade.

Esquecendo-se de medir seu progresso no DevOps

Medir seu progresso é crucial para o sucesso do DevOps. Ele fornece validação ao argumentar que o DevOps duvida das partes interessadas, ajuda a convencer os executivos de destaque e lembra a sua equipe de engenharia o quanto eles realizaram.

Antes de fazer uma única alteração, crie uma linha de base. Escolha um pequeno conjunto de dados que você deseja rastrear durante todo o processo. Esses dados informam suas decisões e servem como combustível para continuar pressionando quando você enfrenta contratempos. As possíveis medidas incluem:

  • Satisfação dos funcionários: seus engenheiros adoram trabalhar em sua organização? Receita recorrente mensal (MRR): quanto dinheiro você ganha com os clientes? Tickets de clientes: quantos bugs são relatados por seus clientes? Frequência de implantação: quantas implantações você tem por semana ou mês? Tempo médio para recuperação (MTTR): quanto tempo leva para se recuperar de uma interrupção de serviço? Disponibilidade do serviço: qual é o tempo de atividade do seu aplicativo? Você está cumprindo seus contratos de nível de serviço atuais? Implantações com falha: quantas liberações causam interrupções no serviço? Quantos precisam ser revertidos?

Microgerenciando seu projeto DevOps

Uma das maneiras mais rápidas de prejudicar seus engenheiros é microgerenciar o trabalho deles. Dan Pink, autor do livro Drive, acredita que a motivação no trabalho é motivada por três fatores:

  • Autonomia Domínio Objetivo

Motivadores extrínsecos como altos salários, bônus e opções de ações podem funcionar a curto prazo, mas a satisfação no trabalho a longo prazo depende mais do crescimento pessoal e profissional. Você deseja que seus engenheiros existam na tensão de se sentir altamente desafiado, mas não sobrecarregado pelo estresse. Esse ponto ideal é diferente para cada pessoa. É um desafio do DevOps, mas uma vez que isso pode fazer um mundo de diferença, se bem feito. Se você pode evocar a paixão de alguém, certamente trabalhará com entusiasmo.

Confiança pode ser um desafio do DevOps. É absolutamente crítico para as organizações de DevOps. Você deve confiar em seus colegas, colegas, engenheiros, gerentes e executivos. Você também deve confiar nas funções e responsabilidades dos vários departamentos da sua organização - o que não significa que você nunca terá conflito. É claro que momentos de atrito acontecerão entre os seres humanos. Mas minimizar esses momentos e permitir uma solução saudável de conflitos é o que distingue as equipes de engenharia focadas no DevOps da concorrência.

Mudando muito, muito rápido

Muitas equipes fazem muitas alterações rapidamente. Os seres humanos não gostam de mudanças. O DevOps é benéfico a longo prazo; alterações rápidas na maneira normal de fazer as coisas podem ser perturbadoras para os engenheiros.

Uma falha do DevOps é que isso implica que todo mundo mora no greenfield (novo software) com arco-íris e unicórnios. Pode parecer: "Se você conseguir que sua equipe trabalhe em conjunto, o desenvolvimento de software será fácil!" Isso não é verdade. A engenharia de software é difícil e sempre será difícil. Isso é algo que a maioria dos engenheiros gosta. Você gosta de um desafio. Mas os desafios devem ser estimulantes, não estressantes.

O DevOps não tem como objetivo remover todos os desafios intelectuais da engenharia. Em vez disso, oferece minimizar o atrito entre os seres humanos, para que todos possam se concentrar em seu trabalho. Se você tentar fazer muitas mudanças com muita rapidez, poderá se encontrar no meio de uma revolta total - Motim no Binário.

Escolhendo mal as ferramentas do DevOps

Embora você esteja desvalorizando as ferramentas no DevOps - e com razão - as ferramentas ainda são um fator. Mesmo o aspecto menos importante do DevOps contribui para o seu sucesso geral. As ferramentas que você selecionar devem resolver os problemas enfrentados pela equipe de engenharia, mas também devem se alinhar às áreas de estilo, conhecimento e conforto da equipe existente.

Não tenha medo de tentar várias soluções e ver qual delas se encaixa melhor. Dedicar algumas semanas a um produto mínimo viável (MVP) ou prova de conceito (POC) para testar uma ferramenta vale bem a pena. Mesmo se você acabar jogando fora, é preferível "desperdiçar" os recursos de engenharia do que apostar em uma tecnologia específica, apenas para descobrir, um ano depois, que não é uma boa opção.

Temendo falha do seu projeto DevOps

Falhar rápido é uma maneira curta de dizer que você deve estar constantemente interagindo para identificar problemas no início do processo sem gastar muito tempo e dinheiro. é algo sobre o qual muita gente fala em tecnologia e poucas implementam porque requer iteração rápida em um ambiente no qual os erros têm um raio de explosão pequeno e são facilmente corrigidos. Com muita freqüência, as empresas alegam uma mentalidade à prova de falhas e, em vez disso, demitem o primeiro engenheiro a excluir um banco de dados de produção. (Como se algum engenheiro lá fora nunca tivesse excluído um banco de dados de produção....)

No contexto do DevOps, no entanto, é melhor falhar bem do que falhar rapidamente. Falhar bem significa que você possui um monitoramento para alertá-lo sobre possíveis problemas muito antes de a situação afetar os clientes. Falhar bem também implica que você projetou seu sistema de forma segmentada que impede que um serviço que está caindo de cascata em uma interrupção sistêmica. Mas as organizações que falham bem também vão um passo além: elas não culpam as pessoas. Em vez disso, eles procuram falhas em sistemas e processos.

Kaizen é a palavra japonesa para melhoria contínua. No DevOps, o kaizen significa melhorar continuamente seus processos. Não é uma transformação sexy que tem começo e fim. O objetivo não é ir do zero ao perfeito. Em vez disso, o DevOps incentiva o trabalho lenta e gradual para melhorar uma coisa todos os dias. Se você sair do trabalho todas as noites sabendo que apenas um pequeno aspecto do trabalho é melhor por sua causa, você não se sentiria satisfeito? Muitos engenheiros se sentem assim.

Em vez de tentar evitar falhas a todo custo, o DevOps insiste em uma mentalidade de crescimento. O fracasso não é um marcador de estupidez ou má preparação. É um marcador de crescimento e um passo necessário na inovação. A inovação é um resultado que você deve estar disposto a buscar, mesmo que isso signifique que você ocasionalmente falha.

Ser muito rígido criará problemas de DevOps

O DevOps não é prescritivo, e isso é o melhor e o pior. O DevOps seria muito mais fácil de implementar se você tivesse uma lista de dez etapas a serem seguidas para alcançar o nirvana do DevOps. Se fosse assim tão fácil! Mas os humanos não funcionam dessa maneira, e grupos de humanos, como equipes de engenharia e grandes organizações, criam ainda mais complexidades que precisam ser abordadas.

Embora não exista um plano para a construção de uma organização DevOps, você pode adaptar a metodologia às práticas que funcionam para você e sua equipe. Você conhece sua organização e, como especialista experiente, deve pensar fora da caixa ao aplicar os fundamentos. Algumas das coisas no DevOps se encaixam perfeitamente. Outros terão vontade de usar uma jaqueta que é apenas um tamanho muito pequeno. Tudo bem.

Você cometerá erros. Ninguém é perfeito. Mas se você deixar um pouco de lado, capacitar seus engenheiros e confiar em sua equipe, verá resultados impressionantes. Apenas comece. E lembre-se: convide todos para a mesa, avalie seu progresso, priorize a cultura em detrimento da tecnologia e capacite seus engenheiros para fazer o que fazem de melhor.

  1. Gerenciamento de operações de negóciosO que é DevOps?

Por Emily Freeman

O que é o DevOps? É difícil fornecer uma receita exata do DevOps - porque não existe. O DevOps é uma filosofia que orienta o desenvolvimento de software, que prioriza as pessoas sobre o processo e sobre as ferramentas. O DevOps cria uma cultura de confiança, colaboração e melhoria contínua.

Ciclo DevOps

Como cultura, a filosofia do DevOps vê o processo de desenvolvimento de maneira holística, levando em consideração todos os envolvidos: desenvolvedores, testadores, pessoal de operações, segurança e engenheiros de infraestrutura. O DevOps não coloca nenhum desses grupos acima dos outros, nem classifica a importância do trabalho deles. Em vez disso, uma empresa de DevOps trata toda a equipe de engenheiros como essencial para garantir que o cliente tenha a melhor experiência possível.

DevOps evoluiu do Agile

Em 2001, 17 engenheiros de software conheceram e publicaram o “Manifesto para o Desenvolvimento Ágil de Software”, que detalhava os 12 princípios do gerenciamento de projetos Agile. Esse novo fluxo de trabalho foi uma resposta à frustração e inflexibilidade das equipes que trabalham em um processo em cascata (linear).

Trabalhando de acordo com os princípios do Agile, os engenheiros não precisam aderir aos requisitos originais ou seguir um fluxo de trabalho de desenvolvimento linear no qual cada equipe passa o trabalho para o próximo. Em vez disso, eles são capazes de se adaptar às necessidades em constante mudança dos negócios ou do mercado e, às vezes, até às tecnologias e ferramentas em mudança.

Embora o Agile tenha revolucionado o desenvolvimento de software de várias maneiras, ele não conseguiu resolver o conflito entre desenvolvedores e especialistas em operações. Os silos ainda eram desenvolvidos em torno de conjuntos de habilidades técnicas e especialidades, e os desenvolvedores ainda transmitiam o código para o pessoal de operações para implantar e dar suporte.

Em 2008, Andrew Clay Shafer conversou com Patrick Debois sobre suas frustrações com o conflito constante entre desenvolvedores e pessoal de operações. Juntos, eles lançaram o primeiro evento do DevOpsDays na Bélgica para criar uma maneira melhor e mais ágil de abordar o desenvolvimento de software. Essa evolução do Agile ocorreu e, desde então, o DevOps permitiu que empresas de todo o mundo produzissem software melhor com mais rapidez (e geralmente mais barato). O DevOps não é uma moda passageira. É uma filosofia de engenharia amplamente aceita.

O DevOps se concentra nas pessoas

Qualquer pessoa que diga que o DevOps tem tudo a ver com ferramentas quer vender algo para você. Acima de tudo, o DevOps é uma filosofia que se concentra nos engenheiros e em como eles podem trabalhar melhor juntos para produzir um ótimo software. Você poderia gastar milhões em todas as ferramentas do DevOps no mundo e ainda não estar mais perto do nirvana do DevOps.

Em vez disso, concentre-se no seu ativo de engenharia mais importante: engenheiros. Engenheiros felizes fazem um ótimo software. Como você faz engenheiros felizes? Bem, você cria um ambiente de trabalho colaborativo no qual o respeito mútuo, o conhecimento compartilhado e o reconhecimento do trabalho duro podem prosperar.

A cultura da empresa é a base do DevOps

Sua empresa possui uma cultura, mesmo que tenha sido desenvolvida por inércia. Essa cultura tem mais influência em sua satisfação no trabalho, produtividade e velocidade da equipe do que você provavelmente imagina.

A cultura da empresa é melhor descrita como expectativas, comportamento e valores não ditos de uma organização. Cultura é o que diz a seus funcionários se a liderança da empresa está aberta a novas idéias. É o que informa a decisão de um funcionário sobre apresentar um problema ou varrê-lo para debaixo do tapete.

Cultura é algo a ser projetado e refinado, não algo a ser deixado ao acaso. Embora a definição real varie de empresa para empresa e de pessoa para pessoa, o DevOps é uma abordagem cultural da engenharia em sua essência.

Uma cultura tóxica da empresa matará sua jornada de DevOps antes mesmo de começar. Mesmo que sua equipe de engenharia adote uma mentalidade de DevOps, as atitudes e os desafios da empresa maior irão sangrar em seu ambiente.

Com o DevOps, você evita culpas, aumenta a confiança e se concentra no cliente. Você dá autonomia a seus engenheiros e os capacita a fazer o que fazem de melhor: soluções de engenharia. Ao começar a implementar o DevOps, você oferece a seus engenheiros tempo e espaço para se ajustarem a ele, permitindo a eles a oportunidade de se conhecerem melhor e criar relacionamento com engenheiros com diferentes especialidades.

Além disso, você mede o progresso e recompensa as conquistas. Nunca culpe os indivíduos por falhas. Em vez disso, a equipe deve melhorar continuamente juntos, e as realizações devem ser comemoradas e recompensadas.

Você aprende observando seu processo e coletando dados

Observar seu fluxo de trabalho sem expectativa é uma técnica poderosa a ser usada para ver os sucessos e desafios de seu fluxo de trabalho de forma realista. Essa observação é a única maneira de encontrar a solução correta para as áreas e problemas que criam gargalos em seus processos.

Assim como no software, colocar alguns Kubernetes (ou outra nova ferramenta) em um problema não necessariamente o corrige. Você precisa saber onde estão os problemas antes de resolvê-los. Enquanto você continua, você coleta dados - não para medir o sucesso ou o fracasso, mas para acompanhar o desempenho da equipe. Você determina o que funciona, o que não funciona e o que tentar na próxima vez.

Persuasão é a chave para a adoção do DevOps

Vender a idéia do DevOps para seus líderes, colegas e funcionários não é fácil. O processo nem sempre é intuitivo para os engenheiros. Não seria uma boa ideia simplesmente vender a si mesma? Se fosse assim tão fácil. No entanto, um conceito-chave a ser lembrado sempre que você implementa o DevOps é que ele enfatiza as pessoas.

As chamadas "habilidades sociais" de comunicação e colaboração são fundamentais para a transformação do DevOps. Convencer outras pessoas da sua equipe e da empresa a adotar o DevOps requer praticar boas habilidades de comunicação. As primeiras conversas que você tem com colegas sobre o DevOps podem configurá-lo para o sucesso no futuro - especialmente quando você atinge um lance inesperado.

Pequenas mudanças incrementais não têm preço no DevOps

O aspecto do DevOps, que enfatiza a realização de alterações de maneiras pequenas e incrementais, tem suas raízes na manufatura enxuta, que inclui feedback acelerado, melhoria contínua e menor tempo de colocação no mercado.

A água é uma boa metáfora para as transformações do DevOps. A água é um dos elementos mais poderosos do mundo. A menos que as pessoas estejam assistindo as águas da enchente subirem à sua frente, elas pensam nisso como relativamente inofensivo. O rio Colorado esculpia o Grand Canyon. Lentamente, ao longo de milhões de anos, a água cortou a pedra para expor quase dois bilhões de anos de solo e rocha.

Você pode ser como a água. Seja a mudança lenta e implacável da sua organização. Aqui está a famosa citação de uma entrevista de Bruce Lee para inspirar você:

Seja sem forma, sem forma, como a água. Agora você coloca água em um copo, ele se torna o copo. Você coloca água em uma garrafa, ela se torna a garrafa. Você coloca em um bule de chá, ele se torna o bule de chá. Agora, a água pode fluir ou pode bater. Seja água meu amigo.

Fazer alterações incrementais significa, por exemplo, que você encontra um problema e o corrige. Então você conserta o próximo. Você não assume muito rápido e não escolhe todas as batalhas para lutar. Você entende que algumas brigas não valem a energia ou o capital social que podem custar.

Por fim, o DevOps não é uma lista de etapas que você pode executar, mas uma abordagem que deve orientar as decisões que você toma ao desenvolver.

  1. BusinessOperations ManagementDevOps For Dummies - Dicas e truques
  2. Preço de transferência da base com custo total

Por Mark P. Holtzman

Uma empresa pode definir o preço de transferência ao custo total (também conhecido como custo de absorção), que é a soma dos custos variáveis ​​e fixos por unidade. Para garantir que a divisão de vendas obtenha lucro, eles também podem adicionar uma marcação.

Suponha que a HOO Water Company produz água de nascente e refrigerantes. A divisão Clor produz água de nascente e a divisão Shpritz produz refrigerantes. Os gerentes da HOO incentivam Clor e Shpritz a trabalharem juntos para que a divisão Shpritz use a água da nascente da divisão Clor para fazer seus refrigerantes.

No entanto, a divisão Clor também vende sua água a clientes externos por US $ 0,75 por galão. Para minimizar os custos, a Shpritz também pode comprar água de outros fornecedores que não a Spring.

Este ano, a divisão Clor planeja produzir 100.000 galões de água de nascente, mas tem a capacidade de produzir mais água se puder vendê-la. A água de Clor tem um custo variável de US $ 0,30 por galão e deve cobrir custos fixos de US $ 40.000.

A divisão Shpritz planeja fabricar 60.000 galões de refrigerantes; pode comprar a água de Shpritz ou de um fornecedor externo. Além do custo da água, a Shpritz deve pagar US $ 0,40 por galão por aromas e outros aditivos para produzir cada galão de refrigerante. Shpritz também paga custos fixos de US $ 30.000 por ano. O refrigerante de Shpritz é vendido por US $ 2 por galão.

Primeiro, calcule o custo total de Clor. Os custos fixos chegam a US $ 40.000 necessários para produzir 100.000 galões de água de nascente. O custo fixo por unidade chega então a US $ 0,40 por galão (US $ 40.000 ÷ 100.000 galões). Os custos variáveis ​​de Clor são iguais a US $ 0,30 por galão; adicione isso ao custo fixo por unidade para obter um custo total de US $ 0,70 por galão, o preço de transferência.

A figura a seguir explica o que acontece quando Clor fornece a Shpritz 60.000 em água de nascente por um preço de transferência de US $ 0,70 por galão e o restante para clientes externos por US $ 0,75 por galão.

image0.jpg

Aqui, Clor recebe US $ 30.000 em receitas de clientes externos e US $ 42.000 em receitas de Shpritz. Subtrair os custos variáveis ​​de Clor de US $ 30.000 e custos fixos de US $ 40.000 resulta em um lucro líquido de US $ 2.000. Shpritz recebe uma receita de US $ 120.000 com seus refrigerantes.

Desse valor, ele deve pagar US $ 42.000 à Clor e US $ 24.000 em outros custos variáveis. Shpritz também deve pagar US $ 30.000 em custos fixos, resultando em um lucro líquido de US $ 24.000 para Shpritz. A HOO Water, proprietária de ambas as divisões, ganha uma receita total de US $ 26.000 de ambos os produtos.

Decisões de basear o preço de transferência no custo total podem induzir os gerentes de divisão a tomar más decisões que prejudicam a lucratividade geral da empresa. Suponha que outra empresa, a Malcolm Water, venda água por US $ 0,65 por galão. (Caso você esteja se perguntando, a Malcolm Water pode cobrar menos dinheiro por sua água, porque sua qualidade é mais baixa.) A divisão Shpritz deve escolher entre pagar US $ 0,70 por galão à divisão Clor ou US $ 0,65 por galão à Malcolm.

Por um lado, Shpritz pode preferir negociar com Clor apenas porque as duas empresas têm a mesma matriz. No entanto, se a HOO pagar US $ 0,70 por galão para produzir água, mas apenas US $ 0,65 para comprá-la da Malcolm, a HOO não deve comprar a água do fornecedor externo mais barato e economizar US $ 0,05 por galão?

Não necessariamente. A figura a seguir ilustra o fiasco que ocorre quando Shpritz tenta economizar dinheiro comprando sua água de Malcolm.

image1.jpg

A decisão de Shpritz de tentar cortar custos reduz a lucratividade geral da HOO Water em US $ 21.000. Não há dúvida: a lucratividade de Shpritz aumenta. Como a decisão de terceirizar reduz o custo variável da compra de água de US $ 42.000 para US $ 39.000, a receita líquida da Shpritz sobe para US $ 27.000.

No entanto, a decisão de Shpritz prejudica Clor e, finalmente, reduz a lucratividade total da HOO Water. As vendas de Clor para Shpritz de US $ 42.000 estão completamente secas. Seus custos variáveis ​​também caem de US $ 30.000 para US $ 12.000.

No entanto, os custos fixos de Clor de US $ 40.000 permanecem os mesmos, forçando Clor a sofrer uma perda de US $ 22.000. Os lucros gerais da HOO Water caem de US $ 26.000 para apenas US $ 5.000. Basear o preço de transferência no custo total levou Shpritz a tomar decisões que prejudicam a lucratividade geral da empresa.

  1. BusinessMarketingMarketing em Mídia SocialComo encontrar seus contatos no Instagram
Instagram For Business For Dummies

Por Jennifer Herman, Eric Butow, Corey Walker

Se você é novo no Instagram, pode estar se perguntando por onde começar. O Instagram (e seu pai, o Facebook) tem prazer em ajudá-lo a fazer conexões. Você pode encontrar pessoas de várias maneiras diferentes.

Encontrando seus amigos do Facebook

O Facebook tem um grande interesse em fazer o Instagram crescer, por isso tenta encorajá-lo a reunir seus amigos do Facebook e trazê-los para o Instagram. É uma maneira fácil de encontrar pessoas.

Para encontrar amigos no Facebook, siga estas etapas:

  1. Vá para a sua página de perfil do Instagram tocando em sua foto na parte inferior direita da tela do seu telefone. Toque na pessoa com um sinal de mais (e possivelmente um número vermelho) no canto superior esquerdo. Toque no link do Facebook na parte superior da tela. Confirme seu login no Facebook tocando em OK. A tela exibe quantos amigos do Facebook você tem no Instagram. Toque em Seguir tudo ou Seguir. Para seguir todos os seus amigos do Facebook no Instagram, toque em Seguir tudo. Se você preferir ser mais seletivo, especialmente porque provavelmente promoverá seu produto ou serviço, convém seguir os amigos um por um. Basta tocar em Seguir ao lado de cada amigo com quem você deseja se conectar e continuar rolando e seguindo!
encontrar amigos no Facebook Instagram

Alguns de seus amigos podem ter definido suas contas como particulares. Nesse caso, você verá Solicitado depois de tocar em Seguir. Eles precisam aprová-lo antes que você possa ver o perfil e as postagens deles.

Sincronizando sua lista de contatos

O Instagram também pode conectá-lo aos contatos armazenados no seu telefone ou tablet. Depois de ativar esse recurso, seus contatos são sincronizados periodicamente com os servidores do Instagram. O Instagram não segue ninguém em seu nome e você pode desconectar seus contatos a qualquer momento para que o Instagram não possa acessá-los.

Esse recurso pode ser melhor no início, quando comparado a uma conexão constante para fins de privacidade.

Para conectar seus contatos, siga estas etapas:

  1. Vá para a sua página de perfil do Instagram tocando em sua foto na parte inferior direita da tela do seu telefone. Toque na pessoa pequena com um sinal de mais (e possivelmente um número vermelho) no canto superior esquerdo. Toque no link Contatos. A próxima tela informa que o Instagram encontrará pessoas que você conhece e você terá a opção de segui-las. Para continuar, toque em Conectar contatos. Outro pop-up pergunta se o Instagram pode acessar seus contatos. Toque em Permitir acesso. Um pop-up aparece solicitando que você permita o acesso do Instagram aos seus contatos. Esta é sua última chance de cancelar sua decisão para permitir que o Instagram acesse seus contatos. Toque em OK. O pop-up desaparece e a tela Contatos é exibida. Siga todos os seus contatos no Instagram tocando em Seguir tudo ou escolha os contatos a seguir tocando em Seguir ao lado de cada um.
contatos do instagram

Se você mudar de idéia em algum momento e quiser proibir o acesso do Instagram aos seus contatos, toque no ícone de roda na sua página de perfil, role para baixo até Configurações e toque em Contatos. Toque no botão Conectar contatos para retorná-lo ao branco, o que encerra o acesso do Instagram.

  1. BusinessOperations ManagementEscolhendo o melhor provedor de serviços em nuvem, recursos e ferramentas para DevOps

Por Emily Freeman

O sucesso da sua iniciativa DevOps depende muito do acompanhamento do processo, mas também é importante usar as ferramentas certas. Selecionar um provedor de serviços em nuvem não é uma escolha fácil, especialmente quando o DevOps é sua motivação motriz. GCP (Google Cloud Platform), AWS (Amazon Web Services) e Azure têm mais em comum do que separados.

Geralmente, sua decisão depende mais do nível de conforto da equipe de DevOps com um determinado provedor de nuvem ou com sua pilha atual mais do que o próprio provedor de nuvem. Depois de decidir mudar para a nuvem, a próxima decisão é escolher um provedor de nuvem que atenda às suas necessidades de DevOps. Aqui estão algumas coisas a considerar ao avaliar os provedores de nuvem com os princípios do DevOps em mente:

  • Sólido histórico. A nuvem que você escolher deve ter um histórico de decisões financeiras responsáveis ​​e capital suficiente para operar e expandir grandes datacenters ao longo de décadas. Conformidade e gerenciamento de riscos. Estrutura formal e políticas de conformidade estabelecidas são vitais para garantir que seus dados estejam seguros. Idealmente, revise as auditorias antes de assinar contratos. Reputação positiva. A confiança do cliente é absolutamente essencial. Você confia que pode contar com esse provedor de nuvem para continuar crescendo e dar suporte às crescentes necessidades de DevOps? Acordos de nível de serviço (SLAs). Qual nível de serviço você precisa? Normalmente, os provedores de nuvem oferecem vários níveis de confiabilidade do tempo de atividade, com base no custo. Por exemplo, o tempo de atividade de 99,9% será significativamente mais barato que o tempo de atividade de 99,999%. Métricas e monitoramento. Que tipos de informações, monitoramento e telemetria de aplicativos o fornecedor fornece? Certifique-se de obter um nível adequado de insights sobre seus sistemas o mais próximo possível do tempo real.

Por fim, verifique se o provedor de nuvem que você escolhe possui excelentes recursos técnicos que fornecem serviços que atendem às suas necessidades específicas de DevOps. Geralmente, procure

  • Recursos de computação Soluções de armazenamento Recursos de implantação Registro e monitoramento Interfaces de usuário amigáveis

Você também deve confirmar a capacidade de implementar uma solução de nuvem híbrida, caso precise, em algum momento, além de fazer chamadas HTTP para outras APIs e serviços.

Os três principais provedores de nuvem são o Google Cloud Platform (GCP), Microsoft Azure e Amazon web Services (AWS). Você também pode encontrar provedores de nuvem menores e certamente vários provedores de nuvem privada, mas a maior parte do que você precisa saber vem da comparação dos provedores de nuvem pública.

Amazon Web Services (AWS)

Assim como os outros principais provedores de nuvem pública, a AWS fornece computação sob demanda por meio de uma assinatura paga conforme o uso. Os usuários da AWS podem se inscrever em qualquer número de serviços e recursos de computação. A Amazon é a atual líder de mercado entre os provedores de nuvem, mantendo a maioria dos assinantes de nuvem.

Oferece um conjunto robusto de recursos e serviços em regiões do mundo todo. Dois dos serviços mais conhecidos são o Amazon Elastic Compute Cloud (EC2) e o Amazon Simple Storage Service (Amazon S3). Assim como outros provedores de nuvem, os serviços são acessados ​​e a infraestrutura é provisionada por meio de APIs.

Microsoft Azure

Antes da Microsoft lançar esse provedor de nuvem como Microsoft Azure, ele era chamado Windows Azure. A Microsoft a projetou para fazer exatamente o que o nome indica - servir como um provedor de nuvem para organizações de TI tradicionalmente Windows. Porém, à medida que o mercado se tornou mais competitivo e a Microsoft começou a entender melhor o cenário da engenharia, o Azure se adaptou, cresceu e evoluiu.

Embora ainda seja indiscutivelmente menos robusto que o AWS, o Azure é um provedor de nuvem completo, focado na experiência do usuário. Por meio de vários lançamentos e aquisições de produtos - principalmente o GitHub - a Microsoft investiu pesadamente na infraestrutura do Linux, o que permitiu fornecer serviços mais robustos a um público mais amplo.

Google Cloud Platform (GCP)

O Google Cloud Platform (GCP) tem a menor participação de mercado dos três principais provedores públicos de nuvem, mas oferece um conjunto substancial de serviços em nuvem em quase duas dezenas de regiões geográficas.

Talvez o aspecto mais atraente do GCP seja o fato de oferecer aos usuários a mesma infraestrutura que o Google usa internamente. Essa infraestrutura inclui serviços extremamente poderosos de computação, armazenamento, análise e aprendizado de máquina. Dependendo do seu produto específico, o GCP pode ter ferramentas especializadas ausentes (ou menos maduras) na AWS e no Azure.

Localizando ferramentas e serviços do DevOps na nuvem

Literalmente, centenas de ferramentas e serviços estão à sua disposição através dos principais provedores de nuvem. Essas ferramentas e serviços geralmente são separados nas seguintes categorias:

  • Calcular Armazenamento Trabalho em rede Gestão de recursos Inteligência Artificial em Nuvem (AI) Identidade Segurança Sem servidor IoT

A seguir, é apresentada uma lista dos serviços mais usados ​​nos três principais fornecedores de nuvem. Esses serviços incluem implantação de aplicativos, gerenciamento de máquina virtual (VM), orquestração de contêiner, funções sem servidor, armazenamento e bancos de dados.

Serviços adicionais estão incluídos, como gerenciamento de identidade, armazenamento em bloco, nuvem privada, armazenamento de segredos e muito mais. Está longe de ser uma lista exaustiva, mas pode servir como uma base sólida para você, ao começar a pesquisar suas opções e ter uma idéia do que diferencia os provedores de nuvem.

  • Implantação de aplicativo: solução de plataforma como serviço (PaaS) para implantar aplicativos em uma variedade de idiomas, incluindo Java, .NET, Python, Node.js, C #, Ruby e Go Azure: Serviços em Nuvem do Azure AWS: AWS Elastic Beanstalk GCP: Google App Engine
  • Gerenciamento de máquina virtual (VM): opção de infraestrutura como serviço (IaaS) para executar máquinas virtuais (VMs) com Linux ou Windows Azure: Máquinas Virtuais do Azure AWS: Amazon EC2 GCP: Google Compute Engine
  • Kubernetes gerenciados: permite um melhor gerenciamento de contêineres através do popular orquestrador Kubernetes Azure: Serviço de Kubernetes do Azure (AKS) AWS: Amazon Elastic Container Service (ECS) para Kubernetes GCP: Google Kubernetes Engine
  • Sem servidor: permite que os usuários criem fluxos de trabalho lógicos de funções sem servidor Azure: Funções do Azure AWS: AWS Lambda GCP: Funções do Google Cloud
  • Armazenamento em nuvem: armazenamento de objetos não estruturados com armazenamento em cache Azure: Armazenamento de Blob do Azure AWS: Amazon S3 GCP: Google Cloud Storage
  • Bancos de dados: bancos de dados SQL e NoSQL, sob demanda Azure: BD do Cosmos do Azure AWS: Amazon Relational Database Service (RDS) e Amazon DynamoDB (NoSQL) GCP: Google Cloud SQL e Google Cloud BigTable (NoSQL)

Ao explorar os três principais provedores de nuvem, você percebe uma longa lista de serviços. Você pode se sentir oprimido pelas centenas de opções à sua disposição. Se, por acaso, você não encontrar o que precisa, o mercado provavelmente fornecerá algo semelhante. O mercado é onde desenvolvedores independentes oferecem serviços que se conectam à nuvem - hospedados pelo Azure, AWS ou GCP.

A tabela abaixo lista serviços adicionais fornecidos pela maioria dos provedores de nuvem, se não todos.

Categoria de serviçoFuncionalidade
Bloquear armazenamentoArmazenamento de dados usado em ambientes de rede de área de armazenamento (SAN). O armazenamento em bloco é semelhante ao armazenamento de dados em um disco rígido.
Nuvem privada virtual (VPC)Recursos de computação compartilhados logicamente isolados.
FirewallSegurança de rede que controla o tráfego.
Rede de entrega de conteúdo (CDN)Entrega de conteúdo com base na localização do usuário. Geralmente utiliza cache, balanceamento de carga e análise.
Sistema de Nome de Domínio (DNS)Tradutor de nomes de domínio para endereços IP de navegadores.
Logon único (SSO)Controle de acesso a vários sistemas ou aplicativos usando as mesmas credenciais. Se você fez login em um aplicativo independente com suas credenciais do Google, Twitter ou GitHub, usou o SSO.
Gerenciamento de Identidade e Acesso (IAM)Gerenciamento de acesso de usuário baseado em função. Funções pré-determinadas têm acesso a um grupo definido de recursos; os usuários recebem funções atribuídas.
Telemetria, monitoramento e registroFerramentas para fornecer informações de aplicativos sobre desempenho, carga do servidor, consumo de memória e muito mais.
ImplantaçõesFerramentas de configuração, infraestrutura e gerenciamento de pipeline de lançamento.
Concha de nuvemAcesso ao shell a partir de uma interface da linha de comandos (CLI) no navegador.
Segredos de armazenamentoArmazenamento seguro de chaves, tokens, senhas, certificados e outros segredos.
Filas de mensagensCorretores de mensagens escalados dinamicamente.
Aprendizado de Máquina (ML)Estruturas e ferramentas de aprendizado profundo para cientistas de dados.
IoTConexão e gerenciamento de dispositivos.