0% нашли этот документ полезным (0 голосов)
61 просмотров37 страниц

Curso Redhat

Документ рассматривает вопросы создания современных облачных сред для приложений с упором на надежность, производительность и гибкость. Он содержит информацию о вызовах современной ИТ, стратегических подходах и архитектурах, обеспечивающих успех.

Загружено:

Denis Mazeu
Авторское право
© © All Rights Reserved
Мы серьезно относимся к защите прав на контент. Если вы подозреваете, что это ваш контент, заявите об этом здесь.
Доступные форматы
Скачать в формате PDF, TXT или читать онлайн в Scribd
0% нашли этот документ полезным (0 голосов)
61 просмотров37 страниц

Curso Redhat

Документ рассматривает вопросы создания современных облачных сред для приложений с упором на надежность, производительность и гибкость. Он содержит информацию о вызовах современной ИТ, стратегических подходах и архитектурах, обеспечивающих успех.

Загружено:

Denis Mazeu
Авторское право
© © All Rights Reserved
Мы серьезно относимся к защите прав на контент. Если вы подозреваете, что это ваш контент, заявите об этом здесь.
Доступные форматы
Скачать в формате PDF, TXT или читать онлайн в Scribd
Вы находитесь на странице: 1/ 37

E-book

Tecnologia Nativa em Nuvem


e a Nuvem Híbrida:
Um Guia Estratégico
Criando ambientes de aplicações com foco
em confiabilidade, produtividade e mudança

br.redhat.com
Sumário

Introdução��������������������������������������������������������������������������������������������������������������������������������������������������� 2

Parte I: desafios da TI moderna������������������������������������������������������������������������������������������������������������ 3


A transformação da TI da Red Hat�����������������������������������������������������������������������������������������������������������������������������������������������������3
Bem-vindo à TI moderna�����������������������������������������������������������������������������������������������������������������������������������������������������������������������4
Criação e evolução de um ambiente moderno de aplicações em nuvem híbrida����������������������������������������������������������5

Parte II: manual estratégico�������������������������������������������������������������������������������������������������������������������6


Avaliação da situação e objetivos������������������������������������������������������������������������������������������������������������������������������������������������������� 7
Considerações sobre políticas e diretrizes�������������������������������������������������������������������������������������������������������������������������������������8
Autoridade descentralizada������������������������������������������������������������������������������������������������������������������������������������������������������������������9
Recursos universais��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������10
(Algumas) restrições = Liberdade����������������������������������������������������������������������������������������������������������������������������������������������������� 11
Autosserviço�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������12
Adoção da mentalidade voltada a soluções�������������������������������������������������������������������������������������������������������������������������������� 13
Tendência à antifragilidade����������������������������������������������������������������������������������������������������������������������������������������������������������������� 14
Automação como código��������������������������������������������������������������������������������������������������������������������������������������������������������������������� 15
Segurança reforçada����������������������������������������������������������������������������������������������������������������������������������������������������������������������������� 15
Unificação das áreas de políticas�����������������������������������������������������������������������������������������������������������������������������������������������������16
Da política à ação������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ 18

Parte III: arquiteturas que levam ao sucesso��������������������������������������������������������������������������������� 20


Cenário geral��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������20
Plataforma e entrega���������������������������������������������������������������������������������������������������������������������������������������������������������������������������� 22
Aplicações de código personalizado���������������������������������������������������������������������������������������������������������������������������������������������� 23
Aplicações a partir da integração���������������������������������������������������������������������������������������������������������������������������������������������������� 25
Aplicações a partir da automação de processos���������������������������������������������������������������������������������������������������������������������� 27
Ferramentas do desenvolvedor, DevOps e gerenciamento������������������������������������������������������������������������������������������������29

Parte IV: a jornada do ambiente de aplicações�������������������������������������������������������������������������������31


Burocracia fragmentada��������������������������������������������������������������������������������������������������������������������������������������������������������������������� 32
Etapas para as tecnologias nativa em nuvem e de nuvem híbrida������������������������������������������������������������������������������������33
Loops de feedback e cultura�������������������������������������������������������������������������������������������������������������������������������������������������������������34
Há uma metodologia?�������������������������������������������������������������������������������������������������������������������������������������������������������������������������� 35

Parte V: conclusões e próximas etapas������������������������������������������������������������������������������������������� 36

facebook.com/redhatinc
@redhatbr
linkedin.com/company/red-hat-brasil

br.redhat.com E-book Tecnologia Nativa em Nuvem e a Nuvem Híbrida: Um Guia Estratégico 1


Introdução
Os sistemas de tecnologia da informação (TI) são o que mantêm as empresas modernas em funcionamento.
Eles impulsionam os sistemas internos e precisam fornecer funcionalidades cada vez melhores e mais
avançadas aos clientes, funcionários e parceiros. Frequentemente, os sistemas de TI são um diferencial
crítico de mercado. Ao mesmo tempo, a complexidade dos sistemas e a velocidade das mudanças
escalaram a um patamar inédito: as implantações geralmente abrangem vários locais em nuvem e on-
premise, uma ampla variedade de tecnologias de software é utilizada e as equipes responsáveis por esses
sistemas possuem habilidades diversas e variadas. Com o foco cada vez maior na transformação digital,
vemos que há vantagens corporativas na mudança. No entanto, isso geralmente não resolve a questão de
como agregar valor verdadeiro com o uso das novas tecnologias.
Essas pressões resultam em um conflito estrutural entre a confiabilidade e a produtividade do ambiente.
Por outro lado, é necessário manter os sistemas em funcionamento, em segurança e operacionalmente
previsíveis. As equipes de desenvolvimento e operações precisam ser capazes de desenvolver melhorias
nos sistemas rapidamente e entregar novas funcionalidades aos usuários, beneficiando assim toda a
organização com as melhorias.
Esse conflito entre confiabilidade e produtividade afeta muitas das escolhas tomadas, mas é ainda mais
problemático em vista da pressão atual para a realização de mudanças e melhorias rapidamente. As
equipes de TI encontram-se continuamente tendo que equilibrar mudanças de curto e longo prazo
no desenvolvimento e entrega de aplicações. Por exemplo: ter de escolher entre usar os sistemas e
infraestrutura existentes para desenvolver novas funcionalidades ou redesenhar os recursos para
desenvolvimento e entrega? O objetivo em longo prazo é continuar agregando valor ao ambiente de
aplicações utilizado pela empresa inteira e simultaneamente aprimorar o desenvolvimento e a entrega ágeis.
Gerenciar essas pressões é importante porque os sistemas de TI se tornaram altamente distribuídos
entre diferentes datacenters e nuvens públicas. A TI em nuvem híbrida é uma realidade para a maioria
das organizações. Além disso, uma infinidade de novas tecnologias de desenvolvimento nas áreas nativas
em nuvem e outras proporcionam novas oportunidades para aumentar a produtividade das equipes de
desenvolvimento.
Este e-book foi elaborado como um manual estratégico para que arquitetos e líderes de TI corporativa
tracem o melhor caminho para uma estratégia de TI moderna. Ele tem como foco a convergência de três
tendências:
1. A importância dos sistemas de TI para o sucesso de uma organização moderna.

2. A nuvem híbrida e a mudança para vários datacenters, plataformas e locais na nuvem.

3. As tecnologias de desenvolvimento de aplicações nativas em nuvem e como combiná-las com as


abordagens atuais para criar um sistema de TI robusto e produtivo.

O conteúdo aborda considerações de contexto, desafios estratégicos e observações gerais sobre


