Mostrando postagens com marcador Cloud. Mostrar todas as postagens
Mostrando postagens com marcador Cloud. Mostrar todas as postagens

quarta-feira, 8 de janeiro de 2025

Singrando os Mares da Nuvem com o CCoE: Governança e Eficiência


Imagine que sua organização é como um grande navio navegando pelos mares. Existem várias ilhas com muitos recursos valiosos, com sua própria topografia, riquezas e desafios. Em teoria, basta desembarcar, explorar e aproveitar os recursos. Mas na prática, sem uma coordenação clara, é fácil se perder, desperdiçar tempo e recursos ou até mesmo naufragar com a expectativa de gerar valor da ilhas.

Para que possamos falar sobre governança, eficiência e direcionamento, vamos supor que as ilhas são as ofertas de serviços de provedores de nuvem para as organizações, ou seja, somente com um mapa das ilhas não teremos muito sucesso em definir o que fazer da melhor forma possível.

É aqui que o Centro de Excelência de Nuvem (CCoE) entra em cena: não como um simples mapa, mas como uma bússola estratégica que guia o navio rumo às melhores escolhas.

Governança: Mais que Controle, uma Lente Ampliada

Quando falamos de governança em ambiente de nuvem, a ideia tradicional é de controle: regulamentar quem pode fazer o quê, onde e como. No entanto, o verdadeiro papel do CCoE é expandir essa perspectiva, indo além de impor regras. Ele promove visibilidade, garantindo que todos saibam o que está acontecendo em cada "ilha"; transparência, assegurando que as decisões sejam fundamentadas e compreendidas; e confiança, permitindo que as equipes tomem iniciativas dentro de diretrizes claras.

Eficiência: Agilidade com Direcionamento

A eficiência é um dos pilares mais desejados por qualquer organização que adota a nuvem. Mas como garantir que os recursos certos sejam usados nas plataformas certas sem desperdícios? O CCoE atua como o norte magnético que alinha a agilidade das equipes com o controle das operações. Ele define padrões de arquitetura, incentiva boas práticas e centraliza o conhecimento, evitando que times diferentes reinventem a roda ou caminhem em direções opostas.

Direcionamento: O CCoE como um Tripulação Organizada

Imagine vários marinheiros que pertencem a equipes, onde cada equipe é responsável por tentar extrair recursos de diversos território. Sem direcionamento, o caos impera. O CCoE é como o capitão que não apenas traz ordem, mas também estabelece uma visão de longo prazo: para onde ir, quais territórios explorar e como maximizar os ganhos.

Ao fornecer diretrizes sobre segurança, conformidade, otimização de custos e padrões de arquitetura, o CCoE cria um ecossistema onde todos sabem exatamente seu papel e os objetivos a serem alcançados.

Uma Jornada Coordenada e Eficiente

O verdadeiro sucesso do CCoE está em seu impacto holístico. Mais do que um centro de regras, ele é um catalisador de cultura organizacional, promovendo colaboração entre times e alinhando a tecnologia à estratégia do negócio. Ao adotar um CCoE, sua organização não apenas evita naufrágios, mas também descobre novas rotas para a inovação e a excelência operacional.


Se você está pronto para transformar sua organização e liderar a jornada rumo à excelência em governança e eficiência na nuvem, o livro Centro de Excelência de Nuvem – Implementação é o recurso que você precisa. Ele fornece os requisitos essenciais, as etapas práticas e as orientações necessárias para construir e implementar um CCoE alinhado às necessidades únicas da sua organização. Com direcionadores práticos e diretrizes claras, este livro é seu guia para garantir visibilidade, transparência e controle, sem abrir mão da agilidade que a nuvem proporciona. 


sábado, 13 de abril de 2024

Os Domínios do Centro de Excelência em Nuvem (CCoE)


A crescente conscientização dos profissionais de tecnologia sobre o potencial da computação em nuvem para impulsionar empresas e a oferta de produtos e serviços é evidente. A gestão eficaz desses recursos é fundamental para maximizar o valor em cada solução. Em nosso artigo anterior, "Pilares do Centro de Excelência em Nuvem", discutimos a implementação do Centro de Excelência em Nuvem (CCoE), sustentado pelos pilares de Pessoas, Tecnologias e Processos. Esses alicerces são essenciais para erguer os domínios do CCoE, permitindo que cada domínio se entrelace com os pilares. Essa interseção é crucial para construir uma base sólida, alinhada aos objetivos de negócios, promovendo eficiência e impacto positivo. Ao estabelecer essa estrutura, o CCoE se torna não apenas um condutor da utilização eficaz da nuvem, mas também uma força orientadora que impulsiona a inovação, garantindo que cada solução contribua significativamente para o sucesso e crescimento contínuo da organização. Neste artigo exploraremos a importância e interconexão desses elementos, delineando como os domínios do CCoE se destacam como um instrumento crucial na jornada da excelência em nuvem.

