<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: macariobm</title>
    <description>The latest articles on DEV Community by macariobm (@macariobm).</description>
    <link>https://dev.to/macariobm</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1132594%2Fc1f0ad41-ef15-4ccb-beff-256d67fdd638.png</url>
      <title>DEV Community: macariobm</title>
      <link>https://dev.to/macariobm</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/macariobm"/>
    <language>en</language>
    <item>
      <title>Algoritmo serve para alguma coisa? OSPF e Algoritmo de Dijkstra</title>
      <dc:creator>macariobm</dc:creator>
      <pubDate>Fri, 22 Dec 2023 11:15:41 +0000</pubDate>
      <link>https://dev.to/macariobm/algoritmo-serve-para-alguma-coisa-um-exemplo-com-protocolo-ospf-e-algoritmo-de-dijkstra-4b97</link>
      <guid>https://dev.to/macariobm/algoritmo-serve-para-alguma-coisa-um-exemplo-com-protocolo-ospf-e-algoritmo-de-dijkstra-4b97</guid>
      <description>&lt;p&gt;Quando começamos os estudos na área de computação é comum ouvirmos a importância de estudar lógica e algoritmos. É mais comum ainda que à primeira vista esse estudo seja frustrante e pareça muito abstrato e afastado do nosso imediato.&lt;/p&gt;

&lt;p&gt;Por isso, trago um exemplo de protocolo de roteamento baseado no algoritmo de Edsger Dijkstra, cientista da computação holandês, &lt;a href="https://gdz.sub.uni-goettingen.de/id/PPN362160546_0001?tify=%7B%22view%22:%22info%22,%22pages%22:%5B273%5D%7D"&gt;em artigo inicialmente publicado em 1959&lt;/a&gt;.&lt;/p&gt;

&lt;h4&gt;
  
  
  #️⃣ Uma pequena introdução
&lt;/h4&gt;

&lt;p&gt;Sabemos que a internet é uma rede de redes interconectadas e entre os muitos equipamentos necessários para viabilizar essas conexões estão os roteadores. Essa grande rede de redes pode ser dividida em &lt;strong&gt;Sistemas Autônomos&lt;/strong&gt; (&lt;em&gt;Autonomous Systems&lt;/em&gt;, AS), que de acordo com a &lt;a href="https://www.ietf.org/rfc/rfc2328.txt"&gt;RFC 2328&lt;/a&gt; são "um grupo de roteadores trocando informações de roteamento por meio do mesmo protocolo".&lt;/p&gt;

&lt;p&gt;Para garantir que um AS possa se comunicar com outros ASs existe o &lt;em&gt;Border Gateway Protocol&lt;/em&gt; (BGP), um protocolo de "borda", uma espécie de &lt;a href="https://www.cloudflare.com/pt-br/learning/security/glossary/what-is-bgp/"&gt;correio da internet&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Entre os protocolos internos ao AS (&lt;em&gt;Interior Gateway Protocol&lt;/em&gt;, IGP) está o OSPF ou &lt;em&gt;Open Shortest Path First&lt;/em&gt;. Em tradução livre, menor rota aberta primeiro. É ele que vamos estudar aqui.&lt;/p&gt;

&lt;h4&gt;
  
  
  #️⃣ O que é um grafo?
&lt;/h4&gt;

&lt;p&gt;Um grafo é uma estrutura, uma forma de modelar relações entre entidades ou eventos. É formado por vértices (ou nós) ligados por arestas. Os nós ligados são chamados de adjacências ou vizinhos.  &lt;/p&gt;

&lt;p&gt;A partir desse grafo tirado &lt;a href="https://medium.com/@kp-the-great/how-ospf-protocol-implements-dijkstra-algorithm-53c390199ee8"&gt;do artigo de Krushna Prasad Sahoo&lt;/a&gt; (que vai bem mais fundo na utilização do algoritmo pelo OSPF) podemos começar a entender como tudo funciona.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ltVnhDLr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sz7bh6do9a3bcipp5pgj.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ltVnhDLr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sz7bh6do9a3bcipp5pgj.jpg" alt="um grafo orientado e dirigido de 7 vértices de cores diferentes" width="800" height="333"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  #️⃣ Algoritmo de Dijkstra
&lt;/h4&gt;