arquiteturas, com exemplos de estudo de caso.
Este e-book:
• Concentra-se em aspectos estratégicos e gerais das arquiteturas, especificamente em conceitos
universais aplicáveis a uma ampla variedade de contextos. Ele não traz considerações detalhadas sobre
as implantações. No entanto, ao longo do texto sugerimos alguns recursos para uma análise técnica mais
profunda.

• 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.

br.redhat.com E-book Tecnologia Nativa em Nuvem e a Nuvem Híbrida: Um Guia Estratégico 2


• Fornece recomendações de aplicabilidade técnica geral. Usa exemplos de tecnologias e clientes Red Hat®
" Assim como muitos de várias áreas. Acreditamos que as ferramentas da Red Hat são ideais para realizar esse trabalho. No
de nossos clientes, nós entanto, a maioria das abordagens discutidas neste e-book pode ser aplicada em outros ambientes
tecnológicos ou em combinação com as tecnologias de terceiros.
também enfrentamos
dilemas reais sobre Os e-books a seguir contêm conteúdo complementar: Como Ensinar um Elefante a Dançar, O Caminho
para a Adoção de Aplicações Nativas em Nuvem, Princípios do Design de Aplicações Baseadas em
como avançar e o que
Containers, além de muitos outros disponíveis no site redhat.com/pt-br.
fazer para estarmos
bem preparados Parte I: desafios da TI moderna
para o que vier Em meados de 2017, Mike Kelly, o recém-nomeado CIO da Red Hat, se encontrava em uma situação

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.

clientes acelerarem 3. Reduzir ainda mais os custos operacionais.

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.

1 Red Hat Open Innovation Labs, 2019. redhat.com/pt-br/services/consulting/open-innovation-labs.

br.redhat.com E-book Tecnologia Nativa em Nuvem e a Nuvem Híbrida: Um Guia Estratégico 3


O programa resultou em mudanças, algumas imediatas e outras graduais, em diversas áreas de processos
de TI da Red Hat:
• Abandono da infraestrutura distribuída em vários locais e de failover on-premise para adoção de uma
infraestrutura de nuvem híbrida, incluindo uma primeira e depois duas zonas de nuvem pública de
provedores diferentes.

• Migração para o modo de desenvolvimento de aplicações e implantação nativa em nuvem baseado em


containers, sendo estes a principal unidade de implantação.

• Mudanças significativas nas metodologias e tecnologias de desenvolvimento de software para permitir o


uso de linguagens de programação variadas, conforme as necessidades de cada aplicação.

• Economia de custos significativa devido ao uso de containers e à capacidade de migrar de uma


configuração de failover pai-filho para configurações ativo-ativo-ativo, o que aumenta a confiabilidade e
acelera as atualizações.

• Atualizações de diversas aplicações e adoção ampliada de interfaces de programação de aplicações (APIs)


e integração ágil para conectar essas aplicações.

Resultados visíveis e mensuráveis


No começo de 2019, o programa já havia superado os objetivos de transformação originais (veja a Figura 1).
A jornada ainda não acabou e a equipe continua a evoluir o ambiente de TI da Red Hat à medida que novos
desafios e oportunidades surgem. No entanto, a estratégia da equipe permitiu a criação de um ambiente
flexível e confiável para a empresa. A equipe constatou uma redução de 55% na utilização de recursos por
aplicação, melhorias em segurança e zero tempo de inatividade durante a implantação de nuvem híbrida
distribuída por vários locais. A automação do pipeline de entrega resultou em um time to market para
entrega de funcionalidades 40% mais rápido.2
Agora, membros da equipe de TI (e qualquer outra pessoa da empresa) têm à disposição inúmeras maneiras
de implantar novas aplicações e compartilhar o acesso com outra pessoas. A infraestrutura para sistemas de
produção é resiliente e de menor custo.

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.

Leia mais sobre a Transformação da TI da Red Hat.

Ganhe eficiência Melhore a segurança Aumente a resiliência Avance mais rápido


Redução de 55% na Recompilações semanais Desenvolvimento em Aceleração de 40% no
utilização de recursos automáticas de imagens nuvem híbrida ativa em time to market das
de infraestrutura por e plataformas e vários locais = zero melhorias em
aplicação recompilações tempo de inatividade funcionalidades com a
automáticas acionadas automação do pipeline
por CVE de entrega

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)

2 Dados internos da TI da Red Hat

br.redhat.com E-book Tecnologia Nativa em Nuvem e a Nuvem Híbrida: Um Guia Estratégico 4


Apesar de mais de Velocidade ou estabilidade?
50% das organizações Como demonstrado pela história da TI da Red Hat, as novas tecnologias podem gerar benefícios genuínos
que ajudam a encarar os desafios da TI moderna. No entanto, aplicá-las requer muito estudo e coordenação. A
terem implementado
questão sobre como navegar pelas mudanças em curto e longo prazo é ainda mais acentuada em organizações
práticas de DevOps de grande porte. Isso porque as equipes de desenvolvimento precisam ser rápidas para adotar as tecnologias
em algum nível3, novas e mais produtivas, enquanto as equipes de operações são responsáveis pela confiabilidade e
estabilidade das mesmas.
aquelas que as
adotaram com mais O movimento de DevOps tornou esse conflito visível entre grupos diferentes dentro da mesma organização.
Entretanto, mesmo com a adoção do DevOps, existem normalmente práticas variadas em todas as
comprometimento organizações. O desafio é agravado pela ampla gama de tendências de alta pressão que diversificam as
notaram ganhos de opções de tecnologia:

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.

Criação e evolução de um ambiente eficaz de aplicações em nuvem híbrida


Usamos o termo "ambiente de aplicações" para nos referir ao conjunto de recursos de uma organização
empregado no desenvolvimento e na entrega de aplicações. Essa visão ampla é deliberativa e fundamenta a
natureza holística do desafio da TI moderna. As aplicações legadas e novas precisam funcionar em conjunto.
As novas tecnologias devem agregar valor sem atrapalhar a confiabilidade, e os sistemas de TI devem estar
distribuídos por um número ainda maior de locais.

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

br.redhat.com E-book Tecnologia Nativa em Nuvem e a Nuvem Híbrida: Um Guia Estratégico 5


Valor para funcionários, parceiros e clientes

Aplicações e ambiente de aplicações

Data center 1 Data center 2 Nuvem pública 1 Nuvem pública 2

Figura 2. Os ambientes de aplicações viabilizam as aplicações que geram valor

• Confiabilidade e produtividade.

• Previsibilidade e capacidade de mudança.

• Alto desempenho e custo reduzido.

Com um planejamento estratégico deliberado e decisões focadas, é possível satisfazer muitas dessas
necessidades.

Parte II: manual estratégico


Há muitas abordagens diferentes de frameworks estratégicos. Para o propósito aqui abordado, adotamos
um framework simples em três etapas baseado no livro "Good Strategy Bad Strategy: The Difference and
Why It Matters" de Richard Rumelt.7 As três etapas fornecem uma ampa visão geral dos tipos de decisões
que formam uma estratégia em longo prazo. Várias equipes internas da Red Hat usam uma versão desse
framework para fins de planejamento.

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?).

2. Definição de políticas e diretrizes. Entenda os princípios e as regras de engajamento que determinam a


direção da estratégia, o que está ou não no escopo e as práticas gerais para a realização de certas tarefas.
Normalmente, políticas e diretrizes têm duração de médio prazo, sendo válidas por pelo menos um ano,
mas preferencialmente por um período de quatro a cinco anos.

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.

br.redhat.com E-book Tecnologia Nativa em Nuvem e a Nuvem Híbrida: Um Guia Estratégico 6


Na Parte II, discutimos as duas primeiras áreas dessa estrutura. A terceira área é detalhadamente abordada na
Parte III (Arquitetura) e na Parte IV (Por onde começar).

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.

Avaliação da situação e objetivos