Estratégia

O domínio Estratégia desempenha um papel primordial na interseção dos pilares, ele representa o norte orientador, garantindo que todos os esforços estejam alinhados com os objetivos estratégicos da organização. No contexto dos domínios,  a Estratégia é a bússola que direciona a capacitação das Pessoas, delineia a adoção das Tecnologias e molda os Processos de forma a cumprir metas específicas. A articulação eficaz da estratégia é vital para maximizar os benefícios dos recursos em nuvem, garantindo uma implementação eficiente e impactante. Portanto, não apenas conecta os pilares, mas também fornece a visão necessária para criar uma base sólida e coesa. Seu sucesso se traduz em benefícios tangíveis, como a criação de uma cultura organizacional ágil e inovadora, a rápida adaptação às mudanças do mercado e impulsionando a excelência em nuvem.

Arquitetura 

O domínio Arquitetura dentro do Centro de Excelência em Nuvem (CCoE) desempenha um papel central na definição e construção do blueprint dos recursos em nuvem. Suas características fundamentais envolvem a criação de uma estrutura robusta que guia a implementação, integração e otimização contínua dos recursos em nuvem. Ao desenvolver padrões arquiteturais, essa dimensão interliga-se diretamente com os pilares de Pessoas, Tecnologias e Processos. Na interseção com Pessoas, a Arquitetura busca capacitar equipes para compreenderem e implementarem as melhores práticas arquiteturais. Com relação às Tecnologias, a definição de padrões arquiteturais orienta a seleção e implementação eficiente das soluções em nuvem homologadas. Em relação aos Processos, a Arquitetura molda diretrizes para garantir a consistência e eficácia operacional fornecendo agilidade . Os benefícios advindos desse domínio de Arquitetura são vastos, incluindo a criação de ambientes escaláveis, seguros e eficientes em termos de custos. Além disso, ao fornecer um blueprint estratégico, a Arquitetura facilita a adaptação ágil às mudanças, promovendo a inovação contínua e garantindo que os recursos em nuvem estejam alinhados às metas de negócios da organização.

Governança 

O domínio Governança no CCoE representa a espinha dorsal que garante o controle, monitoramento e consciência de todas as atividades em tempo real. Essa dimensão é crucial para assegurar a conformidade, a eficiência operacional e a segurança na implementação e utilização dos recursos em nuvem. Na interseção com Pessoas, enfatiza a responsabilidade e o treinamento contínuo para garantir conformidade. Com relação às Tecnologias, promove o monitoramento constante e a aplicação de políticas de segurança. Já em relação aos Processos, a Governança estabelece procedimentos claros para mitigar riscos e otimizar operações. Os benefícios para o negócio ao integrar a Governança desde o início são notáveis, incluindo a redução de riscos, a eficiência operacional aprimorada e a garantia de que a implementação em nuvem esteja alinhada com os padrões regulatórios, resultando em uma base sólida para o sucesso sustentável da organização.

Segurança 

O domínio Segurança assume uma posição de destaque, reconhecendo que falhas nessa área podem resultar em custos significativos para a organização. Em um cenário onde garantir a segurança tornou-se um padrão de mercado, esse domínio se interliga de forma crucial com os pilares. Ao enfatizar a conscientização e a formação contínua das Pessoas, promove uma cultura de segurança. No âmbito das Tecnologias, estabelece protocolos robustos e ferramentas de proteção avançadas. Em relação aos Processos, define procedimentos para resposta a incidentes e gestão proativa de ameaças. Ao integrar a segurança desde o início em cada pilar, não apenas fortalece a postura de defesa contra ameaças, mas também oferece ganhos reais, proporcionando credibilidade no mercado. Essa credibilidade resulta não apenas na proteção dos ativos e dados da organização, mas também na construção de uma reputação sólida, vital para a confiança dos clientes e parceiros de negócios.

Desenvolvimento e Operações

