<?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: Marlon Jerold</title>
    <description>The latest articles on DEV Community by Marlon Jerold (@marlonjerold).</description>
    <link>https://dev.to/marlonjerold</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%2F1255459%2F8fd71ea9-9129-4c93-985c-81cafcc64994.jpeg</url>
      <title>DEV Community: Marlon Jerold</title>
      <link>https://dev.to/marlonjerold</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/marlonjerold"/>
    <language>en</language>
    <item>
      <title>[Boost]</title>
      <dc:creator>Marlon Jerold</dc:creator>
      <pubDate>Tue, 03 Jun 2025 12:35:18 +0000</pubDate>
      <link>https://dev.to/marlonjerold/-2hf7</link>
      <guid>https://dev.to/marlonjerold/-2hf7</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/ramonborges15/backup-sem-estresse-como-criar-o-dump-do-seu-bd-postgresql-no-docker-de-forma-simples-oml" class="crayons-story__hidden-navigation-link"&gt;Backup sem estresse: Como criar o dump do seu BD PostgreSQL no Docker de forma simples&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/ramonborges15" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F377045%2F462075ff-71f7-43e9-baa2-7afe80752249.png" alt="ramonborges15 profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/ramonborges15" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Ramon Borges
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Ramon Borges
                
              
              &lt;div id="story-author-preview-content-1678177" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/ramonborges15" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F377045%2F462075ff-71f7-43e9-baa2-7afe80752249.png" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Ramon Borges&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/ramonborges15/backup-sem-estresse-como-criar-o-dump-do-seu-bd-postgresql-no-docker-de-forma-simples-oml" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Nov 27 '23&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/ramonborges15/backup-sem-estresse-como-criar-o-dump-do-seu-bd-postgresql-no-docker-de-forma-simples-oml" id="article-link-1678177"&gt;
          Backup sem estresse: Como criar o dump do seu BD PostgreSQL no Docker de forma simples
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/docker"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;docker&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/postgres"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;postgres&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/devops"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;devops&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/database"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;database&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/ramonborges15/backup-sem-estresse-como-criar-o-dump-do-seu-bd-postgresql-no-docker-de-forma-simples-oml" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/raised-hands-74b2099fd66a39f2d7eed9305ee0f4553df0eb7b4f11b01b6b1b499973048fe5.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;14&lt;span class="hidden s:inline"&gt; reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/ramonborges15/backup-sem-estresse-como-criar-o-dump-do-seu-bd-postgresql-no-docker-de-forma-simples-oml#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              5&lt;span class="hidden s:inline"&gt; comments&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            2 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>docker</category>
      <category>postgres</category>
      <category>devops</category>
      <category>database</category>
    </item>
    <item>
      <title>Implementação de WordPress Escalável na AWS com Docker, RDS e EFS</title>
      <dc:creator>Marlon Jerold</dc:creator>
      <pubDate>Fri, 07 Feb 2025 23:10:37 +0000</pubDate>
      <link>https://dev.to/marlonjerold/implementacao-de-wordpress-escalavel-na-aws-com-docker-rds-e-efs-53m5</link>
      <guid>https://dev.to/marlonjerold/implementacao-de-wordpress-escalavel-na-aws-com-docker-rds-e-efs-53m5</guid>
      <description>&lt;h1&gt;
  
  
  Introdução
&lt;/h1&gt;

&lt;p&gt;Olá, pessoal! Gostaria de compartilhar um pouco sobre o projeto que implementei durante meu estágio em DevSecOps (posso compartilhar tranquilamente).&lt;/p&gt;

&lt;p&gt;Atualmente, estou aprendendo mais sobre como a infraestrutura funciona e, pensando nisso, irei compartilhar a ideia por trás do projeto e a solução adotada.&lt;/p&gt;

&lt;p&gt;Foi solicitado que minha dupla e eu implementássemos a solução para uma arquitetura já predefinida. Portanto, não recomendo utilizar essa solução no dia a dia, pois se trata de um projeto de aprendizagem.&lt;/p&gt;

&lt;p&gt;Dito isso, vamos falar um pouco sobre AWS enquanto apresento o projeto.&lt;/p&gt;

&lt;h1&gt;
  
  
  Sobre O Projeto
&lt;/h1&gt;

&lt;p&gt;Este projeto tem como objetivo demonstrar a implementação de uma aplicação WordPress de forma escalável e segura, utilizando os principais serviços da AWS. A solução combina o uso de containers Docker para a aplicação, um banco de dados gerenciado RDS (MySQL) para armazenamento de dados, e o EFS (Elastic File System) para persistência e compartilhamento de arquivos estáticos.&lt;/p&gt;

