<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Lucas Oliveira</title>
        <link>https://luks.dev.br/en/</link>
        <description>Recent content on Lucas Oliveira</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>en-US</language>
        <copyright>Lucas Oliveira Dantas</copyright>
        <lastBuildDate>Mon, 16 Mar 2020 00:00:00 +0000</lastBuildDate><atom:link href="https://luks.dev.br/en/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>HPA based on CPU and Memory utilization</title>
        <link>https://luks.dev.br/en/p/hpa-based-on-cpu-and-memory-utilization/</link>
        <pubDate>Mon, 16 Mar 2020 00:00:00 +0000</pubDate><guid>https://luks.dev.br/en/p/hpa-based-on-cpu-and-memory-utilization/</guid>
        <description>&lt;p&gt;In this post, I will talk about the &lt;strong&gt;HPA&lt;/strong&gt;, which stands for &amp;ldquo;&lt;em&gt;Horizontal Pod Autoscaler&lt;/em&gt;&amp;rdquo;. It is a Kubernetes resource that automatically adjusts the number of replicas (pods) in a &lt;em&gt;deployment&lt;/em&gt; based on observed &lt;em&gt;CPU&lt;/em&gt; or &lt;em&gt;memory&lt;/em&gt; utilization.&lt;/p&gt;
&lt;h2 id=&#34;why-use-an-hpa&#34;&gt;Why use an HPA&lt;/h2&gt;
&lt;p&gt;The goal of an &lt;strong&gt;HPA&lt;/strong&gt; is to make sure your application has enough resources to handle demand. If resource utilization goes up, the HPA increases the number of replicas (more pods running) so the load is properly distributed. Likewise, if utilization goes down, the HPA reduces the number of replicas, saving resources. This keeps your application scalable and performant automatically and efficiently.&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/LuksJobs/7d4c9e2c7b1e4d94ac30163c897bf0b9.js&#34;&gt;&lt;/script&gt;
&lt;p&gt;Make sure to replace the name &amp;ldquo;&lt;strong&gt;meu-hpa&lt;/strong&gt;&amp;rdquo; with the name you want for the HPA, and &lt;strong&gt;meu-deployment&lt;/strong&gt; with the name of the deployment the HPA will be applied to. This ensures the HPA automatically adjusts the number of replicas of your deployment based on memory and CPU usage, keeping them at around 80% utilization.&lt;/p&gt;</description>
        </item>
        <item>
        <title>Archives</title>
        <link>https://luks.dev.br/en/archives/</link>
        <pubDate>Tue, 28 May 2019 00:00:00 +0000</pubDate><guid>https://luks.dev.br/en/archives/</guid>
        <description></description>
        </item>
        <item>
        <title>About</title>
        <link>https://luks.dev.br/en/about/</link>
        <pubDate>Thu, 28 Feb 2019 00:00:00 +0000</pubDate><guid>https://luks.dev.br/en/about/</guid>
        <description>&lt;div class=&#34;about-terminal&#34;&gt;