&lt;p&gt;O algoritmo basicamente calcula a menor distância entre o nó de origem e todos os outros nós do grafo, atribuindo um valor para cada aresta segundo uma métrica (caracterizando um grafo valorado e dirigido). Isso é feito por meio de iterações até que todos os nós sejam analisados e a menor distância encontrada.&lt;/p&gt;

&lt;p&gt;Por exemplo, no grafo acima o nó de origem é &lt;strong&gt;0&lt;/strong&gt; e o custo de ir de &lt;strong&gt;0&lt;/strong&gt; a &lt;strong&gt;1&lt;/strong&gt; é 2 e de &lt;strong&gt;0&lt;/strong&gt; a &lt;strong&gt;2&lt;/strong&gt; é 6. Para chegarmos ao nó &lt;strong&gt;3&lt;/strong&gt; temos as opções da rota &lt;strong&gt;0&lt;/strong&gt; -&amp;gt; &lt;strong&gt;1&lt;/strong&gt; -&amp;gt; &lt;strong&gt;3&lt;/strong&gt; (custo total 7) ou &lt;strong&gt;0&lt;/strong&gt; -&amp;gt; &lt;strong&gt;2&lt;/strong&gt; -&amp;gt; &lt;strong&gt;3&lt;/strong&gt; (custo total 14). Fica evidente que a melhor rota é a primeira. Simplificadamente, é esse o cálculo realizado pelo algoritmo. &lt;/p&gt;

&lt;p&gt;Mais concretamente: no primeiro estágio do processo cada nó (geralmente um roteador) do Sistema Autônomo usa o Algoritmo de Dijkstra para elaborar a própria rota mais curta (&lt;em&gt;shortest path&lt;/em&gt;) para os nós seguintes. Isso será feito sucessivamente até que se encontre a melhor rota a ser percorrida pelos pacotes até seu destino. Repito: o algoritmo em si é mais complicado e o OSPF funciona de forma mais complexa e conta com mais de uma versão. Para uma visão mais profunda recomenda-se as RFCs.&lt;/p&gt;

&lt;h4&gt;
  
  
  #️⃣ Como é definido o custo?
&lt;/h4&gt;

&lt;blockquote&gt;
&lt;p&gt;custo = largura de banda de referência/largura da banda (em bps)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Quanto maior a largura da banda menor o custo.&lt;/p&gt;

&lt;p&gt;É a partir desse cálculo que os roteadores distribuem o tráfego. Por exemplo, se o custo for igual em todos os caminhos (considerando que sejam rotas internas, de mesmo tipo) o tráfego será igualmente dividido entre todos.&lt;/p&gt;

&lt;p&gt;Calculado o custo, usando seu próprio &lt;em&gt;link state database&lt;/em&gt; cada roteador armazena sua própria tabela de roteamento e a sincroniza com a de seu vizinho por meio do &lt;em&gt;Database Exchange Process&lt;/em&gt;. Para otimizar ainda mais o processo o OSPF permite a criação de &lt;em&gt;áreas&lt;/em&gt;: agrupamentos de redes com topologia interna oculta ao resto do AS. Assim é possível diminuir o tráfego e aumentar o desempenho. Os roteadores possuem um database para cada área que estiverem conectados; portanto, roteadores de borda (conectados a mais de uma área) possuem mais de uma tabela.&lt;/p&gt;

&lt;h4&gt;
  
  
  #️⃣ Outras características do OSPF
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;desenvolvido para funcionar especialmente com TCP/IP e suporta IPv4 e IPv6, além de CIDR&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;é um protocolo dinâmico: a comunicação frequente entre nós permite detecção de qualquer alteração na topologia da rede e consequente novo cálculo das rotas&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;possibilita flexibilidade nas sub-redes, pois permite a utilização do VLSM (Máscara de Sub-rede de Tamanho Variável)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;possui autenticação com senha ou chave criptografada no cabeçalho dos pacotes, evitando que roteadores desconhecidos acessem a rede&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Como pudemos ver o OSPF é um protocolo importante e abrangente e tem no Algoritmo de Dijkstra um de seus pilares. Outros equipamentos usam outros algoritmos para funcionarem, então mesmo que pareçam muito abstratos é importante conhecê-los para termos uma visão melhor sobre nosso objeto de estudo seja ele qual for.&lt;/p&gt;

</description>
      <category>algorithms</category>
      <category>networking</category>
      <category>beginners</category>
      <category>ospf</category>
    </item>
    <item>
      <title>Conceitos básicos de cloud computing, 2.1. Um pouco sobre Infrastructure-as-Code (IaC)</title>
      <dc:creator>macariobm</dc:creator>
      <pubDate>Sun, 29 Oct 2023 11:05:25 +0000</pubDate>
      <link>https://dev.to/macariobm/conceitos-basicos-de-cloud-computing-21-um-pouco-sobre-infrastructure-as-code-iac-75h</link>
      <guid>https://dev.to/macariobm/conceitos-basicos-de-cloud-computing-21-um-pouco-sobre-infrastructure-as-code-iac-75h</guid>
      <description>&lt;p&gt;Já vimos que a virtualização "desacoplou" a infra de computação, armazenamento e redes dos recursos de hardware. Por isso, antes de falar sobre escalabilidade é bom termos uma noção de &lt;em&gt;Infrastructure-as-Code&lt;/em&gt; (IaC), um &lt;em&gt;approach&lt;/em&gt; que nos permite tratar (provisionar e gerenciar) a infraestrutura como um sistema de software.&lt;/p&gt;

&lt;h4&gt;
  
  
  💠O que é IaC?
&lt;/h4&gt;

&lt;p&gt;É uma maneira de construir e gerenciar infraestrutura dinâmica e imutável. Além disso, como é código, nela podem ser adotas práticas de engenharia de software, sendo parte dos processos mais importantes na cultura DevOps, como o CI/CD.&lt;/p&gt;

&lt;p&gt;Tudo bem, é uma infra como código, mas &lt;em&gt;qual&lt;/em&gt; código? &lt;/p&gt;

&lt;p&gt;As ferramentas de IaC usam linguagens declarativas de um nível mais alto, mais legíveis para humanos. Elas podem ser linguagens de serialização de dados como JSON e YAML ou Linguagens Específicas de Domínio (&lt;em&gt;Domain Specific Languages&lt;/em&gt;, DSL) como o HCL da Hashicorp e o Bicep da Microsoft. Para mais informações sobre DSLs &lt;a href="https://www.jetbrains.com/pt-br/mps/concepts/domain-specific-languages/"&gt;clique aqui&lt;/a&gt;.&lt;/p&gt;

&lt;h4&gt;
  
  
  💠O que a IaC tenta resolver?
&lt;/h4&gt;

&lt;p&gt;Entre outros, os principais problemas que a IaC visa resolver são:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;❄️&lt;strong&gt;Drift de configuração&lt;/strong&gt; - dois ou mais ambientes que deveriam ser idênticos (como desenvolvimento, teste e produção) se tornam inconsistentes entre si, causando vulnerabilidades, uso ineficiente de recursos e menor resiliência. Isso pode levar a um segundo problema:&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;❄️&lt;strong&gt;Snowflake servers&lt;/strong&gt; - com o tempo os servidores inconsistentes se tornam tão diferentes que não sabemos mais exatamente como funcionam. São difíceis de reproduzir e caso precisem sofrer alguma mudança os efeitos são imprevisíveis.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Assim, Kief Morris em &lt;em&gt;Infrastructure as Code: Managing Servers in the Cloud&lt;/em&gt; destaca alguns princípios da IaC:&lt;/p&gt;

&lt;p&gt;❄️&lt;strong&gt;Reprodutibilidade&lt;/strong&gt; - deve ser possível reconstruir qualquer elemento de uma infraestrutura sem esforço (a versão do software, o hostname etc. devem estar nos scripts e ferramentas) e de forma segura&lt;/p&gt;

