Curso Redhat
Curso Redhat
br.redhat.com
Sumário
Introdução��������������������������������������������������������������������������������������������������������������������������������������������������� 2
facebook.com/redhatinc
@redhatbr
linkedin.com/company/red-hat-brasil
• Não leva em consideração apenas abordagens de desenvolvimento inteiramente novas. Embora algumas
equipes possam se dar o luxo de criar sistemas novos do zero, a maior parte de nossas orientações se aplica
à evolução dos complexos sistemas existentes.
pela frente." desconfortável. A Red Hat tinha uma infraestrutura de TI robusta que, apesar de ter passado por um
enorme crescimento, iria aumentar ainda mais. A rápida ampliação da Red Hat significava que a equipe de TI
Mike Kelly
precisava estar à frente da curva de crescimento e, ainda assim, operar dentro de um orçamento restrito.
CIO, Red Hat
Como Mike e sua equipe abordaram esses desafios?
A transformação da TI da Red Hat
Imagine os sistemas de TI como sendo o sistema nervoso central de uma organização, carregando
informações, coordenando ações e executando muitas das tarefas que permitem que a empresa funcione.
Nos últimos anos, o tamanho, a densidade e a complexidade desse sistema de aplicações aumentaram para
a maioria das organizações. Com a Red Hat não foi diferente.
Em 2016, a Red Hat operava aproximadamente mil aplicações e serviços únicos e independentes, que
atendiam a diversas áreas dos negócios. Essas aplicações eram executadas por equipes diferentes, em
O Red Hat Innovation stacks tecnológicos distintos e em vários datacenter redundantes. Os objetivos da equipe poderiam ser
resumidos em um desafio triplo:
Labs é um programa
1. Atender às demandas por velocidade e adaptabilidade dos negócios digitais.
de residência
imersiva para 2. Aprimorar a disponibilidade, a resiliência e a segurança dos sistemas digitais.
o desenvolvimento Esses objetivos são exemplos de dilemas comuns: a necessidade de mais velocidade, adaptabilidade,
de suas ideias mais disponibilidade e segurança, mas com redução das despesas operacionais.
inovadoras.1. As aplicações que viabilizavam os negócios diários da Red Hat incluíam desde soluções JavaTM
personalizadas e outras aplicações, até integração de software como serviço (SaaS) e armazenamento de
dados, ou processos complexos de fluxo de trabalho.
O início do projeto
Para começar, a equipe de TI da Red Hat mobilizou a equipe do Red Hat Open Innovation Labs para realizar
uma análise minuciosa, da mesma maneira como é habitualmente realizada para os clientes Red Hat. O
Red Hat Open Innovation Labs oferece programas de residência imersiva que ajudam as organizações a
solucionar desafios corporativos reais, combinando mudanças nas tecnologias e nos processos. O resultado
para a TI da Red Hat foi um insight abrangente das escolhas que a equipe tinha e das opções para resolver
alguns dos problemas mais urgentes.
A equipe também aprendeu a navegar pelos desafios culturais internos inerentes a qualquer mudança. Por
fim, constatou-se que valorizar as contribuições dos céticos da equipe foi tão importante quanto valorizar as
contribuições dos mais entusiasmados em adotar as novas tecnologias.
Figura 1. Ganhos da TI da Red Hat com a transformação da nuvem híbrida nativa em nuvem (fonte: dados
internos da TI da Red Hat)
desempenho muito • A esmagadora maioria das empresas (84% de acordo com um relatório recente da Flexera/Rightscale4)
mais acentuados. A estão buscando uma estratégia de multicloud. Em muitos casos, as organizações passam a utilizar a nuvem
híbrida por padrão, simplesmente porque grupos diferentes adotam provedores de nuvem distintos.
pesquisa DORA's
• O uso de diferentes linguagens de programação continua a avançar, seja para o desenvolvimento de
2018 State of
softwares corporativos, ou de uso geral. Embora o Java e o Javascript ainda dominem o universo
DevOps destaca corporativo, outras linguagens estão ganhando espaço em aplicações especializadas. (Veja a pesquisa de
como esta adoção dados públicos de 2019 da Red Monk. 5)
geralmente resulta em • A adoção de tecnologias nativas em nuvem e, principalmente, a migração para containers e gerenciamento
desaceleração antes de containers como infraestrutura, estão em ascensão crescente.6
de gerar benefícios. O desafio é como encontrar o ponto de equilíbrio entre esses desafios.
O ambiente de aplicações de uma organização passa por mudanças constantes conforme novas aplicações
são implantadas, ferramentas e processos são atualizados e aplicações geram dados e transações. Finalmente,
as aplicações em produção sustentadas pelo ambiente são o que agregam valor aos usuários, parceiros e
funcionários da organização.
Imaginar o ambiente de aplicações de uma organização como um ecossistema único, em constante evolução
e que abrange a empresa inteira é uma metáfora poderosa porque enfatiza as propriedades que o ambiente
precisa exibir e quais as tensões em jogo a cada tomada de decisão.
Muitos dos comprometimentos mencionados nas seções anteriores, incluindo os dilemas de confiabilidade
versus produtividade, previsibilidade versus capacidade de mudança, segurança versus conveniência,
desempenho versus custos e rigidez versus liberdade, parecem uma proposta bilateral. Parece que ao escolher
uma opção, é necessário abrir mão da outra. Embora seja necessário fazer alguns sacrifícios para que a
organização se destaque, a TI precisa entregar ambas as opções:
3 Stroud, Robert. "2018: The Year Of Enterprise DevOps". Blog Forrester, 17 de outubro de 2017, https://go.forrester.
com/blogs/2018-the-year-of-enterprise-devops/.
4 Flextera, "RightScale 2019 State of the Cloud Report from Flextera." 2019, https://info.flexerasoftware.com/
SLO-WP-State-of-the-Cloud-2019.
5 O’Grady, Stephen. "The RedMonk Programming Language Rankings: January 2019". Blog Red Monk, 20 de março de
2019, https://redmonk.com/sogrady/2019/03/20/language-rankings-1-19/.
6 Hippold, Sarah. "Gartner identifies key trends in PaaS and Platform Architecture for 2019".
Comunicado do Gartner à imprensa, 29 de abril de 2019. https://www.gartner.com/en/newsroom/
press-releases/2019-04-29-gartner-identifies-key-trends-in-paas-and-platform-ar
• Confiabilidade e produtividade.
Com um planejamento estratégico deliberado e decisões focadas, é possível satisfazer muitas dessas
necessidades.
Com base nesse modelo, uma discussão sobre estratégia é dividida em três áreas:
1. Avaliação da situação e definição dos objetivos. Compreenda o que está acontecendo agora, os
desafios e as oportunidades que surgiram e as restrições mais significativas de cada ação. O normal é
incluir uma visão em longo prazo (onde queremos estar daqui a 5 ou 10 anos?) e em curto prazo (o que está
por vir nos próximos 12 a 18 meses?).
3. Determinação do que será feito em seguida. Crie um conjunto de ações específicas e de execução
imediata que, alinhadas com as políticas e diretrizes estabelecidas, aproximem a organização dos objetivos.
7 Rumelt, Richard P. Good Strategy, Bad Strategy: The Difference and Why It Matters. Nova York: Crown Business, 2011.
Como você verá nas seções a seguir, um dos padrões recorrentes do sucesso é a adoção de uma autoridade
descentralizada. Como resultado, é provável que qualquer estratégia seja mais eficaz se construída em
vários níveis, com políticas amplas, diretrizes no nível organizacional e margem para que grupos individuais
acrescentem casos locais de acordo com as próprias necessidades.
• DevOps e automação
Desenvolvimento Código Automação
de aplicações personalizado Integração de processos • Observabilidade
• Segurança
Sistemas Nuvem privada
Plataformas operacionais ou pública Containers
• Uma variedade de stakeholders que dependem do ambiente de aplicações para produzirem. Por
exemplo, as equipes de desenvolvimento e operações que criam e operam as aplicações, além de
funcionários, clientes e parceiros que usam a aplicação.
Delinear esses componentes principais é um exercício útil, pois proporciona uma visão da amplitude e da
profundidade do ambiente de aplicações como um todo.
Entretanto, podem existir outras áreas de alta prioridade específicas a cada organização e que devem ser
levadas em consideração também. Esperamos que algumas das orientações a seguir sirvam também para
outras áreas comuns, mas nos concentramos em confiabilidade e produtividade, uma vez que são comuns a
todas as organizações.
Para o propósito deste e-book, produtividade refere-se à organização como um todo e aos seus funcionários.
Qual o volume de trabalho sendo realizado em toda a organização? Na prática, estamos focando
principalmente na produtividade das esquipes de TI, desenvolvimento e operações, que são responsáveis
por aprimorar as aplicações disponíveis aos usuários finais. Entretanto, por extensão, essas melhorias nas
aplicações contribuem em grande parte com o aumento da produtividade no restante da organização. Como
veremos na Parte III, há áreas em que as definições entre desenvolvedor e usuário estão se tornando obscuras.
3. Ganhos em iniciativas ou projetos específicos: quais atividades específicas - como por exemplo novas
funcionalidades, solicitações de novas tecnologias ou descontinuação de funcionalidades antigas - já estão
em desenvolvimento, mas podem se beneficiar com uma mudança de direção?
O conjunto exato de políticas será diferente para cada organização. Nesta seção, discutimos algumas
considerações sobre políticas que comprovamos funcionar em ambientes de TI de grande porte. O conjunto
aqui discutido foi extraído da nossa experiência ao trabalhar com uma ampla variedade de clientes do mundo
todo, e é uma adaptação do conhecimento prevalecente do campo que se provou útil na prática.
As áreas de políticas aqui inclusas se aplicam ao nível organizacional. Embora elas contenham algumas das
orientações já disponíveis para estratégias de tecnologia nativa em nuvem e de nuvem híbrida (por exemplo,
consulte o e-book Como Ensinar um Elefante a Dançar e as postagens do blog Martin Fowler sobre arquitetura
ou microsserviços) aqui seremos mais abstratos. Nas seções posteriores, você verá orientações sobre
implementação com foco na tecnologia.
Autoridade descentralizada
A tendência de descentralização nos projetos de sistema prevalece há alguns anos. Na área tecnológica, isso
está mais claramente evidente em metodologias como a de microsserviços. Essa arquitetura faz sentido em
muitos tipos de sistemas, além de ser uma das áreas mais beneficiadas pelos avanços da tecnologia nativa em
nuvem.
em certas direções sem Expressamos esse princípio de política como: autoridade centralizada -> autoridade descentralizada.
definir exatamente o Capacite, em vez de deter todas as responsabilidades
que deve Quando a TI centralizada capacita outras equipes da organização e compartilha a responsabilidade pelo
ser feito." desenvolvimento e operações, ela funciona melhor do que ao tenta centralizar a autoridade.
Richard Rumelt Isso não significa que as equipes centrais delegam todas as suas responsabilidades. Existem processos e
Autor, trecho adaptado do livro sistemas essenciais que devem ser impostos ao restante das equipes. No entanto, fornecer os meios para que
Good Strategy, Bad Strategy8
pessoas de outras áreas assumam a responsabilidade faz com que os grupos se tornem muito mais engajados
em trabalhar para o funcionamento da organização como um todo. E isso resulta em:
• Ganhos em confiabilidade e compartilhamento mais eficiente das práticas recomendadas (equipes menores
podem descobrir os problemas antes das equipes centrais).
" Liderança é incorporar • Equipes locais com maior capacidade de se adaptar rapidamente a regulamentações, de acordo com o
a capacidade de contexto em que estão inseridas.
grandeza às pessoas • Tomada de decisão mais rápida para questões menores, como resultado de um maior senso de autonomia e
e às práticas de responsabilidade.
uma organização, • Mais satisfação e orgulho na execução e noção dos objetivos, resultando em níveis maiores de dedicação e
produtividade.
dissociando-as da
personalidade A descentralização pode ser viabilizada pela tecnologia, por meio de trabalho remoto, maneiras eficientes de
monitorar as decisões e organização das equipes. No entanto, antes de mais nada, trata-se de uma questão
do líder." cultural. Pequenas mudanças nas diretivas e responsabilidades podem levar a diferenças significativas nos
David Marquet
resultados. Falaremos mais sobre as questões culturais na Parte IV. Além disso, o livro The Open Organization 10
Comandante de submarinos, Marinha discute mais a fundo algumas experiências da cultura de inovação da Red Hat.
dos EUA 9
Recursos universais
O número elevado de implantações em nuvem pública e datacenters pode resultar em uma rápida proliferação
de novas segmentações na organização:
• Determinados serviços estão disponíveis apenas no Microsoft Azure, outros na Amazon Web Services
(AWS), enquanto outros somente em datacenters corporativos.
8 Rumelt, Richard P. Good Strategy, Bad Strategy: The Difference and Why It Matters. Nova York: Crown Business, 2011.
9 Marquet, L. David. Turn the Ship Around! A True Story of Turning Followers into Leaders. Nova York: Portfolio, 2013
1 0 Whitehurst, Jim, The Open Organization. Boston, Massachusetts: Harvard Business Review Press, 2015.
Parte dessa separação existe por um bom motivo (firewalls de segurança ou proteção de dados), mas
geralmente há um processo extremamente complexo para determinar onde uma nova funcionalidade será
hospedada. Curvas difíceis de aprendizado para a realização das mesmas tarefas em ambientes diferentes e
outras disfunções também são bastante comuns.
Esse conceito parece simples e óbvio, mas organizações não se preocupam, nem gastam muito tempo
prevendo essas questões.
• Estar disponíveis de forma idêntica em quantos datacenters e localidades em nuvem forem necessários.
Eles devem usar as mesmas APIs, endpoints e configurações sempre que possível.
• Ter capacidades distribuídas, tais como sistemas de mensageria, integração, geração de registros,
rastreamento e automação de processos, que são executados perfeitamente nos datacenters e em
localidades na nuvem, além de interconectar os locais de forma transparente.
Observação: dependendo do serviço, estar "disponível" em outro datacenter ou nuvem pode significar que a
mesma instância seja simplesmente acessível remotamente como um serviço de uma API em outros locais, ou
que há instâncias locais do mesmo serviço disponíveis.
Essa abordagem também leva à uniformidade de execução e reutilização, o que oferece mais vantagens
do que usar diferentes recursos subjacentes em locais distintos. Em termos de produtividade dos
desenvolvedores, ter o mesmo conjunto de serviços disponíveis reduz os esforços de aprendizado necessários
e aumenta a aplicabilidade das habilidades adquiridas pela equipe.
• Por outro lado, criar muitas imposições tende a gerar ressentimento, desengajamento ou frequentemente
o famoso "jeitinho" para criar soluções alternativas, o que torna tudo ainda mais frágil. Muitas vezes, essas
soluções alternativas são ideias criativas, mas impedem o progresso em longo prazo.
Para ter sucesso, a questão não é "o quanto devo restringir", mas sim "onde implementar restrições e onde dar
liberdade".
• O lado da via em que os motoristas são obrigados a conduzir é normalmente uma imposição estritamente
obrigatória.
• Já o tipo, modelo, cor e potência do veículo podem ser escolhidos quase que arbitrariamente pelo motorista.
Portanto, a aplicação rigorosa de uma norma (o lado de condução da via), embora seja tecnicamente uma
restrição à liberdade, na verdade dá poder de mobilidade aos motoristas, pois eles sabem em que lado da via
todos os outros veículos também estarão. Na prática, há também algumas restrições quanto ao tipo de veículo,
mas elas são geralmente amplas o suficiente para que os motoristas sintam ter liberdade de escolha. Então, na
realidade, muitas das rigorosas normas de trânsito proporcionam liberdade de escolha e capacidade de inovar
em outras áreas.
Nos sistemas de TI, grande parte do desafio é estabelecer onde ser rigoroso e onde ser flexível.
Uma maneira de expressar isso na dimensão das políticas é: barreiras de governança -> interfaces acordadas.
Trabalhar para estabelecer quais interfaces e processos principais devem ser rigorosamente respeitados por
todos aumenta o grau de confiabilidade porque:
• As interfaces nos limites permitem mudanças mais radicais nos domínios. Por exemplo, a adoção de uma
variedade de tecnologias de implementação.
• As equipes desperdiçam menos tempo interagindo com outros grupos quando possíveis problemas são
corrigidos antecipadamente.
desenvolvedor pode
fazer o download do Figura 4. O quão avançados em autosserviços estão seus sistemas de TI?
nosso código-fonte e
começar a trabalhar Esse espectro do provisionamento aborda dois aspectos:
nele, sem ter qualquer 1. Quanto tempo e esforço serão necessários para que os membros das equipes recebam os recursos de que
2. Os níveis de habilidades exigidos para que os membros das equipes acessem determinados recursos.
Ian Bailey
Vice-ministro assistente de
Expressamos essa sequência como aplicações -> serviços por autosserviço.
serviços tecnológicos da
Diretoria de Informática do
Muitos dos recursos disponíveis nos ambientes de TI são aplicações instaláveis que diferem quando estão
Governo da Colúmbia Britânica11
em ambiente de testes ou produção. Elas também estão disponíveis apenas em determinados lugares e
podem exigir o uso de habilidades significativas para que sejam configuradas corretamente. Quanto maior for
a capacidade de autosserviço das aplicações e das ferramentas para desenvolvimento de aplicações, mais
produtiva a organização provavelmente se tornará. Com esta abordagem, as organizações:
• Aceleram as contribuições individuais pois removem a barreira inicial de uma configuração de sistema
trabalhosa e que geralmente requer conhecimento especializado.
• Maior disponibilidade dos serviços no provisionamento, quando realizado para muitos usuários em uma
ampla base de recursos compartilhados, do que para um usuário individual.
• Melhor planejamento de capacidade e orçamento, o que resulta em uma utilização de recursos mais
eficiente e confiável.
11 Caso de sucesso da Red Hat, "O governo da Colúmbia Britânica melhora os serviços com a tecnologia open source."
https://www.redhat.com/pt-br/success-stories/government-of-british-columbia.
Uma maneira de entender esse conceito é pensar na diferença entre caçadores e fazendeiros. Um caçador se
sente bem quando captura um animal que matará sua fome naquele dia (um projeto que foi concluído). Por
outro lado, o fazendeiro segue um padrão de trabalho (operação regular) para produzir resultados ao longo
do tempo. Pensando no ambiente de aplicações como um todo, o progresso verdadeiro está na melhoria dos
ativos principais ou na criação de novos, que atualizam e melhoram significativamente a produção em longo
prazo.
Considerar os sistemas de TI como soluções nos leva a pensar em processos de produção contínuos, nos
usuários e em suas necessidades. Então, se estamos planejando fazer mudanças, qual a melhor maneira de
comunicá-las antecipadamente? Todas elas serão aplicadas a soluções usadas por clientes. Mas é útil, e até
mesmo crítico, aplicar esse tipo de pensamento a qualquer sistema que afeta grupos de usuários, incluindo:
• Parceiros
• Funcionários
• Desenvolvedores
• Equipes de operações
Sem um pensamento voltado a soluções, dificilmente o sistema será reutilizado. Por outro lado, um
compromisso com o pensamento voltado a soluções é capaz de:
• Aumentar a confiabilidade, deixando claro quem é responsável pelos serviços e recursos reutilizáveis; criar
ciclos de upgrade/downgrade/descontinuação mais previsíveis; gerar menos surpresas para as equipes
operacionais.
• Aumentar a produtividade, fortalecendo serviços e recursos dos quais as equipes dependem; reduzir
a necessidade de recriação ou replicação em cada local; permitir que os serviços internos se tornem,
potencialmente, ofertas externas testadas e de valor no futuro.
12 Martin Fowler e James Lewis. "Microservices". Blog Martin Fowler, 25 de março de 2014, https://martinfowler.com/
articles/microservices.html.
13 Bortenschlager, Manfred e Willmott, Steven. "Manual do Proprietário da API." https://www.redhat.com/pt-br/
resources/3scale-api-owners-manual-ebook.
O ponto mais sútil, porém igualmente importante, por trás da fragilidade é que o instinto humano (e também o
instinto predominante na TI) é se concentrar em proteger as fragilidades dos sistemas, em vez de desenvolver
programas de aprimoramento. Geralmente, visamos prevenir problemas antes de mais nada, em vez de
analisar como se recuperar e crescer quando eles inevitavelmente acontecem. Essa tendência é um dos
motivos por que as abordagens de engenharia do caos ainda são raramente postas em prática. A maioria dos
sistemas de TI são agrupamentos de sistemas frágeis e isolados, com proteções para prevenir que elementos
aleatórios provoquem pertubações.
2. Cura: capacidade de reagir de modo apropriado para reduzir os danos e voltar ainda mais forte.
Um dos ou ambos os estágios podem envolver intervenção humana, embora a automação esteja se tornando
cada vez mais crítica para reagir rapidamente.
A principal mudança de mentalidade é considerar a variedade de modos de falha que podemos tolerar no
momento. Então, como detectá-los? Como analisar os dados extraídos das falhas? Que sistemas devemos
implementar para crescer à medida que ocorrem falhas? Como automatizar o processo?
Essa mudança de eixo é provavelmente a mais desafiadora para as organizações de TI e, possivelmente, a mais
importante também. Ela traz enormes benefícios, mesmo quando o progresso em direção ao objetivo final
é gradual. Do ponto de vista da confiabilidade, analisar os mecanismos para melhorá-los sistematicamente,
indo além da correção de falhas, torna o sistema mais robusto progressivamente. Do ponto de vista da
produtividade, preocupar-se menos com as possibilidades de falhas permite ciclos de experimentação mais
rápidos.
14 Cameron, Lori M. "Chaos Engineering: It Sounds Scary, But Intentionally Harming Systems Can Find Bigger Bugs.
How To Make The Cultural Shift, From Netflix Experts Who Do It". Computer, 15 de novembro de 2018. https://
publications.computer.org/computer-magazine/2018/11/15/netlfix-chaos-engineering/.
1 5 Cowan, Paris. "NAB deploys Chaos Monkey to kill servers 24/7". IT News, 9 de abril de 2014, https://www.itnews.
com.au/news/nab-deploys-chaos-monkey-to-kill-servers-24-7-382285.
1 6 Taleb, Nassim Nicholas. Antifragile: Things That Gain from Disorder. Estados Unidos: Random House, 2012.
Hoje em dia, a maioria dos sistemas de TI não funcionaria sem processos de automação. No entanto, em
muitos casos, a automação concebida em mudanças técnicas anteriores pode se tornar parte do problema.
Entenda:
• Aplicações criadas sob medida, com uma função única, escritas em uma linguagem de programação que não
é mais usada comumente na organização ou no resto do mundo.
• Conjunções de scripts complexas e interligadas, que ninguém quer tocar, a menos que falhem.
Qual a diferença entre a boa automação e a ruim? O e-book A Empresa Automatizada da Red Hat descreve
detalhadamente as melhores práticas de automação. Mas há um princípio geral que deve ser compreendido: a
diferença entre automação implícita e explícita.
Automação implícita é uma execução de script ou código de uso único, ao contrário da automação explícita,
que é reconhecida como código e está sujeita a: controles de versão, testes, atualizações e gerenciamento
como parte da configuração do sistema.
Expressamos essa transformação de política como configuração manual -> automação como código.
Quase todas as organizações têm configurações manuais em muitas partes dos seus sistema. Com o passar do
tempo, transformá-las para que sejam um código explicitamente gerenciado gera bastante valor. Por exemplo:
• Do ponto de vista da confiabilidade, a automação como código reduz a chance de erros devido a
dependências ausentes; acelera as mudanças e cria disciplina nos processos de mudança.
• Do ponto de vista da produtividade, a automação como código reduz as áreas do sistema que são pouco
compreendidas, além de diminuir a quantidade de tempo gasto em falhas de difícil diagnóstico.
• A automação como código também aumenta a capacidade de reutilização e reduz a curva de aprendizado.
De modo geral, migrar para a automação como código é um pré-requisito para obter sucesso com a
implementação do método DevOps, porque ela separa a configuração do código.
Segurança reforçada
A segurança de perímetro tem sido uma abordagem insuficiente para a segurança da TI com o passar do
tempo. Mesmo assim, muitas organizações ainda dependem dela para proteger a infraestrutura inteira ou
subgrupos de datacenters. Nos cenários de nuvem híbrida, além das aplicações serem distribuídas entre vários
datacenters e nuvens, há também integrações e canais para o fluxo de dados entre alguns desses locais. Essa
configuração significa que sistemas comprometidos em um local podem resultar em acesso não autorizado em
outros. Portanto, vale a pena avaliar a segurança em pelo menos três dimensões:
2. Horizontal. Com padrões de microsserviços, APIs e comunicação entre aplicações, uma boa segurança
requer implementação de recursos de criptografia, monitoramento e controle de acesso para a maioria ou
para todas as comunicações.
3. Equipe e ciclo de vida. Mesmo depois de pesquisar e escolher as tecnologias e os procedimentos certos,
as equipes de desenvolvimento e operações precisam ser capazes de aplicá-los. Na medida do possível,
esses processos devem ser automatizados e impostos como parte do ciclo de desenvolvimento.
Expressamos esse princípio de política como segurança de perímetro -> segurança disseminada.
Claramente, a segurança tem um impacto importante no eixo da confiabilidade dos sistemas de TI. Ao
proteger a integridade de processos e dados, a segurança reduz o tempo de inatividade e o risco de perdas
catastróficas. No entanto, considerar os modelos de segurança, expandir a responsabilidade por todas as
equipes e automatizar muitos dos processos (como imagens de container permitidas e pré-configuradas),
significa fazer um planejamento preventivo para reduzir ainda mais os riscos.
A segurança pode ser vista como um empecilho à produtividade porque envolve, geralmente, várias etapas
complexas de desenvolvimento - em vez de utilizar uma senha incorporada, acesso direto ao banco de dados
ou alguns outros tipos de atalhos. Embora isso seja verdade em curto prazo, com automação e suporte
suficientes para os processos, a segurança pode melhorar a produtividade ao reduzir refatorações futuras e o
tempo perdido na resposta a incidentes. Em última análise, ter mecanismos de segurança bem estabelecidos
e reutilizáveis faz com que a vida dos desenvolvedores seja muito mais fácil. Portanto, reduzir a complexidade
das configurações é, de fato, fazer bom aproveitamento do tempo.
• Melhor capacidade de
planejamento e eficiência
Mentalidade voltada a soluções • Mais clareza sobre quem é • Componentes mais robustos
responsável pelos serviços para a reutilização
• Desacoplamento de
dependências para impedir
falhas em cascata
Automação como código • Redução de erros com remoção • Eliminação ou aceleração das
de etapas humanas necessárias tarefas mais comuns
• Foco na evolução de todo o ambiente, não na revolução. A maioria das organizações já conta com
um conjunto complexo de iniciativas, projetos e atividades em andamento para áreas diferentes dos
negócios. Portanto, adicionar ainda mais coisas a esses planos pode ser intimidador. A contribuição mais
valiosa de uma estratégia de aplicações que abrange todo o ambiente é avaliar as mudanças no contexto
da integridade da organização como um todo. A evolução do todo viabiliza esse objetivo mais do que uma
mudança revolucionária em poucas unidades. Essa abordagem não significa que não há espaço para heróis
ou heroínas nas equipes. De fato, tais conquistas devem ser exemplos enaltecidos de melhoria do todo.
• Pense nos sistemas e métricas tanto quanto nos objetivos. Definir objetivos de melhorias em geral é
um processo relativamente simples e direto. É fácil dizer "precisamos melhorar em tal aspecto". No entanto,
objetivos dessa natureza, mesmo que já venham com ações definidas, talvez resultem apenas em uma
explosão de atividades em curto prazo. Uma abordagem mais eficaz seria selecionar uma ou mais métricas
que representam o status do ambiente e trabalhar para implementar um conjunto de comportamentos e
hábitos que meçam o progresso e promovam avanços nas métricas.
Autoridade descentralizada Tempo de decisão com relação a • Cadência regular nos processos
mudanças ou exceções, classificado de planejamento global e dos
de acordo com o tamanho do grupos para a definição de
problema políticas
• Processos de solicitação de
mudanças ou exceções entre
grupos
Tendência à antifragilidade Tempo de correção após falhas • Testes de caos regulares que
e tendência (preferencialmente induzem a falhas reais ou
decrescente) de ocorrência de simuladas em todo o sistema
falhas semelhantes para detectar fragilidades
Não existe uma arquitetura única que funcione para todos os casos. As escolhas relacionadas à arquitetura
sempre serão exclusivas a cada organização. Geralmente, tais escolhas representam os principais pontos
fortes que devem ser desenvolvidos. No entanto, é útil fornecer um mapa dos elementos mais comuns de um
ambiente de aplicações e de como eles se conectam quando as tecnologias nativas em nuvem e de nuvem
híbrida são aplicadas.
Nesta seção, desenharemos um cenário geral do que isso significa, nos aprofundando em algumas áreas que
se tornaram críticas para a TI moderna.
Cenário geral
Seguindo a nossa definição anterior de ambiente de aplicações como sendo o conjunto de recursos para
desenvolvimento e entrega de aplicações na organização inteira, a Figura 5 exemplifica uma visão geral do que
seria um ambiente de aplicações de grande porte, que abrange a organização inteira.
podemos começar
a desenvolver a Funcionalidade
solução. Essa agilidade
Gerenciamento
Ferramentas do
desenvolvedor
Automação
é algo que jamais
Aplicações personalizadas Sistemas integrados Automação de processos
experimentamos."
Tobias Mohr On-premise Nuvem privada Nuvem pública
Chefe de tecnologia e infraestrutura,
Aviatar, Lufthansa Technik17
Nesta seção, nosso foco está nos componentes de um ambiente de aplicações e como eles são conectados.
Cada uma das camadas a seguir podem ser consideradas perpendiculares aos princípios estratégicos
discutidos na Parte II. Os princípios estratégicos permanecem os mesmos em todas as camadas, e guiam como
elas devem ser projetadas. O ambiente de aplicações é dividido da seguinte maneira:
Cada área será abordada em seções próprias a seguir. Além disso, um fator crucial para o sucesso na
implementação dessas estratégias e arquiteturas é pensar nos processos humanos e padrões de arquitetura.
A cultura, os comportamentos e as dinâmicas das equipes que mantêm e provocam a evolução do sistema
também são aspectos importantes para ser bem-sucedido nesses objetivos. Adicionalmente, são esses os
elementos que capturam a memória organizacional e as abordagens que solucionam os problemas. Todos
esses fatores são discutidos na Parte IV e analisados detalhadamente no livro The Open Organization.18
17 Caso de sucesso da Red Hat, "Lufthansa Technik cria plataforma de nuvem para otimizar as operações do setor
aéreo." https://www.redhat.com/pt-br/success-stories/lufthansa-technik
1 8 Whitehurst, Jim, The Open Organization. Boston, Massachusetts: Harvard Business Review Press, 2015.
Ambientes de nuvem híbrida distribuídos por vários locais on-premise, exigem atualmente ainda mais recursos:
• Consistência da experiência entre locais para garantir que as mesmas versões de sistema operacional,
Os cinco níveis da
hierarquia de níveis de patch e outros elementos do sistema estarão disponíveis no maior número possível de ambientes.
terraformação da TI:
• Gerenciamento unificado entre sistemas on-premise, virtualizados e de nuvem pública ou privada para
facilitar o monitoramento de toda a infraestrutura de TI da mesma maneira.
1) Plataformas -> solo e
nutrientes • Controle sobre a segurança e a conformidade, o que continua sendo crítico até mesmo diante da
proliferação de implantações de datacenters e nuvens diferentes.
2) Aplicações -> vida atômica, • Alta estabilidade, agilidade e disponibilidade. Geralmente, o objetivo da expansão da infraestrutura
plantas e pequenos animais é aumentar a capacidade de failover e redundância. No entanto, é importante adotar uma abordagem
consistente para essas implantações, ou ambientes de fora poderão prejudicar a confiabilidade.
3) Sistema de integração/ É possível encontrar uma análise aprofundada do sistema operacional da Red Hat e da abordagem de nuvem
mensageria -> comunidades privada para nuvem híbrida, com muitos exemplos reais de clientes, no e-book Estratégia de Nuvem Híbrida da
Red Hat. No entanto, os últimos anos foram marcados pela inclusão de uma nova tecnologia para criação de
4) Processos -> civilização plataformas consistentes entre vários ambientes de nuvem: os containers e as plataformas de containers.
5) Ferramentas do
desenvolvedor, DevOps e
gerenciamento -> processos de
ecossistema e de pesos e
contrapesos
1 9 Bach, Rachel. Heaven’s Queen (Livro 3 da série Paradox). Orbit, 22 de abril de 2014.
• Permite que containers empacotados sejam executados em qualquer ambiente de nuvem híbrida sem
modificação.
• Permite que as equipes de operações vejam as cargas de trabalho em seus vários clusters de containers.
A plataforma de containers cria uma camada de abstração sobre os recursos subjacentes, tornando-os
reutilizáveis e consistentes em todos os ambientes. O Red Hat OpenShift® Container Platform, uma solução
baseada em Kubernetes, oferece todas essas funcionalidades e muito mais. A combinação de locais na
nuvem híbrida de qualquer cliente pode agora incluir ofertas hospedadas nas três principais nuvens públicas:
Amazon Web Services (AWS), Google Cloud Platform e Microsoft Azure. Veja mais informações sobre o uso de
containers em nuvens híbridas no e-book Containers em Nuvem da Red Hat.
• Uma plataforma voltada ao máximo para o autosserviço possibilita que diferentes equipes acessem
os recursos e serviços de que precisam, sem abrir mão de um modelo de segurança rigoroso e consistente.
Permitir que as equipes de desenvolvimento sejam capazes de autoprovisionar recursos virtuais é essencial
para ter mais agilidade. Entretanto, o autoprovisionamento precisa ser apoiado por controles que garantem
a segurança do sistema.
enquanto outras
regridem. Com apenas
Figura 6. Execução do código personalizado em contextos diferentes por toda a empresa
um clique, podemos
fazer essas mudanças
À medida que a adesão às tecnologias nativas em nuvem aumenta, a infraestrutura de containers, agregada
automaticamente em aos ambientes de execução de linguagens, oferece a combinação mais flexível para a inovação. Conforme mais
questão de minutos, organizações adotam as tecnologias de containers, mais aumenta a probabilidade dessa combinação se tornar
o padrão de implantação dominante, com grande parte da capacidade de orquestração dos servidores de
em vez de dias." aplicações anteriores sendo transferida para a camada de gerenciamento de containers.
Ivan Torreblanca
Para a maioria das organizações, essa transação levará tempo e resultará, provavelmente, em uma mistura de
CIO, Leshop.ch20
cenários de hospedagem de aplicações, incluindo todas as abordagens mostradas na Figura 6.
Os paradigmas a seguir surgiram no desenvolvimento de aplicações e são considerados pela maioria das
organizações de grande porte:
• Embora o Java e o Javascript continuem a dominar o mundo corporativo no que diz respeito à
implementação de códigos personalizados, o número de linguagens em uso segue crescendo a cada dia.
Um relatório recente da Cloud Foundry constatou 25 linguagens em uso, muitas delas com percentuais de
utilização baixos, de apenas um dígito. 21
• A forte integração e a inclusão de serviços complementares de mensageria e data grid em memória estão
se tornando elementos importantes no ambiente para garantir a eficiência dos projetos que usam código
personalizado.
• A programação reativa está ganhando uma força significativa conforme aumenta a necessidade por
aplicações personalizadas de rápido processamento. Kits de ferramentas, como o Eclipse Vert.x, estão
sendo adotados rapidamente.
• Soluções de função como serviço (FaaS), inicialmente popularizadas pela abordagem Lambda serverless
da AWS, mas que agora possuem uma abordagem de computação mais generalizada, permitem que os
programadores não se preocupem em provisionar antecipadamente a capacidade computacional. Em vez
disso, é possível implantar e executar elementos individuais do código (funções) de maneira simples quando
os eventos certos ocorrem. As soluções de FaaS estão agora disponíveis nas principais nuvens públicas
e podem ser provisionadas (normalmente em uma plataforma de containers) por equipes de operações
on-premise para suas próprias equipes de desenvolvedores.
20 Caso de sucesso da Red Hat, “A LeShop.ch apoia a cultura da inovação com uma solução ágil e escalável." https://
www.redhat.com/pt-br/success-stories/leshop.ch
21 Cloud Foundry, "These Are the Top Languages for Enterprise Application Development". Agosto de 2018, www.
cloudfoundry.org/wp-content/uploads/Developer-Language-Report_FINAL.pdf.
• Uma ampla expansão dos ambientes de execução de classe corporativa disponíveis para o uso de
código personalizado. O pacote de ambiente de execução completos da Red Hat agora incluem o JBoss®
Enterprise Application Platform, o Node.js, o MicroProfile, o Spring Boot e outros. Esse pacote oferece
grande flexibilidade para desenvolvedores escolherem as ferramentas de sua preferência, enquanto os
CIOs podem continuar a minimizar os riscos em todo o espectro do código personalizado das organizações.
• A inclusão de serviços complementares de mensageria e data grid em memória, com o broker do Red Hat
AMQ e o Red Hat Data Grid.
• Forte integração com o Kubernetes e o Red Hat OpenShift Container Platform, possibilitando uma
separação limpa dos recursos de implantação de nível inferior que tradicionalmente são processados por
um servidor de aplicações. Agora, esses recursos podem ser processados na plataforma de containers por
meio dos serviços de suporte de runtime baseados em código nos pacotes de runtime.
• Por fim, nos ambientes nativos em nuvem, a velocidade de execução é um fator crítico. As aplicações
que as equipes querem usar em nuvem, em containers ou até mesmo em ambientes serverless devem ser
inicializadas e encerradas em uma questão de microssegundos: elas precisam escalar a zero quando não
são necessárias, mas devem estar disponíveis quase que instantaneamente quando invocadas. A tecnologia
Quarkus da Red Hat agora proporciona essa velocidade e agilidade para linguagens baseadas em Java
virtual machine (JVM).
• A autonomia com consistência permite o uso de linguagens e abordagens diferentes em todas as áreas da
organização.
• A forte integração com DevOps e ferramentas do desenvolvedor é importante para a produtividade das
equipes de desenvolvimento. A automação de processos e sistemas de pesos e contrapesos padrões
possibilita que um volume maior de código seja escrito, testado e implantado com eficácia.
• Estabelecer uma estratégia de segurança abrangente garante que, do sistema operacional até a
virtualização; da camada de container até o tempo de execução do código, todos os sistemas sejam
atualizados de maneira abrangente utilizando distribuições automatizadas de fornecedores de confiança.
Com os ambientes de aplicação agora abrangendo vários datacenters e nuvens, a integração passou a
ser um elemento crítico, mas eles também precisam se adaptar aos requisitos atuais. Embora os padrões
de integração tradicionais, como as implantações de Enterprise Service Bus (ESB), tenham ajudado as
organizações a avançarem muito, eles não são suficientes para responder aos desafios da nuvem híbrida.
Dentre os diversos desafios que a tecnologia de integração precisa solucionar, podemos citar:
• A crescente importância dos dados. Assim como nas aplicações voltadas a clientes, as integrações
estão no centro da tendência de coleta e análise de dados em tempo real e larga escala. Além disso, a
proliferação de dispositivos de Internet das Coisas (IoT) exige novas maneiras para gerenciar o grande
volume de informações geradas. É necessário que os dados sejam processados, armazenados e, muitas
vezes, replicados com precisão para que os sistemas modernos operem de maneira eficaz.
Para lidar com essas mudanças, as próprias tecnologias de integração estão evoluindo. Ao serem combinadas
com recursos nativos em nuvem, as tecnologias de integração no portfólio da Red Hat:
• Podem ser implantadas de maneira totalmente distribuída, com integrações individuais sempre que
necessário.
• Podem ser usadas sob demanda, com inicialização e encerramento instantâneos por meio do Knative, uma
tecnologia baseada em containers.
• Permitem aplicar e acessar práticas normais de DevOps por meio de uma interface gráfica do tipo "drag and
drop" uma vez que todas as integrações são manipuláveis como código. Este recurso permite que tantos os
indivíduos altamente qualificados quanto aqueles com menos habilidades técnicas possam colaborar nas
mesmas integrações.
• Oferecem uma variedade ainda maior de recursos de mensageria, dos sistemas de mensagens tradicionais
em estilo AMQ ao Apache Kafka.
• Tecnologias dos sistemas de mensageria, API e integração podem ser implantadas em nuvens diferentes e
fornecer a comunicação necessária (no nível da aplicação) para o funcionamento e operação das aplicações
de usuário final.
22 Caso de sucesso da Red Hat, "A TransUnion modernizou a TI para proporcionar uma melhor experiência aos clientes",
www.redhat.com/pt-br/success-stories/transunion
23 Fleming, Maureen. "Worldwide Integration and API Management Software Forecast, 2019–2023", IDC, junho de
2019, https://www.idc.com/getdoc.jsp?containerId=US45126319.
aumentam, mas as • Solucionar questões estratégicas, como: definição de práticas recomendadas para coleta de dados
modificados, virtualização de dados federados, sistema de mensageria e transformação de dados em todas
devoluções também
as integrações de nuvem e datacenter. Como esses recursos serão conectados à camada de plataforma e
crescem durante fornecerão um serviço ininterrupto em todos os locais?
nosso período mais Encontre informações detalhadas sobre a estratégia de integração em ambientes nativos em nuvem e de
movimentado. Usando nuvem híbrida no e-book Integração Ágil da Red Hat.
o OpenShift, podemos Aplicações decorrentes da automação de processos
escalar de forma
Quase todos os processos executados por uma organização precisam de um software. Muitos desses
flexível durante esses processos envolvem interação humana (funcionários, parceiros e clientes) e tomada de decisões complexas
momentos específicos com base em dados e situações.
de pico. Temos até o O terceiro tipo de aplicação que está revolucionando a era da nuvem híbrida é a aplicação orientada a
processos.
potencial, se necessário,
para escalar para a Há uma clara e crescente necessidade por aplicações de gerenciamento de processos de negócios (BPM)
e automação inteligente de tomada de decisões; que são aplicáveis a tudo, desde sistemas baseados em
nuvem pública." regras até automação de processos robóticos. À medida que a infraestrutura da TI se expande pela nuvem
Carla Maier híbrida e passa a influenciar o trabalho de toda a organização, surgem as seguintes tendências para aplicações
Gerente sênior, Tecnologia e Plataformas orientadas a processos:
de Nuvem, UPS 24
• A adoção de padrões de microsserviços, APIs e integrações cria a oportunidade de conectar
processos com novos sistemas por toda a empresa, além de criar fluxos de trabalho mais avançados e
aplicar a automação a sistemas ou conjuntos de dados que antes não eram acessíveis.
• Soluções que adotam configuração, lógica no nível dos negócios e regras estão se tornando
cada vez mais importantes. Embora aplicações personalizadas ofereçam muitas das funcionalidades
inovadoras disponíveis no ambiente, a capacidade de usar essa lógica personalizada de maneira a refletir as
mudanças nas necessidades empresariais é um fator crítico. As regras configuráveis podem executar ações
como invocações de FaaS na nuvem e em containers.
24 Estudo de caso da Red Hat , "A UPS simplifica o rastreamento e a entrega de encomendas com DevOps e Red Hat",
www.redhat.com/pt-br/resources/ups-customer-case-study
• Permitir que cada vez mais funcionários, parceiros e clientes participem da criação e da
configuração das aplicações orientadas a processos. Esse tipo de aplicação cria a oportunidade de
descentralizar a autoridade quando os especialistas técnicos podem fornecer um ambiente estruturado e
seguro. Assim, os especialistas de cada área de domínio podem controlar as aplicações de acordo com as
próprias necessidades.
2 5 Relatório de analistas da RTInsights "Criação de uma plataforma de decisões clínicas com o Red Hat Decision
Manager", 2018, www.redhat.com/pt-br/resources/building-a-clinical-decision-engine-rtinsights-article.
Com esses atributos, a tecnologia nativa em nuvem se torna uma alternativa atraente para enfrentar muitos
dos desafios que surgem à medida que as organizações avançam no caminho para a adoção de várias nuvens e
datacenters como infraestrutura.
26 Caso de sucesso da Red Hat, "BBVA transforma a experiência do cliente com uma plataforma digital nativa em
nuvem." https://www.redhat.com/pt-br/success-stories/bbva
27 Primeira definição oficial do termo "nativo em nuvem", estabelecida pela Cloud Native Computing Foundation
(CNCF) https://github.com/cncf/toc/blob/master/DEFINITION.md#portugu%C3%AAs-brasileiro
• A noção de infraestrutura como código, que tem como origem o DevOps nativo em nuvem, está se tornando
crítica à medida que as infraestruturas e as aplicações passam a abranger vários datacenters e nuvens. Sem
a capacidade de automatizar completamente as implantações em vários locais, os ambientes de nuvem
híbrida tornam-se mais difíceis de gerenciar ao longo do tempo.
• Essa necessidade de automação também se estende ao código das aplicações. Com as aplicações
estreitamente integradas em vários serviços e APIs em diversos locais, é necessário orquestrar
cuidadosamente as implantações para evitar qualquer tempo de inatividade.
• Quase todos os ambientes de TI são formados por uma combinação de ambientes de plataforma que pode
incluir máquinas implantadas em bare-metal e que executam vários sistemas operacionais, servidores
físicos virtualizados, além de uma combinação entre nuvem privada, nuvem pública e containers. A
combinação desses diferentes níveis de plataforma significa que qualquer abordagem holística precisa
conectar práticas de gerenciamento entre plataformas.
• A observabilidade e o monitoramento se tornam mais difíceis de manter e ainda mais cruciais em ambientes
de nuvem híbrida. Muitas vezes, o código executado afeta várias localidades e, portanto, precisa ser
monitorado em cada invocação. É necessário correlacionar as falhas em partes distintas do sistema para
determinar o que deu errado.
Cada uma dessas tendências produz novos desafios. No entanto, as ferramentas atuais estão evoluindo
rapidamente para contornar essas dificuldades. Cada desafio resulta de uma crescente descentralização da
infraestrutura entre diferentes locais, tipos de aplicação e tecnologias. Parte da resposta está em padronizar
os elementos das implantações. Uma segunda parte está na implantação de ferramentas e padrões de
arquitetura que explicitamente lidam com a natureza distribuída do sistema. Ambas ações são necessárias
para o sucesso.
• Gerenciamento de vários clusters no Red Hat OpenShift, bem como uma variedade de ferramentas para
integrar pipelines de integração e entrega contínuas (CI/CD) com implantações de containers para criar um
poderoso ambiente de nuvem híbrida.
• A solução de monitoramento preditivo da Red Hat, o Red Hat Insights, está agora inclusa em todas as
subscrições do Red Hat Enterprise Linux®. Essa solução fornece segurança, disponibilidade, estabilidade e
desempenho integrados em várias plataformas Red Hat para aumentar a visibilidade na nuvem híbrida.
28 Comunicado da Red Hat à imprensa. "A Red Hat unifica a automação por todo o gerenciamento de nuvem híbrida
com a versão mais recente do Red Hat Ansible Tower", 9 de janeiro de 2019, https://www.ansible.com/press-center/
press-releases/red-hat-ansible-tower-3-4.
• Automação: sem o gerenciamento cuidadoso dos processos e das próprias automações, uma
implementação de DevOps bem-sucedida se torna rapidamente um sistema rígido com resultados
reduzidos.
4,00
Concluída
Em andamento
Estado de preparação
Não iniciada
Provavelmente
nunca
2,50
1,00
1,0 2,5 4,0
Valor
Esta seção aborda a jornada dos ambientes de aplicações em nuvem híbrida e nativos em nuvem, por meio de
uma sequência das áreas estratégicas mencionadas na Parte III (veja a Figura 8).
É importante observar que não se trata de estágios para a adoção de tecnologia. Talvez algumas tecnologias
nunca sejam adotadas em algumas (ou muitas) partes de uma determinada organização. Os estágios são um
reflexo das políticas, dos recursos e dos processos de tomada de decisões.
Além disso, não é realista esperar que organizações de grande porte e com uma TI complexa promovam o
avanço de todos os sistemas, processos e direções estratégicas de uma única vez ou de maneira sincronizada
em todas as áreas da empresa.
Visualizar esses elementos como uma sequência tem a finalidade de destacar a ordem lógica das melhorias
e, ainda mais importante, enfatizar que o ambiente de aplicações como todo é visto como uma única
entidade. Melhorias podem ser realizadas em qualquer unidade ou estágio, mas é bom levar em consideração
como essas mudanças afetam o ambiente inteiro: elas serão propagadas ou permanecerão segmentadas e
desaparecerão?
Burocracia fragmentada
Burocracia fragmentada parece ser uma descrição cruel para uma organização. No entanto, considerando
a complexidade dos sistemas de TI atuais, é dessa forma que a TI de muitas organizações funciona. As
regras, processos e tecnologias escolhidas pelas gerações anteriores são o que criaram os sistemas das
organizações de hoje. Essas decisões estão refletidas na TI. Também é improvável que qualquer conjunto de
mudanças, independentemente de quão grande ou persistente, torne a organização e seus sistemas perfeitos.
A perfeição em um momento se torna obsoleta assim que ocorre a próxima mudança. Como o Gartner29
constata, gerenciar a dívida técnica não é uma tarefa fácil. Na verdade, os departamentos de TI não apenas
implementam uma aplicação, eles estão sempre implementando um ecossistema complexo com um potencial
de vida útil de várias décadas. A funcionalidade é momentânea, mas a estrutura é permanente.
2 9 Kyte, Andy. "Gartner Keynote: Everything You Always Wanted to Know About Technical Debt (but Were Afraid to
Ask)", Gartner Application Strategies & Solutions Summit, 27 a 29 de novembro de 2018. https://emtevr.gcom.
cloud/events/apn32/sessions/apn32%20-%20k4%20-%20gartner%20keynote%20everything%20you%20
always%20wanted%20to%20k%20-%20373224_47073.pdf.
• A estrutura atual e o ambiente de aplicações derivado dela são bons o suficiente para a organização?
• Quais são as direções e mecanismos de mudança mais importantes para promover a melhoria do todo?
Aprimorar o ambiente de aplicações que faz com que a organização funcione talvez demande a adoção de
uma série de tecnologias. Entretanto, acima de tudo, requer que sejam tomadas decisões estratégicas sobre
as áreas de mudança que serão priorizadas. As quatro áreas a seguir podem ser vistas como passos em uma
progressão:
• Mentalidade voltada a soluções. Ao adotar uma mentalidade voltada a soluções e cultivá-la para
reuso em qualquer sistema, as equipes podem atuar com mais autonomia. Também é um pré-requisito
para as que as equipes na organização confiem e dependam de sistemas executados por outros. Na
verdade, esse foco também é uma característica da arquitetura de microsserviços, que defende a ideia
de que uma determinada equipe seja a responsável por uma solução durante toda a vida útil dela - da fase
de desenvolvimento até a manutenção em produção - resultando em uma conexão mais estreita com os
recursos corporativos e o modo como eles são aprimorados. Uma mentalidade voltada a soluções ajuda
a guiar o diálogo sobre quais interfaces e processos são realmente importantes. Onde estão os limites de
cada domínio e quais conjuntos de APIs e funcionalidades precisam ser apoiados por compromissos sólidos?
• Serviços em qualquer ambiente. Enfatize a necessidade de pensar além das implantações iniciais
e planejar para garantir a funcionalidade ininterrupta em vários locais. Esse planejamento (ou a
implementação) pode gerar alguns custos, mas eles normalmente são menores do que os custos de
lidar com soluções completamente diferentes para o mesmo problema. Esta área também promove o
autosserviço, quando possível, para que desenvolvedores e usuários, tenham a capacidade de provisionar
recursos sempre que necessário. Há ganhos significativos em eficiência e produtividade quando uma
infraestrutura é operada dessa maneira. Esses ganhos serão ainda maiores quando o uso das tecnologias
serverless e de containers se tornar mais comum.
• Automação como código. Aumentar o nível da automação em todo o ambiente de TI gera um maior
retorno do investimento, mas apenas se essa automação for mantida explicitamente da mesma maneira
que as aplicações e o código. Sem esse gerenciamento explícito, a automação de hoje pode se tornar
o componente legado inadequado de amanhã. Uma mudança de mentalidade semelhante se aplica a
integrações, regras de tomada de decisão e código de automação de processos. É isso que permite criar ou
dá a base para a funcionalidade das aplicações. Em muitos casos, há mais código de integração presente em
um sistema do que lógica personalizada. Considerar esses sistemas como código de forma explícita facilita
o gerenciamento das implantações.
Geralmente, ambos os lados têm opiniões fortes e pontos válidos. Embora fazer perguntas como "Por que
estamos implementando B, se A está funcionando?" indique que haja talvez alguma ligação sentimental com A,
pode também ser um sinal de que B talvez não solucione os problemas subjacentes.
Um exercício útil realizado pela equipe de TI da Red Hat foi mapear as aplicações de acordo com os recursos e
grupos conforme a natureza estratégica de cada, como mostrado na Figura 9.
Diferenciar
Recursos corporativos Principal
ou inovar
Impulsionam
Impulsionam
On-
premise SaaS Nuvem híbrida
Infraestrutura e plataformas
Padrões abertos — integração aberta
Figura 9. A classificação das aplicações em pontos de paridade e de diferenciação ajuda as equipes a determinar
onde melhor empregar os esforços
A equipe também determinou quais aplicações seriam migradas e quando reforçar a confiança nos novos
processos. Cada mudança de aplicações e processos pode ser diferente, mas a equipe conquista a confiança
na tomada e execução das decisões ao longo do caminho.
Por que: inovação Por que: criado e desenvolvido pela Por que: disponibilidade corporativa
equipe de Product and Technology (PnT)
Quem: qualquer colaborador Quem: sistemas críticos para
O que: cluster único, nuvem pública Quem: principalmente membros os negócios
da equipe de PnT
Volume: + de 1.000 aplicações O que: 3 clusters em locais diferentes
O que: cluster único no datacenter Volume: + de 125 aplicações, incluindo
Volume: 689 projetos em 34.530 containers aquelas voltadas aos clientes
Figura 10. Plataformas paralelas usadas na adoção da nuvem híbrida pela TI da Red Hat
Uma estratégia final que está sendo empregada na Red Hat é a implementação interna de plataformas para
finalidades diferentes, em oposição a uma única plataforma que atenda a todas as necessidades da TI. Quando
a TI da Red Hat adotou a nuvem híbrida, foram implementadas três plataformas paralelas. Além da plataforma
gerenciada, que é crítica para os negócios, a plataforma de aumento de cargas dá suporte aos processos
internos da Red Hat Product and Technology e a plataforma open source permite que qualquer colaborador da
empresa inteira crie novas aplicações.
Ao implementar ambientes para uso interno da Red Hat Product and Technology, a empresa foi a primeira
a adotar suas próprias versões inovadoras. E ao proporcionar aos colaboradores a capacidade de criar
aplicações, a empresa ganhou visibilidade e recebeu feedback sobre os recursos disponíveis de TI.
Embora muitos colaboradores da Red Hat sejam especializados em tecnologia, a empresa também conta com
outros que não são desta área. Com os novos sistemas de TI, os usuários que não são de áreas técnicas podem
inovar em seus próprios domínios.
Para aprender mais sobre o framework organizacional da Red Hat para a adoção de mudanças consulte o livro
The Open Organization.
Há uma metodologia?
Não há uma metodologia formal neste e-book porque é muito difícil discutir qualquer assunto relacionado a
TI em larga escala dessa maneira. O nosso objetivo é reunir algumas das principais tendências estratégicas
relacionadas à maneira como as tecnologias de nuvem híbrida e nativas em nuvem estão impactando as
organizações.
Pensar nos sistemas de TI de uma organização como um ambiente de aplicações único, tendo algumas dessas
questões estratégicas em mente evidencia diversos pontos que o leitor deve considerar:
• Como disseminar as práticas recomendadas por uma área ou pela organização inteira?
• Como todos esses conceitos têm relação com a produtividade dos desenvolvedores e a estabilidade das
operações?
Para uma análise mais detalhada desses tópicos, ou uma avaliação das áreas de maior impacto, consulte a
próxima seção com os programas oferecidos pelas equipes Red Hat Services.
Para obter sucesso nesse cenário, as organizações precisam ter um ambiente de aplicações produtivo, robusto
e em perfeitas condições para fornecer a base para as inovações. Esse ambiente de aplicações deve abranger
vários datacenters e nuvens, ao mesmo tempo em que se integre às mais recentes e produtivas tecnologias
nativas em nuvem
Embora nem todos os insights se apliquem a todo tipo de cenário, esperamos que muitas das questões e
considerações aqui incluídas sejam úteis na sua jornada de TI.
Saiba mais sobre como a Red Hat pode ajudar você na jornada para o desenvolvimento de aplicações de
nuvem híbrida e nativas em nuvem:
• Veja como a Red Hat Consulting pode ajudar: conheça práticas recomendadas e receba orientações sobre
planejamento em uma discovery session realizada por nossa equipe de consultoria.
• Confira nosso blog Services Speak para encontrar insights, dicas e muito mais.
• Qual é o seu nível de maturidade em DevOps? Sua empresa está pronta para a jornada da tecnologia nativa
em nuvem? Faça a avaliação Ready To Innovate e descubra.
br.redhat.com Copyright © 2019 Red Hat, Inc. Red Hat, Red Hat Enterprise Linux, o logotipo Red Hat e JBoss são marcas registradas da Red Hat, Inc.
#F19145_0919 ou suas subsidiárias, nos Estados Unidos da América e em outros países. Linux® é uma marca registrada da Linus Torvalds nos Estados
Unidos e em outros países.