<?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: Isadora Ribeiro</title>
    <description>The latest articles on DEV Community by Isadora Ribeiro (@isafashiondev).</description>
    <link>https://dev.to/isafashiondev</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%2F1019086%2F21ec9273-984e-4f14-b803-e46975a8cbe3.jpeg</url>
      <title>DEV Community: Isadora Ribeiro</title>
      <link>https://dev.to/isafashiondev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/isafashiondev"/>
    <language>en</language>
    <item>
      <title>Guia rápido e fácil para novos usuários de XMPP</title>
      <dc:creator>Isadora Ribeiro</dc:creator>
      <pubDate>Tue, 15 Jul 2025 14:08:33 +0000</pubDate>
      <link>https://dev.to/isafashiondev/guia-rapido-e-facil-para-novos-usuarios-de-xmpp-2b7o</link>
      <guid>https://dev.to/isafashiondev/guia-rapido-e-facil-para-novos-usuarios-de-xmpp-2b7o</guid>
      <description>&lt;p&gt;Este é um artigo traduzido e livremente adaptado desta publicação maravilhosa que chegou até mim pelo fediverso!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://contrapunctus.codeberg.page/the-quick-and-easy-guide-to-xmpp.html#why-xmpp-matters" rel="noopener noreferrer"&gt;Artigo original, em inglês&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;-- &lt;/p&gt;

&lt;h2&gt;
  
  
  Por que o XMPP é importante?
&lt;/h2&gt;

&lt;p&gt;XMPP (também conhecido como Jabber) é o padrão da Internet para mensagens instantâneas.&lt;/p&gt;

&lt;h3&gt;
  
  
  Recursos de bate-papo modernos
&lt;/h3&gt;

&lt;p&gt;O XMPP oferece suporte a recursos modernos de bate-papo de forma padronizada e interoperável (ao contrário do IRC). Os recursos incluem:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Suporte a vários dispositivos, mensagens offline, mensagens multilinha, estilo de mensagens, criptografia de ponta a ponta, correção de mensagens, exclusão, respostas, recibos, marcadores de leitura, notificações de digitação…&lt;/li&gt;
&lt;li&gt;Sincronização de contatos e salas, avatares, transferência de arquivos, pré-visualização de imagens, adesivos, reações a mensagens, chamadas de áudio e vídeo criptografadas, encadeamentos de mensagens…&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Federado, não centralizado
&lt;/h4&gt;

&lt;p&gt;O XMPP é federado, em vez de centralizado (ao contrário do IRC, Telegram, Discord, Signal, Slack, …). &lt;/p&gt;

&lt;p&gt;E isso significa:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Você não está preso a um aplicativo "oficial": você pode escolher qualquer aplicativo que desejar.&lt;/li&gt;
&lt;li&gt;Você não fica preso a um único servidor: você pode escolher o servidor com os recursos, a política de privacidade e o suporte ao cliente que desejar. E, independentemente do servidor escolhido, você pode conversar com usuários de qualquer outro servidor, usando qualquer aplicativo XMPP.&lt;/li&gt;
&lt;li&gt;É resistente à "enshittificação" - se um operador fechar, ou for assumido por um bilionário ou se tornar maligno/anti-usuário, você pode alternar os servidores e continuar acessando todos os seus contatos existentes, por meio de todos os seus aplicativos existentes.&lt;/li&gt;
&lt;li&gt;O XMPP é uma grande rede de servidores pequenos e independentes. - Eles são menores e alvos menos convenientes para backdoors, aquisições corporativas, processos judiciais, ataques DDoS, etc., do que os servidores centralizados do Telegram, Discord, Signal, Slack, etc.&lt;/li&gt;
&lt;li&gt;Você pode configurar seu próprio servidor (público ou privado), o que fornece um nível incomparável de confiança no servidor.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Mesmo que um serviço centralizado (como o Signal) libere o código-fonte sob uma licença gratuita, não é possível confiar que seja o código que ele está realmente executando. Somente a autohospedagem oferece essa garantia.&lt;/p&gt;

&lt;h4&gt;
  
  
  Software que respeita a liberdade
&lt;/h4&gt;

&lt;p&gt;O XMPP possui um ecossistema diversificado de clientes e servidores que respeitam a liberdade.&lt;/p&gt;

&lt;h4&gt;
  
  
  Fácil de auto-hospedar
&lt;/h4&gt;

&lt;p&gt;O XMPP é fácil e leve para auto-hospedagem. Há servidores XMPP em Lua, Java, C e outras linguagens.&lt;/p&gt;

&lt;h4&gt;
  
  
  Protocolo governado pela comunidade
&lt;/h4&gt;