Para entender e avaliar a situação do ambiente de TI da sua organização, é necessário levar vários fatores
em consideração, como por exemplo as políticas existentes, os funcionários e a utilização estimada. A
identificação dos aspectos mais críticos dependerá de cada organização. No entanto, em um nível de
abstração elevado, é importante considerar alguns elementos relacionados ao ambiente de aplicações em
geral.

Especificamente falando, é provável que todas as organizações tenham:

• Um conjunto de datacenters on-premise, infraestrutura hospedada por um ou mais serviços de


hospedagem privados e provedores de nuvem pública. Geralmente, as plataformas são distribuídas
entre regiões geográficas distintas por uma questão de failover ou proteção dos dados. Frequentemente,
as implantações regionais incluem um ou mais tipos de sistemas operacionais, sistemas de virtualização,
implantações em nuvem privada ou infraestrutura em containers.

Valor Funcionários Parceiros Clientes


• Várias nuvens

• 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

Figura 3. Visão simplificada do panorama de TI

• Um conjunto de aplicações e soluções de desenvolvimento de aplicações. Sob o ponto de vista


das aplicações, esse conjunto provavelmente inclui código personalizado escrito pela organização ou por
consultores de outras empresas, soluções prontas comercialmente disponíveis (commercial off-the-shelf
ou COTS), soluções de SaaS (Software as a Service) e uma variedade de outras aplicações. Além disso, as
organizações geralmente contam com servidores de aplicações ou outra tecnologia para hospedar código
personalizado, soluções de integração, sistema de mensageria e gerenciamento de processos para conectar
as aplicações.

• Ferramentas do desenvolvedor, processos, recursos de automação e gerenciamento que


administram diferentes partes da infraestrutura.

• 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.

br.redhat.com E-book Tecnologia Nativa em Nuvem e a Nuvem Híbrida: Um Guia Estratégico 7


Em termos de objetivos, vamos nos concentrar em duas áreas praticamente universais: confiabilidade e
produtividade.

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.

O que queremos dizer com "produtividade"

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.

Defina objetivos claros

Recomendamos refletir sobre três tipos de objetivos:

1. Resultados gerais: em que o ambiente de aplicações deve melhorar?

2. Padrões e antipadrões comuns: quais exemplos de aplicações ou equipes bem-sucedidas a empresa


deseja reproduzir? Quais falhas devem ser evitadas?

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?

Considerações sobre políticas e diretrizes


Depois de definir os objetivos, o desafio passa a ser criar os processos que ajudarão a atingi-los. De modo
geral, a melhor maneira de fazer isso é estabelecer um conjunto de políticas e diretrizes claras, bem informadas,
aceitas e seguidas pelos diferentes grupos da organizaçã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.

br.redhat.com E-book Tecnologia Nativa em Nuvem e a Nuvem Híbrida: Um Guia Estratégico 8


Antes de pensar sobre a implementação, há um outro nível em que a descentralização pode ter um papel
"Não tome mil decisões fundamental.
pequenas quando Sistemas descentralizados não são adequados a todas as partes de um sistema de TI, mas a descentralização
uma grande decisão em termos organizacionais é quase sempre benéfica. É mais importante estruturar os limites de
responsabilidade entre as equipes do que os limites do código. Essa abordagem pode parecer uma invocação
resolverá o problema.
direta da Lei de Conway; porém, é usada geralmente de maneira incorreta pelas organizações que se apressam
Uma boa 'diretriz em implementar modelos descentralizados para o desenvolvimento de aplicações, como o modelo de
política' canaliza a ação microsserviços.

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).

• Maior investimento individual nos resultados operacionais.

• Foco mais claro da supervisão sobre o que é realmente importante.

Os ganhos em produtividade incluem:

" 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.

br.redhat.com E-book Tecnologia Nativa em Nuvem e a Nuvem Híbrida: Um Guia Estratégico 9


• Determinados serviços estão disponíveis somente em áreas específicas de um sistema hospedado e
controlado por um grupo específico.

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.

A principal mudança política a se considerar é abandonar a típica abordagem minimalista de solucionar


desafios dentro de um único grupo, seguindo a lógica: "Precisávamos do recurso X, o selecionamos ou o
criamos no ambiente A, e se você precisar usá-lo, está lá." Para adotar uma abordagem que pensa da seguinte
maneira:

"Precisávamos do recurso X, portanto o selecionamos, ou criamos e o tornamos disponível no ambiente A. Se


necessário, ele poderá ser implantado com a mesma interface ou configuração nos ambientes B, C e D."

Em outras palavras: funcionalidade de uso único -> recursos universais.

Esse conceito parece simples e óbvio, mas organizações não se preocupam, nem gastam muito tempo
prevendo essas questões.

Como um princípio geral, os recursos em um ambiente de nuvem híbrida devem:

• 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.

Ao insistir na uniformidade de interfaces e na capacidade de recriar recursos exatamente da mesma maneira


em diferentes locais, torna-se muito mais fácil desenvolver configurações de failover. Fazer esse pré-trabalho
de confiabilidade à medida que os novos recursos são planejados e configurados produz um efeito significativo
nas etapas posteriores do processo.

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.

(Algumas) restrições = liberdade


O desejo de dar mais poder a um número maior de equipes na organização para que elas contribuam e operem
de maneira independente é um excelente princípio. Mas como isso afeta o sistema na prática? Os pontos
mais importantes se tornam evidentes em termos de controle versus liberdade: "Vocês nos dizem que somos
responsáveis e independentes, mas impõem uma quantidade enorme de restrições e tecnologias".

br.redhat.com E-book Tecnologia Nativa em Nuvem e a Nuvem Híbrida: Um Guia Estratégico 10


• Ser leniente em termos de imposição de restrições pode resultar em uma deficiência de regras e
experimentos que criam ambientes de aplicação frágeis.

• 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".

Um exemplo prático dessa abordagem é o código de trânsito. Por exemplo:

• 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:

• Impõe uma disciplina de modelos em áreas essenciais.

• Obriga a comunicação sobre essas escolhas de interface e tecnologia entre os grupos.

• Cria um conjunto de pontos fixos para medir desvios, mudanças e degradações.

Surpreendentemente, essa abordagem também pode resultar em aumento de produtividade 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.

br.redhat.com E-book Tecnologia Nativa em Nuvem e a Nuvem Híbrida: Um Guia Estratégico 11


Provisionamento de autosserviço
" O Developers’ Definir o objetivo de habilitar os recursos de TI em qualquer ambiente, independente da localização na nuvem
Exchange elimina em que possam ser inicialmente necessários (área dois da política), pode ser visto como uma dimensão
grande parte do horizontal para a criação de um ambiente uniforme e consistente. Entretanto, essa noção também tem uma
atrito causado dimensão vertical: uma visão de como os recursos são disponibilizados. Uma maneira simples de pensar sobre
essa abordagem é fazendo uma série de perguntas.
quando chamamos
especialistas do setor
privado para nos Se eu

ajudar a solucionar Tenho Posso


Se eu
autoprovisionar,
autoprovisionar,
as equipes de
Consigo
problemas em agências permissão
para fazer
Já vem
pré-instalado
solicitar a
alguém que
autoprovisionar
minhas
permissões e
operações terão
visibilidade para
com apenas que também
governamentais. instalações em
uma máquina?
na máquina? provisione
para mim?
alguns cliques?
acesso a dados
já virão possam
provisionar no
Qualquer configuradas?
futuro?

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

problema de acesso." precisam.

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:

• Reduzem o tempo necessário para as equipes de desenvolvimento provisionarem recursos, avaliarem


opções e serem produtivas.

• Aceleram as contribuições individuais pois removem a barreira inicial de uma configuração de sistema
trabalhosa e que geralmente requer conhecimento especializado.

