<?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: Marcon Neves</title>
    <description>The latest articles on DEV Community by Marcon Neves (@marconneves).</description>
    <link>https://dev.to/marconneves</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%2F604084%2Fd9bc6a61-2341-4b77-abfe-7fb31270cc13.png</url>
      <title>DEV Community: Marcon Neves</title>
      <link>https://dev.to/marconneves</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/marconneves"/>
    <language>en</language>
    <item>
      <title>Prevendo Custo de Arquitetura Terraform</title>
      <dc:creator>Marcon Neves</dc:creator>
      <pubDate>Fri, 10 May 2024 11:13:13 +0000</pubDate>
      <link>https://dev.to/marconneves/prevendo-custo-de-arquitetura-terraform-3pci</link>
      <guid>https://dev.to/marconneves/prevendo-custo-de-arquitetura-terraform-3pci</guid>
      <description>&lt;p&gt;Estes dias estava navegando pelo Twitter, e acabei vendo uma recomendação de um Dev para uma ferramenta que prometia prever o custo de uma &lt;strong&gt;infra&lt;/strong&gt; levantada com &lt;strong&gt;Terraform&lt;/strong&gt;. Achei muito incrível principalmente para projetos &lt;strong&gt;Open Source&lt;/strong&gt; que muitas das vezes trabalha com pouco capital ou com ajuda da comunidade, saber o que custara cada parte da infra de previsão muito importante.&lt;/p&gt;

&lt;p&gt;Segue a ferramenta discutida neste artigo: &lt;a href="https://www.infracost.io" rel="noopener noreferrer"&gt;InfraCost&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Eu sou o The Mark e hoje vamos nos aprofundar um pouco mais nesta ferramenta DevOps.&lt;/p&gt;

&lt;h2&gt;
  
  
  Terraform?
&lt;/h2&gt;

&lt;p&gt;O intuito do Terraform é trazer a montagem de sua infra para o código (infraestrutura como código), assim facilitaria na hora de instanciar projetos novos, sem precisar de ficar criando a mesma em Dashboard. &lt;br&gt;
    Assim com o terraform é possível criar uma estrutura inteira na AWS, Google Cloud, Azure entre outros, usando apenas o código. E esta aqui o problema, como você só vê o código, muitas as vezes é complexo usar calculadoras para chegar aos custos destes serviços.&lt;/p&gt;
&lt;h2&gt;
  
  
  O InfraCost
&lt;/h2&gt;

&lt;p&gt;A grande motivação do InfraCost é facilitar a manutenção dos custos de uma infra, ele consegue prever o custo ha partir das informações inseridas no terraform.&lt;/p&gt;
&lt;h3&gt;
  
  
  CLI do InfraCost
&lt;/h3&gt;

&lt;p&gt;A CLI do InfraCost é muito simples e completa ao mesmo tempo, para instalar ele é só seguir a documentação: &lt;a href="https://www.infracost.io/docs/" rel="noopener noreferrer"&gt;Guia de Iniciação&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Quando já tiver a CLI instalada e autenticada, para começar prever o custo de sua infra é só executar o comando:&lt;br&gt;
&lt;code&gt;infracost breakdown --path .&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Neste caso estou prevendo que você tenha navegado até a raiz da sua infra!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2FeVgELo5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2FeVgELo5.png" alt="Exemplo do uso da CLI"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Assim esta ferramenta consegue calcular sem configurações extras recursos com custos mensais.&lt;/p&gt;
&lt;h3&gt;
  
  
  Custo por Uso
&lt;/h3&gt;

&lt;p&gt;Quando falamos de recursos que o custo é baseado no uso, ai normalmente é mais complexo de se chegar a um valor gasto, porem para isso o Terraform tem suporte a um arquivo yml com a previsão de uso deste recurso, e com estas informações ele conseguira calcular e prever o custo final.&lt;/p&gt;

&lt;p&gt;Neste exemplo inclui um novo S3 Bucket na infra do TabNews, e previ para ele um Storage mensal de 1000GB, um total de 10.000 PUB, COPY, POST, e 100.000 GET e SELECT mensais para o mesmo.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="c1"&gt;# See https://infracost.io/usage-file/ for docs&lt;/span&gt;
&lt;span class="na"&gt;version&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0.1&lt;/span&gt;
&lt;span class="na"&gt;resource_usage&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;aws_s3_bucket.test&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;standard&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="c1"&gt;# Usages of S3 Standard:&lt;/span&gt;
      &lt;span class="na"&gt;storage_gb&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1000&lt;/span&gt; &lt;span class="c1"&gt;# Total storage in GB.&lt;/span&gt;
      &lt;span class="na"&gt;monthly_tier_1_requests&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;10000&lt;/span&gt; &lt;span class="c1"&gt;# Monthly PUT, COPY, POST, LIST requests (Tier 1).&lt;/span&gt;
      &lt;span class="na"&gt;monthly_tier_2_requests&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;100000&lt;/span&gt; &lt;span class="c1"&gt;# Monthly GET, SELECT, and all other requests (Tier 2).&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Assim o InfraCost foi capas de prever um custo extra por este Bucket quando eu passo como parâmetro o caminho deste arquivo .yml de custo.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2FHNIMSzd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2FHNIMSzd.png" alt="Exemplo de uso de arquivo de uso"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Caso precise de um exemplo de quais parâmetros são possível, basta dar uma olhadinha no exemplo completo de uso &lt;a href="https://github.com/infracost/infracost/blob/master/infracost-usage-example.yml" rel="noopener noreferrer"&gt;infracost-usage-example.yml&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  GitHub Actions
&lt;/h3&gt;

&lt;p&gt;Alem disso o InfraCost tem support aos GitHub Actions, desta forma ao ser criado um PR, ele fará um comentário com o custo da infra atual, e o futuro, como no exemplo que peguei no site deles abaixo!&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2Fs4om6BM.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2Fs4om6BM.png" alt="Exemplo GitHub Actions e InfraCost"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Extensão VSCode
&lt;/h3&gt;

&lt;p&gt;Alem de tudo isso, a ferramenta também tem uma versão para o VSCode, a mesma mostra em tempo real o custo da infra como no gif abaixo!&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2Fhf1fZqJ.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2Fhf1fZqJ.gif" alt="GIF Uso do infra cost no VSCode"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusão
&lt;/h2&gt;

&lt;p&gt;O InfraCost é super poderoso e tem outras funcionalidades que acabei não falando por aqui, porem sua utilidade ao criarmos uma infra é surreal, podendo ter a previsão de custo a qualquer momento. &lt;/p&gt;

&lt;p&gt;Espero que tenham gostado, comentem caso tenha qualquer duvida e estou bolando um PR para caso acham interessante, incluirmos o mesmo no projeto do Tabnews para podermos ter sempre o custo da nossa infra em cada PR quando o mesmo tiver alguma alteração!&lt;/p&gt;

&lt;h2&gt;
  
  
  Saiba mais
&lt;/h2&gt;

&lt;p&gt;Documentação InfraCost: &lt;a href="https://www.infracost.io/docs/" rel="noopener noreferrer"&gt;https://www.infracost.io/docs/&lt;/a&gt;&lt;br&gt;
Alguns casos de uso do InfraCost: &lt;a href="https://www.infracost.io/use-cases/" rel="noopener noreferrer"&gt;https://www.infracost.io/use-cases/&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