&lt;p&gt;Para garantir alta disponibilidade e balanceamento de carga, a arquitetura inclui um Load Balancer configurado para gerenciar o tráfego de entrada. Além disso, o projeto adota boas práticas de segurança, como evitar a exposição direta da aplicação via IP público e centralizar o tráfego através do Load Balancer.&lt;/p&gt;

&lt;p&gt;Com uma abordagem automatizada, a infraestrutura pode ser configurada por meio de scripts de inicialização (user_data.sh) e gerenciada facilmente com Docker Compose, garantindo flexibilidade e facilidade de manutenção.&lt;/p&gt;

&lt;h2&gt;
  
  
  Arquitetura
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr9op33imtnkfm5vkl505.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr9op33imtnkfm5vkl505.png" alt="Image description" width="606" height="457"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Principais Objetivos
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Instalação e Configuração:

&lt;ul&gt;
&lt;li&gt;Instalar e configurar Docker na instância EC2&lt;/li&gt;
&lt;li&gt;Realizar instalação automatizada utilizar arquivo user_data.sh&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Deploy da Aplicação WordPress

&lt;ul&gt;
&lt;li&gt;Implementar o container da aplicação utilizando Docker Compose&lt;/li&gt;
&lt;li&gt;Configurar um banco de dados RDS MySQL para armazenar os dados do WordPress&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Configuração de Armazenamento e Balanceamento de Carga

&lt;ul&gt;
&lt;li&gt;Utilizar EFS (Elastic File System) para armazenar arquivos estáticos do WordPress.&lt;/li&gt;
&lt;li&gt;Configurar um Load Balancer (Classic Load Balancer da AWS) para distribuir o tráfego de entrada.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  Serviços AWS utilizados no Projeto
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;VPC&lt;/li&gt;
&lt;li&gt;RDS (Banco de Dados MySQL)&lt;/li&gt;
&lt;li&gt;EFS&lt;/li&gt;
&lt;li&gt;Instâncias EC2&lt;/li&gt;
&lt;li&gt;Load Balancer&lt;/li&gt;
&lt;li&gt;Auto Scaling&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Ferramentas
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;AWS&lt;/li&gt;
&lt;li&gt;Shell Script&lt;/li&gt;
&lt;li&gt;Linux&lt;/li&gt;
&lt;li&gt;Docker&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Início
&lt;/h2&gt;

&lt;p&gt;O primeiro passo do nosso projeto, é a criação de uma VPC.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bloco CIDR IPv4: 10.0.0.0/16&lt;/li&gt;
&lt;li&gt;Número de Zonas de Disponibilidade (AZs): 2&lt;/li&gt;
&lt;li&gt;Sub-redes: 2 públicas e 2 privadas&lt;/li&gt;
&lt;li&gt;Gateway NAT: 1 por AZ&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Grupo de Segurança
&lt;/h2&gt;

&lt;p&gt;Para o projeto, será necessário criar Grupos de segurança onde será definido regras de entrada e saida.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;sgGroup-loadbalancer

&lt;ul&gt;
&lt;li&gt;HTTP / HTTPS =&amp;gt; IPV4&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;sgGroup-ec2

&lt;ul&gt;
&lt;li&gt;HTTP / HTTPS =&amp;gt; Load Balancer&lt;/li&gt;
&lt;li&gt;SSH =&amp;gt; Qualquer IP&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;sgGroup-rds

&lt;ul&gt;
&lt;li&gt;MySQL/Aurora =&amp;gt; sgGroup-ec2&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;sgGroup-efs

&lt;ul&gt;
&lt;li&gt;NFS =&amp;gt; sgGroup-ec2&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  RDS
&lt;/h2&gt;

&lt;p&gt;O Amazon RDS (Relational Database Service) facilita a configuração, manutenção e escalabilidade de bancos de dados relacionais. Para aumentar a segurança, é essencial utilizar grupos de sub-redes em sub-redes privadas, impedindo o acesso direto à internet e restringindo conexões apenas a instâncias autorizadas. Por esse motivo, o primeiro passo será a criação do grupo de sub-redes privadas.&lt;/p&gt;

&lt;h3&gt;
  
  
  Grupo de Sub-redes Privadas
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Vá em serviço RDS e acesse a aba "Grupos de sub-redes"&lt;/li&gt;
&lt;li&gt;Clicar em Criar Grupo de sub-redes&lt;/li&gt;
&lt;li&gt;Informações

&lt;ul&gt;
&lt;li&gt;Nome do Grupo: ___________&lt;/li&gt;
&lt;li&gt;Descrição: _____________&lt;/li&gt;
&lt;li&gt;VPC: Selecione a VPC que você criou&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Selecionar as zonas de disponibilidas, em seguida, selecionar sub-redes privadas&lt;/li&gt;

&lt;li&gt;Criar Grupo&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  Configurações RDS
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Tipo de banco de dados: MySQL (Nível gratuito).&lt;/li&gt;
&lt;li&gt;Preencher Identificador da instância&lt;/li&gt;
&lt;li&gt;Preencher nome do usuário Principal&lt;/li&gt;
&lt;li&gt;Senha&lt;/li&gt;
&lt;li&gt;Selecionar instância: db.t3.micro&lt;/li&gt;
&lt;li&gt;Desative Backup e Cripografia para testes&lt;/li&gt;
&lt;li&gt;Selecionar VPC Criada&lt;/li&gt;
&lt;li&gt;Selecionar Grupo de sub-redes já criado&lt;/li&gt;
&lt;li&gt;Não permitir acesso público&lt;/li&gt;
&lt;li&gt;Adicionar Grupo de Segurança: sgGroup-rds&lt;/li&gt;
&lt;li&gt;Nome do Banco de dados inicial: wordpress&lt;/li&gt;
&lt;li&gt;Desmarcar escalabilidade automática de armazenamento&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ao criar o RDS, será gerado um IP, salve o IP para acessar o banco para adicionar no nosso arquivo user_data.sh&lt;/p&gt;

&lt;h3&gt;
  
  
  EFS
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Nome: meuEFS&lt;/li&gt;
&lt;li&gt;Selecionar VPC criada&lt;/li&gt;
&lt;li&gt;Zonas de disponibilidade: selecionar sub-redes privadas 1 e 2&lt;/li&gt;
&lt;li&gt;Selecionar grupo de segurança: sgGroup-efs&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Após a criação, você vai acessar o comando de Anexar e "Usando o cliente do NFS"&lt;/li&gt;
&lt;li&gt;Você vai ter que copiar e salvar o comando de montagem do sistema de arquivo Amazon EFS, localizado no arquivo user_data.sh&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Como estamos utilizando Ubuntu, precisamos instalar o Rust para criar o processo de build do nosso EFS e permitir sua montagem em nossa instância.&lt;/p&gt;

&lt;h3&gt;
  
  
  Instalação do EFS Utils
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get update
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get &lt;span class="nt"&gt;-y&lt;/span&gt; &lt;span class="nb"&gt;install &lt;/span&gt;git binutils rustc cargo pkg-config libssl-dev
git clone https://github.com/aws/efs-utils
&lt;span class="nb"&gt;cd &lt;/span&gt;efs-utils
./build-deb.sh
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get &lt;span class="nt"&gt;-y&lt;/span&gt; &lt;span class="nb"&gt;install&lt;/span&gt; ./build/amazon-efs-utils&lt;span class="k"&gt;*&lt;/span&gt;deb
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Montagem do Sistema de Arquivos
&lt;/h3&gt;

&lt;p&gt;Após instalar o EFS Utils, podemos criar e montar nosso sistema de arquivos. Ele será utilizado para compartilhar arquivos entre instâncias.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo mkdir&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; /mnt/efs
&lt;span class="nb"&gt;sudo &lt;/span&gt;mount &lt;span class="nt"&gt;-t&lt;/span&gt; efs &lt;span class="nt"&gt;-o&lt;/span&gt; tls fs-12345678:/ /mnt/efs
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Agora, ao criar um arquivo nesse diretório e acessá-lo a partir de outra instância conectada ao mesmo sistema de arquivos, o arquivo estará disponível em ambas.&lt;/p&gt;

&lt;h3&gt;
  
  
  EC2
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Nome e tags: Seguir o padrão da equipe.&lt;/li&gt;
&lt;li&gt;Sistema operacional: Ubuntu.&lt;/li&gt;
&lt;li&gt;Tipo de instância: Padrão.&lt;/li&gt;
&lt;li&gt;Par de chaves: Criar ou reutilizar um existente.&lt;/li&gt;
&lt;li&gt;Sub-redes:

&lt;ul&gt;
&lt;li&gt;Instância 1: Sub-rede privada 1.&lt;/li&gt;
&lt;li&gt;Instância 2: Sub-rede privada 2.&lt;/li&gt;
&lt;li&gt;Atribuir IP público automaticamente: Habilitado.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Grupo de segurança: sgGroup-ec2&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;Em Configurações avançadas, adicione o user_data.sh.&lt;/p&gt;