O domínio DevOps emerge como um catalisador essencial para a entrega ágil e qualitativa de software, estabelecendo uma sinergia entre os pilares ao promover a colaboração contínua entre equipes de desenvolvimento e operações, DevOps fomenta uma cultura organizacional ágil e inovadora, superando barreiras hierárquicas. Integrando-se ao pilar de Tecnologias, a automação desde a codificação até a implementação impulsiona eficiência e minimiza erros, enquanto, nos Processos, possibilita entrega contínua com aferição constante, garantindo refinamento iterativo. O grande benefício reside na capacidade de alcançar velocidade e qualidade simultaneamente. A entrega mais rápida não sacrifica a qualidade, pois a automação e a colaboração promovidas por DevOps garantem testes eficazes e integração contínua, permitindo adaptação ágil às demandas do cliente e resposta rápida às mudanças do mercado.

Finanças

O domínio Finanças habilita o reconhecimento dos investimentos em recursos em nuvem que devem ser estrategicamente alinhados com os resultados gerados. É comum ocorrer desperdício na nuvem devido à criação de recursos subutilizados ou abandonados. Nesse contexto, as Finanças interagem diretamente com os pilares, oferecendo visibilidade dos custos associados a cada solução. Ao destacar que os valores gastos na nuvem só fazem sentido se mensurados em relação ao valor agregado ao negócio, as Finanças proporcionam uma compreensão real e tangível do impacto financeiro das decisões relacionadas à nuvem. Além disso, sua interação com o pilar de Processos permite a implementação de práticas que visam maximizar o Retorno sobre o Investimento (ROI) da utilização da nuvem, assegurando uma abordagem financeiramente eficiente e estratégica para impulsionar os resultados da organização.

A aplicação integrada dos diversos domínios em convergência com os pilares no CCoE é imperativa para moldá-lo e adaptá-lo às nuances específicas da organização. Essa abordagem não apenas capacita a empresa a enfrentar os desafios do ambiente em nuvem, mas também estabelece um alicerce sólido e profundo de diretrizes. Ao conectar estrategicamente Pessoas, Tecnologias, Processos, Estratégia, Arquitetura, Governança, Segurança, Finanças e Desenvolvimento e Operações, o CCoE torna-se o epicentro da excelência em nuvem. Essa sinergia não só otimiza a eficiência operacional, mas também catalisa a inovação, solidificando a organização para prosperar em um cenário dinâmico e desafiador.


Marcelo Goberto de Azevedo 

Arquiteto Soluções 

//marcelogoberto.com.br


sexta-feira, 15 de março de 2024

Pilares do Centro de Excelência em Nuvem (CCoE)

A integração da tecnologia em nuvem nas empresas deixou de ser apenas uma vantagem competitiva, tornando-se essencial para garantir a continuidade no mercado. Os benefícios proporcionados pelos recursos em nuvem são inovadores, possibilitando uma velocidade e eficiência incomparáveis em comparação com outras tecnologias equivalentes. No entanto, toda nova tecnologia demanda uma curva de aprendizado para atingir sua máxima eficiência na utilização, sendo este aspecto ainda mais evidente no caso da nuvem. A agilidade na habilitação de recursos em nuvem durante a implementação ressalta a importância de uma fase inicial embasada em controle e governança. Caso contrário, podem surgir desafios significativos, como riscos financeiros e operacionais ao negócio. Como mitigar esses riscos? A resposta é simples: estabelecer um Centro de Excelência (CoE). Este é o pilar fundamental para orientar a implementação da tecnologia em nuvem de forma eficaz, assegurando uma governança sólida e minimizando potenciais impactos negativos.

CoE

Um Centro de Excelência (CoE - Center of Excellence em inglês) é essencialmente uma equipe multidisciplinar dedicada com o propósito de impulsionar a criação e adoção de novas tecnologias. Sua principal meta é promover a cultura da inovação dentro da empresa, alinhada com os objetivos de negócio, visando alcançar a máxima eficiência nas atividades e acelerar os resultados. No contexto da tecnologia em nuvem, a necessidade de uma abordagem mais abrangente levou à formação do Centro de Excelência em Nuvem (CCoE - Cloud Center of Excellence em inglês), que incorporou aspectos específicos da nuvem para criar um núcleo de governança abrangente, abordando temas como segurança, conformidade, custos, entre outros.

Um CoE é sustentado por três pilares básicos que proporcionam a estrutura fundamental para garantir uma plataforma que incorpora três elementos essenciais: pessoas, tecnologia e processos.

Pessoas

