<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Thiago Silva - @thihenos on Medium]]></title>
        <description><![CDATA[Stories by Thiago Silva - @thihenos on Medium]]></description>
        <link>https://medium.com/@thihenos?source=rss-b0eeed2148f3------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*D_Qr9n6SPtQ4xs_KfCF2TQ.png</url>
            <title>Stories by Thiago Silva - @thihenos on Medium</title>
            <link>https://medium.com/@thihenos?source=rss-b0eeed2148f3------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sun, 15 Nov 2026 10:48:17 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@thihenos/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[Arquitetura em Camadas para Pipelines CI/CD — Parte 3]]></title>
            <link>https://thihenos.medium.com/arquitetura-em-camadas-para-pipelines-ci-cd-parte-3-43bb308dc6c4?source=rss-b0eeed2148f3------2</link>
            <guid isPermaLink="false">https://medium.com/p/43bb308dc6c4</guid>
            <category><![CDATA[ci-cd-pipeline]]></category>
            <category><![CDATA[devops]]></category>
            <category><![CDATA[technology]]></category>
            <category><![CDATA[tech]]></category>
            <dc:creator><![CDATA[Thiago Silva - @thihenos]]></dc:creator>
            <pubDate>Tue, 28 Jul 2026 15:09:23 GMT</pubDate>
            <atom:updated>2026-07-28T15:09:23.042Z</atom:updated>
            <content:encoded><![CDATA[<h4>Como Funciona e Por Que Importa, definições e explicações praticas</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/815/1*-mN5z349GwqT6_CnUOKBUg.png" /><figcaption>imagem de autoria própria usada em debates/troubleshooting</figcaption></figure><p>Continuando nossa série sobre a arquitetura de uma pipeline, caso você tenha perdido a primeira parte do artigo, clique <a href="https://medium.com/toolbox-devops/arquitetura-em-camadas-para-pipelines-ci-cd-parte-1-b4269a304244">aqui</a>.</p><h3>Autênticações</h3><p>A <strong>camada de autenticação</strong> é uma das mais importantes. Ela se destaca na <strong>ponte de confiança</strong> entre sua automação e os serviços externos como Sonar, GoogleCloud e etc. Garantindo assim que o pipeline possa acessar recursos necessários sem expor credenciais de usuários. Quando chamamos algum serviço, seja por API ou usando templates prontos de pipeline, precisamos muita das vezes nos autenticar para usar o serviço. Normalmente essas chaves ou senhas de autenticação ficam salvas como sugerido no primeiro artigo.</p><h3>Por que isso é tão importante?</h3><p>Imagine uma empresa com 100 pipelines e sem uma camada de autenticação ? Naturalmente, cada projeto iria se autenticar de uma forma diferente, com possibilidades de senhas espalhadas por YAML, scripts e etc. Em alguns casos, como Azure DevOps ou a versão Enterprise de GitHub, você consegue manter toda camada de autenticação centralizada em um único.</p><pre>Pipeline<br>  ↓<br>Identity<br>  ↓<br>Resource</pre><p>Além de uma pipeline não deveria ter acesso de administrador, seguindo a lógica de centralizar credenciais, você consegue manter a boa prática de <em>Least Privilege.</em></p><p>Nesse cenário, em caso de aumento de criação de pipelines, conseguimos também manter a escalabilidade com pouca configuração, mantendo assim um padrão sólido e consistente de controle de serviços e acessos.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/867/1*j-36rwyFBhle4tzbXf5l8A.png" /></figure><p>Essa separação é o que transforma uma pipeline de um simples conjunto de scripts em uma <strong>plataforma segura, auditável e escalável</strong>, que é exatamente o objetivo da arquitetura em camadas proposta no artigo.</p><p>Isolar a autenticação de sua pipeline garante 4 grandes princípios de uma boa arquitetura: segurança, menor privilégio, auditoria e escalabilidade. Isso torna fácil a execução de um projeto que se escala conforme o crescimento da empresa.</p><p>Já conhece nosso canal no <a href="https://www.youtube.com/@ToolboxTechnology">youtube</a>?<br>E nosso canal público do <a href="https://discord.gg/RZ9ahphmDc">Discord</a>?🔗</p><p>Entre em contato também através do nosso email <strong>engenharia@tbxtech.com</strong>, até mais!</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=43bb308dc6c4" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Arquitetura em Camadas para Pipelines CI/CD — Parte 2]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://blog.tbxtech.com.br/arquitetura-em-camadas-para-pipelines-ci-cd-parte-2-2718f02410aa?source=rss-b0eeed2148f3------2"><img src="https://cdn-images-1.medium.com/max/815/1*-mN5z349GwqT6_CnUOKBUg.png" width="815"></a></p><p class="medium-feed-snippet">Como Funciona e Por Que Importa, defini&#xE7;&#xF5;es e explica&#xE7;&#xF5;es praticas</p><p class="medium-feed-link"><a href="https://blog.tbxtech.com.br/arquitetura-em-camadas-para-pipelines-ci-cd-parte-2-2718f02410aa?source=rss-b0eeed2148f3------2">Continue reading on tbx-tech/editorial »</a></p></div>]]></description>
            <link>https://blog.tbxtech.com.br/arquitetura-em-camadas-para-pipelines-ci-cd-parte-2-2718f02410aa?source=rss-b0eeed2148f3------2</link>
            <guid isPermaLink="false">https://medium.com/p/2718f02410aa</guid>
            <category><![CDATA[technology]]></category>
            <category><![CDATA[tech]]></category>
            <category><![CDATA[devops]]></category>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[pipeline]]></category>
            <dc:creator><![CDATA[Thiago Silva - @thihenos]]></dc:creator>
            <pubDate>Tue, 09 Jun 2026 16:11:30 GMT</pubDate>
            <atom:updated>2026-08-18T22:22:50.366Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Arquitetura em Camadas para Pipelines CI/CD — Parte 1]]></title>
            <link>https://blog.tbxtech.com.br/arquitetura-em-camadas-para-pipelines-ci-cd-parte-1-b4269a304244?source=rss-b0eeed2148f3------2</link>
            <guid isPermaLink="false">https://medium.com/p/b4269a304244</guid>
            <category><![CDATA[azure-devops]]></category>
            <category><![CDATA[devops]]></category>
            <category><![CDATA[ci-cd-pipeline]]></category>
            <category><![CDATA[technology]]></category>
            <category><![CDATA[programming]]></category>
            <dc:creator><![CDATA[Thiago Silva - @thihenos]]></dc:creator>
            <pubDate>Sat, 23 May 2026 20:40:42 GMT</pubDate>
            <atom:updated>2026-08-18T22:25:12.627Z</atom:updated>
            <content:encoded><![CDATA[<h4>Como Funciona e Por Que Importa, definições e explicações praticas</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/815/1*-mN5z349GwqT6_CnUOKBUg.png" /><figcaption>imagem de autoria própria usada em debates/troubleshooting</figcaption></figure><p>Ambientes de pipelines de CI/CD vão muito além de scripts e deployments. Naturalmente, qualquer projeto cresce e com isso surge a necessidade de uma arquitetura mais organizada e reutilizável ( caso você não queira sofrer gerenciando pipelines como unidade ) .</p><p>Neste artigo, irei apresentar de forma organizada uma arquitetura de CI/CD em <strong>camadas bem definidas</strong>, cada uma com responsabilidades específicas, promovendo:</p><ul><li>Reuso</li><li>Padronização</li><li>Segurança</li><li>Escalabilidade</li><li>Facilidade de manutenção</li></ul><h3>Templates — O que representa</h3><p>A camada de <strong>Templates</strong> é o alicerce da arquitetura. Aqui é onde iremos reaproveitar trecho de códigos, containers, scripts. O principal objetivo desse princípio é você organizar suas ideias e entender como os procedimentos irão acontecer dentro da sua pipeline. Sem templates reaproveitáveis, cada nova pipeline começaria do zero, isso até que não é um problema, mas quando você está em um ambiente onde 100 repositórios usam a mesma pipeline, isso acaba se tornando um trabalho de grandeza exponencial e nada escalável. Melhor efetuar manutenção em um único lugar com grandes riscos do que em diversos lugares com risco menor.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*PNWy0Z4df8dPF51dNJvP9w.png" /></figure><p>Além do exemplo apresentado, você pode criar templates para deployments, integrações e outros processos.</p><h3>Parameters — Configuração Dinâmica</h3><p>Após criarmos os fundamentos da base da pipeline, o segundo passo é pensar em como deixar o comportamento desses templates flexíveis e dinamicos. Vamos imaginar que a pipeline é um liquidificador, esse liquidificador tem a capacidade de gerar um suco ou vitamina, certo? Agora, imagina que eu quero suco de laranja e você de limão. Para isso, você utilizaria o mesmo template com a função “fazer suco”, que seria o liquidificador, e os parâmetros seriam nossas diferentes escolhas, por exemplo:</p><ul><li>Qual versão do NodeJS que você quer utilizar ?</li><li>Sua aplicação tem teste de contrato? Tem teste de integração?</li><li>Vocês fazem delivery de arquivos? Ou deployment de um container?</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*pxYSwdvwCK4VWsvC4mlVjQ.png" /></figure><p>Considerações finais, Templates = estrutura fixa e Parameters = variáveis de comportamento dentro dessa estrutura</p><h3>Variables — Configurações e Contexto</h3><p>Aprendemos a criar nossa arquitetura, depois entendemos como podemos generalizar a execução, tornando nossa pipeline mais reaproveitável possivel. Agora abordaremos as variáveis e o por que elas são úteis.</p><p>Variaveis representam valores que variam por ambiente ou contextos. Imagine que você tem uma ferramenta para fazer análise do seu código e descobrir se há erros ou falhas. Essa ferramenta se encontra na versão 1.0, porém, você percebe que a nova versão, a 2.0, contém novas funcionalidades, e agora? Como iremos atualizar todos os parametros ?</p><p>Neste momento é onde fazemos a separação de responsabilidades. O time de desenvolvimento deve apenas se responsabilizar por determinar o comportamento das pipelines através dos parametros, por exemplo, escolhendo qual é a stack que iremos buildar o código, versão, se há testes ou não. Quem determina o comportamento das pipelines é o time de DevOps, e a melhor forma de fazer isso é através de variaveis, exatamente pela facilidade que temos de centralizar todos esses dados apenas em um unico local e nossas pipeline absorverem essas informações.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*aPIlcEUvrpFpB9htSoofHg.png" /></figure><p>Isso faz com que temos uma solução que armazenar configurações sensíveis ou configurações e evita hardcoding.</p><p>Para que o texto não fique extenso, vou encerrar as provocações por aqui e continuar em breve nas próximas publicações, fiquem atentos!</p><p>Veja outros temas da área em nosso canal do YouTube <a href="https://www.youtube.com/@ToolboxTechnology">(link)</a>.</p><p>E participe também do nosso canal no Discord, com dicas e laboratórios (<a href="https://discord.gg/dKPeKFsBE3">link do Discord</a>).</p><p>Tem alguma dúvida ou sugestão? Mande para a gente pelo nosso e-mail: <a href="/service/mailto:engenharia@tbxtech.com">engenharia@tbxtech.com</a>.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=b4269a304244" width="1" height="1" alt=""><hr><p><a href="https://blog.tbxtech.com.br/arquitetura-em-camadas-para-pipelines-ci-cd-parte-1-b4269a304244">Arquitetura em Camadas para Pipelines CI/CD — Parte 1</a> was originally published in <a href="https://blog.tbxtech.com.br/">tbx-tech/editorial</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Como Organizar Um Time de Alta Performance — parte 3]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://blog.tbxtech.com.br/como-organizar-um-time-de-alta-performance-parte-3-b38f5e86b602?source=rss-b0eeed2148f3------2"><img src="https://cdn-images-1.medium.com/max/1000/0*CB6juFQ2-IrvMtot.png" width="1000"></a></p><p class="medium-feed-snippet">A arte da estrat&#xE9;gia&#x200A;&#x2014;&#x200A;Como blindar o time e criar equil&#xED;brio na gest&#xE3;o.</p><p class="medium-feed-link"><a href="https://blog.tbxtech.com.br/como-organizar-um-time-de-alta-performance-parte-3-b38f5e86b602?source=rss-b0eeed2148f3------2">Continue reading on tbx-tech/editorial »</a></p></div>]]></description>
            <link>https://blog.tbxtech.com.br/como-organizar-um-time-de-alta-performance-parte-3-b38f5e86b602?source=rss-b0eeed2148f3------2</link>
            <guid isPermaLink="false">https://medium.com/p/b38f5e86b602</guid>
            <category><![CDATA[business]]></category>
            <category><![CDATA[software]]></category>
            <category><![CDATA[technology]]></category>
            <category><![CDATA[team]]></category>
            <category><![CDATA[management]]></category>
            <dc:creator><![CDATA[Thiago Silva - @thihenos]]></dc:creator>
            <pubDate>Wed, 03 Apr 2024 15:47:55 GMT</pubDate>
            <atom:updated>2026-08-18T23:13:04.951Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Como Organizar Um Time de Alta Performance — parte 2]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://blog.tbxtech.com.br/como-organizar-um-time-de-alta-performance-parte-2-42e134ba5317?source=rss-b0eeed2148f3------2"><img src="https://cdn-images-1.medium.com/max/1000/0*-Ynam5jukXZCJjkK.png" width="1000"></a></p><p class="medium-feed-snippet">Na busca incessante pela excel&#xEA;ncia operacional, h&#xE1; uma quest&#xE3;o que ecoa diariamente na cabe&#xE7;a de l&#xED;deres: Qual &#xE9; o n&#xFA;mero ideal de&#x2026;</p><p class="medium-feed-link"><a href="https://blog.tbxtech.com.br/como-organizar-um-time-de-alta-performance-parte-2-42e134ba5317?source=rss-b0eeed2148f3------2">Continue reading on tbx-tech/editorial »</a></p></div>]]></description>
            <link>https://blog.tbxtech.com.br/como-organizar-um-time-de-alta-performance-parte-2-42e134ba5317?source=rss-b0eeed2148f3------2</link>
            <guid isPermaLink="false">https://medium.com/p/42e134ba5317</guid>
            <category><![CDATA[management]]></category>
            <category><![CDATA[business]]></category>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[self-improvement]]></category>
            <category><![CDATA[technology]]></category>
            <dc:creator><![CDATA[Thiago Silva - @thihenos]]></dc:creator>
            <pubDate>Fri, 08 Mar 2024 20:08:57 GMT</pubDate>
            <atom:updated>2026-08-18T23:17:08.841Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Como organizar um time de alta performance — parte 1]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://blog.tbxtech.com.br/como-organizar-um-time-de-alta-performance-parte-1-7063bab538fa?source=rss-b0eeed2148f3------2"><img src="https://cdn-images-1.medium.com/max/1269/1*p4ZdDyd-fQHqqTNIO4IRiQ.png" width="1269"></a></p><p class="medium-feed-snippet">J&#xE1; se perguntou o que diferencia um time comum de um time de alta performance? Como l&#xED;deres e gestores conseguem extrair o m&#xE1;ximo&#x2026;</p><p class="medium-feed-link"><a href="https://blog.tbxtech.com.br/como-organizar-um-time-de-alta-performance-parte-1-7063bab538fa?source=rss-b0eeed2148f3------2">Continue reading on tbx-tech/editorial »</a></p></div>]]></description>
            <link>https://blog.tbxtech.com.br/como-organizar-um-time-de-alta-performance-parte-1-7063bab538fa?source=rss-b0eeed2148f3------2</link>
            <guid isPermaLink="false">https://medium.com/p/7063bab538fa</guid>
            <category><![CDATA[management]]></category>
            <category><![CDATA[teamwork]]></category>
            <category><![CDATA[business]]></category>
            <category><![CDATA[technology]]></category>
            <category><![CDATA[self-improvement]]></category>
            <dc:creator><![CDATA[Thiago Silva - @thihenos]]></dc:creator>
            <pubDate>Sat, 17 Feb 2024 14:32:10 GMT</pubDate>
            <atom:updated>2026-08-18T23:19:15.983Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[DevOps — Como um tester pode se beneficiar de uma pipeline?]]></title>
            <link>https://blog.tbxtech.com.br/devops-como-testes-1975e87fd127?source=rss-b0eeed2148f3------2</link>
            <guid isPermaLink="false">https://medium.com/p/1975e87fd127</guid>
            <category><![CDATA[software-quality-engineer]]></category>
            <category><![CDATA[devops]]></category>
            <category><![CDATA[quality-assurance]]></category>
            <category><![CDATA[software-quality-testing]]></category>
            <category><![CDATA[devops-practice]]></category>
            <dc:creator><![CDATA[Thiago Silva - @thihenos]]></dc:creator>
            <pubDate>Tue, 26 Dec 2023 20:44:35 GMT</pubDate>
            <atom:updated>2026-08-18T23:31:16.511Z</atom:updated>
            <content:encoded><![CDATA[<h3>DevOps — Como um tester pode se beneficiar de uma pipeline?</h3><h4>Vigiar sem estar presente, barrar sem ser chato. Pipelines são os melhores aliados para equipe de qualidade.</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*IV1wfMFtE0FgiCcJ2yUDSA.jpeg" /><figcaption>Imagem criada pela empresa toolbox-devops</figcaption></figure><p>Nos dias de hoje, uma pipelien de entrega contínua (Continuous Integration/Continuous Deployment — CI/CD) é uma prática fundamental para empresas que desejam acelerar o desenvolvimento de software e garantir eficiência em colocar seus serviços em produção de forma rápida e eficiente. No entanto, para garantir que essa abordagem funcione corretamente e produza resultados de alta qualidade, os testes desempenham um papel crucial e neste artigo, vamos explorar como a área de testes podem usufruir de um ciclo de CI/CD de pipelines e como podemos barrar uma má implementação de ir para produção.</p><p>Para melhor aproveitamento desse artigo, considero um pré requisito a leitura sobre<a href="https://medium.com/toolbox-devops/o-que-%C3%A9-uma-pipeline-para-desenvolvimento-de-softwares-para-iniciantes-9fc26150178e"> <strong>o que é uma pipeline de software</strong></a><strong> e a </strong><a href="https://thihenos.medium.com/devops-como-desenhar-uma-pipeline-eficiente-para-aplica%C3%A7%C3%B5es-67e44589aef3"><strong>criação de uma pipeline eficiente para sofware</strong></a><strong>.</strong></p><h4>Momento de execução de cada tipo de teste</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*UzA5HPnxpmxBLJ4Tqc95Mw.png" /></figure><h4><strong>Testes de componentes</strong></h4><p>Os testes de componentes são ideais para validar a integração entre componentes do sistema. À medida que seu sistema cresce, naturalmente a quantidade de componentes também cresce e isso pode se tornar um problema, pois muitas das vezes a pipeline irá aguardar o fim do teste para prosseguir para a próxima fase.</p><p>Num cenário ideal, esses testes não devem passar de 20 minutos e devem ser programados para serem executados no ambiente de testes para não tornar o processo de CI/CD um pouco mais lento.</p><p>Ferramentas que podemos utilizar nesse processo são: JUnit, Jest, PyTest, Mocha, TestNG e Cypress.</p><h4><strong>Testes fim-a-fim ( End-to-end )</strong></h4><p>Aconselhável habilita-lo em qualquer ambiente com o intuito de garantir que as features básicas do sistema estejam minimamente operacionais. Como naturalmente são testes complexos que asseguram que cenários reais, seu tempo pode variar entre 10 minutos a 40 minutos.</p><p>Ferramentas que podemos utilizar nesse processo são: Puppeteer, Selenium, Robot Framework ou Cucumber.</p><h4><strong>Testes de contrato</strong></h4><p>O teste de contrato ideal é utilizado para garantir que o código desenvolvido em questão corresponde aos acordos escritos previamente em contrato/documentação. Podemos economizar tempo nos pipelines apenas testando no ambiente de pré-produção, pois, assim como testes de componentes, os testes de contrato aumentam seu tempo de execução a cada nova implementação e validação, principalmente se há uma grande quantidade de comunicação entre serviços.</p><p>Ferramentas que podemos utilizar nesse processo são: Swagger, Pact.io.</p><h4><strong>Teste de web-page-quality</strong></h4><p>Como esses testes fazem análise estática dos componentes web, podemos executá-los no ambiente de produção fora da janela de horário comercial. Não há teste de funcionalidades nem carga no sistema com esse teste. Esses testes são executados para entender o comportamento e performance dos componentes de front-end.</p><p>Ferramentas que podemos utilizar nesse processo são: Lighthouse.</p><h4><strong>Testes de performance</strong></h4><p>O ideal seria utilizar o máximo de recurso computacional das pipelines para simular a quantidade real de usuários ou cenários de picos de requisições de usuários. Outro conselho é executar os testes de performance em janelas fora do horário comercial devido ao excessivo uso da pipeline, que pode se tornar um gargalo durante o horário comercial.</p><p>Ferramentas que podemos utilizar nesse processo são: K6, Jmeter.</p><h4><strong>Testes de regressão</strong></h4><p>Os testes que tem a maior carga e se não um dos mais importantes para qualquer release. Esse tipo de execução acaba exigindo muitas horas de execução, pois tem a necessidade de realizar testes em versões anteriores do sistema para garantir que a sua evolução não cause nenhuma surpresa. Normalmente esses tipos de testes acabam levando horas para serem executados tornando inviável a execução de forma diária ou durante qualquer chamada no fluxo de CI/CD. O mais ideal para esse tipo de teste seria que todo recurso computacional obsoleto ( provavelmente de madrugada ) possa ser utilizado para validar todas as evoluções do sistema. Alguns serviços de pipelines como Bitbucket e Azure DevOps permitem que algumas pipelines possam ser executadas através de um gatilho ou até mesmo através de tarefas agendadas, o que seria o mais ideal para esse tipo de testes, fazendo com que todo recurso computacional obsoleto ( provavelmente de madrugada ) possa ser utilizado para validar todas as evoluções do sistema.</p><h4>Ferramentas que podem auxiliar no processo</h4><p>Uma das maravilhas do processo de CI/CD é a capacidade de criar checks para serem validados sem ter que alocar uma pessoa ou uma equipe para fazer gestão de coisas repetitivas, algumas ferramentas podem permitir que você controle a qualidade do código que foi implementado, como:</p><p><strong>Jira: </strong>Como o JIRA hoje possibilita o uso de API, você pode usar o modelo de integração entre o Git e o Jira, para que o desenvolvedor sempre commit o ticket que ele está trabalhando como “<strong>JIRA-123 — Implementando conexão com Redis” </strong>e então, durante a pipeline resgatar esse ticket para validar via API se o ticket se encontra em um status desejado para ir para produção, caso não esteja, <strong>a pipeline proibe a mudança no ambiente</strong>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/322/1*X9TSoLpFAErn6xOpKwGMUw.png" /></figure><p><strong>K6 ou JMeter: </strong>Com uma das ferramentas, você pode efetuar excessivas chamadas para seu serviço via CLI simulando testes de carga.</p><p><strong>Sonar: </strong>Com o recurso de <strong><em>Quality Gate,</em></strong> o Sonar consegue analisar a qualidade do código desenvolvido e a quantidade de testes proporcional ao que foi desenvolvido e caso não atenda os requisitos desejados, ela pode forçar a pipeline de não prosseguir com o próximo passo.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/600/1*ls1N-MwgkMMRs1zV8n3CYA.png" /></figure><p><strong>Pact: </strong>Permite testar contratos entre serviços independentemente da tecnologia usada para implementar esses serviços, em caso de falha, podemos bloquear os próximos passos também.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/739/1*hJy1DGKcBS5dXeXPsGrxKg.png" /></figure><p><strong>Eai, como estão os seus testes nas pipelines?</strong></p><p>Nos próximos artigos, trarei alguns exemplos práticos de como utilizar as ferramentas dentro de um fluxo de CICD.</p><p>Veja outros temas da área em nosso canal do YouTube <a href="https://www.youtube.com/@ToolboxTechnology">(link)</a>.</p><p>E participe também do nosso canal no Discord, com dicas e laboratórios (<a href="https://discord.gg/dKPeKFsBE3">link do Discord</a>).</p><p>Tem alguma dúvida ou sugestão? Mande para a gente pelo nosso e-mail: <a href="/service/mailto:engenharia@tbxtech.com">engenharia@tbxtech.com</a>.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=1975e87fd127" width="1" height="1" alt=""><hr><p><a href="https://blog.tbxtech.com.br/devops-como-testes-1975e87fd127">DevOps — Como um tester pode se beneficiar de uma pipeline?</a> was originally published in <a href="https://blog.tbxtech.com.br/">tbx-tech/editorial</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[DevOps — Como aumentar a segurança de seu software usando pipelines]]></title>
            <link>https://blog.tbxtech.com.br/devops-como-aumentar-a-seguran%C3%A7a-de-seu-software-usando-pipelines-9af90cab5297?source=rss-b0eeed2148f3------2</link>
            <guid isPermaLink="false">https://medium.com/p/9af90cab5297</guid>
            <category><![CDATA[devops]]></category>
            <category><![CDATA[desenvolvimento-software]]></category>
            <category><![CDATA[developer]]></category>
            <category><![CDATA[software-engineering]]></category>
            <category><![CDATA[ci-cd-pipeline]]></category>
            <dc:creator><![CDATA[Thiago Silva - @thihenos]]></dc:creator>
            <pubDate>Sat, 16 Dec 2023 15:40:42 GMT</pubDate>
            <atom:updated>2026-08-18T23:31:42.068Z</atom:updated>
            <cc:license>http://creativecommons.org/publicdomain/zero/1.0/</cc:license>
            <content:encoded><![CDATA[<h3>DevOps — Como aumentar a segurança de seu software usando pipelines</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/600/1*FCcxUfNb_lmNq-iCubHNYA.png" /></figure><p>Durante a fase inicial de validação do ciclo de desenvolvimento de software, por meio da integração contínua e entrega contínua (CI/CD), é fundamental utilizarmos ferramentas que nos proporcionem métricas e relatórios sobre as vulnerabilidades existentes em nosso código. Esse conjunto de práticas e abordagens é amplamente conhecido como DevSecOps, que enfatiza a integração da segurança desde o início do processo de desenvolvimento. Neste artigo, apresentarei algumas sugestões e estratégias que podemos incorporar em nossos pipelines de desenvolvimento, visando o fortalecimento do pilar de segurança em nosso projeto.</p><p>Para melhor aproveitamento desse artigo, considero um pré requisito a leitura sobre a <a href="https://thihenos.medium.com/devops-como-desenhar-uma-pipeline-eficiente-para-aplica%C3%A7%C3%B5es-67e44589aef3">criação de uma pipeline eficiente para sofware</a>.</p><p>Se você utiliza o GitHub como fonte para administrar seu código, você não precisa se preocupar quanto a implementação, muito das validações que comentarei já são nativas.</p><h4>Quando Analisar</h4><p>No âmbito da segurança de software, duas formas cruciais de análise ganham destaque: a Análise Estática e a Análise Dinâmica de código. Cada uma delas desempenha um papel vital na detecção e mitigação de vulnerabilidades, contribuindo para a criação de aplicações mais seguras e confiáveis.</p><p>A Análise Estática de Código é uma técnica fundamental que visa encontrar vulnerabilidades no código-fonte de uma aplicação sem a necessidade de executá-la. Esta abordagem é altamente eficaz e se encaixa perfeitamente no contexto de integração contínua e entrega contínua (CI/CD).<br><strong>Sugestão:</strong> Um momento crucial para aplicar a Análise Estática de Código é quando um Pull Request (PR) é aberto. Nesse ponto, é possível ter um controle preciso sobre quaisquer novas vulnerabilidades que possam estar sendo introduzidas no código-fonte.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Qq3qrjRqQMR_j_RFyoAKVg.png" /></figure><p>Na Análise Dinâmica de Código, a abordagem muda consideravelmente em comparação com a Análise Estática. Aqui, a ênfase está na interação com a aplicação em tempo real, simulando ataques e, o mais importante, identificando todas as vulnerabilidades e brechas disponíveis no sistema, muitas vezes em tempo real.</p><p><strong>Sugestão:</strong> Normalmente, algumas ferramentas oferecem a possibilidade para executar essa análise em paralelo, o que seria muito ideal, pois dependendo do tamnho da aplicação, esse tipo de validação pode levar até horas e isso pode acarretar em um fluxo de CI/CD lento ( totalmente oposto do que ele propõe, entrega rápida, feedback rápido ).</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*RG_n5hqCbC8ZEm49QM0mdw.png" /></figure><h4>Como Analisar</h4><h4>No código</h4><p>Gravar senhas diretamente no código ou em arquivos .env, contendo dados sensíveis como tokens, é um erro comum, mas perigoso, que pode representar um grande risco, especialmente para especialistas em segurança de aplicações. Ferramentas como GitLeaks e TruffleHog podem identificar e reportar essas vulnerabilidades, enquanto ferramentas intermediadoras podem proteger suas informações de exposição na internet.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/804/1*bsMMdeOXRD_4PZEJFWL3YQ.png" /></figure><h4>Dependências</h4><p>Há também vunerabilidades que também são encontradas em frameworks de mercado, no qual, sempre devemos nos manter atualizados para que nenhuma falha possibilite alguma brecha ( há muitos casos reportados via OWASP ). Para isso, há ferramentas que são capazes de analisar todas as dependências do seu código ou seu container. O melhor momento para se executar isso, é exatamente no mesmo momento que você valida a estrutura básica do seu código. Para esse tipo de operação, ferramentas como Trivy, Snyk e Black Duck são referências.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*7MX64F0AXjpDeRm3KdewzA.png" /></figure><p>Nos próximos artigos, trarei alguns exemplos práticos de como utilizar as ferramentas dentro de um fluxo de CICD.</p><p>Veja outros temas da área em nosso canal do YouTube <a href="https://www.youtube.com/@ToolboxTechnology">(link)</a>.</p><p>E participe também do nosso canal no Discord, com dicas e laboratórios (<a href="https://discord.gg/dKPeKFsBE3">link do Discord</a>).</p><p>Tem alguma dúvida ou sugestão? Mande para a gente pelo nosso e-mail: <a href="/service/mailto:engenharia@tbxtech.com">engenharia@tbxtech.com</a>.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=9af90cab5297" width="1" height="1" alt=""><hr><p><a href="https://blog.tbxtech.com.br/devops-como-aumentar-a-seguran%C3%A7a-de-seu-software-usando-pipelines-9af90cab5297">DevOps — Como aumentar a segurança de seu software usando pipelines</a> was originally published in <a href="https://blog.tbxtech.com.br/">tbx-tech/editorial</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Aumentando a produtividade de um time de desenvolvimento com OpenGrok]]></title>
            <link>https://blog.tbxtech.com.br/aumentando-a-produtividade-de-um-time-desenvolvimento-com-opengrok-d30ae9be2459?source=rss-b0eeed2148f3------2</link>
            <guid isPermaLink="false">https://medium.com/p/d30ae9be2459</guid>
            <category><![CDATA[devops-practice]]></category>
            <category><![CDATA[development]]></category>
            <category><![CDATA[tools]]></category>
            <category><![CDATA[devops]]></category>
            <category><![CDATA[devops-tool]]></category>
            <dc:creator><![CDATA[Thiago Silva - @thihenos]]></dc:creator>
            <pubDate>Mon, 30 Oct 2023 15:11:46 GMT</pubDate>
            <atom:updated>2026-08-18T23:10:55.073Z</atom:updated>
            <cc:license>https://creativecommons.org/licenses/by-sa/4.0/</cc:license>
            <content:encoded><![CDATA[<h4>Aplicando ferramentas de DevOps para aumentar a produtividade do seu time.</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Ll532Cg9bKb51-iVV5hfpQ.png" /></figure><p>Uma das maneiras mais eficazes de localizar algo é organizando-se. Isso pode ser feito através de lógicas pessoais ou utilizando algoritmos, como BubbleSort e QuickSort, que facilitam a ordenação. Na indústria de software, a organização de códigos, WIKIs, documentações e contratos de API requer esforço. Estabelecer e manter essa cultura organizacional é um desafio, mas, sem dúvida, é essencial e impacta positivamente na produtividade dos desenvolvedores. Uma das ferramentas que pode beneficiar uma equipe de desenvolvimento é o OpenGrok, pelos seguintes motivos:</p><ul><li><strong>Indexação:</strong> O OpenGrok utiliza um sistema de indexação de palavras, tornando as pesquisas por termos, expressões, trechos de código ou históricos de commits mais eficientes.</li><li><strong>Pesquisa: </strong>A ferramenta permite pesquisar por definições, nomes de arquivos, trechos de texto, expressões regulares, padrões, entre outros.</li><li><strong>Interface Web: </strong>A interface web do OpenGrok facilita o acesso rápido à estrutura de diretórios, permitindo uma navegação ágil por projetos e pastas.</li></ul><h3>Como instalar OpenGrok</h3><p>Uma abordagem prática e direta é utilizar um container Docker que já possui todo o ambiente necessário para o funcionamento da ferramenta. É fundamental mapear, como volume, a pasta que contém todos os diretórios de seus repositórios. Quanto mais documentos o OpenGrok processar, mais otimizada será a sua experiência de uso.</p><pre>docker run -d --name opengrok -v /path/to/your/source:/src -p 8080:8080 opengrok/docker</pre><p>Note que o primeiro index de arquivos pode levar alguns minutos, mas caso você queira forçar o sync você pode executar o comando:</p><pre>opengrok-indexer -a opengrok/lib/opengrok.jar -- -s /src -d opengrok/data -H -P -S -G -W opengrok/etc/configuration.xml -U http://localhost:8080</pre><h3>Como usar o OpenGrok</h3><p>Agora posso acessar meu navegador no endereço http://localhost:8080/ e usar a ferramenta para encontrar as refências que você precisa encontrar.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*y7jaRjPp2esfw4Kquo_jXQ.png" /></figure><h3>Dicas importantes</h3><ul><li><a href="https://thihenos.medium.com/devops-como-desenhar-uma-pipeline-eficiente-para-aplica%C3%A7%C3%B5es-67e44589aef3">Crie uma pipeline</a> para sempre para sempre executar git pull dos repositórios, assim você garante que a aplicação estará sempre exibindo o conteúdo mais recentemte.</li><li>Antes de usar o OpenGrok, você precisa indexar o seu código-fonte isso garante que os resultados da pesquisa estejam sempre atualizados. Para isso utilize a variável de ambiente <strong>SYNC_PERIOD_MINUTES</strong></li><li>Caso a indexação de arquivos não acontecessa, execute o container no modo iterativo e execute</li></ul><pre>opengrok-indexer -a opengrok/lib/opengrok.jar -- -s /src -d opengrok/data -H -P -S -G -W opengrok/etc/configuration.xml -U http://localhost:8080</pre><h3>Conclusão</h3><p>OpenGrok é ferramenta open-source que pode ser muito útil para auxilair desenvolvedores, analistas de requisitos e desenvolvedores em tarefas para reaproveitar trecho de códigos ou auxiliar na descoberta de códigos ou históricos de uma forma bem fácil e amigável</p><p>Veja outros temas da área em nosso canal do YouTube <a href="https://www.youtube.com/@ToolboxTechnology">(link)</a>.</p><p>E participe também do nosso canal no Discord, com dicas e laboratórios (<a href="https://discord.gg/dKPeKFsBE3">link do Discord</a>).</p><p>Tem alguma dúvida ou sugestão? Mande para a gente pelo nosso e-mail: <a href="/service/mailto:engenharia@tbxtech.com">engenharia@tbxtech.com</a>.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=d30ae9be2459" width="1" height="1" alt=""><hr><p><a href="https://blog.tbxtech.com.br/aumentando-a-produtividade-de-um-time-desenvolvimento-com-opengrok-d30ae9be2459">Aumentando a produtividade de um time de desenvolvimento com OpenGrok</a> was originally published in <a href="https://blog.tbxtech.com.br/">tbx-tech/editorial</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Livros que todo gerente técnico deveria estudar]]></title>
            <link>https://blog.tbxtech.com.br/livros-que-todo-gerente-t%C3%A9cnico-deveria-estudar-41f6f067f1b3?source=rss-b0eeed2148f3------2</link>
            <guid isPermaLink="false">https://medium.com/p/41f6f067f1b3</guid>
            <category><![CDATA[management]]></category>
            <category><![CDATA[business]]></category>
            <category><![CDATA[autoconhecimento]]></category>
            <category><![CDATA[technology]]></category>
            <category><![CDATA[livros]]></category>
            <dc:creator><![CDATA[Thiago Silva - @thihenos]]></dc:creator>
            <pubDate>Mon, 17 Apr 2023 02:25:01 GMT</pubDate>
            <atom:updated>2026-08-18T23:25:11.843Z</atom:updated>
            <content:encoded><![CDATA[<p>Coordenar, gerênciar, ser tech-lead, arquiteto não é uma tarefa fácil. Desde de que comecei a me aventurar nessa jornada aprendi que quanto <strong>mais</strong> eu estudo <em>menos</em> eu sei. Tenho feito cursos online, especialzações, mas parcebi que foi nos livros onde encontrei a salvação para aprender a gerenciar pessoas e projetos. Por esse motivo, criei uma lista de livros para quem também está começando a se aventurar ou precisas absorver novos conteúdos e que me ajudaram muito <strong>a tentar de forma mais acertiva e errar menos </strong>( ou ao menos estar mais aberto e entender algumas criticas ). <strong>Minha ideia é manter esse artigo sempre atualizado, então estarei constantemente atualizando-o.</strong></p><h4>An Elegant Puzzle: Systems of Engineering Management</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*rVMSbSUPkKa73EeK.jpg" /></figure><p>Simplesmente um livro incrível onde <a href="https://medium.com/u/57d893a773f0">Will Larson</a> descreve sobre os desafios que ele encontrou ao longo do tempo em gerenciar uma equipe técnica. O livro exige bastante maturidade de quem lê, por que constantemente Will apresenta situações que podem dar errado e depois ele cria um capítulo inteiro explicando como também deu certo com ele e para mim isso é o maior sinal de que não bala de prata e receita de bolo, cada empresa.</p><h4>Start With Why</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*IDZ6Vhs8IvVwobu3.jpg" /></figure><p>Nesse livro se discute muito sobre o que e como você planeja levar sua ideia, convencer investidores e agradar clientes. Esse livro traz muito exemplo do por que grandes ideias morrem e do por que muito das vezes uma boa cultura objetivos bem alinhados e bom cuidado podem fazer sua empresa disputar espaço com grandes empresas milionárias. Quando li esse livro comecei a enxergar além do óbvio e como podemos vender e organizar o <em>pit-elevator</em> da nossa área/empresa.</p><h4>Comunicação Não-Violenta</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/500/0*x8aeofEJNAjU4dKT.jpg" /></figure><p><strong>Comunicar</strong> sem impor seus valores, <strong>Observar</strong> sem avaliar, <strong>Identificar</strong> suas fraquezas, <strong>Escutar</strong> sem opinar, <strong>Responsabilizar</strong>-se quando necessário, <strong>Pedir</strong> sem mandar, entender que a <strong>Raiva</strong> sempre tem um motivo e ele pode ser mais pessoal do que você imagina, são os principais pilares sobre os quais esse livro tenta apresentar novas formas de olhar a comunicação de forma geral. Além de ser bom para leitura, é bom para dividir com seus funcionários, se você aprender a entende-los e eles aprenderem a absorve-lo, irá facilitar muito o dia-a-dia de vocês. Surpreendente mente de 20 pessoas que me responsabilizo, 5 leram esse livro seguindo minhas orientações nos feedbacks 1:1, advinha com <em>quems</em> meu relacionamento tem melhorado dia após dia?</p><h4>Atomic Habits</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/417/0*HpwkZ9jN6e7TkoC6.jpg" /></figure><p>Conheci esse livro por causa <a href="https://jamesclear.com/marginal-gains">desse</a> artigo do autor. Se você pensa em criar uma equipe de alta performance, ler esse livro é o dar seus passos. <a href="https://medium.com/u/528e9a6004d8">James Clear</a> traz dados, fatos, formas e ideias de como podemos melhorar a performance do indivíduo ou até mesmo de uma organização e sistema.</p><h4>Lá vem todo mundo</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/257/0*hv7Tta1K7q8RuCjp.jpg" /></figure><p>O melhor termômetro para você medir a eficiência de qualquer projeto é a aceitação publica ou dos seus clientes. O interessante é que nós como sociedades já trabalhamos inconscientemente como um coletivo, só não sabemos. Esse livro apresenta estudos e situações intrigantes, onde conjunto de pessoas de forma consciente ou não ajudaram a resolver problemas, organizarem coisas e etc, o segredo é você descobrir como usar isso de forma positiva te beneficiando.</p><h4>Plataforma a revolução da estratégia</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/337/0*_Z9_CQL0nqCQ-Zrz.jpg" /></figure><p>Criar boas soluções não significa que elas serão bem aceitas pelo cliente final, esse livro trás reflexões interessantes sobre o desenvolvimento de uma plataforma de serviços. iideias arquiteturais e riscos de implementação e falhas no processo de gerar a relação simbiótica entre cliente e fornecedor, esse livro pode ser um guia básico para qualquer implementação de serviço que foque em publicos de forma genéricas.</p><h4>The Manager’s Path</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/290/0*OiSbKnj8IMeOXDxN.png" /></figure><p>Por mais que esse livro se chama A Arte da Gestão, esse livro ensina muito sobre como pessoas podem gerenciar seus líderes e seus gerentes. Camile foca muito em criar processos e cultura clara para seus liderados, processo de feedback, analise de capacidade de recursos e pode servir muito como os primeiros passos para seus primeiros passos para gestão. Se você precisa de um guia prático e simples para seu primeiro ano de gestor, definitivamente esse seria seu primeiro passo!</p><p>Veja outros temas da área em nosso canal do YouTube <a href="https://www.youtube.com/@ToolboxTechnology">(link)</a>.</p><p>E participe também do nosso canal no Discord, com dicas e laboratórios (<a href="https://discord.gg/dKPeKFsBE3">link do Discord</a>).</p><p>Tem alguma dúvida ou sugestão? Mande para a gente pelo nosso e-mail: <a href="/service/mailto:engenharia@tbxtech.com">engenharia@tbxtech.com</a>.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=41f6f067f1b3" width="1" height="1" alt=""><hr><p><a href="https://blog.tbxtech.com.br/livros-que-todo-gerente-t%C3%A9cnico-deveria-estudar-41f6f067f1b3">Livros que todo gerente técnico deveria estudar</a> was originally published in <a href="https://blog.tbxtech.com.br/">tbx-tech/editorial</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
    </channel>
</rss>