&lt;h3&gt;
  
  
  Load Balancer
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Tipo: Classic Load Balancer.&lt;/li&gt;
&lt;li&gt;Nome: MyLoadBalancer.&lt;/li&gt;
&lt;li&gt;Mapeamento de rede: Sub-redes públicas.&lt;/li&gt;
&lt;li&gt;Grupo de segurança: sgGroup-loadbalancer&lt;/li&gt;
&lt;li&gt;Caminho de ping: /wp-admin/install.php (espera-se retorno com status 200).&lt;/li&gt;
&lt;li&gt;Selecionar as duas instâncias que criamos privadas que criamos no tópico de EC2&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Auto Scaling
&lt;/h3&gt;

&lt;p&gt;Modelo de Execução (Template):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tipo de instância: t2.micro&lt;/li&gt;
&lt;li&gt;Tags e User Data: Mesmos das instâncias EC2 anteriores&lt;/li&gt;
&lt;li&gt;Zonas de disponibilidade: Sub-redes privadas&lt;/li&gt;
&lt;li&gt;Integração: Load Balancer existente&lt;/li&gt;
&lt;li&gt;Demais configurações: Padrão&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Após configurar o Auto Scaling, uma nova instância será criada automaticamente, confirmando que o processo foi concluído com sucesso&lt;/p&gt;

&lt;h3&gt;
  
  
  Validação de Sistem de Arquivos
&lt;/h3&gt;

&lt;p&gt;Foi criado um Bastion Host, um servidor que permite o acesso seguro a uma rede privada a partir da internet pública. Para isso, criaremos uma instância pública, nos conectaremos a ela via SSH e, estando dentro da nossa VPC, acessaremos outras instâncias privadas. Em uma dessas instâncias, criaremos um arquivo dentro da pasta EFS, chamado helloworld.txt&lt;/p&gt;

&lt;h3&gt;
  
  
  Instância 1 - EC2
&lt;/h3&gt;

&lt;p&gt;Criamos o arquivo na instância 1&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe7zy7mqi55orxric2ndi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe7zy7mqi55orxric2ndi.png" alt="Instancia 1" width="800" height="99"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Instância 2 - EC2
&lt;/h3&gt;

&lt;p&gt;Temos acesso ao arquivo criado na instância 1 que está presente no nosso sistema de arquivos.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz7723be8atmbsez350b0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz7723be8atmbsez350b0.png" alt="Image description" width="652" height="87"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Fim
&lt;/h3&gt;

&lt;p&gt;Acesse o DNS do Load Balancer para se conectar ao projeto agora&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fry6t6qmqkle35vm5uwhh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fry6t6qmqkle35vm5uwhh.png" alt="Image description" width="651" height="330"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#!/bin/bash&lt;/span&gt;

&lt;span class="c"&gt;# Atualiza o sistema e instala dependências&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get update &lt;span class="nt"&gt;-y&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get upgrade &lt;span class="nt"&gt;-y&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-y&lt;/span&gt; docker.io
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-y&lt;/span&gt; mysql-client

&lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-y&lt;/span&gt; nfs-common

&lt;span class="c"&gt;## Montagem para Linux &lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get &lt;span class="nt"&gt;-y&lt;/span&gt; &lt;span class="nb"&gt;install &lt;/span&gt;git binutils rustc cargo pkg-config libssl-dev
git clone https://github.com/aws/efs-utils
&lt;span class="nb"&gt;cd &lt;/span&gt;efs-utils
./build-deb.sh
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get &lt;span class="nt"&gt;-y&lt;/span&gt; &lt;span class="nb"&gt;install&lt;/span&gt; ./build/amazon-efs-utils&lt;span class="k"&gt;*&lt;/span&gt;deb

&lt;span class="c"&gt;# Cria o diretório efs &lt;/span&gt;
&lt;span class="nb"&gt;sudo mkdir&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; /mnt/efs

&lt;span class="nb"&gt;sudo &lt;/span&gt;mount &lt;span class="nt"&gt;-t&lt;/span&gt; efs &lt;span class="nt"&gt;-o&lt;/span&gt; tls fs-&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;id&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;:/ efs

&lt;span class="c"&gt;# Instalar docker-compose&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;curl &lt;span class="nt"&gt;-L&lt;/span&gt; &lt;span class="s2"&gt;"https://github.com/docker/compose/releases/latest/download/docker-compose-&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;uname&lt;/span&gt; &lt;span class="nt"&gt;-s&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;-&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;uname&lt;/span&gt; &lt;span class="nt"&gt;-m&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="nt"&gt;-o&lt;/span&gt; /usr/local/bin/docker-compose
&lt;span class="nb"&gt;sudo chmod&lt;/span&gt; +x /usr/local/bin/docker-compose