Usar essa abordagem também traz benefícios claros quanto à confiabilidade:

• Menos erros e necessidade de depuração devido à automação da entrega de serviços, principalmente


durante a configuração inicial e nas configurações em que os erros podem resultar posteriormente em
problemas não detectados, interrompendo a execução em produção.

• 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.

br.redhat.com E-book Tecnologia Nativa em Nuvem e a Nuvem Híbrida: Um Guia Estratégico 12


Adoção da mentalidade voltada a soluções
Um princípio poderoso e muitas vezes mencionado na criação de sistemas de microsserviços12 e arquiteturas
baseadas em APIs13 é o da migração da "mentalidade voltada a projetos" para a "mentalidade voltada a
soluções". Mais especificamente, para as equipes responsáveis por sistemas de TI em operação contínua e
sob alta pressão, concluir uma lista de projetos provoca uma sensação ótima. Essa abordagem faz sentido
para problemas ou tarefas pontuais, mas não é ideal quando o elemento de sistema a ser entregue, do qual as
demais equipes dependerão, deve ser duradouro.

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.

Expressamos esse princípio de política como: projetos -> soluções.

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.

br.redhat.com E-book Tecnologia Nativa em Nuvem e a Nuvem Híbrida: Um Guia Estratégico 13


Tendência à antifragilidade
O princípio do "design para falhar" foi popularizado com o desenvolvimento nativo em nuvem. Com a
infraestrutura de containers, ficou muito mais fácil aumentar e reduzir a escala em modos de falha. A
noção de engenharia do caos inspirada na Netflix14 está sendo amplamente adotada, mesmo em setores
tradicionalmente conservadores, como o bancário.15 Essas abordagens são possivelmente uma visão geral
da noção de "antifragilidade" em TI, criada pelo escritor Nicolas Nassim Taleb. De forma simplificada, Taleb
descreve o conceito da seguinte maneira: "O antifrágil está para além do resiliente ou do robusto. O resiliente
resiste aos choques e permanece o mesmo. O antifrágil aperfeiçoa-se." 16

O princípio central da antifragilidade é aperfeiçoar os sistemas à medida que a pressão aumenta. De


preferência, isso deveria ocorrer de maneira automática (como se o sistema se autocorrigisse), mas as
melhorias diligentes e persistentes feitas por intervenção humana também seriam levadas em consideração.

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.

Sob a perspectiva da TI, a antifragilidade engloba duas funções distintas:

1. Observabilidade: capacidade de detectar falhas ou determinados comportamentos nocivos.

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?

Expressamos esse princípio de política como sistemas superprotegidos -> antifragilidade.

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.

br.redhat.com E-book Tecnologia Nativa em Nuvem e a Nuvem Híbrida: Um Guia Estratégico 14


Uma consideração final importante é que, embora a fragilidade e a antifragilidade sejam inicialmente
consideradas em termos de sistemas e operações, esses conceitos são igualmente relevantes para processos
de desenvolvimento, colaboração entre equipes e desenvolvimento de soluções. Qualquer processo que
contribua para avançar pode se beneficiar de algum progresso com a mudança de eixo para a antifragilidade.

Automação como código


A automação é reconhecidamente um componente importante nas duas áreas de políticas anteriores. No
entanto, ela é tão crítica que queremos nos concentrar nela explicitamente.

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:

br.redhat.com E-book Tecnologia Nativa em Nuvem e a Nuvem Híbrida: Um Guia Estratégico 15


1. Vertical. Desde o sistema operacional, passando pelas virtualizações, gerenciamento de containers,
ambientes de execução de código, até o gerenciamento de aplicações. Uma boa política de segurança
requer um software consistente e atualizado em todo o stack.

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.

Uma mudança a ser considerada é se as equipes de segurança e desenvolvimento deverão permanecer


separadas. Teoricamente, as equipes de desenvolvimento cumprem e seguem as diretrizes de segurança
nominalmente. Porém, geralmente consideraram as questões de segurança apenas no curto período antes da
implantação do código em produção. Por outro lado, uma abordagem mais distribuída e colaborativa pode ser
mais benéfica porque permite que:

• As equipes de desenvolvimento, operações e segurança (DevSecOps) colaborem com muito mais


proximidade.

• Proteções de segurança sejam incorporadas desde o início, ainda no estágio de prototipagem.

• O maior número possível de procedimentos de segurança sejam automatizados e estruturados nos


ambientes de desenvolvimento e operações, facilitando a tomada de decisões de segurança.

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.

Unificação das áreas de políticas


Nem todas as áreas de políticas terão igual importância para todas as organizações. Em algumas áreas,
escolhas diferentes podem fazer sentido. No entanto, as políticas abrangem amplamente as principais áreas
que geram benefícios significativos quando se observa os sistemas de TI holisticamente (veja a Tabela 1).

br.redhat.com E-book Tecnologia Nativa em Nuvem e a Nuvem Híbrida: Um Guia Estratégico 16


Tabela 1. Visão geral das recomendações

Recomendação Ganhos de confiabilidade Ganhos de produtividade

Autoridade descentralizada • Mais facilidade para aplicar as • Flexibilidade para aproveitar


práticas recomendadas ao máximo o contexto e
conhecimento locais
• Controle e supervisão dos
principais itens • Maior senso de autonomia e
responsabilidade
• Foco nas questões mais
importantes

Recursos universais • Disponíveis a partir de vários • Convenção acima da


locais (failover incorporado) configuração (tudo funciona
da mesma maneira em todos os
• Uniformidade na execução
ambientes)
• Velocidade dos serviços
• Habilidades transferíveis

Restrições = Liberdade • Disciplina na criação e uso de • Interfaces fixas nos limites


modelos que permitem mudanças mais
radicais nos domínios (por
• Comunicação explícita sobre
exemplo, Polyglot)
interfaces
• Menos desperdício de tempo
• Pontos de referência fixos para
quando todos os grupos
medir desvios, mudanças e
concordam antecipadamente
degradações
sobre os padrões de interação

Autosserviço • Automação de entrega de • Configuração acelerada


serviços e aumento ou redução
• Usuários podem usar alguns
da escala para evitar erros
serviços mesmo sem possuir
• Maior disponibilidade dos conhecimento técnico
serviços especializado

• 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

• Ciclos previsíveis de upgrades, • Sem a necessidade de recriar


downgrades, descontinuações, localmente
etc.
• Mais eficiência no uso interno e
externo da mesma solução

br.redhat.com E-book Tecnologia Nativa em Nuvem e a Nuvem Híbrida: Um Guia Estratégico 17


Recomendação Ganhos de confiabilidade Ganhos de produtividade

Tendência à antifragilidade • Grandes melhorias na • Menos preocupações com


confiabilidade (aprender com falhas
todas as falhas e correções)
• Ciclos de experimentação mais
• Aumento de tolerância a série de rápidos
rupturas

• 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

• Aceleração nos processos de • Menos falhas, o que significa


alterações quando correções mais tempo para inovar
precisam ser implantadas

• Disciplina para projetar


processos de mudança

Segurança reforçada • Menos incidentes de segurança, • A segurança é incluída em


mais tempo em atividade alguns sistemas desde o início

• Planejamento preemptivo • O compartilhamento da


para questões em vários níveis, responsabilidade pode
fazendo com que mais pessoas desacelerar as tarefas
das equipes pensem sobre inicialmente, mas, ao final,
segurança acelera a produtividade como
um todo

Das políticas às ações: algumas recomendações


Depois de estabelecer as políticas e diretrizes, a próxima etapa é determinar as ações que promoverão
o avanço da organização e dos sistemas implantados para o estado desejado. Essas ações podem ser
direcionadas aos resultados planejados em geral, ao reforço de padrões ou a projetos específicos. Nas
próximas duas seções, oferecemos algumas considerações sobre essa fase de implementação crítica, mas
começaremos com algumas recomendações gerais:

• 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.

br.redhat.com E-book Tecnologia Nativa em Nuvem e a Nuvem Híbrida: Um Guia Estratégico 18


Tabela 2. Exemplos de métricas e processos para áreas de políticas discutidas na
Parte II

Recomendação Exemplo de métrica Tipo de processo

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

Acesso em todos os locais Disponibilidade e velocidade dos • Implementação priorizada


serviços ou contratos de nível e gradual de serviços nas
de serviço (SLAs) por região, diferentes unidades
datacenter ou nuvem
• Avaliação e testes de paridade
de funcionalidades contínuos

Restrições = Liberdade • Adoção de diretrizes, padrões ou • Compartilhamento de interfaces,


frameworks para projetos soluções e serviços internos por
toda a organização
• Conformidade das soluções
• Reconhecimento em cadência
• Número de solicitações de
regular da adoção de diretrizes
exceções
centrais

Autosserviço Velocidade ou número de etapas Ciclo em cadência regular de listas


necessárias para acessar os atualizadas de serviços disponíveis
principais serviços ou soluções com e tempos de medição necessários
uma métrica, como por exemplo para que os usuários acessem esses
"tempo para o primeiro olá, mundo", serviços
ou "tempo para testar o primeiro
usuário externo" de uma API
utilizada internamente

Mentalidade voltada a soluções Número de grupos, serviços e Cadência regular no lançamento de


soluções que usam um determinado soluções e serviços, mecanismos de
serviço ou solução feedback, meios de comunicação
para fornecer atualizações sobre
as mudanças e métricas de uso
compartilhado

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

• Ampliação gradual da gravidade


dos choques induzidos no
sistema

br.redhat.com E-book Tecnologia Nativa em Nuvem e a Nuvem Híbrida: Um Guia Estratégico 19


Recomendação Exemplo de métrica Tipo de processo

Automação em todos os Número de implantações ou Revisão regular das métricas


ambientes configuração manuais e outras de automação e do programa
etapas (ou tempo total para em curso para reduzir os pontos
reimplantações completas) problemáticos mais críticos

Segurança reforçada • Número de incidentes de • Invasão regular e outros testes


segurança detectados de segurança para pressionar o
sistema
• Número de componentes
que adotam as diretrizes de • Análises pós-ação
segurança e são monitorados

Parte III: arquiteturas que levam ao sucesso


Os princípios estratégicos apresentados nas seções anteriores são abstratos e, portanto, podem ser aplicados
a uma variedade de sistemas. Logicamente, as próximas perguntas são:

• Como são esses sistemas?

• Que componentes devem ser considerados e como eles são organizados?

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.

br.redhat.com E-book Tecnologia Nativa em Nuvem e a Nuvem Híbrida: Um Guia Estratégico 20


" Assim que surge
uma nova ideia, já Funcionários Parceiros Clientes

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

Figura 5. Visão geral do ambiente de aplicações de TI

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:

1. Plataformas e entrega de aplicações. A infraestrutura que hospeda os processos de código que


instanciam as aplicações geradoras de valor no nível do sistema operacional e do datacenter.

2. Aplicações decorrentes de código personalizado. Suporte à execução de aplicações baseadas em


código personalizado que são inovadoras em funcionalidade, conferindo um diferencial à organização em
comparação aos seus concorrentes.

3. Aplicações decorrentes da integração. Suporte à comunicação entre aplicações, criando


funcionalidades aproveitadas diretamente pelos usuários.

4. Aplicações decorrentes da automação de processos. Suporte a aplicações que envolvem não


somente a execução do código, mas também processos com participação humana (fluxos de trabalho)
e regras lógicas, com a contribuição de profissionais da organização que não são especialistas em
desenvolvimento.

5. Ferramentas do desenvolvedor, DevOps e gerenciamento. Recursos que abrangem todo o ambiente


de aplicações para manter os membros das equipes produtivos e os sistemas em funcionamento.

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.

br.redhat.com E-book Tecnologia Nativa em Nuvem e a Nuvem Híbrida: Um Guia Estratégico 21


Há outras maneiras de segmentar a infraestrutura de TI, como por exemplo, no suporte a aplicativos mobile
"Era claro que o ou Internet das Coisas (IoT). No entanto, o modelo aqui contido foi estruturado deliberadamente para
local havia sido ilustrar a importância do conjunto inteiro de elementos conectados que formam um ambiente de TI. De
modo geral, a maioria das recomendações de estratégia de TI está focada apenas no desenvolvimento de
completamente código personalizado, ignorando a importância das questões voltadas a integração e processos, ou parte do
terraformado. Não pressuposto de que será adotado um stack tecnológico específico.
havia outra maneira Os ambientes de aplicações da maioria das organizações de grande porte são um conjunto vasto e
dos continentes diversificado que naturalmente abrange muitos modelos de desenvolvimento. As organizações típicas operam
com milhares de aplicações individuais, uma extensa gama de serviços SaaS, soluções COTS e outros sistemas.
terminarem
As camadas de arquitetura aqui discutidas fornecem uma visão geral de como conectar alguns desses
perfeitamente sistemas. Os exemplos incluem tecnologias Red Hat, quando relevante, mas certamente há soluções de outros
quadrados." fornecedores disponíveis. Qualquer sistema suficientemente complexo precisará contar com tecnologias de
muitas fontes. Dessa forma, os itens específicos de uma certa tecnologia aqui listados servem apenas para
Rachel Bach fins ilustrativos.
Autora de Heaven’s Queen19
Plataforma e entrega
Indiscutivelmente, as melhorias nas plataformas e tecnologias de entrega de aplicações têm sido até hoje os
incentivos mais óbvios para o desenvolvimento de recursos nativos em nuvem e de nuvem hibrida. As camadas
de plataforma fornecem a base na qual as aplicações são executadas, integradas e geram valor. A mudança de
implantações de sistema operacional para virtualização, e depois para containers, permite um espectro vasto
e profundo de tipos diferentes de implantação e automação. Essa reorientação tecnológica também fomentou
a ideia de que o mesmo ambiente de execução pode ser disponibilizado aos desenvolvedores da organização,
independentemente de onde estiverem fazendo a implantação: no datacenter ou em qualquer uma das nuvens
públicas ou privadas.

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.

br.redhat.com E-book Tecnologia Nativa em Nuvem e a Nuvem Híbrida: Um Guia Estratégico 22


Os containers se tornaram a infraestrutura de implantação preferencial na TI moderna. Essas construções
empacotam e isolam as aplicações com todo o ambiente de execução delas - todos os arquivos necessários
para executá-las. Implantação rápida e facilidade de gerenciamento por meio de uma plataforma de
containers, significam que instâncias de aplicações podem ser implantadas, atualizadas e escaladas em
qualquer ambiente em que a plataforma de containers esteja disponível. Os containers e as plataformas de
containers realmente dão vida à visão de cloud computing nativa em nuvem utilizando a nuvem híbrida.

Em um ambiente de nuvem híbrida, a adoção de uma plataforma de containers possibilita a criação de


ambientes computacionais idênticos em todos os datacenters e nuvens por que:

• Fornece uma infraestrutura computacional idêntica em cada local.

• 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.

• Permite o aumento ou redução de recursos em escala em cada local.

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.

Três considerações sobre a estratégia de plataforma:

• 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.

• A confiabilidade de toda a infraestrutura da plataforma em todos os locais. Essa consideração


