JA

Lean, mais rápido e melhor com DevOps

por Hanno Ketterer e Christian N. Schmid
Artigo
Salvo para Meu conteúdo salvo
Download Artigo

Metodologias ágeis deram às empresas exatamente o que elas precisam na era digital: uma maneira colaborativa e flexível para desenvolver software. (Ver " O final das duas velocidades é , ”Artigo do BCG, agosto de 2016.) Equipes cruzadas, desenvolvimento iterativo e testes e feedback contínuos são práticas poderosas que permitiram às empresas melhorar seu processo de desenvolvimento. Mas as empresas podem realizar mudanças transformadoras ainda maiores-e sucesso-a implementação de um segundo conjunto de práticas de TI, que é o desenvolvimento de que o DevOps. Além disso, o DevOps coloca a forte ênfase na automação.

DevOps calls for some staff from IT operations, which traditionally works apart from developers, to be brought onto cross-functional agile teams. In addition, DevOps puts heavy emphasis on automation. This set of practices is not an alternative to agile but a complement—one that takes agile a step further and applies it to the rest of the software life cycle: deployment, release, operation, and monitoring.

de fato, os resultados são abertos. Por Implementando DevOps , a empresa de serviços financeiros em todo o país alcançou uma redução de 70% no tempo de inatividade do sistema e uma melhoria de 50% na qualidade do código. Em nossa experiência, o DevOps ajudou as empresas a abordar questões de segurança na metade do tempo que tradicionalmente exigiram, a liberar um novo código sob demanda, em vez de em um cronograma fixo e reduzir significativamente os custos de TI. De fato, as empresas que combinaram o DevOps com uma infraestrutura padronizada e totalmente virtualizada viram que os custos caíram em até 25%. Tais resultados se traduzem em um benefício crucial: vantagem competitiva sustentável. Como resultado, algumas empresas estão descobrindo que os atrasos persistem em transferências críticas porque as operações de TI ainda estão funcionando de maneiras testadas pelo tempo, mas em grande parte manual. O CIO do Banco, Ron Van Kemenade, colocou da seguinte maneira: "Descobrimos que trabalhar de uma maneira ágil apenas no desenvolvimento não fazia muita diferença. As operações de TI precisavam ser incluídas também, pois é basicamente onde o dinheiro para antes de entrar na produção". (Ver "

DevOps Helps Create Value

For all the benefits that agile brings, it doesn’t change the basic relationship between development teams and IT operations. As a result, some companies are finding that delays persist at critical handovers because IT operations is still working in time-tested but largely manual ways. ING Bank’s CIO, Ron van Kemenade, put it this way: “We found that working in an agile way solely in development didn’t really make much of a difference. IT operations needed to be included as well, since that’s basically where the buck stops before you go into production.” (See “ Construindo uma função de TI bancária de ponta , “Artigo do BCG, dezembro de 2015.) Trazendo alguns funcionários das operações de TI para equipes ágeis multifuncionais e estressando a automação, o DevOps ajuda as empresas a lidar com esse problema ao oferecer outros benefícios importantes. De fato, o DevOps cria um valor tremendo de três maneiras importantes (consulte o Anexo 1.)

Entrega mais rápida de recursos e alterações. Adicionado. Por exemplo, a automação do teste fornece aos desenvolvedores um feedback mais rápido, e a automação da integração incorpora as mudanças dos desenvolvedores mais rapidamente na base de código. Tais mudanças incentivam os desenvolvedores a trabalhar com pedaços menores de código - mesmo apenas algumas linhas. Então, em vez de lançar um grande aplicativo de pia de cozinha, as empresas podem lançar uma série de atualizações incrementais pequenas, colocando novos recursos no campo rapidamente. Developers—even agile ones—typically call IT operations when they are ready to send software to testing. If the software is brand new, operations needs to configure the test environment. If the software is a new release of a current product and a test environment already exists, interfaces and side applications still need to be configured and added. These tasks, like many in operations, are labor-intensive, and a developer can deploy code only so often under such a system. Therefore, developers tend to work with large chunks of code. But this approach comes at a price: an individual change isn’t released until all the revisions packed with it are working.

DevOps helps companies accelerate the time-consuming tasks in IT operations. For example, automating testing provides developers with faster feedback, and automating integration incorporates developers’ changes more quickly into the code base. Such changes encourage developers to work with smaller chunks of code—even just a few lines. Then, instead of eventually releasing a big kitchen-sink application, companies can release a series of small, incremental updates, getting new features into the field fast.

Ser capaz de liberar sob demanda é particularmente benéfico quando se trata de segurança. Nas explorações do "dia zero", os hackers tentam aproveitar uma vulnerabilidade antes que possam ser corrigidos. ("Zero Day" refere -se ao fato de que o criador do software tem efetivamente zero dias para resolver o problema.) Se a criação de patches seguir os processos tradicionais de desenvolvimento, teste e liberação, a janela de oportunidade dos hackers permanece aberta. O DevOps ajuda as empresas a liberar correções conforme necessário e selar violações rapidamente-geralmente em poucas horas, em vez de dias.

Maior eficiência. Por exemplo, quando as empresas automatizam testes e integração, os desenvolvedores não gastam mais grandes pedaços de seu dia aguardando que as máquinas sejam configuradas ou o código seja integrado. Eles podem fazer as duas coisas clicando em um botão em um portal de autoatendimento. Depois que um grande banco europeu implementou o DevOps, ele relatou melhorias de eficiência de até 25% no desenvolvimento de atualizações para seu aplicativo bancário on -line. A equipe de operações de TI também é liberada para um trabalho mais desafiador que agrega mais valor, o que será gratificante para funcionários e empregadores. Portanto, eles não têm incentivo para antecipar ou evitar problemas de longo prazo. As correções futuras serão a dor de cabeça das operações. DevOps helps IT professionals devote more time to value-creating work. For example, when companies automate testing and integration, developers no longer spend big chunks of their day waiting for machines to be configured or code to be integrated. They can do both by clicking a button on a self-service portal. After a large European bank implemented DevOps, it reported efficiency improvements of up to 25% in developing updates for its online banking application. The IT operations staff is also freed up for more challenging work that adds more value, which will prove rewarding for employee and employer alike.

Better Quality Code and Faster Recovery from Failures. After software is released, developers typically move on to their next project. Therefore, they don’t have an incentive to anticipate or prevent longer- term problems. Future fixes will be operations’ headache.

DevOps mantém os desenvolvedores envolvidos e no gancho durante todo o ciclo de vida de um recurso ou aplicativo, resultando em código de melhor qualidade. Menos correções são necessárias porque os desenvolvedores procuram e eliminam problemas em potencial à medida que escrevem código. Quando ocorrem falhas, os bugs são mais facilmente rastreados até sua fonte porque os desenvolvedores estão trabalhando com pedaços menores de código. Enquanto isso, o erro humano é reduzido por toda a automação que o DevOps traz para o ciclo de vida do software. Como resultado, as empresas podem entregar as correções rapidamente. Os principais profissionais de TI adotam novas abordagens que oferecem melhores resultados. Ao implementar o DevOps, as empresas podem não apenas atrair, mas também mantêm talentos de primeira linha. Não existe uma maneira melhor para as empresas mostrarem que está na vanguarda do que usando ferramentas e metodologias inovadoras. Mas as empresas de sucesso seguem cinco práticas recomendadas. A automação é crucial para o desenvolvimento de software de qualidade mais rápido e com mais eficiência. Mas as empresas devem ver automatizando o ciclo de vida do software como uma jornada - uma que deve ser cuidadosamente orquestrada. quais etapas devem ser automatizadas e em que sequência precisa ser considerada. Por exemplo, a automação de testes de integração não eliminará gargalos se o teste de aceitação ainda for realizado manualmente. Analise o processo atual de desenvolvimento e desafio as rotinas usadas com frequência. Se houver testes que o código sempre passa, talvez eles devam ser descartados e não automatizados. 

Of course, having the right talent is critical if organizations are going to develop better-quality code. The top IT professionals embrace new approaches that deliver better results. By implementing DevOps, companies can not only attract but also retain top-tier talent. There is no better way for businesses to show that IT is on the cutting edge than by using innovative tools and methodologies.

Making DevOps Work

Like agile, DevOps has no textbook implementation model. But successful companies follow five best practices.

Automate the software life cycle in stages. One can’t overstate the importance of automation to an effective implementation of DevOps. Automation is crucial to developing quality software faster and more efficiently. But companies should see automating the software life cycle as a journey—one that should be carefully orchestrated.

The full software life cycle encompasses many steps; which steps should be automated and in what sequence needs to be considered. For instance, automating integration testing won’t eliminate bottlenecks if acceptance testing is still performed manually.

The key is to think about orchestration from the very start of a DevOps implementation. Analyze the current development process and challenge frequently used routines. If there are tests that code always passes, maybe they should be discarded rather than automated. 

As empresas geralmente implementam a automação em quatro etapas. (Consulte o Anexo 2.)

Standardize tools, processes, and practices. Another best practice for implementing DevOps is standardizing tools, processes, and practices across teams. This is something that is often absent within organizations. Standardized approaches, as opposed to ad hoc solutions, reduce errors and improve knowledge sharing. They are also a prerequisite for implementing automation, which lies at the heart of DevOps. For instance, automating server configuration through a self-service portal requires a defined set of configurations, instead of an endless array of possible permutations.

Standardization also reduces the overall number of tools companies use, increasing efficiency and potentially reducing costs.  Traditionally, tools haven’t been coordinated across IT. Developer teams and operations teams all select and manage their own tools despite any overlap. By contrast, DevOps requires an integrated, centrally managed tool chain. Companies will have to make changes, but the effort is easily outweighed by the benefits.

Como parte de seu impulso para a padronização, as empresas devem desafiar a tradição e perguntar se as ferramentas, processos e práticas existentes devem ser atualizados ou aprimorados. Por exemplo, descobrimos que o DevOps funciona particularmente bem em infraestrutura como serviço e plataforma como ambientes de serviço, porque os recursos de TI necessários estão disponíveis sob demanda. As empresas que adotam esses serviços podem eliminar a necessidade de processos potencialmente longos de fornecimento de infraestrutura. De fato, o DevOps ajuda as empresas a tirar o máximo proveito dos serviços baseados em nuvem (especialmente quando esses serviços são acessados ​​por meio de uma nuvem pública). A capacidade da nuvem de implantar rapidamente máquinas virtuais - e, portanto, o software de uma empresa - é de valor apenas se novos recursos e alterações forem desenvolvidos e lançados rapidamente.  

No lado do aplicativo, as arquiteturas dissociadas - fizeram possível pelo uso de interfaces de programação de aplicativos padrão (APIs) e microsserviços - desenvolvedores ativados para criar componentes modulares. Talvez o benefício mais importante para essa abordagem seja que, se uma parte defeituosa do código for implantada, apenas essa peça - e não todo o sistema - falha. 

repensar a estrutura da equipe. (Veja o Anexo 3.) Mas o espírito do DevOps é sobre colaboração e comunicação entre todos com uma participação no software. Portanto, a lista de uma equipe não precisa terminar com ela; Pode incluir outras partes interessadas, como especialistas em segurança. De fato, algumas empresas, como o Capital One, implementam uma variante chamada DevOpsSec. A implementação do DevOps altera as habilidades que os funcionários precisarão. O pessoal de operações, por exemplo, não configurará mais os ambientes manualmente; Em vez disso, eles precisarão escrever scripts que automatizam a configuração. Determinar o tamanho certo da equipe também é crítico. Embora possa ser tentador incluir o maior número possível de partes interessadas, as grandes equipes podem tornar a comunicação pesada. Qual é o melhor tamanho? Geralmente, uma equipe deve ter sete a nove membros. De fato, na Amazon, a regra geral é a "equipe de duas pizzas"-uma que pode ser alimentada com duas pizzas. Por fim, dependendo das necessidades de uma empresa, alguns profissionais de TI, como arquitetos de aplicativos e engenheiros de banco de dados, podem estar melhor posicionados em centros de excelência do que nas equipes de DevOps. (É importante observar que as equipes do DevOps nunca gerenciam a infraestrutura. Essa função cai em um grupo de infraestrutura interno ou a um provedor externo, como os serviços da Web da Amazon.) DevOps, by definition, brings the development and operations sides of IT together on cross-functional teams that have end-to-end responsibility for the full software life cycle. (See Exhibit 3.) But the spirit of DevOps is about collaboration and communication among everyone with a stake in the software. So a team’s roster doesn’t have to end with IT; it can include other stakeholders, such as security experts. Indeed, some companies, such as Capital One, implement a variant called DevOpsSec.

As companies build their teams, they should keep several points in mind. Implementing DevOps changes the skills that employees will need. Operations personnel, for example, will no longer configure environments manually; instead they will need to write scripts that automate configuration. Determining the right team size is also critical. Although it may be tempting to include as many stakeholders as possible, large teams can make communication unwieldy. What’s the best size? Generally, a team should have seven to nine members. Indeed, at Amazon, the rule of thumb is the “two-pizza team”—one that can be fed with two pizzas. Finally, depending on a company’s needs, some IT professionals, such as application architects and database engineers, may be better positioned in centers of excellence than on DevOps teams. (It’s important to note that DevOps teams never manage the infrastructure. That role falls to either an in-house infrastructure group or an outside provider, such as Amazon Web Services.)

Facilitar a mudança cultural necessária. Mudar para o Agile não era perfeito para muitas empresas. Muitas das tarefas de coordenação que os gerentes de nível médio tradicionalmente lidaram deixaram de existir, e os gerentes se mudaram para as equipes, agindo mais como treinadores do que supervisores. O Pushback não era incomum e deveria ser esperado, pois os funcionários das operações de TI se juntam a equipes multifuncionais. A educação, a capacidade e a experiência contínua com o DevOps podem suavizar a transição, mas também podem apoiar do topo. Implementing DevOps requires cultural change, so top management must be strongly committed to the effort. Moving to agile wasn’t seamless for many companies. Many of the coordinating tasks that mid-level managers had traditionally handled ceased to exist, and the managers moved onto the teams, acting more as coaches than supervisors. Pushback wasn’t unusual, and it should be expected as employees from IT operations join cross-functional teams. Education, enablement, and ongoing experience with DevOps can smooth the transition, but so, too, can support from the top.

Uma mudança cultural também será necessária no nível da equipe. Com as alterações de código integradas e liberadas com muito mais frequência, as equipes precisam repensar e até derrubar práticas de longa data-formais e informais. Gary Gruver, ex-diretor de engenharia da Hewlett-Packard da LaserJet Enterprise Firmware, uma vez descreveu o DOS e não que a empresa estabelecida depois que implementou a integração contínua: "Tivemos certas regras. [Se] você cometer código e, em seguida, voltar para casa antes de ser verde, isso é um laboratório". Algumas empresas descobriram que trazer a equipe de operações de TI para equipes multifuncionais pode criar certas tensões, pois é provável que os funcionários tenham vistas preexistentes e até pouco lisonjeiras uma da outra. Uma maneira de superar esse atrito é enfatizar - e especificamente, mostrar - o valor de trabalhar dessa maneira. Os pilotos com pessoal com os mais abertos ao DevOps podem criar campeões e alcançar resultados que promovem a colaboração e o desarmar as tensões. No entanto, encontrar um piloto que produz resultados rápidos e claros pode ser complicado. Desenvolver um produto ou serviço que não depende de um cronograma de liberação fixa - e isso pode ser lançado separadamente de outras aplicações - é ideal.

Diplomacy may also be required. Some companies have found that bringing IT operations staff onto cross-functional teams can create certain tensions, as the employees are likely to have preexisting, and even unflattering, views of each other. One way to overcome such friction is to emphasize—and specifically, show—the value of working in this manner. Pilots that are staffed with those most open to DevOps can create champions and achieve results that promote collaboration and defuse tensions. However, finding a pilot that produces quick and clear results can be tricky. Developing a product or service that doesn’t depend on a fixed release schedule—and that can be rolled out separately from other applications—is ideal.

Finalmente, implementar o DevOps significa que as equipes precisam aprender a compartilhar conhecimento. Ter regularmente "Days de DevOps" interno pode fornecer um local para os membros da equipe espalharem a notícia sobre as melhores práticas, enquanto aprendem mais sobre os papéis um do outro. Enquanto isso, novas contratações devem ser treinadas desde o início no DevOps. Isso não apenas fará sua transição para uma equipe mais suave, mas também enviará uma mensagem: esta é uma empresa que está adotando novas maneiras, e novas contratações podem fazer parte da mudança desde o primeiro dia.

Desenvolva novos KPIs. À medida que o DevOps ajuda as empresas a reengenharia a maneira como as equipes funcionam, a gerência deve desenvolver novos KPIs para avaliar como as equipes estão se saindo e como os processos estão funcionando. Isso pode medir, por exemplo, o número de compromissos de código que ocorrem todos os dias e o tempo entre comprometimento e implantação na produção. Para casa em bandeiras vermelhas, as empresas podem rastrear métricas, como o número de compromissos de código feitos a cada fim de semana ou com que frequência alguém é chamado para obter ajuda fora do horário de trabalho. Um conjunto sólido de KPIs ajuda a identificar não apenas gargalos, mas também processos que podem ser melhorados. E isso destaca um ponto crucial: o DevOps pode e deve evoluir com o tempo. Cada dia parece trazer nova urgência. Metodologias ágeis ajudam bastante a ajudar as empresas a desenvolver software na era digital; As práticas do DevOps os ajudam a transformar o ciclo de vida do software. Com atenção e planejamento cuidadosos - e o compromisso da administração em trabalhar das novas maneiras que o cenário de negócios de hoje exige - os devões podem ajudar as empresas a oferecer um ótimo software com mais eficiência e mais eficácia do que nunca. Hanno Ketterer


For today’s companies, the pressure to reduce the time to market, improve efficiency, and boost quality is constantly increasing. Each day seems to bring new urgency. Agile methodologies go a long way toward helping companies develop software in the digital era; DevOps practices help them transform the software life cycle. With careful attention and planning—and management’s commitment to working in the new ways that today’s business landscape requires—DevOps can help companies deliver great software more efficiently and more effectively than ever before.

Authors

Alumnus

Hanno Ketterer

Alumnus

Diretor Gerente e Parceiro

Christian N. Schmid

Diretor Gerente e Parceiro
Munique

Conteúdo relacionado

Salvo para Meu conteúdo salvo
Saved To Meu conteúdo salvo
Download Artigo