&lt;span class="c"&gt;# Adicionar usuário ao grupo docker&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;usermod &lt;span class="nt"&gt;-aG&lt;/span&gt; docker &lt;span class="nv"&gt;$USER&lt;/span&gt;
newgrp docker

&lt;span class="c"&gt;# Configura o diretório para o projeto WordPress&lt;/span&gt;
&lt;span class="nv"&gt;PROJECT_DIR&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/home/ubuntu/wordpress
&lt;span class="nb"&gt;sudo mkdir&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; &lt;span class="nv"&gt;$PROJECT_DIR&lt;/span&gt;
&lt;span class="nb"&gt;sudo chown&lt;/span&gt; &lt;span class="nt"&gt;-R&lt;/span&gt; &lt;span class="nv"&gt;$USER&lt;/span&gt;:&lt;span class="nv"&gt;$USER&lt;/span&gt; &lt;span class="nv"&gt;$PROJECT_DIR&lt;/span&gt;
&lt;span class="nb"&gt;cd&lt;/span&gt; &lt;span class="nv"&gt;$PROJECT_DIR&lt;/span&gt;

&lt;span class="c"&gt;# Cria o arquivo docker-compose.yml&lt;/span&gt;
&lt;span class="nb"&gt;sudo tee &lt;/span&gt;docker-compose.yml &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; /dev/null &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="no"&gt;EOL&lt;/span&gt;&lt;span class="sh"&gt;
version: '3.8'

services:
  wordpress:
    image: wordpress:latest
    container_name: {name}
    ports:
      - "80:80"
    environment:
      WORDPRESS_DB_HOST: {host}
      WORDPRESS_DB_USER: {user}
      WORDPRESS_DB_PASSWORD: {senha}
      WORDPRESS_DB_NAME: wordpress
    volumes:
      - /mnt/efs:/var/www/html
&lt;/span&gt;&lt;span class="no"&gt;
EOL

&lt;/span&gt;&lt;span class="c"&gt;# Inicia o Docker Compose&lt;/span&gt;
docker-compose up &lt;span class="nt"&gt;-d&lt;/span&gt;

&lt;span class="c"&gt;# Aguarda o container WordPress estar ativo&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"Aguardando o container WordPress iniciar..."&lt;/span&gt;
&lt;span class="k"&gt;until &lt;/span&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;docker ps | &lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="nt"&gt;-q&lt;/span&gt; &lt;span class="s2"&gt;"Up.*wordpress"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do
  &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"Verificando containers em execução..."&lt;/span&gt;
  &lt;span class="nb"&gt;sudo &lt;/span&gt;docker ps
  &lt;span class="nb"&gt;sleep &lt;/span&gt;5
&lt;span class="k"&gt;done
&lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"Container WordPress iniciado!"&lt;/span&gt;


&lt;span class="c"&gt;# Adiciona o arquivo healthcheck.php no container WordPress&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"Criando o arquivo healthcheck.php no container WordPress..."&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;docker &lt;span class="nb"&gt;exec&lt;/span&gt; &lt;span class="nt"&gt;-i&lt;/span&gt; wordpress bash &lt;span class="nt"&gt;-c&lt;/span&gt; &lt;span class="s2"&gt;"cat &amp;lt;&amp;lt;EOF &amp;gt; /var/www/html/healthcheck.php
&amp;lt;?php
http_response_code(200);
header('Content-Type: application/json');
echo json_encode([&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;status&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt; =&amp;gt; &lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;OK&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;, &lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;message&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt; =&amp;gt; &lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;Health check passed&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;]);
exit;
?&amp;gt;
EOF"&lt;/span&gt;

&lt;span class="c"&gt;# Confirma a criação do arquivo&lt;/span&gt;
&lt;span class="k"&gt;if &lt;/span&gt;docker &lt;span class="nb"&gt;exec&lt;/span&gt; &lt;span class="nt"&gt;-i&lt;/span&gt; wordpress &lt;span class="nb"&gt;ls&lt;/span&gt; /var/www/html/healthcheck.php &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; /dev/null 2&amp;gt;&amp;amp;1&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then
  &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"Arquivo healthcheck.php criado com sucesso!"&lt;/span&gt;
&lt;span class="k"&gt;else
  &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"Falha ao criar o arquivo healthcheck.php."&lt;/span&gt;