requer a análise não somente dos sistemas ou datacenters individuais, mas também das interdependências
e políticas de modificação para o caso de falhas: os sistemas são simplesmente "restaurados" ou são
modificados para evitar falhas no futuro?

• A automação é fundamental em ambientes complexos de nuvem híbrida. Desenvolver a automação


é um fator crítico para que o gerenciamento da nuvem híbrida seja viável. Ao mesmo tempo, como discutido
na Parte III, é importante considerar a automação como um código a ser gerenciado. Caso contrário, a
automação se torna um problema legado.

Aplicações decorrentes de código personalizado


O código das aplicações não é executado por si só. A execução do código-fonte é viabilizada por substratos
que evoluíram lentamente desde os primeiros servidores de aplicações até uma combinação de servidores
de aplicações modernos, ambientes de execução de linguagens leves e plataformas de gerenciamento de
containers.

br.redhat.com E-book Tecnologia Nativa em Nuvem e a Nuvem Híbrida: Um Guia Estratégico 23


" Podemos implantar Ambiente de execução
novas aplicações Servidor de aplicações Servidor de aplicações
de linguagem
com rapidez. No
Sistema operacional Sistema operacional do Sistema operacional do servidor
entanto, a flexibilidade do servidor servidor + virtualização + gerenciamento de containers
é o que mais conta:
algumas aplicações
existentes crescem, On-premise Hospedagem gerenciada Nuvem

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.

Essas tendências adicionam recursos novos e significativos à TI corporativa para o desenvolvimento de


aplicações de código personalizado. A seleção criteriosa de quais tecnologias adotar é importante porque os
sistemas de código personalizado, que implementam a maioria das funcionalidades diferenciadas, tornam a
organização competitiva de uma forma única no mercado.

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.

br.redhat.com E-book Tecnologia Nativa em Nuvem e a Nuvem Híbrida: Um Guia Estratégico 24


O portfólio de desenvolvimento de aplicações da Red Hat é vasto e abrange a maioria das áreas identificadas
nesta seção. Algumas das inovações recentes incluem:

• 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.

• Compatibilidade com mecanismos de execução nativos em Kubernetes que permitem a utilização de


soluções de FaaS sempre que uma plataforma de containers Kubernetes é implantada. O projeto conhecido
como Knative, desenvolvido em colaboração com empresas como Google, Pivotal e outras, oferece o
substrato para sistemas de mensageria, eventos e execução para que a abordagem serverless funcione em
todos os ambientes.

• 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).

As principais considerações sobre a estratégia de ambiente de execução de aplicações são as seguintes:

• 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.

Aplicações decorrentes da integração


Desde que os sistemas de TI foram conectados pela primeira vez a redes e os sistemas operacionais passaram
a permitir a comunicação entre processos, os recursos de integração se tornaram necessários. O número de
possibilidades de integração de sistemas de software aumentou drasticamente. A integração se tornou um
dos componentes mais críticos do stack de TI.

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:

br.redhat.com E-book Tecnologia Nativa em Nuvem e a Nuvem Híbrida: Um Guia Estratégico 25


• Operação otimizada em vários locais. Isso significa que os recursos de mensageria, gerenciamento de
"
Com o nosso APIs, transformação, mapeamento de dados e outros devem estar disponíveis em várias localidades físicas.
ambiente operacional Além disso, os recursos também precisam funcionar em conjunto e em todos os locais. Por exemplo, as
soluções de mensageria muitas vezes precisam ser usadas em várias localidades físicas, e não em somente
Red Hat, gastamos uma. Em um relatório recente23, a IDC denominou essa capacidade de "portabilidade".
menos tempo
• Integração como código. As integrações entre sistemas realizam transformação crítica e mapeamento
resolvendo questões de dados em tempo real. Essa capacidade requer a realização de mudanças de código nos endpoints do
de infraestrutura e software, fornecendo dados que podem sugerir alterações sincronizadas na integração. As integrações,
assim como as aplicações, devem ser consideradas como código, para que seja possível implementar o
ficamos livres para
controle de versão da mesma maneira.
priorizar a inovação e
• Escala extrema. Embora a tecnologia de integração tenha sido iniciada no datacenter, conectando
a entrega de novas principalmente aplicações de back-office, em muitos casos, as aplicações voltadas para o cliente
soluções que melhoram precisam acessar os mesmos sistemas de back-office. Entretanto, os volumes de tráfego aumentaram
substancialmente. Portanto, é necessário que as integrações tenham capacidade de escalar rapidamente e
a experiência dos
sejam econômicas para os sistemas com processamento pesado de dados e transações.
nossos clientes."
• Utilizada por mais stakeholders. O número de sistemas aumentou rapidamente e a TI faz parte de
Michael Catuara quase todas funções de negócios de uma organização. O número e os tipos de integrações necessárias
Diretor de sistemas distribuídos,
na organização aumentaram significativamente. Dar suporte às atividades de integração está se tornando
TransUnion22
cada vez mais crítico não apenas para as equipes de desenvolvimento e operações, mas também para
os profissionais com menos conhecimentos técnicos nas áreas de linha de negócios, conhecidos como
"integradores civis".

• 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.

• Permitem escalar recursos de forma automatizada, pois são nativas em containers.

• 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.

br.redhat.com E-book Tecnologia Nativa em Nuvem e a Nuvem Híbrida: Um Guia Estratégico 26


As considerações sobre integração mais importantes para as organizações são:
" O movimento cresce
• Mapear uma estratégia para a disponibilização e o acesso de soluções e serviços por outras equipes de
muito entre o Dia de software. Geralmente, as APIs são um elemento importante nessa adoção mais ampla.
Ação de Graças e o
• Determinar uma estratégia para definir os responsáveis pelas integrações entre esses sistemas. Distribuir
final de dezembro. essa carga de trabalho aumenta a autonomia de grupos individuais e reduz os esforços centralizados nas
As compras on-line equipes de Centro de Competência em Integração (ICC).

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.

• Um aumento na distribuição de processos à medida que aumenta o número de datacenters e locais em


nuvens de uma organização. É necessário que esses locais estejam incluídos nos processos, o que requer
uma abordagem nativa em nuvem para o gerenciamento de processos. Essa abordagem não se resume a
implantações locais, mas na configuração para execução em qualquer ambiente necessário e na criação de
fluxos consistentes em todos os locais.

• A ascensão de práticas de BizDevOps, cujo objetivo é combinar as necessidades empresariais


diretamente com o desenvolvimento ágil de aplicações. Em particular, as cadeias de ferramentas estão se
tornando mais integradas a fim de conectar o conceito do código à geração de receita.

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

br.redhat.com E-book Tecnologia Nativa em Nuvem e a Nuvem Híbrida: Um Guia Estratégico 27