Uma organização é fundamentalmente constituída por pessoas, responsáveis por executar tarefas diárias, entregar produtos para um público-alvo e assegurar a geração de valor para o negócio. Nesse contexto, a importância vital do pilar "Pessoas" torna-se evidente, uma vez que sem ele, nenhum resultado seria possível; a tecnologia e os processos não se sustentam sem a participação ativa das pessoas. Portanto, as pessoas devem ser o foco principal durante a implementação do Centro de Excelência em Nuvem (CCoE). É imperativo "convencer" as pessoas de que a adoção de uma nova tecnologia é benéfica e gerará resultados significativos para todas as partes interessadas. As pessoas precisam sentir-se essencialmente proprietárias da tecnologia e dos processos para garantir a eficiência organizacional.

Tecnologia

A tecnologia é essencialmente uma ferramenta, sendo manipulada por pessoas para aplicação em cenários específicos, tendo como resposta em um processo de "beneficiamento" e na criação de produtos ou serviços aprimorados para o público-alvo. Contudo, todas as ferramentas possuem manuais de instruções elaborados com o propósito de garantir o domínio de suas características e funcionalidades. Portanto, é crucial treinar as pessoas para que dominem todas as informações necessárias, permitindo extrair o máximo potencial da ferramenta com segurança e durabilidade. Essa capacitação assegura que a tecnologia seja utilizada de maneira eficaz, contribuindo para o alcance dos objetivos do Centro de Excelência em Nuvem (CCoE).

Processos

A forma como as atividades são conduzidas dentro de uma organização impacta diretamente a sua cultura, pois a cultura é essencialmente a maneira como as coisas são feitas "desde sempre". Qualquer modificação nos processos requer mais do que simplesmente implementar tecnologia; demanda um comprometimento significativo das pessoas. Com isso, é importante implementar processos eficazes que se alinhem, ao máximo, à cultura da empresa. Processos criados apenas em teoria, ou que seguem abordagens padronizadas de mercado, têm uma alta probabilidade de fracasso em sua implementação, pois não são ajustados para atender às peculiaridades da organização e das pessoas. A adequação dos processos, levando em consideração a cultura existente, é crucial para garantir uma transição suave e a aceitação proativa por parte dos colaboradores, promovendo a eficácia e o sucesso nas operações.

Essa tríade de elementos fundamentais pode parecer trivial, entretanto, é neste ponto que reside o "pulo do gato" na implementação de um Centro de Excelência em Nuvem (CCoE). O planejamento das atividades deve ter como foco predominantemente as pessoas, buscando fazer com que compreendam o valor agregado da nova tecnologia. Ao direcionar o treinamento da tecnologia para a realização de atividades mais eficientes e resultados, a adoção de novos processos proporcionará uma inteligência de inovação para o negócio. Essa abordagem não apenas fortalece a organização financeiramente, mas também a capacita a manter-se de maneira duradoura no mercado, perpetuando sua vida útil e posicionando-a estrategicamente diante das demandas em constante evolução. O êxito da implementação reside na sinergia entre pessoas, tecnologia e processos, formando a base sólida necessária para enfrentar os desafios do cenário empresarial moderno.

Em próximos artigos, exploraremos áreas cruciais do Centro de Excelência em Nuvem (CCoE), como arquitetura, finanças, segurança cibernética, dados, CI/CD e conformidade regulatória. Analisar cada aspecto dessas áreas permitirá insights valiosos para otimizar operações e promover a excelência em nuvem.


Marcelo Goberto de Azevedo 

Arquiteto Soluções 

//marcelogoberto.com.br


sexta-feira, 8 de setembro de 2023

Gestão Eficaz de Custos na Nuvem do que Economia Custos

O cenário atual está cada vez mais impulsionado pela tecnologia, e a nuvem se tornou o coração das operações de muitas empresas. No entanto, o uso da nuvem pode rapidamente se transformar em uma faca de dois gumes quando se trata de custos. Muitas empresas concentram-se apenas em buscar descontos com provedores de serviços em nuvem, acreditando que isso resolverá seus problemas financeiros. No entanto, a verdadeira chave para eficiência financeira na nuvem está na gestão eficaz dos custos, ou seja, a implementação da cultura FinOps.

O Falso Brilho dos Descontos

Imagine que sua empresa gasta uma quantia significativa, digamos, $600.000 por ano em recursos de nuvem. Em um esforço para reduzir esses custos, você negocia um desconto de 20% com seu provedor de serviços em nuvem, e seus custos caem para $480.000 por ano. A princípio, parece uma vitória, mas há um problema.

Se sua empresa ainda está desperdiçando recursos não utilizados na nuvem, provisionando servidores que não precisa, mantendo bancos de dados subutilizados e ignorando a otimização, então a economia de 20% com o desconto não resolve o problema subjacente. Você ainda está desperdiçando $150.000 todos os anos (conforme estudo da Forbes) e esse dinheiro está indo para o ralo.

O Papel da Gestão Eficaz

Aqui está a realidade crua: a a gestão eficaz de custos na nuvem é o que realmente impulsiona a eficiência financeira. Não se trata apenas de reduzir os custos, mas de otimizar estrategicamente seus gastos para evitar desperdícios contínuos.

Identificar e Eliminar Desperdícios

O primeiro passo para a gestão eficaz de custos na nuvem é identificar e eliminar desperdícios. Isso envolve uma análise profunda dos seus recursos de nuvem para identificar instâncias subutilizadas, servidores não utilizados e recursos de armazenamento redundantes. Uma vez identificados, esses recursos podem ser desativados ou otimizados.

Automatização e Escalonamento

A automação desempenha um papel fundamental na gestão eficaz de custos. Use ferramentas de automação para ajustar automaticamente a capacidade dos recursos com base na demanda. Isso significa dimensionar recursos para cima durante picos de uso e dimensioná-los para baixo quando a demanda é menor.

Escolher as Instâncias Certas

Selecione as instâncias de servidor, tipos de armazenamento e outros recursos que melhor atendem às necessidades da sua carga de trabalho. Evite a alocação de recursos de alto custo quando alternativas mais econômicas forem suficientes.

Revisão de Políticas e Processos

Revise e ajuste as políticas internas e os processos de aprovação para garantir que os recursos sejam provisionados e gerenciados de maneira eficiente. Isso inclui estabelecer orçamentos claros e responsabilidades para o gerenciamento de custos.

Educação da Equipe

Uma equipe bem informada é um ativo valioso. Eduque sua equipe sobre práticas de custos conscientes na nuvem, como desligar recursos não utilizados, otimizar consultas de banco de dados e fazer escolhas conscientes em relação aos recursos.

Ferramentas de Monitoramento

Use ferramentas de monitoramento e gerenciamento de custos para obter insights em tempo real sobre seus gastos na nuvem. Isso permite tomar medidas imediatas para evitar desperdícios.

Em última análise, cortar custos na nuvem é importante, mas não deve ser uma solução única. A gestão eficaz de custos na nuvem é o que levará a uma eficiência financeira real e sustentável. Ao identificar e eliminar desperdícios, automatizar processos, escolher recursos adequados e educar sua equipe, sua empresa poderá alcançar não apenas economia imediata, mas também uma estratégia de custos eficaz e duradoura na nuvem. Lembre-se, economizar 20% pode parecer ótimo, mas a eliminação de desperdícios é o verdadeiro caminho para evitar que o dinheiro vá pelo ralo. 

Essas são algumas temas que precisam ter foco desde o início da implementação de FinOps. No livro “O Caminho das Pedras da Cultura FinOps”, além de tratar desses temas, ainda ofereço outras ideias, conceitos básicos, princípios, nível de maturidade, terminologia, estrutura de times, responsabilidades, entre outras tantas informações que devem levadas em consideração para compor um plano personalizado para uma organização durante a habilitação da cultura FinOps de forma que possam transformar os gastos com a nuvem de um passivo em um ativo da organização.


Marcelo Goberto de Azevedo

Cloud Transformation Leader

//marcelogoberto.com.br

terça-feira, 13 de dezembro de 2022

Destravando a Elasticidade da Nuvem para gerar ROI


A nuvem oferece inúmeros benefícios em sua adoção, contudo um desse benefícios acredito que seja o mais potencial para agregar retorno financeiro nos produtos de uma organização, a elasticidade. Conforme definição da Wikipedia, “a elasticidade é definida como o grau em que um sistema é capaz de adaptar-se a carga de trabalho através de provisionamento e desprovisionamento de recursos automaticamente, de forma que em cada ponto no tempo, os recursos disponíveis correspondam à demanda atual, tão próxima quanto possível”. Através dessa definição, podemos identificar que os recursos necessários para uma melhor experiência da execução de um produto, tanto no viés computacional, como também da alocação de custos, é a elasticidade dos recurso da nuvem, uma vez que eles poderão ter o tamanho exato para atender a demanda com qualidade.