&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>aws</category>
      <category>devops</category>
      <category>linux</category>
      <category>ubuntu</category>
    </item>
    <item>
      <title>Caminhos para entender a AWS</title>
      <dc:creator>Marlon Jerold</dc:creator>
      <pubDate>Tue, 14 Jan 2025 21:20:08 +0000</pubDate>
      <link>https://dev.to/marlonjerold/caminhos-para-entender-a-aws-348a</link>
      <guid>https://dev.to/marlonjerold/caminhos-para-entender-a-aws-348a</guid>
      <description>&lt;p&gt;Olá, estou estagiando como DevSecOps e vou compartilhar um pouco sobre os caminhos que percorri para entender AWS. Espero que isso possa ajudar você de alguma forma a trilhar seu próprio caminho nesse aprendizado. Não é o único caminho possível, mas é o que fez sentido para mim, considerando uma visão de escopo geral.&lt;/p&gt;

&lt;p&gt;Acredito que entender sistemas operacionais é um bom ponto de partida, pois a todo momento estamos utilizando conceitos de SOs em nossas soluções com AWS.&lt;/p&gt;

&lt;p&gt;No processo de aprendizado sobre SOs, recomendo começar com Linux e compreender como as redes funcionam. Isso é fundamental, pois são tópicos que encontramos frequentemente. Ao estudar Linux, você inevitavelmente entra em conceitos como máquinas virtuais e como configurar e se conectar a rede. Isso te ajudará a entender melhor como configurar uma estação de trabalho com máquinas, algo que também temos disponível na AWS.&lt;/p&gt;

&lt;p&gt;A AWS oferece diversos serviços, e vale a pena explorar a documentação para entender como cada um funciona e quando usá-los. Se você tiver tempo e quiser desenvolver essas habilidades, esse é um caminho que pode fazer sentido.&lt;/p&gt;

&lt;p&gt;Depois de experimentar máquinas virtuais, você pode explorar tópicos de segurança. Não é necessário se aprofundar a ponto de se tornar um "hacker", mas é importante entender como proteger os recursos que você gerencia.&lt;/p&gt;

&lt;p&gt;Existem pessoas que optam por fazer cursos de AWS, o que pode ser uma boa abordagem para alguns. No meu caso, não funcionou, pois acho pouco produtivo pagar para assistir a alguém explicando algo que está na documentação. Porém, existe uma alternativa interessante: o Cloud Quest, oferecido pela própria AWS.&lt;/p&gt;

&lt;p&gt;O Cloud Quest é um jogo que apresenta os serviços da AWS de forma simples e clara. Ele oferece um ambiente de aprendizado onde são apresentados problemas que precisamos resolver. Após a explicação do problema, temos a parte prática, onde aplicamos o que foi ensinado. O melhor de tudo é que não é necessário pagar ou cadastrar um cartão de crédito.&lt;/p&gt;

&lt;p&gt;A AWS fornece um ambiente de aprendizado com laboratórios, permitindo explorar os serviços diretamente. Por exemplo, é possível aprender como resolver problemas de sites estáticos, implementar segurança e trabalhar com outras áreas do ecossistema AWS.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4zphwa7zuszu1fcg3cql.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4zphwa7zuszu1fcg3cql.png" alt="Image description" width="800" height="472"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Realizamos nossas missões e em cada uma delas, conversamos com os NPCs, que nos explicam os problemas que estão enfrentando.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb849o1zt9q8h3lr7x01o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb849o1zt9q8h3lr7x01o.png" alt="Image description" width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Temos a vivência didática da resolução do problema, sempre mostrando a arquitetura. Se for necessário criar instâncias EC2 para atingir o objetivo da missão, os passos são simples, com a explicação do conceito por trás de cada ação e o direcionamento claro para resolver o problema.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdtajwnvhcny0jzwp8985.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdtajwnvhcny0jzwp8985.png" alt="Image description" width="800" height="636"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Para cada cenário, é gerado um laboratório com configurações pré-estabelecidas, garantindo que o aluno não se perca durante a prática. Por exemplo, se o objetivo for resolver o problema de comunicação entre três máquinas, o laboratório fornecerá os passos necessários, já com as configurações básicas elaboradas, permitindo que o aluno se concentre apenas na lógica de comunicação. Isso, na minha opinião, torna o aprendizado mais prático, pois elimina a necessidade de revisar conceitos básicos repetidamente.&lt;/p&gt;