&lt;p&gt;❄️&lt;strong&gt;Consistência&lt;/strong&gt; - dois elementos da infra que fornecem o mesmo serviço devem ser quase idênticos, só mudando aquilo que os faz únicos (como o IP, p. ex.)&lt;/p&gt;

&lt;p&gt;❄️&lt;strong&gt;Repetibilidade&lt;/strong&gt; - qualquer ação na infra deve ser repetível&lt;/p&gt;

&lt;p&gt;❄️&lt;strong&gt;Descartabilidade&lt;/strong&gt; - uma frase de Bill Baker resume esse princípio: &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Trate seus servidores como gado, não como pets&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Explico: devemos pressupor que qualquer elemento da infra pode e será destruído ou substituído a qualquer momento, seja deliberadamente ou por falha do hardware.&lt;/p&gt;

&lt;p&gt;Isso exige que toda mudança de impacto deva ser feita &lt;strong&gt;por meio de scripts automatizados que criam e configuram os servidores&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;❄️&lt;strong&gt;Continuidade do Serviço&lt;/strong&gt; - nosso serviço deve permanecer disponível mesmo quando há falha em algum elemento na infra. Nas palavras de Morris: &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Rodar um serviço continuamente disponível sobre uma infraestrutura descartável&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;❄️&lt;strong&gt;Sistemas auto-testáveis&lt;/strong&gt; - assim como no desenvolvimento de software, qualquer mudança no código deve ser acompanhada por testes automatizados&lt;/p&gt;

&lt;p&gt;❄️&lt;strong&gt;Idempotência&lt;/strong&gt; - uma dada task, script ou operação deve &lt;em&gt;sempre&lt;/em&gt; gerar o mesmo resultado, independente do estado em que o ambiente se encontra&lt;/p&gt;

&lt;p&gt;E o princípio mais importante:&lt;/p&gt;

&lt;p&gt;❄️&lt;strong&gt;Versionamento&lt;/strong&gt; - além de ser facilmente compartilhável, o código da infra versionado proporciona:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;⚡Rastreabilidade - sabemos o &lt;em&gt;que&lt;/em&gt; foi feito, por &lt;em&gt;quem&lt;/em&gt; e o contexto &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;⚡Rollback - quando alguma mudança causa falha é possível saber como tudo estava antes&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;⚡Correlação - quando há versionamento e tudo está relacionado por tags (ou versões) é mais fácil rastrear e resolver problemas&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;⚡Visibilidade - todo o time é avisado quando uma alteração é commitada&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;⚡Transparência - arquivo versionados (scripts, configuração, definições) tendem a ser mais legíveis para humanos&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;⚡"Acionabilidade" - os sistemas de controle de versão permitem a existência de &lt;em&gt;gatilhos&lt;/em&gt;, essenciais para o processo de CI/CD&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Esses princípios junto a scripts facilitam a automação de processos e a escalabilidade de serviços. &lt;/p&gt;

&lt;p&gt;Mas, então, o que é automação?&lt;/p&gt;

&lt;p&gt;Automação não é só usar scripts em ferramentas para facilitar um tarefa manual, isso é o processo de &lt;em&gt;tool building&lt;/em&gt;. Automação é eliminar a necessidade do trabalho manual de tal forma que o próprio script execute sua tarefa &lt;em&gt;automaticamente&lt;/em&gt; (lembra dos gatilho do último princípio de IaC?) sem precisar de uma pessoa.&lt;/p&gt;

&lt;p&gt;Agora sim, com esses conceitos em mente, ficará mais fácil entender a capacidade de escala e redundância da nuvem.&lt;/p&gt;