&lt;p&gt;O protocolo é governado por uma comunidade preocupada com a privacidade (a &lt;a href="https://xmpp.org" rel="noopener noreferrer"&gt;XSF&lt;/a&gt; ) e não por uma única empresa.&lt;/p&gt;

&lt;h4&gt;
  
  
  Pontes (&lt;em&gt;bridges&lt;/em&gt;)
&lt;/h4&gt;

&lt;p&gt;Ele tem pontes para outros protocolos de bate-papo, então você pode usar qualquer cliente XMPP para todos os seus bate-papos.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Biboumi para IRC&lt;/li&gt;
&lt;li&gt;Bifrost para Matrix&lt;/li&gt;
&lt;li&gt;Slidge para Discord, Facebook Messenger, Matrix, Mattermost, Signal, Skype, Steam Chat, Telegram e WhatsApp.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Começando
&lt;/h2&gt;

&lt;h3&gt;
  
  
  A maneira mais fácil
&lt;/h3&gt;

&lt;p&gt;A maneira mais fácil de ingressar na rede XMPP é instalar o Quicksy a partir da Google Play Store ou da Apple App Store . Ele usa seu número de telefone para registro, descoberta de contatos e recuperação de senha. A conta Quicksy funciona como qualquer conta XMPP e pode ser usada em qualquer cliente XMPP.&lt;/p&gt;

&lt;p&gt;Eu recomendo o Quicksy para a maioria das pessoas que:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;não quer perder tempo selecionando um servidor,&lt;/li&gt;
&lt;li&gt;não use um gerenciador de senhas e&lt;/li&gt;
&lt;li&gt;não se importe de usar o número de telefone deles para se registrar.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Se for esse o seu caso, instale o Quicksy e divirta-se!&lt;/p&gt;

&lt;p&gt;Se não for você, você precisa selecionar um servidor, criar uma conta e instalar um cliente.&lt;/p&gt;

&lt;h4&gt;
  
  
  Selecione um servidor e crie uma conta
&lt;/h4&gt;

&lt;p&gt;Recomendações de servidores públicos podem ser encontradas em &lt;a href="https://providers.xmpp.net" rel="noopener noreferrer"&gt;providers.xmpp.net&lt;/a&gt; ou &lt;a href="https://compliance.conversations.im/old" rel="noopener noreferrer"&gt;compliance.conversations.im&lt;/a&gt; . Alguns servidores permitem o registro a partir do cliente (chamado Registro In-Band - IBR), outros exigem que você se registre no site deles para evitar spam.&lt;/p&gt;

&lt;p&gt;Se você tem interesse em hospedar um servidor privado, o &lt;a href="https://snikket.org" rel="noopener noreferrer"&gt;Snikket&lt;/a&gt; visa simplificar bastante a tarefa. Ele também é um "rebrand" de servidores e clientes XMPP populares para oferecer uma experiência semelhante à de serviços centralizados, mais simplificados.&lt;/p&gt;

&lt;h4&gt;
  
  
  Instalar um cliente
&lt;/h4&gt;

&lt;p&gt;Para os clientes, recomendamos…&lt;/p&gt;

&lt;p&gt;Em dispositivos móveis:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Conversations, Monocles Chat, Cheogram para dispositivos Android modernos. Todos disponíveis pela loja &lt;a href="https://f-droid.org" rel="noopener noreferrer"&gt;F-Droid&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Yaxim ou Bruno para dispositivos Android antigos/de baixo custo, disponíveis na Google Play Store&lt;/li&gt;
&lt;li&gt;Monal ou Siskin para iOS, disponível na App Store&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No desktop:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Monal para macOS, disponível na App Store&lt;/li&gt;
&lt;li&gt;Gajim para Windows, disponível na Windows Store&lt;/li&gt;
&lt;li&gt;Gajim para GNU/Linux, disponível nos repositórios oficiais ou site &lt;a href="//gajim.org"&gt;gajim.org&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No navegador:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Converse.js &lt;a href="https://conversejs.org" rel="noopener noreferrer"&gt;conversejs.org&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Mais clientes podem ser encontrados em &lt;a href="https://xmpp.org/software" rel="noopener noreferrer"&gt;xmpp.org/software&lt;/a&gt; . Há uma excelente tabela comparativa de clientes em &lt;a href="//apps.xmpp24.de/en"&gt;apps.xmpp24.de/en&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Evite clientes com suporte XMPP ruim, como &lt;em&gt;Pidgin&lt;/em&gt; e &lt;em&gt;Thunderbird&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Como atrair pessoas para o XMPP
&lt;/h2&gt;

&lt;p&gt;Plataformas proprietárias e centralizadas dominam atualmente o mundo das mensagens instantâneas. Muitas pessoas preferem usar essas plataformas em vez do XMPP. Se nos importamos em retomar o controle de nossas comunicações, é imperativo que resolvamos isso.&lt;/p&gt;