&lt;p&gt;Link do Cloud Quest RPG: &lt;a href="https://aws.amazon.com/pt/training/digital/aws-cloud-quest/" rel="noopener noreferrer"&gt;https://aws.amazon.com/pt/training/digital/aws-cloud-quest/&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Caminhos para ser Desenvolvedor Java.</title>
      <dc:creator>Marlon Jerold</dc:creator>
      <pubDate>Wed, 03 Apr 2024 18:37:40 +0000</pubDate>
      <link>https://dev.to/marlonjerold/caminhos-para-ser-desenvolvedor-java-h4n</link>
      <guid>https://dev.to/marlonjerold/caminhos-para-ser-desenvolvedor-java-h4n</guid>
      <description>&lt;p&gt;Estarei lhe mostrando aqui apenas conteúdos gratuitos para você seguir seu caminho para se tornar uma pessoa que sabe escrever códigos em Java.&lt;/p&gt;

&lt;p&gt;Aqui você verá que não é um caminho fácil, pois acredito que não existem caminhos fáceis para isso.&lt;/p&gt;

&lt;p&gt;Mas vamos lá, partindo do princípio que você nem sabe o que é programação, estarei recomendando conteúdo sobre o que é programação.&lt;/p&gt;

&lt;p&gt;Mas, como não penso que você será apenas um robô, mas sim um desenvolvedor que tem seus próprios pensamentos, convido você a refletir: o que seria programação?&lt;/p&gt;

&lt;p&gt;Programação vai além de escrever códigos, está na capacidade de resolver problemas. Então, estarei compartilhando aqui com você que não é necessário ter uma situação financeira alta para seguir essa carreira.&lt;/p&gt;

&lt;p&gt;Primeiro, vamos conhecer pessoas que estão na luta de compartilhar conteúdos gratuitos de qualidade.&lt;/p&gt;

&lt;p&gt;Já ouviram falar do Guanabara?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://youtu.be/8mei6uVttho?si=VmwtGfdalcgKqDJg" rel="noopener noreferrer"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Antes de você partir para a linguagem Java, recomendo que entenda o que é Algoritmo, e esse canal irá te ensinar de forma gratuita.&lt;/p&gt;

&lt;p&gt;Entendendo bem como funcionam os algoritmos, vamos avançar para um assunto mais profundo: as estruturas de dados. Estruturas de dados são, basicamente, formas de organizar nossos dados para resolver problemas da maneira mais eficiente possível. Por isso, recomendo que você confira esse curso no YouTube sobre estruturas de dados.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://youtu.be/bryesHll0vY?si=RrEoy0k2zQcuS1Ak" rel="noopener noreferrer"&gt;Curso estruturas de dados&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Depois que você entender como algoritmos e estruturas de dados funcionam, e tiver feito alguns miniprojetos básicos envolvendo algoritmos, você perceberá que existe um raciocínio por trás das coisas, uma forma de pensar em programação. Esse conjunto de ideias é chamado de paradigma de programação.&lt;/p&gt;

&lt;p&gt;Com base nos novos conhecimentos adquiridos, você encontrará um dos paradigmas mais utilizados: a Programação Orientada a Objetos, ou POO. Esse conceito vai te ajudar a estruturar melhor seus códigos e criar soluções mais organizadas e eficientes.&lt;/p&gt;

&lt;p&gt;Esse paradigma é fundamental para abordarmos linguagens como Java, que é o assunto deste artigo. A Programação Orientada a Objetos (POO) é a base da linguagem Java, e entender seus conceitos vai permitir que você escreva códigos interessantes.&lt;/p&gt;

&lt;p&gt;No Java, tudo gira em torno de objetos e classes, e entender bem como trabalhar com esses conceitos vai facilitar muito seu aprendizado e sua aplicação em projetos reais.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://youtu.be/Ucyx_QPfDng?si=Bxl1bIs1QuuECP-5" rel="noopener noreferrer"&gt;Curso POO&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Feito esse curso e entendendo o que é o paradigma de Programação Orientada a Objetos (POO), você provavelmente notará que seus projetos ainda estão um pouco desorganizados. Nesse momento, você poderá pesquisar sobre padrões de projeto (design patterns) para ajudar a organizar essa bagunça. Os padrões de projeto são soluções comprovadas para problemas recorrentes em design de software, e vão ajudar a estruturar seu código de forma mais eficiente e reutilizável.&lt;/p&gt;

&lt;p&gt;No entanto, antes de se aprofundar nos padrões de projeto, o próximo passo seria entender o que é uma API. APIs (Interfaces de Programação de Aplicações) são essenciais para comunicação entre sistemas, e ao dominá-las, você será capaz de integrar suas soluções de forma eficaz. Assim, entender o conceito de APIs será crucial para seus projetos mais avançados.&lt;/p&gt;