</description>
      <category>cloudcomputing</category>
      <category>infrastructureascode</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Conceitos básicos de cloud computing, pt. 2. Virtualização, Hypervisor e Máquinas Virtuais (VMs)</title>
      <dc:creator>macariobm</dc:creator>
      <pubDate>Sat, 23 Sep 2023 13:14:30 +0000</pubDate>
      <link>https://dev.to/macariobm/conceitos-basicos-de-cloud-computing-pt-2-virtualizacao-hypervisor-e-maquinas-virtuais-vms-3pge</link>
      <guid>https://dev.to/macariobm/conceitos-basicos-de-cloud-computing-pt-2-virtualizacao-hypervisor-e-maquinas-virtuais-vms-3pge</guid>
      <description>&lt;p&gt;No &lt;a href="https://dev.to/macariobm/conceitos-basicos-de-cloud-computing-pt-1-definicoes-tipos-e-servicos-iaas-paas-saas-57e5"&gt;post anterior&lt;/a&gt; eu mencionei as Máquinas Virtuais e agora chegou o momento de falarmos um pouco mais sobre esse tipo de IaaS. &lt;/p&gt;

&lt;p&gt;Mas antes precisamos dar um passo atrás:&lt;/p&gt;

&lt;h4&gt;
  
  
  💠 O que é virtualização?
&lt;/h4&gt;



&lt;p&gt;O processo de virtualização nada mais é que converter recursos físicos em recursos virtuais. &lt;/p&gt;

&lt;p&gt;Existem os seguintes tipos:&lt;/p&gt;

&lt;p&gt;❄️ &lt;strong&gt;Virtualização em nível de Sistema Operacional (SO)&lt;/strong&gt; - um software de virtualização (como o Docker) é instalado num SO e, a partir dele, cria, executa e distribui aplicações em pacotes de código com suas dependências. Esses pacotes (chamadas de &lt;em&gt;containers&lt;/em&gt;) são independentes entre si e compartilham o &lt;em&gt;kernel&lt;/em&gt; (núcleo) do Sistema Operacional do &lt;em&gt;host&lt;/em&gt;. Isso permite que vários elementos de uma aplicação funcionem paralelamente e que sejam leves e portáteis, favorecendo, por exemplo, a arquitetura de microsserviços.&lt;/p&gt;

&lt;p&gt;❄️ &lt;strong&gt;Virtualização de Hardware&lt;/strong&gt; - nesse caso a virtualização se dá por meio de um software chamado &lt;strong&gt;Hypervisor&lt;/strong&gt; que permite virtualizar CPUs, discos, rede, RAM e gerenciar vários servidores virtuais sobre um mesmo &lt;em&gt;host&lt;/em&gt;. Como não compartilham o &lt;em&gt;kernel&lt;/em&gt; do SO, é possível rodar servidores Linux sobre um &lt;em&gt;host&lt;/em&gt; Windows e vice-versa. Apesar dessa flexibilidade, não podemos perder de vista que todos os recursos compartilham a capacidade de processamento do &lt;em&gt;host&lt;/em&gt;. &lt;/p&gt;

&lt;h4&gt;
  
  
  💠 Tipos de Hypervisor
&lt;/h4&gt;



&lt;p&gt;🌀 &lt;strong&gt;Hypervisor tipo 1&lt;/strong&gt; - roda logo acima do hardware do &lt;em&gt;host&lt;/em&gt; sem precisar de um SO. São exemplos de Hypervisor tipo 1: Hyper-V e VMWARE ESXi. Esse tipo é mais comum em ambientes empresariais.&lt;/p&gt;

&lt;p&gt;🌀 &lt;strong&gt;Hypervisor tipo 2&lt;/strong&gt; - roda sobre o SO do &lt;em&gt;host&lt;/em&gt; e são normalmente direcionados ao usuário final. São exemplos de Hypervisor tipo 2: VMWARE Workstation e VirtualBox.&lt;/p&gt;

&lt;p&gt;É possível unir os dois tipos de virtualização com a chamada &lt;strong&gt;virtualização aninhada&lt;/strong&gt; ao rodar containers em servidores virtuais.&lt;/p&gt;

&lt;h4&gt;
  
  
  💠 Mas e as Máquinas Virtuais?
&lt;/h4&gt;

&lt;p&gt;As Máquinas Virtuais (&lt;em&gt;Virtual Machines&lt;/em&gt; ou VMs) são exatamente esses servidores virtuais gerenciados pelo &lt;em&gt;Hypervisor&lt;/em&gt; que descrevemos ali em cima. Num ambiente cloud, como a VM é um serviço de IaaS, nós enquanto clientes nem nos preocupamos com os recursos computacionais físicos, apenas com o tipo de recurso virtualizado (os provedores oferecem várias VMs com diferentes capacidades) e o que fazemos com eles. &lt;/p&gt;

&lt;p&gt;Para ilustrar segue uma imagem didática sobre as diferenças que falamos aqui:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--PoHm9MDY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://raw.githubusercontent.com/badtuxx/DescomplicandoDocker/main/media/image3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PoHm9MDY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://raw.githubusercontent.com/badtuxx/DescomplicandoDocker/main/media/image3.png" alt="desenho exemplificando a diferença entre os tipos de virtualização" width="800" height="358"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h6&gt;
  
  
  A fonte é o excelente &lt;a href="https://github.com/badtuxx/DescomplicandoDocker/tree/main/chapters"&gt;Descomplicando Docker&lt;/a&gt; do Jeferson da LinuxTips.
&lt;/h6&gt;

&lt;p&gt;No próximo post veremos como esses recursos são facilmente escaláveis, replicáveis e um pouco sobre redundância.&lt;/p&gt;

</description>
      <category>cloudcomputing</category>
      <category>beginners</category>
      <category>azure</category>
      <category>virtualmachine</category>
    </item>
    <item>
      <title>Conceitos básicos de cloud computing, pt 1. Definições, tipos e serviços (IaaS, PaaS, SaaS)</title>
      <dc:creator>macariobm</dc:creator>
      <pubDate>Thu, 14 Sep 2023 21:08:47 +0000</pubDate>
      <link>https://dev.to/macariobm/conceitos-basicos-de-cloud-computing-pt-1-definicoes-tipos-e-servicos-iaas-paas-saas-57e5</link>
      <guid>https://dev.to/macariobm/conceitos-basicos-de-cloud-computing-pt-1-definicoes-tipos-e-servicos-iaas-paas-saas-57e5</guid>
      <description>&lt;p&gt;Esse é o primeiro post de uma série sobre cloud computing que vou usar para sistematizar o que estou aprendendo e, com sorte, ajudar outros no mesmo barco 😊&lt;/p&gt;

&lt;p&gt;Nos exemplos uso o Azure, serviço de nuvem da Microsoft que estou usando para estudar. Vamos começar?&lt;/p&gt;

&lt;p&gt;💠 O que é cloud computing?&lt;/p&gt;

&lt;p&gt;Segundo Thomas Erl, Ricardo Puttini e Zaigham Mahmood (&lt;em&gt;Cloud Computing: Concepts, Technology and Architecture&lt;/em&gt;) computação em nuvem é uma forma de computação distribuída que fornece recursos escaláveis e mensuráveis de forma remota.&lt;/p&gt;

&lt;p&gt;Já segundo o National Institute of Standards and Technology (NIST) do governo dos EUA, é um modelo que permite acesso a recursos computacionais (redes, servidores, armazenamento, aplicações e serviços) de qualquer lugar de forma conveniente e sob demanda. &lt;/p&gt;

&lt;p&gt;💠 Como isso é possível?&lt;/p&gt;

&lt;p&gt;O cliente pode não se preocupar com a infra física, mas o provedor (Azure, AWS, GCP etc.) sim. São os datacenters conectados entre si por uma rede dedicada que dão base à nuvem, garantindo alta disponibilidade, redundância e segurança.&lt;/p&gt;

&lt;p&gt;💠 Quais são os principais tipos de nuvem?&lt;/p&gt;

&lt;p&gt;☁️ &lt;strong&gt;Nuvem Pública&lt;/strong&gt; - é de acesso público e é controlada, mantida e administrada por um provedor.&lt;/p&gt;