• Escalabilidade. As aplicações orientadas a processos, principalmente nas organizações com um número
" Criamos centenas grande de funcionários ou clientes, agora servem de alicerce para alguns dos serviços de TI mais usados.
de interfaces para Como resultado, tornou-se necessária a capacidade de aumentar e reduzir a escala de utilização dos
principais processos sob demanda a fim de evitar falhas e gargalos.
multiplicar os sistemas
• Utilização de plataformas de FaaS e serverless usadas por sistemas de gerenciamento de processos
de EMR, laboratório e
e regras de negócios para garantir escalabilidade, desempenho e economia. Decisões e ações podem ser
outros pela empresa executadas como FaaS, bem como as etapas dos processos de negócios.
toda. É um desafio • A confluência de sistemas de back-office e sistemas voltados a clientes por meio da integração
imenso. A equipe da TI e o resultante aumento do volume de dados criaram uma grande oportunidade para que
responsável pela troca as organizações comecem a implantar aplicações inteligentes para seus clientes. Para aproveitar
essa oportunidade, é essencial tomar decisões com base em regras, unificar os processos humanos e
de informações de automatizados de tomada de decisões e, ainda, fazer tudo isso com rapidez e escalabilidade.
saúde trabalha nisso há
Cada uma dessas tendências significa que a atual direção das aplicações orientadas a processos trata-se
cinco ou seis anos. Mas agora de um componente crucial em qualquer estratégia de TI.
estamos em uma boa Assim como nas tecnologias de integração, o desenvolvimento nativo em nuvem também permite realizar
posição, com a maior grandes mudanças nas tecnologias de automação de processos. Em termos do portfólio da Red Hat, isso
significa:
parte dos nossos dados
integrada edisponível • Desenvolvimento nativo em containers. A forte integração com os containers e a tecnologia de
orquestração de containers é um componente essencial das plataformas de automação de processos
facilmente a partir de da Red Hat. As aplicações orientadas a processos se beneficiam com a escalabilidade, resiliência e a
um único local. Esses independência de local que são proporcionadas pela arquitetura nativa em nuvem.
dados podem ser • Serverless e FaaS. O Kogito, a solução de automação de processos da Red Hat, amplia os recursos nativos
usados para a extração em nuvem porque é compatível com modelos FaaS e serverless para aplicações orientadas a processos. O
Kogito foi criado do zero com o Quarkus para oferecer a inicialização rápida, a escalabilidade e a utilização
de insights analíticos
eficiente da memória que os serviços sob demanda exigem.
ou aproveitados por
• Computação cognitiva. A arquitetura nativa em nuvem oferece a escalabilidade necessária para viabilizar
uma plataforma de cargas de trabalho de inteligência artificial (IA) e aprendizado de máquina (AM) com uso intenso de
decisões para fazer recursos, o que pode ampliar os serviços de decisão para que incluam uma variedade maior de cenários. Ao
incorporar modelos preditivos em modelos de decisão do tipo Decision Model and Notation (DMN) escritos
recomendações."
por usuários, as organizações podem aumentar a automação e reduzir as exceções que necessitam de
Vipul Kashyap intervenção humana.
Diretor de sistemas de informações
clínicas e arquiteto de informações • Gerenciamento inteligente. O desenvolvimento nativo em nuvem reduz a carga de trabalho de
corporativas, Northwell Health25 operações por meio dos operadores do Kubernetes, que automatizam o gerenciamento do ciclo de vida das
aplicações e a resposta a falhas. As soluções de automação de processos da Red Hat incluem operadores
para aplicações orientadas a processos, a fim de facilitar o gerenciamento de cargas de trabalho de nuvem
híbrida distribuídas.

As decisões estratégicas relevantes a essa área incluem:

• 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.

br.redhat.com E-book Tecnologia Nativa em Nuvem e a Nuvem Híbrida: Um Guia Estratégico 28


• Determinar protocolos, procedimentos, funções e responsabilidades para a colaboração entre a TI e
"Com o OpenShift e as linhas de negócios, automatizando os processos de negócios manuais.
o OpenStack, nossas • Decidir sobre as abordagens de uso de FaaS e nuvem para gerenciamento de processos de
equipes podem negócios (BPM) e tomada de decisões. Por exemplo, decidir se BPM como serviço será usado na nuvem,
on-premise ou em uma combinação de ambos.
desenvolver novas
ideias rapidamente, • Fornecer gerenciamento de processos sob demanda como um serviço, pode gerar grandes
benefícios. Isso permite que as equipes que anteriormente não tinham especialistas em processos
eliminado as distrações comecem a captar e instrumentalizar os próprios fluxos de trabalho.
das inovações e
• Adotar a antifragilidade. Ao substituir o código compilado personalizado por processos com regras
descobertas. Elas não configuráveis e formatos padrão, melhora-se a validação de processos complexos e elimina-se a
precisam se preocupar necessidade de implantação de código ao fazer alterações. Essa abordagem reduz o risco de ruptura
do sistema e ajuda mais membros das equipes a entender as dependências inerentes aos processos
com o tamanho do
importantes.
servidor para executar
Ferramentas do desenvolvedor, DevOps e gerenciamento de aplicações
aplicações."
O DevOps e as ferramentas do desenvolvedor são a base da tecnologia nativa em nuvem. Essencialmente,
José María Ruesta
muitas tecnologias nativas em nuvem evoluíram a partir da necessidade básica por uma infraestrutura para dar
Chefe global de infraestrutura, Serviços e
Sistemas Open Source, BBVA 26
suporte aos desenvolvedores de modo mais eficaz e eficiente. A definição de tecnologia nativa em nuvem da
Cloud Native Computing Foundation (CNCF) começa com:27

"Tecnologias nativas ao cloud empoderam empresas a criarem e rodarem aplicações escaláveis


em ambientes modernos e dinâmicos, como nuvens públicas, privadas e híbridas."
A CNCF menciona alguns exemplos e depois destaca:

"Essas técnicas permitem criar sistemas de baixo acoplamento, resilientes, gerenciáveis e


observáveis. Combinadas com automações robustas, elas permitem que os engenheiros
façam alterações de alto impacto de forma frequente e previsível, com o mínimo de esforço."
Essa combinação entre resiliência, capacidade de gerenciamento e observabilidade (do ponto de vista da
equipe de operações) e o impacto da engenharia (do ponto de vista das equipes de desenvolvimento e
engenharia) fomentaram o desenvolvimento de várias tecnologias que se unem sob a bandeira da tecnologia
nativa em nuvem.

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.

Práticas de DevOps, serviços de aplicações, middleware, ferramentas do desenvolvedor e gerenciamento,


bem como as novas variantes nativas em nuvem, constituem e sustentam o ambiente de TI da organização.
Todos esses elementos funcionam em conjunto para criar o ambiente de aplicações da organização. Por sua
vez, esse ambiente de aplicações viabiliza as funcionalidades que permitem aos funcionários, parceiros e
clientes a obter o valor que precisam.

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

br.redhat.com E-book Tecnologia Nativa em Nuvem e a Nuvem Híbrida: Um Guia Estratégico 29


Muito já foi escrito sobre a aplicação bem-sucedida das técnicas de DevOps nas organizações. A página sobre
recursos de DevOps da Red Hat é um ótimo ponto de partida para aprender mais sobre esse assunto. Além
disso, o Red Hat Open Innovation Labs e outras equipes de serviços oferecem excelentes programas para
ajudar a dar os primeiros passos. Em vez de repetir essas orientações gerais, esta seção se concentra nas
diversas tendências que são aceleradas com a adoção da nuvem híbrida:

• 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.

• As ferramentas do desenvolvedor precisam ser alteradas e atualizadas juntamente com a infraestrutura


para oferecer recursos de testes dinâmicos e outras funcionalidades nativas em nuvem. Ambientes
de desenvolvimento integrados à nuvem, nos quais o código reside inteiramente no navegador, estão
ganhando espaço para atender a essa necessidade.

• 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.

Alguns dos desenvolvimentos no stack de soluções da Red Hat incluem:

• 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.

• Os espaços de trabalho CodeReady do Red Hat Developer fornecem um ambiente de desenvolvimento


integrado (IDE) completamente baseado em navegador da Web e otimizado para códigos implantados em
containers. As funcionalidades incluem espaços de trabalho baseados em containers, stacks predefinidos
ou personalizados, gerenciamento centralizado de configurações de desenvolvedor e muito mais.

• O Red Hat Ansible® Automation Platform simplifica e adiciona segurança ao gerenciamento em todos


os ambientes da TI híbrida, com foco na nuvem híbrida por utilizar funcionalidades de fluxo de trabalho e
padrões de segurança. 28

• 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.

br.redhat.com E-book Tecnologia Nativa em Nuvem e a Nuvem Híbrida: Um Guia Estratégico 30


Do ponto de vista do planejamento em longo prazo, as áreas estratégicas a seguir são essenciais para a
camada de ferramentas do desenvolvedor, DevOps e gerenciamento de aplicações:

• Recursos universais: garantem que os mesmos serviços, recursos de automação e infraestrutura


subjacente estejam disponíveis em cada local, bem como a infraestrutura de entrega de aplicações
(plataforma e automação) e as próprias aplicações. Muitas vezes, é necessário executar as implantações na
versão mais recente de cada aplicação em vários locais diferentes.

• Abordagem de ferramentas do desenvolvedor: por exemplo, um IDE baseado em navegador que


é executado em containers pode ser a melhor opção para fornecer uma experiência consistente de
desenvolvimento em ambientes on-premise e em nuvem.

• Equipes de desenvolvimento e operações com mentalidade voltada a soluções: criar aplicações


e serviços para reutilização é um trabalho árduo. Entretanto, é mais difícil ainda confiar em soluções e
serviços operados por terceiros. Uma mentalidade voltada a soluções exige que as equipes pensem em
longo prazo sobre os sistemas que oferecem. Isso afeta o processo de planejamento e precisa estar inserido
na automação, nos hábitos diários e nas práticas aplicáveis à atualização, implantação e descontinuação do
código.

• 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.

Parte IV: a jornada do ambiente de aplicações


A equipe de TI da Red Hat avaliou o valor e o estado de preparação para a mudança de cada aplicação que
fazia parte dos negócios da empresa (veja a Figura 7). A equipe aplicou critérios de valor, como classificação
da mudança da aplicação e respectiva vida útil, bem como critérios de preparação, incluindo condição crítica
para os negócios, suporte corporativo e lacunas na arquitetura.

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

Figura 7. Avaliações de aplicações para a modernização (cortesia da TI da Red Hat)

br.redhat.com E-book Tecnologia Nativa em Nuvem e a Nuvem Híbrida: Um Guia Estratégico 31


Exceto no caso de startups recém-criadas, há pouquíssimas situações em que a estratégia de TI envolve
apenas novas tecnologias. Normalmente, uma estratégia de TI é um estudo sobre como evoluir todo o sistema
em funcionamento, a fim de aumentar a confiabilidade e a produtividade do mesmo. Explosões isoladas de
rápida produtividade, às vezes, é algo que funciona. No entanto, sem o uso geral de práticas recomendadas,
essas ocorrências acabam drenando os recursos.

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).

Burocracia Mentalidade Serviços em Automação


Antifragilidade
fragmentada voltada a soluções qualquer ambiente como código

Figura 8. Representação linear da evolução da resiliência e da produtividade em ambientes de aplicações

É 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.

br.redhat.com E-book Tecnologia Nativa em Nuvem e a Nuvem Híbrida: Um Guia Estratégico 32


É importante não somente se livrar dos rótulos, mas também promover o progresso da organização e das
estruturas para gerar melhorias. A burocracia é uma estrutura necessária para administrar organizações de
grande porte, complexas e repletas de funcionários e sistemas técnicos. Algum nível de fragmentação sempre
estará presente e sendo, até mesmo, necessário. As questões a considerar são as seguintes:

• 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?

Etapas para as tecnologias nativa em nuvem e de nuvem híbrida


Para a TI de muitas organizações, o uso de vários datacenters e locais em nuvem pública (geralmente
fornecidos por mais de um provedor) já é uma realidade. Em termos de tecnologia, é possível seguir várias
estratégias para facilitar o gerenciamento desses ambientes.

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.

• Antifragilidade. A mudança para a antifragilidade representa a presença de processos sólidos, sejam


eles automatizados ou humanos, para reagir às falhas e aprimorar o sistema para que o mesmo seja mais
eficiente do que antes. Poucas organizações adotaram uma engenharia do caos extrema, semelhante à
da Netflix, em uma escala significativa. Portanto, o progresso para atingir a antifragilidade é um objetivo
valioso. De maneira semelhante, incluir a segurança neste e em todos os passos anteriores é um grande
salto em direção à proatividade.

br.redhat.com E-book Tecnologia Nativa em Nuvem e a Nuvem Híbrida: Um Guia Estratégico 33


Loops de feedback e cultura
Adotar tecnologias e processos novos sempre traz algumas preocupações e incertezas. Em muitos casos, não
é aconselhável mudar o que está funcionando. Uma das lições aprendidas pela equipe de TI da Red Hat é que é
essencial escutar tanto os céticos quanto os membros favoráveis à mudança.

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.

Pontos de paridade Pontos de diferenciação

Diferenciar
Recursos corporativos Principal
ou inovar

Impulsionam

Aplicações e sistemas Comprar / configurar Criar

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.

br.redhat.com E-book Tecnologia Nativa em Nuvem e a Nuvem Híbrida: Um Guia Estratégico 34


Plataforma open source Aumento de carga Plataforma gerenciada

Potencialização Pipeline de desenvolvimento Cargas de trabalho


da inovação e entrega críticas para os negócios

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:

• Quais dimensões estratégicas resultarão em mais ganhos ou benefícios?

• Como disseminar as práticas recomendadas por uma área ou pela organização inteira?

• Como os principais tipos de plataformas (sistemas operacionais, virtualização e containers) e aplicações


(código personalizado, integrações e aplicações orientadas a processos) se encaixam?

• 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.

br.redhat.com E-book Tecnologia Nativa em Nuvem e a Nuvem Híbrida: Um Guia Estratégico 35


E-book

Parte V: conclusões e próximas etapas


Os sistemas de TI nunca foram tão valiosos como são agora. Entretanto, sem uma estratégia Ágil de tenologia
nativa em nuvem, e que aborde questões de confiabilidade e produtividade, é cada vez mais difícil para
as empresas competir no mercado. Embora tenhamos visto grandes inovações tecnológicas em épocas
anteriores, os últimos anos foram marcados por uma dependência sem precedentes na TI como a força motriz
de quase todas as funções corporativas. Os sistemas de back-office e front-office devem trabalhar juntos
como nunca antes.

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

Nosso objetivo é fornecer insights estratégicos consolidados, extraídos de implantações tecnológicas e de


clientes, para ajudar outras organizações a planejar e elaborar estratégias.

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.

Mais informações sobre as tecnologias oferecidas pela Red Hat:

• Entrega de aplicações: Red Hat OpenShift

• Desenvolvimento de aplicações: Red Hat Middleware

• Ferramentas do desenvolvedor: Red Hat Developer Toolset

• Gerenciamento: Red Hat Smart Management

SOBRE A RED HAT


A Red Hat é a líder mundial no fornecimento de soluções corporativas de software open source. Por
meio da estreita parceria com as comunidades, a Red Hat oferece tecnologias confiáveis e de alto
desempenho em Linux, cloud híbrida, containers e Kubernetes. A Red Hat ajuda os clientes a integrar
aplicações de TI novas e existentes, desenvolver aplicações nativas em cloud e definir padrões
com nosso sistema operacional líder do setor, além de automatizar, proteger e gerenciar ambientes
complexos. Com serviços de consultoria, treinamento e suporte premiados, a Red Hat tem a confiança
das empresas da Fortune 500. Como um parceiro estratégico para provedores de cloud, integradores
de sistema, fornecedores de aplicações, clientes e comunidades open source, a Red Hat ajuda as
organizações a se preparar para o futuro digital.

facebook.com/redhatinc AMÉRICA LATINA BRASIL


@redhatbr +54 11 4329 7300 +55 11 3629 6000
linkedin.com/company/red-hat-brasil [email protected] [email protected]

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.

Вам также может понравиться