&lt;p&gt;Então recomendo você assistir esse vídeo.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://youtu.be/TSLoQzJ-6mw?si=LfGvc580zTIPJSWF" rel="noopener noreferrer"&gt;O que são APIs&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Com todo esse conhecimento sobre APIs, você perceberá que pode começar a construir suas próprias APIs. Mas vamos com calma. Primeiro, é importante que você se dedique ao estudo do Java, pois esse é o foco deste artigo. O vídeo que você viu anteriormente pode ser uma excelente fonte de inspiração para você começar a criar programas com Java.&lt;/p&gt;

&lt;p&gt;Agora, meus amigos e amigas, se você sentir que tem mais disposição para se aprofundar, recomendo o canal do DevDojo. Esse canal é simplesmente fantástico! Ele ensina desde os conceitos básicos da linguagem Java até frameworks mais avançados, como o JSF. Com ele, você terá um conteúdo bem estruturado e poderá avançar no aprendizado de Java de forma eficiente.&lt;br&gt;
Então, certamente estarei recomendando essa maratona deles&lt;/p&gt;

&lt;p&gt;&lt;a href="https://youtu.be/VKjFuX91G5Q?si=MFbJ40G4xbqAp108" rel="noopener noreferrer"&gt;Melhor canal para Java&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Você está começando a perceber que no ambiente da tecnologia, existem muitas pessoas dispostas a compartilhar conhecimento de forma gratuita. Eu recomendo que você foque nessas pessoas, pois elas são uma excelente fonte de aprendizado. Se o que você deseja é adquirir conhecimento, e não apenas um pedaço de papel, vale a pena explorar tudo o que o canal DevDojo tem a oferecer.&lt;/p&gt;

&lt;p&gt;Lembre-se, este é apenas um caminho que você pode seguir. Não existem regras rígidas, então aproveite o processo e se divirta na jornada, que pode ser longa e até dolorosa, mas extremamente gratificante.&lt;/p&gt;

&lt;p&gt;Ah, e claro, não poderia esquecer de mencionar o SpringBoot, um framework amplamente utilizado em muitas empresas. Ele facilita a criação de aplicações Java, tornando o desenvolvimento mais ágil e organizado, e é uma excelente escolha para quem quer trabalhar com Java no mercado atual.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://youtu.be/OHn1jLHGptw?si=TZIScad8dNMeJIAF" rel="noopener noreferrer"&gt;E o tal do Springboot?&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Assista a esses conteúdos, mas lembre-se de que simplesmente assistir a cursos não vai te tornar um programador, e muito menos comprar os cursos mais caros. O que realmente vai te tornar um programador é a sua capacidade de resolver problemas. Invista seu tempo em conteúdos gratuitos, pois há uma infinidade de recursos disponíveis na internet.&lt;/p&gt;

&lt;p&gt;Aproveite ao máximo essas ferramentas. Estamos focando inicialmente no seu conhecimento como desenvolvedor, então, você logo perceberá que será capaz de resolver seus problemas usando o Google. Use e abuse dessa ferramenta!&lt;/p&gt;

&lt;p&gt;Além disso, ao longo desse percurso, você se deparará com locais onde armazenamos dados para resolver nossos problemas. Você irá ouvir falar sobre bancos de dados relacionais e não relacionais. Pesquise sobre esses conceitos, pois entender como trabalhar com diferentes tipos de banco de dados é essencial para a maioria das aplicações modernas.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://youtu.be/8fxKJWJcRTw?si=TDtSVmG6Y61NvDgy" rel="noopener noreferrer"&gt;Banco de dados&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusão&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Mesmo que você se jogue em diversos cursos, isso por si só não vai te tornar programador. Coloque a mão na massa, faça suas próprias criações, e busque construir experiências. Durante esse percurso, faça amigos, troque ideias, e seja criativo. &lt;/p&gt;

&lt;p&gt;Este é apenas um caminho que você pode seguir, não é uma regra fixa. Portanto, pense por si mesmo e escolha os caminhos que você deseja seguir para sua carreira. Cada jornada é única.&lt;/p&gt;

&lt;p&gt;Abraços e até logo!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>hello world</title>
      <dc:creator>Marlon Jerold</dc:creator>
      <pubDate>Fri, 01 Mar 2024 00:16:35 +0000</pubDate>
      <link>https://dev.to/marlonjerold/a-utopia-do-planejamento-de-software-26b3</link>
      <guid>https://dev.to/marlonjerold/a-utopia-do-planejamento-de-software-26b3</guid>
      <description>&lt;p&gt;hello world&lt;/p&gt;

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