&lt;p&gt;Basicamente, tudo se resume a isso: usar XMPP para tudo.&lt;/p&gt;

&lt;p&gt;Faça o máximo possível do seguinte:&lt;/p&gt;

&lt;p&gt;Minimize o valor que você cria para outras plataformas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tornando-se mais difícil de ser alcançado lá, por exemplo, verificando-os com menos frequência do que o XMPP, respondendo-os mais lentamente do que o XMPP, etc.&lt;/li&gt;
&lt;li&gt;Minimizar sua atividade neles, por exemplo, usá-los apenas para convidar outras pessoas para o XMPP.&lt;/li&gt;
&lt;li&gt;Abandoná-los completamente.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Aumente o valor que você cria para o XMPP:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tornando o XMPP seu principal meio de comunicação.&lt;/li&gt;
&lt;li&gt;Participar ativamente das comunidades XMPP.&lt;/li&gt;
&lt;li&gt;Informar às pessoas que você prefere ser contatado via XMPP. Se solicitado, explique o motivo.&lt;/li&gt;
&lt;li&gt;Ajudar a integrar amigos, familiares, colegas, estudantes, etc. ao XMPP. Se necessário, apresentá-los a contatos em comum e canais nos quais possam ter interesse.&lt;/li&gt;
&lt;li&gt;Não diga a eles para "usar XMPP"; diga a eles para "instalar o Quicksy [da Play Store/App Store]". Isso permite selecionar um cliente e um servidor de uma só vez, além de oferecer descoberta de contatos e recuperação fácil de senhas. Informe-os sobre clientes alternativos e "XMPP" (o protocolo subjacente) posteriormente.
Movendo comunidades, equipes, empresas, etc. existentes para o XMPP.&lt;/li&gt;
&lt;li&gt;Escolhendo o XMPP como chat principal para novas comunidades, equipes, empresas, etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;E peça para que outros sigam os mesmos passos acima!&lt;/p&gt;

&lt;p&gt;-- &lt;/p&gt;

&lt;p&gt;Esta é uma maneira fácil de contribuir para softwares que respeitam a liberdade e tecnologias que respeitam a privacidade, sem exigir as habilidades de um programador, tradutor ou designer&lt;/p&gt;

&lt;p&gt;Essas sugestões vêm da experiência — e comprovadamente funcionam, desde que você tenha a coragem e a firmeza necessárias. &lt;/p&gt;

&lt;p&gt;Quanto mais pessoas usarem e promoverem o XMPP exclusivamente, mais rápido teremos um mundo onde a comunicação federada, sustentável, respeitadora da liberdade e da privacidade se tornará a norma.&lt;/p&gt;

&lt;p&gt;E &lt;strong&gt;muito importante&lt;/strong&gt;: seja um bom anfitrião, adicione seus amigos no seu cliente XMPP e estimule conversas nesse novo canal!&lt;/p&gt;

</description>
      <category>xmpp</category>
      <category>101</category>
      <category>beginners</category>
      <category>instantmessaging</category>
    </item>
    <item>
      <title>Recuperando a soberania e a privacidade da sua comunicação pessoal e corporativa</title>
      <dc:creator>Isadora Ribeiro</dc:creator>
      <pubDate>Thu, 05 Jun 2025 20:27:45 +0000</pubDate>
      <link>https://dev.to/isafashiondev/recuperando-a-soberania-e-a-privacidade-da-sua-comunicacao-pessoal-e-corporativa-id3</link>
      <guid>https://dev.to/isafashiondev/recuperando-a-soberania-e-a-privacidade-da-sua-comunicacao-pessoal-e-corporativa-id3</guid>
      <description>&lt;p&gt;Há cerca de 26 anos nasceu um protocolo de comunicação de código aberto, federado e com todos os princípios primordiais de liberdade e descentralização que balizaram o início da Internet.&lt;/p&gt;

&lt;p&gt;Não... não é o SMTP - protocolo base da troca de e-mails (até porque esse é mais ancião um pouco). Foi o XMPP (Extensible Messaging and Presence Protocol), à época chamado também de Jabber.&lt;/p&gt;

&lt;p&gt;Diversas soluções comerciais adotaram o XMPP para viabilizar seus produtos de mensagens instantâneas: Google Talk, WhatsApp e outros mensageiros nasceram sob as raízes do XMPP mas, ao longo do tempo, modificaram tanto o "idioma" (protocolo) que acabaram criando "dialetos" que somente usuários da mesma plataforma conseguem se comunicar.&lt;/p&gt;

&lt;p&gt;Imagine se o Gmail enviasse e-mail apenas pro Gmail. Se o Hotmail só enviasse e-mails para Hotmail. O que seria da comunicação nos últimos 30 anos (comercialmente falando; no mínimo)?&lt;/p&gt;

&lt;p&gt;Depois de algumas experiências com XMPP lá em 2004, esse ano eu resolvi retomar meu contato com o protocolo. Pra minha total alegria o ecossistema evoluira increvelmente: novos softwares para servidor, para cliente, bridges para outros protocolos (IRC, WhatsApp, Matrix, etc), enfim. Um admirável mundo novo.&lt;/p&gt;

&lt;p&gt;Com toda uma mudança no cenário global de big techs, IAs, privacidade, segurança e geopolítica, e ainda "entalada" com o fato de empresas com a Meta nos colocarem num "chiqueirinho virtual" (onde só podemos conversar com pessoas de igual aplicativo) e  usando cada vez mais nossos dados e hábitos para controlar que conteúdos nos serão oferecidos, resolvi tomar uma atitude.&lt;/p&gt;

&lt;p&gt;O WhatsApp (esse é o foco, mas poderíamos estar falando de outras soluções de bigtech) acabou virando uma "tornozeleira eletrônica de bolso" pois somos praticamente obrigados a ter uma conta nesse aplicativo pois o mundo se amparou nesse meio de comunicação. &lt;/p&gt;

&lt;p&gt;Além dessa questão, o WhatsApp é operado por uma empresa estrangeira, com políticas de uso questionáveis (recentemente foi aberta possibilidade de uso comercial por empresas de apostas, por exemplo) e sua empresa controladora tem se envolvido cada vez mais em desobediência à soberania brasileira. Ainda há a questão de que toda comunicação que passa pelos Estados Unidos é controlada e monitorada pelos seus órgãos de inteligência e segurança nacional - independente da gente pensar que a criptografia ponta a ponta do WhatsApp realmente é garantida.&lt;/p&gt;

&lt;p&gt;Mas o princípio da Internet é a liberdade, a descentralização e, em especial, a possibilidade de escolha.&lt;/p&gt;

&lt;p&gt;Assim nasceu o isaCloud Messenger: uma alternativa para mim, família, amigos e comunidade de ter um mensageiro instantâneo livre de bigtechs, bilionários, IAs e bets.&lt;/p&gt;

&lt;p&gt;O que mais me apaixona sobre o isaCloud Messenger é que ele oferece:&lt;/p&gt;

&lt;p&gt;Liberdade:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;usuários do isaCloud Messenger podem falar com pessoas de qualquer outro servidor que converse o mesmo "idioma" (protocolo XMPP)&lt;/li&gt;
&lt;li&gt;pelo seu cliente de mensagens, é possível excluir todos os dados da sua conta, inclusive do servidor&lt;/li&gt;
&lt;li&gt;opera com protocolo de comunicação de código aberto e os clientes também são de código aberto&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Privacidade:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;as contas não são vinculadas ao seu número de celular ou qualquer outro dado pessoal: você escolhe um nome de usuário e pronto&lt;/li&gt;
&lt;li&gt;você não vai receber SPAM porque seu nome de usuário não está vinculado a um número público de telefone, ou endereço de e-mail que pode ter vazado em alguma lista&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Segurança:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;criptografia ponta a ponta de altíssimo nível&lt;/li&gt;
&lt;li&gt;criptografia de mensagens offline arquivadas para entrega futura&lt;/li&gt;
&lt;li&gt;PFS (perfect forward secrecy), onde mensagens históricas só podem ser descriptografadas pelos dispositivos que trocaram essas mensagens&lt;/li&gt;
&lt;li&gt;criptografia de trânsito&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Se isso é bom para nossa vida pessoal, imagina para sua empresa? Poder ter um mensageiro instantâneo cujos dados são todos mantidos em sua própria infraestrutura, com sua governança e seus usuários integrados à sua base corporativa de autenticação (OIDC, por exemplo) garantindo total segurança sobre quem se comunica pelo seu mensageiro privado. &lt;/p&gt;

&lt;p&gt;Além disso, é uma forma de se proteger com relação a questões geopolíticas e jurídicas que podem, por exemplo, banir o uso de ferramentas como Telegram, WhatsApp e Signal do país em caso de descumprimento de demandas legais.&lt;/p&gt;

&lt;p&gt;Pessoalmente, penso que faz muito sentido recuperar a governança e soberania da comunicação das empresas brasileiras - inclusive no setor público.&lt;/p&gt;

&lt;p&gt;A Meta, X e outros players que se cuidem: isaCloud Messenger já está operando :)&lt;/p&gt;

&lt;p&gt;Referências sobre criptografia:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/OMEMO" rel="noopener noreferrer"&gt;https://en.wikipedia.org/wiki/OMEMO&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/Double_Ratchet_Algorithm" rel="noopener noreferrer"&gt;https://en.wikipedia.org/wiki/Double_Ratchet_Algorithm&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://xmpp.org/extensions/xep-0384.html" rel="noopener noreferrer"&gt;https://xmpp.org/extensions/xep-0384.html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>xmpp</category>
      <category>soberania</category>
      <category>governança</category>
      <category>mensagensinstantaneas</category>
    </item>
    <item>
      <title>SRE é sobre criar softwares que resolvem problemas de operação de outros softwares</title>
      <dc:creator>Isadora Ribeiro</dc:creator>
      <pubDate>Mon, 22 Jan 2024 00:26:09 +0000</pubDate>
      <link>https://dev.to/isafashiondev/sre-e-sobre-criar-softwares-que-resolvem-problemas-de-operacao-de-outros-softwares-cge</link>
      <guid>https://dev.to/isafashiondev/sre-e-sobre-criar-softwares-que-resolvem-problemas-de-operacao-de-outros-softwares-cge</guid>
      <description>&lt;p&gt;No último domingo tive a oportunidade de conversar com um novo amigo sobre a incrível jornada em SRE - &lt;strong&gt;Site Reliability Engeering&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Em um espasmo mental consegui resumir pra ele que um dos aspectos mais interessantes de SRE é que boa parte do nosso tempo é dedicada a &lt;strong&gt;desenvolver software&lt;/strong&gt; e que scripting não é suficiente: você precisa ter proficiência em desenvolvimento de software porque seu software precisará ter log estruturado, métricas, performance, persistência e uma série de requisitos técnicos em que o Bash não vai te salvar - ou seria um martírio, no mínimo.&lt;/p&gt;

&lt;p&gt;Mas que tipo de software SRE desenvolve? Vou elaborar alguns exemplos para ajudar nesse entendimento:&lt;/p&gt;

&lt;p&gt;--&lt;/p&gt;

&lt;h2&gt;
  
  
  Command-lines
&lt;/h2&gt;

&lt;p&gt;Com um ecossistema de infraestrutura e regras de negócio cada vez mais complexos, desenvolver CLI's pode ajudar times de operações N1, N2, infra e até DevOps na interligação de diferentes soluções por meio de uma interface única de controle.&lt;/p&gt;

&lt;h2&gt;
  
  
  Middlewares
&lt;/h2&gt;

&lt;p&gt;Aplicações backend que integram com soluções externas ao seu produto e interagem com seu produto conforme determinadas condições. Por exemplo, interagir com um datacenter que provê blocos de IPv4, consultar serviços externos de block lists e, conforme alguma condição, notificar seu produto para tomar uma determinada decisão - como bloquear um cliente, pausar uma campanha, etc.&lt;/p&gt;

&lt;h2&gt;
  
  
  Produtores e consumidores
&lt;/h2&gt;

&lt;p&gt;Aplicações backend que acompanham a operação de um produto, consomem tópicos de mensageria em busca de determinados eventos e, consumidos esses eventos, envia esses dados para um database de séries temporais que permite extrair informações quantitativas de um determinado fluxo do produto.&lt;/p&gt;

&lt;h2&gt;
  
  
  API's
&lt;/h2&gt;

&lt;p&gt;Construção de API's http/rest que recebem callbacks de serviços externos ao seu produto e constróem séries temporais de dados para permitir criar visualizações de operação ou fluxos do produto.&lt;/p&gt;

&lt;h2&gt;
  
  
  Aplicações sidecar
&lt;/h2&gt;

&lt;p&gt;Aplicações que rodam junto a outros softwares, como load balancers, permitindo análise de tráfego e tomadas de decisão em relação às requisições conforme regras de negócio próprias do produto.&lt;/p&gt;

&lt;p&gt;--&lt;/p&gt;

&lt;p&gt;Uma das principais certezas em SRE é que dificilmente um outro time vai "saber o que demandar". &lt;/p&gt;

&lt;p&gt;SRE é muito sobre &lt;strong&gt;visão de produto e negócio&lt;/strong&gt; e &lt;strong&gt;habilidade em desenvolvimento de software&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;É saber que todos os principais fluxos do produto precisam ter &lt;strong&gt;visibilidade&lt;/strong&gt; para que possam ser operados. &lt;/p&gt;

&lt;p&gt;É sobre fornecer dados em tempo real de operações para &lt;strong&gt;outros times&lt;/strong&gt; como atendimento, suporte N1, suporte N2, infra, dev, etc.&lt;/p&gt;

&lt;p&gt;SRE é sobre resolver problemas de operação de software - seja ele de natureza tecnológica, humana ou processos - com mais software.&lt;/p&gt;

&lt;p&gt;Quer uma dica para evoluir em SRE? Seja uma pessoa &lt;strong&gt;inconformada&lt;/strong&gt; e que &lt;strong&gt;não espera a demanda chegar&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;--&lt;/p&gt;

&lt;p&gt;Com carinho,&lt;br&gt;
Isadora.&lt;/p&gt;

&lt;p&gt;-- &lt;/p&gt;

&lt;p&gt;Literatura acerca do tema em:&lt;br&gt;
&lt;a href="https://sre.google/books/" rel="noopener noreferrer"&gt;Google SRE Books&lt;/a&gt;&lt;/p&gt;

</description>
      <category>sre</category>
      <category>softwaredevelopment</category>
    </item>
    <item>
      <title>Para quê serve o Stream Processing Offload Engine do HAProxy?</title>
      <dc:creator>Isadora Ribeiro</dc:creator>
      <pubDate>Fri, 19 Jan 2024 13:27:17 +0000</pubDate>
      <link>https://dev.to/isafashiondev/para-que-serve-o-stream-processing-offload-engine-do-haproxy-537e</link>
      <guid>https://dev.to/isafashiondev/para-que-serve-o-stream-processing-offload-engine-do-haproxy-537e</guid>
      <description>&lt;p&gt;Pergunta recebida: pra que serve esse &lt;strong&gt;SPOA&lt;/strong&gt; (Stream Processing Offload Agent) do HAProxy?&lt;/p&gt;

&lt;p&gt;O HAProxy suporta pelo menos 2 formas de extensão para inspeção de tráfego: script Lua ou &lt;strong&gt;SPOE&lt;/strong&gt; (Stream Processing Offload Engine). &lt;/p&gt;

&lt;p&gt;Esses recursos permitem que tu inspecione o tráfego conforme tuas regras de negócio e enriqueça a transação (requisição-resposta) com variáveis que podem ser posteriormente avaliadas em ACL’s e ações como bloquear a requisição, fazer throttling, logar algo específico. &lt;/p&gt;

&lt;p&gt;Esse mecanismo &lt;strong&gt;SPOE&lt;/strong&gt; define um protocolo &lt;strong&gt;SPOP&lt;/strong&gt; (Stream Processing Offload Protocol) que permite comunicar com aplicações externas, tipo em Go (óbvio!), para que elas implementem lógicas de negócio que tua aplicação principal precise.&lt;/p&gt;

&lt;p&gt;Os exemplos mais conhecidos de &lt;strong&gt;SPOA&lt;/strong&gt; são a implementação de Web Application Firewall (ex: Coraza WAF) e análise de geolocalização. &lt;/p&gt;

&lt;p&gt;No meu caso, preciso registrar um histórico com o último timestamp de acesso a hostnames únicos.&lt;/p&gt;

&lt;p&gt;Armazeno isso em base chave-valor e injeto um header “Last-Access: 1705443033” (por exemplo) quando uma aplicação nossa chama o proxy numa rota específica, tipo “algum-hostname/get-last-access”. Essa aplicação usa essa informação para regras de renovação de certificados TLS.&lt;/p&gt;

&lt;p&gt;Esse mecanismo &lt;strong&gt;SPOE&lt;/strong&gt; não é bloqueante e tudo é bem configurado para que esse processamento externo não onere a requisição mais que um determinado limite de tempo.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Mas Isa, não era mais fácil fazer em Lua?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Se tua lógica é bem simples, pode fazer. &lt;/p&gt;

&lt;p&gt;Mas não era o meu caso :)&lt;/p&gt;

&lt;p&gt;-- &lt;/p&gt;

&lt;p&gt;Com carinho,&lt;br&gt;
Isadora.&lt;/p&gt;

</description>
      <category>sre</category>
      <category>proxy</category>
    </item>
    <item>
      <title>HAProxy FAQ</title>
      <dc:creator>Isadora Ribeiro</dc:creator>
      <pubDate>Fri, 19 Jan 2024 13:19:45 +0000</pubDate>
      <link>https://dev.to/isafashiondev/haproxy-faq-4k8b</link>
      <guid>https://dev.to/isafashiondev/haproxy-faq-4k8b</guid>
      <description>&lt;p&gt;Algumas perguntas que recebo sobre HAProxy:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Por que usar um HAProxy se meu provedor de nuvem já tem balancer?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Como posso criar uma estrutura tolerante a falhas?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Só posso utilizar como proxy reverso HTTP?&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;-- &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Independência de provedor, autonomia para customização, domínio tecnológico, integração facilitada com sua aplicação, extensão de funções com Lua e Stream Processing Offload Engine (SPOE) - que permite avaliar tráfego usando aplicações Go, C, Python, .NET Core, etc.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Router/switch com Virtual IP (VIP) à frente das instâncias, uso de Network Load Balancer para dividir tráfego entre instâncias em diferentes zonas, VIP com keepalived ou corosync on-prem, DNS round robin, etc.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;O HAProxy pode ser usado com Redis, MySQL e outros. Com as opções flexíveis de health check, pode-se enviar comandos e esperar respostas para decidir a disponibilidade de um server num cenário primário-secundário de balanceamento. Pode-se usar até agentes externos de checagem.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;-- &lt;/p&gt;