&lt;p&gt;No caso da Nuvem Pública o cliente (uma pessoa física, uma empresa, um governo) contrata o serviço de nuvem para ter acesso a um leque de recursos computacionais. &lt;/p&gt;

&lt;p&gt;☁️ &lt;strong&gt;Nuvem Privada&lt;/strong&gt; - funciona como uma "extensão" do datacenter corporativo e serve para centralizar o acesso a recursos de nuvem de uma empresa. Pode ser mantido pela própria empresa ou fora dela com um datacenter de terceiros.&lt;/p&gt;

&lt;p&gt;☁️ &lt;strong&gt;Nuvem Comunitária&lt;/strong&gt; - parecido com a nuvem pública, porém com acesso restrito aos membros da comunidade (também responsáveis por desenvolver e manter a própria nuvem).&lt;/p&gt;

&lt;p&gt;☁️ &lt;strong&gt;Nuvem Híbrida&lt;/strong&gt; - um modelo que combina dois ou mais dos tipos anteriores.&lt;/p&gt;

&lt;p&gt;💠 E por que as empresas escolheriam o cloud computing?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Redução de despesas com bens de capital (CapEx)&lt;/strong&gt; - usando um servidor próprio (também chamado de "on-premise") a empresa deve arcar com custos como edifício para o datacenter, fornecimento de energia, refrigeração, infra de rede, segurança, compra do hardware, manutenção e um longo etc.&lt;/p&gt;

&lt;p&gt;Já os serviços de nuvem pública funcionam num sistema de pagamento &lt;br&gt;
conforme o uso ("pay-as-you-go"): só se paga pelo recurso que &lt;br&gt;
for usado. Isso não quer dizer que sejam baratos, no entanto, os provedores fornecem dashboards, gráficos e ferramentas para monitoramento, controle e previsão de &lt;strong&gt;despesas operacionais (OpEx)&lt;/strong&gt;. Esse é o caso da Análise de Custos do Azure.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Agilidade organizacional&lt;/strong&gt; - por ser mais flexível permite que a empresa se adapte a mudanças repentinas (mais ou menos demanda, p. ex.) sem ser limitada pela capacidade computacional da sua infraestrutura física.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;💠 Quais os principais serviços de nuvem?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;💻 &lt;strong&gt;Infrastructure-as-a-Service (IaaS)&lt;/strong&gt; - fornecimento de recursos de infraestrutura física e virtual sob demanda, como Máquinas Virtuais (VMs),  bancos de dados e redes virtuais. Nesse caso o cliente fica responsável por instalar, gerenciar e monitorar os softwares, além de ter a liberdade de configurar recursos como VPNs, load-balancers e firewalls.&lt;/p&gt;

&lt;p&gt;Exemplo de IaaS: uma VM de 32gb de RAM, 4gb de memória, SLA &lt;br&gt;
 de 95% a $0.95/h e $0.05 por gb transferido (vou explicar &lt;br&gt;
 alguns desses conceitos no próximo post).&lt;br&gt;
&lt;br&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;💻 &lt;strong&gt;Platform-as-a-Service (PaaS)&lt;/strong&gt; - um ambiente já configurado e pronto para o ciclo de vida da aplicação. Nesse caso o cliente tem menos controle sobre o provisionamento e hospedagem. Seu deploy pode acontecer sobre uma infra "on-premise" ou uma IaaS.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;



&lt;ul&gt;
&lt;li&gt;💻 &lt;strong&gt;Software-as-a-Service (SaaS)&lt;/strong&gt; - um software completo e já disponível nos &lt;em&gt;marketplaces&lt;/em&gt; que podem ir desde serviços de e-mail do dia-a-dia até softwares de sistemas de planejamento de recursos empresarias (ERP). Essa opção permite o menor grau de controle por parte do cliente.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No próximo post vamos falar um pouco mais de virtualização e Máquinas Virtuais. Até a próxima! 😉&lt;/p&gt;

</description>
      <category>cloudcomputing</category>
      <category>beginners</category>
      <category>azure</category>
      <category>learning</category>
    </item>
  </channel>
</rss>