&lt;div class=&#34;about-terminal__bar&#34;&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;~/luks.dev.br&lt;/code&gt;&lt;/div&gt;
&lt;pre class=&#34;about-terminal__body&#34;&gt;&lt;span class=&#34;t-prompt&#34;&gt;$&lt;/span&gt; whoami
&lt;span class=&#34;t-out&#34;&gt;lucas-oliveira-dantas&lt;/span&gt;
&lt;span class=&#34;t-prompt&#34;&gt;$&lt;/span&gt; cat profile.yaml
&lt;span class=&#34;t-key&#34;&gt;role:&lt;/span&gt;       &lt;span class=&#34;t-val&#34;&gt;DevOps · SRE · Cloud&lt;/span&gt;
&lt;span class=&#34;t-key&#34;&gt;focus:&lt;/span&gt;      &lt;span class=&#34;t-val&#34;&gt;DevSecOps and software supply chain security&lt;/span&gt;
&lt;span class=&#34;t-key&#34;&gt;experience:&lt;/span&gt; &lt;span class=&#34;t-val&#34;&gt;10+ years in IT&lt;/span&gt;
&lt;span class=&#34;t-key&#34;&gt;based in:&lt;/span&gt;   &lt;span class=&#34;t-val&#34;&gt;Rio Grande do Norte, Brazil&lt;/span&gt;
&lt;span class=&#34;t-key&#34;&gt;blog:&lt;/span&gt;       &lt;span class=&#34;t-val&#34;&gt;writing since 2019&lt;/span&gt;
&lt;span class=&#34;t-key&#34;&gt;lattes:&lt;/span&gt;     &lt;a class=&#34;t-link&#34; href=&#34;https://lattes.cnpq.br/8767989273085683&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;lattes.cnpq.br/8767989273085683&lt;/a&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;Hi! 👋 I&amp;rsquo;m &lt;strong&gt;Lucas Oliveira&lt;/strong&gt;, a technology professional with more than a decade of experience in &lt;strong&gt;DevOps, SRE and Cloud&lt;/strong&gt;. My job is getting software to production &lt;strong&gt;fast, safely and reliably&lt;/strong&gt;: pipelines, containers, Kubernetes, infrastructure as code and, more and more, security across all of those stages.&lt;/p&gt;
&lt;p&gt;I started like many people in this field: spending hours in front of the computer, creating virtual machines and hosting simple pages just for the joy of seeing them work. That enthusiasm led me to AWS, Azure and GCP, to the cloud native ecosystem and, more recently, to &lt;strong&gt;DevSecOps&lt;/strong&gt;, where most of my studies are focused today.&lt;/p&gt;
&lt;p&gt;This blog is where I document what I learn in practice: real problems, tested solutions and the reasoning behind them. Most articles are written in Portuguese; you can read them through the machine translation links at the top of each post.&lt;/p&gt;
&lt;h2 id=&#34;what-i-do&#34;&gt;What I do&lt;/h2&gt;
&lt;div class=&#34;about-grid&#34;&gt;
&lt;div class=&#34;about-card&#34;&gt;
&lt;p class=&#34;about-card__title&#34;&gt;🛡️ DevSecOps&lt;/p&gt;
&lt;p&gt;SAST with Semgrep and SonarQube, image scanning with Docker Scout, SBOM, SLSA and secrets management with Vault and Terraform.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&#34;about-card&#34;&gt;
&lt;p class=&#34;about-card__title&#34;&gt;🔁 CI/CD &amp; GitOps&lt;/p&gt;
&lt;p&gt;Pipelines on GitLab CI, GitHub Actions, Azure DevOps and Harness, with reusable templates and well-designed cache and artifacts.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&#34;about-card&#34;&gt;
&lt;p class=&#34;about-card__title&#34;&gt;☸️ Containers &amp; Kubernetes&lt;/p&gt;
&lt;p&gt;Docker from Dockerfile to production, autoscaling with HPA, pod priority and cluster troubleshooting.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&#34;about-card&#34;&gt;
&lt;p class=&#34;about-card__title&#34;&gt;☁️ Cloud &amp; IaC&lt;/p&gt;
&lt;p&gt;AWS (including serverless with SAM), GCP and Azure, with infrastructure versioned in Terraform and Ansible.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;everyday-stack&#34;&gt;Everyday stack&lt;/h2&gt;
&lt;dl class=&#34;about-stack&#34;&gt;
&lt;dt&gt;Languages&lt;/dt&gt;&lt;dd&gt;&lt;span&gt;Python&lt;/span&gt;&lt;span&gt;JavaScript&lt;/span&gt;&lt;span&gt;Node.js&lt;/span&gt;&lt;span&gt;Shell&lt;/span&gt;&lt;/dd&gt;
&lt;dt&gt;Containers&lt;/dt&gt;&lt;dd&gt;&lt;span&gt;Docker&lt;/span&gt;&lt;span&gt;Docker Compose&lt;/span&gt;&lt;span&gt;Kubernetes&lt;/span&gt;&lt;/dd&gt;
&lt;dt&gt;CI/CD&lt;/dt&gt;&lt;dd&gt;&lt;span&gt;GitLab CI&lt;/span&gt;&lt;span&gt;GitHub Actions&lt;/span&gt;&lt;span&gt;Azure DevOps&lt;/span&gt;&lt;span&gt;Harness&lt;/span&gt;&lt;/dd&gt;
&lt;dt&gt;Cloud &amp; IaC&lt;/dt&gt;&lt;dd&gt;&lt;span&gt;AWS&lt;/span&gt;&lt;span&gt;GCP&lt;/span&gt;&lt;span&gt;Azure&lt;/span&gt;&lt;span&gt;Terraform&lt;/span&gt;&lt;span&gt;Ansible&lt;/span&gt;&lt;/dd&gt;
&lt;dt&gt;Security&lt;/dt&gt;&lt;dd&gt;&lt;span&gt;Semgrep&lt;/span&gt;&lt;span&gt;SonarQube&lt;/span&gt;&lt;span&gt;Docker Scout&lt;/span&gt;&lt;span&gt;Vault&lt;/span&gt;&lt;/dd&gt;
&lt;dt&gt;Observability&lt;/dt&gt;&lt;dd&gt;&lt;span&gt;Prometheus&lt;/span&gt;&lt;span&gt;Grafana&lt;/span&gt;&lt;span&gt;Elasticsearch&lt;/span&gt;&lt;/dd&gt;
&lt;dt&gt;Data&lt;/dt&gt;&lt;dd&gt;&lt;span&gt;PostgreSQL&lt;/span&gt;&lt;span&gt;MongoDB&lt;/span&gt;&lt;/dd&gt;
&lt;/dl&gt;
&lt;p class=&#34;about-icons&#34;&gt;
&lt;img src=&#34;https://skillicons.dev/icons?i=py,js,nodejs,docker,kubernetes,gitlab,githubactions,aws,gcp,terraform,ansible,grafana,prometheus,elasticsearch,postgres,mongo,linux,vim&amp;perline=9&#34; alt=&#34;Icons of the technologies in the stack&#34; loading=&#34;lazy&#34; /&gt;
&lt;/p&gt;
&lt;h2 id=&#34;where-to-start&#34;&gt;Where to start&lt;/h2&gt;
&lt;p&gt;A few articles that represent what I write about (in Portuguese):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://luks.dev.br/p/onboarding-aplicacoes-geradas-por-ia-devsecops/&#34; &gt;Onboarding AI-generated applications: the real cost for DevSecOps&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://luks.dev.br/p/varrendo-o-c%C3%B3digo-automatizando-sast-com-semgrep-e-gitlab-ci/&#34; &gt;Scanning the code: automating SAST with Semgrep and GitLab CI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://luks.dev.br/p/explorando-o-docker-scout-analisando-e-refor%C3%A7ando-a-seguran%C3%A7a-de-imagens-docker/&#34; &gt;Exploring Docker Scout: analyzing and hardening Docker image security&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://luks.dev.br/p/protegendo-secrets-no-terraform-estrat%C3%A9gias-eficazes-para-o-gerenciamento-de-informa%C3%A7%C3%B5es-confidenciais/&#34; &gt;Protecting secrets in Terraform&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://luks.dev.br/p/otimizando-sua-pipeline-entenda-a-diferen%C3%A7a-entre-artifacts-e-cache-no-gitlab/&#34; &gt;Artifacts vs. cache in GitLab: optimizing your pipeline&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In English: &lt;a class=&#34;link&#34; href=&#34;https://luks.dev.br/en/p/hpa-based-on-cpu-and-memory-utilization/&#34; &gt;HPA based on CPU and memory utilization&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;academic-background&#34;&gt;Academic background&lt;/h2&gt;
&lt;p&gt;Beyond hands-on practice, I value a solid academic foundation and formal learning. My education and career are recorded in my &lt;strong&gt;Lattes CV&lt;/strong&gt;, the official platform of CNPq (Brazil&amp;rsquo;s National Council for Scientific and Technological Development) that gathers the academic and professional history of researchers and professionals in Brazil. It&amp;rsquo;s in Portuguese.&lt;/p&gt;
&lt;a class=&#34;about-lattes&#34; href=&#34;https://lattes.cnpq.br/8767989273085683&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;
&lt;span class=&#34;about-lattes__label&#34;&gt;Lattes CV · CNPq&lt;/span&gt;
&lt;span class=&#34;about-lattes__url&#34;&gt;lattes.cnpq.br/8767989273085683 ↗&lt;/span&gt;
&lt;/a&gt;
&lt;h2 id=&#34;projects-and-community&#34;&gt;Projects and community&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;AI-assisted software supply chain security:&lt;/strong&gt; I&amp;rsquo;ve been building a tool for vulnerability scanning, SBOM generation and SLSA verification with AI-generated explanations. &lt;a class=&#34;link&#34; href=&#34;https://x.com/luksjobs/status/1972500402567602246&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;See a preview on X&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cloud native community in RN:&lt;/strong&gt; I follow and take part in the events of &lt;a class=&#34;link&#34; href=&#34;https://luks.dev.br/p/1%C2%BA-meetup-cloud-native-rn/&#34; &gt;Cloud Native RN&lt;/a&gt;, the CNCF community group in Rio Grande do Norte.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Open source:&lt;/strong&gt; examples and scripts from the articles live on &lt;a class=&#34;link&#34; href=&#34;https://github.com/LuksJobs&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;GitHub&lt;/a&gt; and &lt;a class=&#34;link&#34; href=&#34;https://gitlab.com/luksjobs&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;GitLab&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;lets-talk&#34;&gt;Let&amp;rsquo;s talk&lt;/h2&gt;
&lt;p&gt;Want to chat about DevOps, security or one of the articles here? Reach out (all channels are on the &lt;a class=&#34;link&#34; href=&#34;https://luks.dev.br/en/links/&#34; &gt;Links&lt;/a&gt; page):&lt;/p&gt;
&lt;div class=&#34;about-links&#34;&gt;
&lt;a href=&#34;https://www.linkedin.com/in/luksjobs/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;LinkedIn&lt;/a&gt;
&lt;a href=&#34;https://lattes.cnpq.br/8767989273085683&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Lattes&lt;/a&gt;
&lt;a href=&#34;https://github.com/LuksJobs&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;GitHub&lt;/a&gt;
&lt;a href=&#34;https://gitlab.com/luksjobs&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;GitLab&lt;/a&gt;
&lt;a href=&#34;https://x.com/luksjobs&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;X&lt;/a&gt;
&lt;a href=&#34;mailto:luksjobs@live.com&#34;&gt;Email&lt;/a&gt;
&lt;/div&gt;
</description>
        </item>
        <item>
        <title>Links</title>
        <link>https://luks.dev.br/en/links/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://luks.dev.br/en/links/</guid>
        <description>&lt;p&gt;Everywhere I publish, share code or can be reached. To learn more about me, see the &lt;a class=&#34;link&#34; href=&#34;https://luks.dev.br/en/about/&#34; &gt;About&lt;/a&gt; page.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Search</title>
        <link>https://luks.dev.br/en/search/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://luks.dev.br/en/search/</guid>
        <description></description>
        </item>
        
    </channel>
</rss>