&lt;p&gt;Estou sempre estudando sobre o tema e vai ser legal receber dicas de como vocês usam o HAProxy :)&lt;/p&gt;

&lt;p&gt;2 links sobre o item 3:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.haproxy.com/blog/using-haproxy-with-the-proxy-protocol-to-better-secure-your-database" rel="noopener noreferrer"&gt;Using HAProxy with the proxy protocol to better secure your database&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.haproxy.com/blog/haproxy-advanced-redis-health-check" rel="noopener noreferrer"&gt;HAProxy advanced Redis health check&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;E sobre HAProxy como ingress controller em Kubernetes, outro link:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.haproxy.com/blog/dissecting-the-haproxy-kubernetes-ingress-controller" rel="noopener noreferrer"&gt;Dissecting the HAProxy Kubernetes Ingress Controller&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;--&lt;/p&gt;

&lt;p&gt;Com carinho,&lt;br&gt;
Isadora.&lt;/p&gt;

</description>
      <category>sre</category>
      <category>haproxy</category>
      <category>faq</category>
      <category>proxy</category>
    </item>
    <item>
      <title>Por que o HAProxy é meu balancer/proxy favorito</title>
      <dc:creator>Isadora Ribeiro</dc:creator>
      <pubDate>Fri, 19 Jan 2024 13:12:15 +0000</pubDate>
      <link>https://dev.to/isafashiondev/por-que-o-haproxy-e-meu-balancerproxy-favorito-51e6</link>
      <guid>https://dev.to/isafashiondev/por-que-o-haproxy-e-meu-balancerproxy-favorito-51e6</guid>
      <description>&lt;p&gt;Quando me perguntam sobre load balancers e proxy reverso eu só tenho uma resposta: HAProxy.&lt;/p&gt;

&lt;p&gt;Vou dividir algumas das features que considero mais top e que me fazem escolher esse software há mais de 14 anos.&lt;/p&gt;

&lt;p&gt;10 razões para escolher o HAProxy como seu balancer favorito!&lt;/p&gt;

&lt;p&gt;--&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Dataplane API: é a sidecar API oficial que permite interagir com o HAProxy via rest. O próprio processo do HAProxy sobe ela através da diretiva “program”. Permite, dinamicamente, adicionar backends, server, acl’s, certificados, frontends, etc.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Stick tables: são hash tables em memória que permitem criar chaves tipo ip, string, binary, etc e vincular a elas diversos contadores (acumulativos) ou gauges (métricas por segundo). Pode usá-las para tomar decisões de tráfego, bloqueio ou somente para metrificar.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Admin socket: por baixo dos panos a Dataplane API interage com o socket de admin do HAProxy que permite realizar n operações a quente no proxy e, através dela, pode-se coletar as stick tables e mandar seus resultados para um InfluxDB/Prometheus.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;PROMEX: o HAProxy pode ser buildado com Prometheus Exporter nativo, bastando adicionar uma regra no frontend:&lt;br&gt;
&lt;code&gt;http-request use-service prometheus-exporter if { path -m str /metrics }&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;SPOE: permite que apps externas, em Go, óbvio (:P), realizem análise do tráfego e sete variáveis na transação permitindo o HAProxy decidir o que fazer com o tráfego. Um exemplo clássico: validar Geolocalização, marcar na transação e deixar alguma ACL tomar decisão.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;TLS: uma única instância de HAProxy pode fazer offload de centenas de milhares de certificados TLS sem dificuldade. Além disso, via API ou socket, pode-se carregar, atualizar ou revogar certificados a quente, podendo entregar esses arquivos posteriormente via filesystem.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Peers: o HAProxy nativamente pode operar em cluster, comunicando com outras instâncias e, inclusive, compartilhando as stick tables para fins de segurança, redundância e escala.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Lua: algo que pessoalmente não tenho utilizado, mas que é natural para o HAProxy (assim como Nginx), a inclusão de LUA permite também customizar a operação do HAProxy em diversos níveis - seja no boot dele, seja dinamicamente, por requisição.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Métricas: o HAProxy é de longe o balancer com melhor nível de visibilidade da sua operação. Possui um conjunto incrível de métricas que, arrisco dizer, não deixar faltar UMA informação que seja crucial ou informativa para a operação dele.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Logs: o nível de detalhe dos logs é incrível. Pra uma req tu obtém numa única linha, entre outras coisas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;tempo que cliente levou pra fazer requisição&lt;/li&gt;
&lt;li&gt;tempo que a requisição ficou em queues internas&lt;/li&gt;
&lt;li&gt;tempo para conectar no servidor do backend de destino&lt;/li&gt;
&lt;li&gt;tempo de resposta do servidor&lt;/li&gt;
&lt;li&gt;tempo total da requisição&lt;/li&gt;
&lt;li&gt;status de terminação da conexão&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;--&lt;/p&gt;

