Skip to content

Instantly share code, notes, and snippets.

View lpsm-dev's full-sized avatar
🌊
Trying to... what?

:) lpsm-dev

🌊
Trying to... what?
  • 0.0.0.0
View GitHub Profile
@lpsm-dev
lpsm-dev / README.md
Last active December 28, 2021 15:31
[Kubernetes] - Configure Service Accounts for Pods in Kubernetes 🔖

Configure Service Accounts for Pods

Uma Service Account no Kubernetes fornece uma identidade para processos executados em um Pod. Portanto, basicamente, a Service Account é utilizada para fornecer uma identidade aos Pods. Os Pods que desejam interagir com o servidor da API serão autenticados com uma Service Account específica. Por padrão os aplicativos serão autenticados utilizando a Service Account padrão default na namespace em que estão sendo executados. Isso significa, por exemplo, que um aplicativo em execução na namespace test usará a Service Account default do namespace test

Mais detalhes

Quando você, um humano, acessa o Cluster de Kubernetes (por exemplo, usando kubectl), você é autenticado pelo apiserver como uma Service Account específica (geralmente admin, a menos que o administrador do Cluster tenha personalizado isso). Os processos em contêineres dentro de Pods também podem entrar em contato com o apiserver e

@lpsm-dev
lpsm-dev / README.md
Last active December 28, 2021 15:38
[Kubernetes] - Centralizando logs com Graylog + FluentD 🤤

Centralizando logs no Kubernetes com Graylog + FluentD

Nessa documentação falaremos um pouco sobre o processo de logs no Kubernetes e também mostraremos como centralizar os logs do Kubernetes com Graylog + FluentD. Existem outras maneiras talvez mais elegantes, mas optamos em enviar os logs (stdout/stderr) dos pods para o Graylog utilizando o Fluentd Kubernetes Daemonset.

Kubernetes Logging Architecture

Conforme declarado na documentação do Kubernetes, existem três opções para centralizar os logs no Kubernetes.

A primeira opção é permitir que os aplicativos produzam diretamente seus rastros em outros sistemas (por exemplo, banco de dados). Essa abordagem sempre funciona, mesmo fora do Docker, no entanto, requer mais trabalho do que outras soluções, onde nem todos os aplicativos têm os anexadores de log corretos. Também pode se tornar complexo com software heterogêneo (considere algo menos trivial do que aplicativos de N camadas). Eventualmente, os appenders de log devem ser implementados com cuidado

@lpsm-dev
lpsm-dev / README.md
Last active December 28, 2021 15:37
[Kubernetes] - Secrets Store CSI Driver using AWS Provider 🤯

Kubernetes

Secrets Store CSI Driver

Driver CSI de armazenamento de segredos para segredos do Kubernetes - integra armazenamentos de segredos com o Kubernetes por meio de um volume de interface de armazenamento de contêiner (CSI).

O driver CSI do Secrets Store secrets-store.csi.k8s.iopermite que o Kubernetes monte vários segredos, chaves e certificados armazenados em armazenamentos de segredos externos de nível empresarial em seus pods como um volume. Depois que o Volume é anexado, os dados nele são montados no sistema de arquivos do contêiner.

Como funciona

@lpsm-dev
lpsm-dev / rename.sh
Last active December 28, 2021 15:36
[Short-Command] - Rename git tag name 🎉
#!/usr/bin/env bash
TAG_NEW=1.0.5
TAG_OLD=v1.0.5
git tag $TAG_NEW $TAG_OLD
git tag -d $TAG_OLD
git push origin $TAG_NEW :$TAG_OLD
@lpsm-dev
lpsm-dev / README.md
Last active December 28, 2021 15:35
[Streaming] - Intro Apache Kafka 🎃

Apache Kafka

Contexto

Atualmente, tratar dados por streaming, ou seja, em tempo real, é uma das demandas mais requisitadas, pois a necessidade de tomar decisões sobre os dados que são muito voláteis ou em sistemas críticos, tem aumentado consideravelmente.

Assim, muitos problemas que antes eram tratados apenas por processamento em batch, agora ganham a necessidade de ter uma camada a mais, a de Streaming.

A imagem a baixo mostra uma arquitetura de Big Data chamada Kappa, onde exemplifica a existência do processamento em batch e o streaming. Existe uma camada para tratar dados por batch (Batch Layer), ou seja, processamento de dados pesados, histórico e de forma agendada. E outra camada para processamento de dados de forma rápida e em tempo real, no caso Streaming (Speed Layer), que permite processamento e análise de dados com menor delay.