Ainda assim, existe um ponto na elasticidade que precisamos considerar para ativar sua eficiência máxima, o tempo de provisionamento do recurso, Isso porque cada tipo de recursos da nuvem contém especificidades em sua criação, exemplificando, uma máquina virtual pode levar alguns minutos até que esteja disponível para utilização devido sua configuração de inicialização, em compensação, um imagem de contêiner pode ser criada em poucos segundos. O tempo de vida desses recursos tanto durante seu provisionamento até o seu completo desprovisionamento gerará custos. Por isso é importante analisar qual será a melhor arquitetura de recursos para habilitar uma elasticidade eficiente.

Agora que já entendemos como destravar com eficiencia a elasticidade dos recursos da nuvem, podemos relacionar essa habilidade com FinOps, porque dimensionar recursos em seu tamanho ideal conforme a demanda em um determinado momento, é a forma mais eficaz para gerar o melhor ROI (Retorno sobre o Investimento) em relação aos gastos da nuvem. Durante a fase Otimização de FinOps, existe uma tarefa Definição de Política de Otimização, nesta atividade o time de Operações deve definir quais são as melhores práticas e configurações para criação de novos recursos, garantindo assim dimensionamento adequado, evitando a existência de recursos maiores do que a necessidade, habilitando assim o melhor gasto versus a taxa de utilização. 

No livro “O Caminho das Pedras da Cultura FinOps”, além de tratar dessa atividade, ofereço outras ideias de tarefas e ações que poderão compor um plano personalizado para as organizações na adoção da cultura FinOs.  



Marcelo Goberto de Azevedo 

Cloud Leader na GFT Brasil

//marcelogoberto.com.br


segunda-feira, 11 de janeiro de 2021

A Importância da Escalabilidade

 

Há um tempo atrás a maioria das empresas mantinha projeção de expansão programadas e limitadas, se imaginava uma estrutura final para as aplicações que sempre iria atender as necessidades por um longo tempo. Entretanto, o cenário atual possibilita cada vez o crescimento rápido e volátil de qualquer negócio, com isso se torna essencial criar soluções que se adaptem rapidamente aos novos patamares utilizando a escalabilidade para gerar estabilidade aos seus usuários.

Mas o que é escalabilidade? É basicamente a condição de uma solução de lidar com uma quantidade crescente de trabalho, minimizando o tempo de inatividade e erros, ou seja, é garantir que sempre seja possível atender a todos usuários com uma experiência de qualidade.

Existem dois tipos de escalabilidade, a mais utilizada é Dimensionamento (conhecido como horizontal), esse tipo é quando aumentamos o número de máquinas ou instâncias onde a aplicação está instalada, oferecendo através de balanceamento a distribuição de processamento de carga evitando a sobrecarga num único ponto. O outro é a Ampliação (conhecido como vertical), é quando efetuamos o aumento da capacidade computacional da máquina ou instância, para garantir que sempre haja recurso para processar as requisições. Não há uma opção ideal, é necessário a avaliação do cenário para definição de uma solução, e ainda pode ser considerada uma terceira opção que é a utilização de uma mistura entre as duas opções.

Além do fator mais importante, a disponibilidade da aplicação, o custo é outro fator que com a utilização da escalabilidade é beneficiado, isso porque através de uma estrutura altamente volátil podemos criar regras automatizadas de modificação de recursos que irão manter o ambiente do tamanho necessário para cada momento, reduzindo o investimento desnecessários, ou seja, estamos pagando pelo que está sendo consumido e não pelo achamos que será consumido.

Outro fator beneficiado também é a segurança, com a escalabilidade, a redundância e aumento de recursos de forma automática garante a disponibilidade e segurança dos dados. Falhas de hardware e gargalos que podem danificar os dados são corrigidos de forma praticamente automática.

A escalabilidade é cada vez mais um diferencial vital para qualquer solução, desde as monolíticas chegando nos micro serviços, por isso é fundamental fazer parte da concepção desde o início, porque dessa forma será possível garantir, disponibilidade, estabilidade, versatilidade, segurança e direcionamento de recursos.


Marcelo Goberto de Azevedo 

Arquiteto na GFT Brasil

//marcelogoberto.com.br


domingo, 7 de junho de 2020

Basic Cloud Architecture

 **Matéria Publicada no The TechnologyJournal da GFT na edição de jun-2020**

Some concepts that every developer should know before starting in the cloud.

Marcelo Goberto Azevedo –  marcelo.azevedo@gft.com 

The diagram below is a representation of a well-structured basic web application, if you are not a cloud developer, you will probably find it complicated.

 

Next, we will get to know each one of this component and give an introduction so that you can have the necessary knowledge when including it in the project architecture.

(1) DNS

The acronym DNS (Domain Name System) is the technology that allows the internet. This component allows all IP and domains to be referenced and found. Imagine a giant phone book on the internet, it is through it that you can find where a particular address is. When we enter a domain in our browser, for example, http://www.pudim.com.br, that address will be searched in this phone book to find where it should be directed to, it is always behind an IP, in the case of that address it is 54.207.20.104.

(2) LOAD BALANCE

Load Balance is an essential component for cloud architecture, one of the main characteristics of cloud applications is its horizontal scalability, that is, we can create numerous instances (replicas) of applications to meet a large demand of requests, thus ensuring availability It is in this scenario that Load Balance enters because it will be responsible for distributing this demand among all existing instances, ensuring that the rules defined therein are met to avoid overload in a given instance and provide high performance of requests.

(3) WEB APP SERVER

These are the web application servers, basically, it is where the application is installed and will respond to the user by receiving the request and providing an HTML response. As the brain of the application, it will be responsible for communicating with a variety of other components, such as databases, queues, caches, microservices and, much more. Server implementations require a choice a language (C # .NET, Node.js, Ruby, Scala, Java, etc.).

(4) DATABASE

Basically, every application uses a database to store information. It is through them that we can store and update the data captured or generated by the application. In the cloud model, mainly with microservices, it is quite common to use several databases. Also, there are currently two database versions, the most used being the relational database (SQL Server, Oracle, MySql, etc.) and the non-relational database (CosmoDB, MongoDB, DynamoDB, etc.), basically, the difference is that the relational offers greater consistency and reliability and non-relational has the advantage of greater scalability, with the information grouped and stored in the same record.

(5) CACHE SERVER

The cache service basically provides query and persistence of data in virtually real-time. Applications generally use database queries that are executed several times and return the same value, to avoid processing this information, the cache stores this result in memory and keep it available for the time configured for the application, thus making a big gain performance.

(6) JOBS

Most applications need to work asynchronously, that is, that is not associated with responding to a user's request. For that, the "work queues" are used, it is through them that routines are scheduled to be executed from time to time to perform jobs that do not need to happen directly associated with users. The language options and underlying structures are as numerous as for web servers and most of them can be created in the "serverless" concept, which are algorithms that run without a server and are event-oriented.

(7) STORAGE

These repositories are a simple and scalable way to store and access data in the cloud. They are perfect for any type of information you would store on a local file system, with the benefit of being accessible via http from anywhere. And you can also count on the redundancy configuration to guarantee its high availability.

(8) CDN

CDN (Content Delivery Network) is a technology that offers a way to allow access to static files (html, css, javascript, images, etc.) faster than allowing the user to reach the web application to receive their content. Basically, it works by distributing a copy of the most current content among many servers worldwide, so when a user accesses the web application, this content will be delivered by the CDN closest to the user and thus avoiding consumption of server traffic, this will guarantee much lower latency for the user and a better experience.

Working with the cloud is simple and complex at the same time. These elements presented are a small part of the countless possibilities that exist to build an architecture, however, I hope that it will be useful to give the initial kick in its use. Believe that the future of applications will inevitably be in the cloud.

________________________________________________________________________

Marcelo Goberto Azevedo, is a Software Architect at GFT. More than 30 years coding, analyzing and enjoying every moment. - marcelo.azevedo@gft.com


segunda-feira, 16 de março de 2020

Arquitetura de Nuvem Básica


Alguns conceitos que todos desenvolvedor deveria saber antes de iniciar no mundo da nuvem.

O diagrama abaixo é uma representação de uma aplicação web básica bem estruturada, caso você não seja um desenvolvedor da nuvem, provavelmente achará complicado.


A seguir vamos conhecer cada um desse componente e dar uma introdução para que você possa ter o conhecimento necessário quando incluí-lo na arquitetura do projeto. 

1. DNS

A sigla DNS (Domain Name System), é a tecnologia que permite a internet. Esse componente permite que todos os IP e domínios possa ser referenciados e encontrados. Imagine uma gigante lista telefônica da internet, é através dela que é possível encontrar onde está um determinado  endereço. Quando informamos um domínio em nosso navegador, por exemplo  www.pudim.com.br, esse endereço será pesquisa nesta lista telefonica para encontrar onde deve ser direcionado a navegado, por trás é sempre um IP, no caso desse endereço é o 54.207.20.104.

2. LOAD BALANCE

O Load Balance é um componente essencial para a arquitetura de nuvem, uma das principais características das aplicações em nuvem é sua escabilidade horizontal, ou seja, podemos criar inúmeras instâncias (replicas) das aplicações para atender um grande demanda de requisições, garantindo assim a disponibilidade. E neste cenário que o Load Balance entra, porque ele será o responsável por distribuir essa demanda entre todas as instâncias existentes, garantir um as regras neles definidas sejam atendidas para evitar sobrecarga em determinada instância e prover alta performance das requisições.

3. WEB APP SERVER

Esse são os servidores de aplicativos web, basicamente é onde a aplicação está instalada e responderá ao usuário através do recebimento da requisição e fornecerá uma resposta HTML. Por ser o cérebro da aplicação, será responsável por se comunicar com uma variedade de outros componentes, como banco de dados, filas, cachês, microserviços e muito mais. As implementações no servidor requer uma escolha de uma linguagem (C# .NET , Node.js, Ruby,  Scala, Java, etc). 

4. DATABASE

Basicamente todo aplicativo utiliza banco de dados para armazenar informações. É através deles que podemos armazenar e atualizar os dados capturados ou gerados pela aplicação. No modelo nuvem, principalmente com microserviços, é bem comum utilizarmos vários banco de dados. Além disso atualmente existe duas versão de banco de dados, sendo a mais utilizada o banco relacional (SQL Server, Oracle, MySql, etc) e banco não relacional (CosmoDB, MongoDB , DynamoDB, etc), basicamente a diferença é que o relacional oferece maior consistência e confiabilidade e não relacional tem como vantagem uma escalabilidade maior, com a informação agrupada e armazenada no mesmo registro. 

5. CACHE SERVER

O serviço de cache basicamente fornece a consulta e persistência de dados em praticamente tempo real. Os aplicativos geralmente utilizam consulta ao banco de dados que são executadas várias vezes e retornam o mesmo valor, para evitar o processamento dessa informação, o cachê armazena esse resultado em memória e o mantêm disponível pelo tempo configurado para a aplicação, efetuando assim um grande ganho de performance. 

6. JOBS

A maioria dos aplicativos da precisa trabalhar de forma assíncrona, ou seja, que não esteja associada à resposta à solicitação de um usuário. Para isso são utilizado as "filas de trabalho", é através delas que rotinas são agendadas para serem executadas de tempos em tempos para realizar trabalhos que não necessitam que aconteçam diretamente associados a usuários. As opções de linguagem e estruturas subjacentes são tão numerosas quanto para os servidores da web e na sua grande maioria podem ser criados no conceito "serverless ", que são algoritmos que são executados sem servidor e com orientação para eventos. 

7. STORAGE

Esse repositórios são uma maneira simples e escalável de armazenar e acessar dados na nuvem. Eles são perfeitos para qualquer tipo de informação que você armazenaria num sistema de arquivos local, com o beneficio de ser acessível por meio de http de qualquer local. E ainda pode contar com a configuração de redundância para garantir sua alta disponibilidade. 

8. CDN

A CDN (Content Delivery Network) é uma tecnologia que oferece uma maneira de permitir o acesso a arquivos estáticos (html, css, javascript, imagens, etc) mais rapidamente do que permitir que o usuário tenha que chegar até a aplicação web para receber seu conteúdo. Basicamente ele funciona distribuindo uma cópia do conteúdo mais atual entre muitos servidores em todo mundo, assim quando um usuário efetuar o acesso ao aplicativo web, esse conteúdo será entregue pela CDN mais próxima ao usuário e evitando assim consumo de tráfego do servidor, isso irá garantir uma latência bem menor para o usuário e uma melhor experiência.

Trabalhar com a nuvem é simples e complexo ao mesmo tempo. Esses elementos apresentados são uma pequena parte das inúmeras possibilidades que existem para montar uma arquitetura, porém espero que seja útil para dar o ponta pé inicial na sua utilização. Acredite que o futuro das aplicações será inevitavelmente estar na nuvem.

Marcelo Goberto de Azevedo 💫
Arquiteto na GFT Brasil
//marcelogoberto.com.br/