&lt;p&gt;Bem, se me chamavam de testemunha de Go, sei que vou ganhar o chapéu de testemunha de HAProxy também :)&lt;/p&gt;

&lt;p&gt;Pela atenção, obrigada!&lt;/p&gt;

&lt;p&gt;Com carinho,&lt;br&gt;
Isadora.&lt;/p&gt;

</description>
      <category>sre</category>
      <category>haproxy</category>
      <category>loadbalancer</category>
      <category>proxy</category>
    </item>
    <item>
      <title>Como ir além do monitoramento básico</title>
      <dc:creator>Isadora Ribeiro</dc:creator>
      <pubDate>Fri, 19 Jan 2024 12:21:31 +0000</pubDate>
      <link>https://dev.to/isafashiondev/como-ir-alem-do-monitoramento-basico-4ije</link>
      <guid>https://dev.to/isafashiondev/como-ir-alem-do-monitoramento-basico-4ije</guid>
      <description>&lt;p&gt;Em SRE uma das disciplinas essenciais é observabilidade - e um dos seus pilares é &lt;strong&gt;monitoramento&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Então, como &lt;strong&gt;monitorar melhor&lt;/strong&gt; meu produto/plataforma seguindo algumas premissas de SRE? Como dar o próximo passo?&lt;/p&gt;

&lt;p&gt;--&lt;/p&gt;

&lt;p&gt;O básico de monitoramento todo mundo faz: instala mil “exporters” de Prometheus, coleta com eles dezenas de milhares de métricas, manda uma dúzia pro Grafana, integra com Alert Manager e voilà!&lt;/p&gt;

&lt;p&gt;Para dar o próximo passo nesse tema é importante se questionar algumas coisinhas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Métrica são dados, mas eu estou tirando informação delas?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Estou sabendo dar valor a essas métricas com gráficos e dashboards que dão significado real a elas?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Além de infra, tem mais lugares onde eu possa coletar métricas?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Tenho todas as métricas pra isso só com os “exporters” que tenho hoje?&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;(E o MAIS IMPORTANTE):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Estou conseguindo montar os principais FLUXOS do produto numa visualização que represente DISPONIBILIDADE, DESEMPENHO e EXPERIÊNCIA DO CLIENTE?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;--&lt;/p&gt;

&lt;p&gt;Esse trio DDXP (disponibilidade, desempenho e experiência do cliente) será o principal norte para uma mudança de mentalidade.&lt;/p&gt;

&lt;p&gt;É bem provável que teremos de ir “além dos exporters padrão”, criar novos  exporters, escavar dados de outras fontes para atender o trio DDXP.&lt;/p&gt;

&lt;p&gt;É provável que tenhamos de executar queries na base transacional ou no broker de mensageria, torná-las time series em outro backend. Buscar métricas num JMX, num runtime profiler, fazer queries num MongoDB, ou num Redis.&lt;/p&gt;

&lt;p&gt;Ou ainda criar aplicações de SRE que integram com Tampermonkey ou jMeter e coletam resultados de uso.&lt;/p&gt;

&lt;p&gt;Buscar métricas em balancers e uni-las com as de aplicação para entender onde estão aqueles milissegundos preciosos de uma transação.&lt;/p&gt;

&lt;p&gt;O fato é que a gente precisa buscar métricas onde quer que elas estejam e é certo de que ela não está só nos exporters.&lt;/p&gt;

&lt;p&gt;--&lt;/p&gt;

&lt;p&gt;Voltando pro princípio, o objetivo é conseguir ter uma visão unificada dos principais fluxos do produto/negócio com base em todas as métricas que se relacionam diretamente com Disponibilidade, Desempenho e Experiência do cliente.&lt;/p&gt;

&lt;p&gt;E sim, só o Prometheus não vai ser suficiente. Certamente será preciso um outro tipo de time series db para complementar (TimescaleDB, InfluxDB, etc) e ir além dos counters e gauges padrão.&lt;/p&gt;

&lt;p&gt;--&lt;/p&gt;

&lt;p&gt;Enfim, esses são alguns insights para dar o próximo passo do monitoramento básico para um monitoramento rico :)&lt;/p&gt;

&lt;p&gt;Obrigada por chegar até aqui!&lt;/p&gt;

&lt;p&gt;Com carinho,&lt;br&gt;
Isadora.&lt;/p&gt;

</description>
      <category>sre</category>
      <category>monitoring</category>
    </item>
  </channel>
</rss>