@lpsm-dev
lpsm-dev / README.md
Last active December 28, 2021 15:34
[Kubernetes] - Deploy RabbitMQ HA using Helm 🤡

RabbitMQ

Output statefulset log error in Kubernetes:

/opt/bitnami/rabbitmq/sbin/rabbitmqctl: 3: /opt/bitnami/rabbitmq/etc/rabbitmq/rabbitmq-env.conf: MY_POD_NAME: not found
/opt/bitnami/rabbitmq/sbin/rabbitmqctl: 3: /opt/bitnami/rabbitmq/etc/rabbitmq/rabbitmq-env.conf: MY_POD_NAMESPACE: not found

List rabbitmq users:

@lpsm-dev
lpsm-dev / README.md
Last active December 28, 2021 15:34
[Security] - Por que os segredos em git são um problema? ☠️

Apesar de segredos como chaves de API, tokens OAuth, certificados e senhas serem extremamente confidenciais, é comum que eles vazem para os repositórios git por meio do código-fonte. Este artigo analisa por que isso é verdade e como podemos evitá-lo.

image

Segredos em sistemas de controle de versão (VCS) como git é o estado atual do mundo, apesar de ser amplamente reconhecido como uma prática ruim . Depois que o código-fonte entra em um repositório git, ele pode se espalhar organicamente em vários locais. Isso inclui todos os segredos que possam estar incluídos. Mas por que então os segredos nos repositórios git são tão comuns?

Por que os segredos acabam no git

Um desenvolvedor experiente pode estar coçando a cabeça se perguntando por que alguém pode colocar segredos dentro de um repositório git. Mas o fato é que os segredos dentro dos repositórios git são o estado atual do mundo.

@lpsm-dev
lpsm-dev / README.md
Last active December 28, 2021 15:31
[Security] - Entendendo Cryptojacking 🤖

Pesquisadores da área de segurança descobriram recentemente vários casos de Cryptojacking envolvendo empresas como a Tesla e a LA Times. Nesses acontecimentos, mineradores maliciosos de criptomoedas obtiveram acesso ilegal aos serviços de nível público da organização e exploraram seu poder computacional para gerar mais moedas digitais.

Nesse breve documento estaremos batente um papo sobre um guia básico do que é Cryptomining, como normalmente é feito e como evitar a exposição involuntária de sua empresa e cenários catastróficos como esse de exploração de poder computacional ilícito.

O que é Cryptomining e Cryptojacking?

Para entender isso de uma forma simplificada irei fazer uma abstração de como esse mercado de criptomoedas funciona. Para colocar novas criptomoedas em circulaççao, os mineiros precisam utilizar uma grande quantidade de poder computacional visando resolver inúmeros quebra-cabeças matemáticos extremamente complexos que validam as transações existentes no livro-razão público da criptomoeda,

@lpsm-dev
lpsm-dev / README.md
Last active December 28, 2021 15:30
[Monitoring] - Talk about SSL Certificate 👾

What is a SSL Certificate?

Overview

O certificado SSL é um certificado digital que autentica a identidade de um site e possibilidade a conexão criptografada. O termo SSL significa Secure Sockets Layer (camada de soquete seguro), um protocolo de segurança que cria um link criptografado entre um servidor web e um navegador.

Empresas e organizações precisam adicionar certificados SSL aos seus sites para proteger as trasações on-line e manter a privacidade e a segurança das informações dos clientes.

Resumindo, o SSL mantém a segurança das conexões da internet e impede que criminosos leiam ou modifiquem as informações transferidas entre dois sistemas. Quando você vê um ícone de cadeado ao lado de uma URL na barra de endereços, significa que esse site que está sendo acessado por você está usando o protocolo SSL como forma de proteção.

@lpsm-dev
lpsm-dev / README.md
Last active December 28, 2021 15:30
[Monitoring] - Entendendo Red Methods 👹

Red Methods

Overview

Monitorar microsserviços com eficácia ainda pode ser um desagio, já que muitas das técnicas tradicionais de monitoramento de desempenho são inadequadas para fornecer a granularidade necessária de desempenho do sistema. Um ex-engenheiro do Google desenvolveu uma abordagem chamada Red Method, que parece estar ganhando bastante o coração de alguns administradores.

What is?

De forma bem direta o método RED define três principais métricas que você deve medir para cada microsserviço em sua arquitetura. Essas métricas são: