Enable javascript in your browser for better experience. Need to know to enable it? Go here.
Volume 30 | Abril 2024

Ferramentas

Ferramentas

Adote ?

  • Conan é uma ferramenta de código aberto para o gerenciamento de dependências para aplicações C/C++. Ele oferece uma interface intuitiva para definir, buscar e gerenciar dependências, facilitando a integração de bibliotecas de terceiros em projetos. O Conan funciona em todos os principais sistemas operacionais e pode ser direcionado a diversas plataformas, incluindo servidores, desktops, dispositivos móveis e embarcados. Ele também pode ser usado para construir e publicar bibliotecas e pacotes C/C++. Os pacotes podem ser compartilhados entre equipes por meio de servidores JFrog Artifactory. Ao aproveitar binários pré-construídos, o Conan reduz significativamente o tempo de compilação, especialmente para dependências pesadas. Ele se integra a sistemas de compilação populares como o CMake e também possui um SDK Python para estender o sistema de compilação para tarefas como assinatura de código. Em nossa experiência, o Conan se traduz em melhor reprodutibilidade de compilação em diferentes ambientes e ciclos de desenvolvimento mais rápidos. As bases de código resultantes ficam mais limpas e fáceis de manter, o que é uma grande vantagem para projetos C e C++ de larga escala. Se você está lutando com o gerenciamento de dependências em seus projetos, o Conan é uma ferramenta imprescindível para aumentar a eficiência do seu desenvolvimento.

  • Em outubro de 2022, adicionamos o Kaniko ao Radar, pouco depois do Kubernetes ter removido o suporte ao Docker. Na época, destacamos a tendência de se afastar do Docker como padrão para a construção de imagens de container dentro de pipelines baseados em container. Desde então, expandimos nossa experiência com Kaniko em diferentes ferramentas e configurações de pipelines. As equipes gostam da sua flexibilidade e performance, por isso estamos movendo o Kaniko para a categoria Adotar, destacando-o como a ferramenta padrão nesse espaço.

  • Uma das funcionalidades fundamentais do Kubernetes é o autoscaling horizontal: a capacidade que permite provisionar novos pods quando demanda por capacidade aumenta e removê-los quando a carga diminui. No entanto, isso só funciona se os nós necessários para hospedar os pods já existirem. O Cluster Autoscaler pode realizar uma expansão básica do cluster acionada por falhas de pods, mas possui flexibilidade limitada. O Karpenter, por outro lado, é um autoescalador de nós, mais inteligente, de código aberto Kubernetes Operator. Ele analisa os workloads atuais e restrições de agendamento de pods, seleciona um tipo de instância apropriada e então a inicia ou interrompe conforme a necessidade. O Karpenter é um operador no mesmo espírito de ferramentas como o Crossplane que podem provisionar recursos de cloud fora do cluster. Embora o Karpenter tenha sido originalmente desenvolvido pela AWS para o EKS, ele está se tornando a escolha padrão para provisionadores automáticos de nós entre os provedores de serviços Kubernetes em nuvem. O Azure recentemente iniciou o suporte ao Karpenter com o AKS Karpenter Provider.

Experimente ?

  • 42Crunch API Conformance Scan é uma ferramenta de teste dinâmico projetada para identificar discrepâncias entre o comportamento documentado da sua API e sua implementação real. Ela analisa a definição da especificação da API no formato OpenAPI, que descreve as funcionalidades e respostas esperadas, e a compara com o comportamento real da API. Ao gerar tráfego real e interagir com endpoints ativos, a ferramenta pode identificar quaisquer discrepâncias entre o que a API promete e o que ela entrega. Isso se traduz em diversos benefícios para as equipes de desenvolvimento. Por exemplo, ela captura inconsistências no início do desenvolvimento, economizando tempo e evitando que problemas cheguem à produção. A ferramenta também auxilia na melhoria da qualidade e segurança da API, identificando potenciais vulnerabilidades decorrentes de desvios do comportamento documentado. De forma geral, o API Conformance Scan ajuda a avaliar a postura de segurança de suas APIs identificando problemas como protocolos de autenticação fracos, práticas inseguras de manipulação de dados e validação de entrada insuficiente. A ferramenta fornece relatórios detalhados destacando quaisquer problemas encontrados, juntamente com recomendações para correção.

  • actions-runner-controller é um controlador do Kubernetes que opera runners auto-hospedados para o GitHub Actions. Runners auto-hospedados são úteis em cenários onde a tarefa executada pelo GitHub Actions precisa acessar recursos que não estão acessíveis aos runners em nuvem do GitHub ou possuem requisitos específicos de sistema operacional e ambiente diferentes dos fornecidos pelo GitHub. Nesses cenários, onde a equipe usa clusters Kubernetes, o actions-runner-controller orquestra e dimensiona esses runners. Nossas equipes gostam de sua capacidade de dimensionar runners com base no número de workflows em execução em um determinado repositório, organização, enterprise ou cluster Kubernetes, bem como sua capacidade de lidar com runners Linux e Windows.

  • O Contêiner do Emulador Android simplifica o processo de teste de aplicativos Android eliminando as complexidades decorrentes de problemas de compatibilidade de SO e dependências do sistema, bem como da configuração de emuladores para várias versões do Android. Tradicionalmente, essa complexidade exigia esforços extras ou levava as equipes a abandonarem completamente os testes automatizados, o que, por sua vez, resultava em ciclos de desenvolvimento e testes mais lentos. O Contêiner Emulador do Android simplifica esse processo, permitindo a integração perfeita em pipelines de CI para testes automatizados. Nossas equipes utilizam esses contêineres principalmente para testes instrumentados, que são executados automaticamente a cada commit para fornecer feedback instantâneo aos desenvolvedores. Além disso, também aproveitamos o Android Emulator Containers para executar testes noturnos completos de ponta a ponta.

  • Sempre recomendamos o monitoramento de custos como uma função de aptidão arquitetural. Provedores de nuvem oferecem diversos serviços de monitoramento de gastos, como o AWS Cost Explorer ou o Google Cloud FinOps Hub. No ecossistema AWS, nossos times utilizam os painéis do CUDOS (Cost and Usage Dashboards Operations Solution) para monitorar os gastos doAWS Marketplace segregados por departamentos de negócio ou entidades legais em uma grande organização-mãe. Este painel oferece detalhes abrangentes de custo e uso, com granularidade no nível do recurso, auxiliando na otimização de custos, no acompanhamento de metas de utilização e na obtenção de excelência operacional.

  • aws-nuke é uma ferramenta de código aberto que aborda o desafio comum do acúmulo de recursos não utilizados em contas de desenvolvimento e sandbox da AWS, o que pode levar a ineficiências de custo. A ferramenta identifica e remove todos os recursos deletados dentro de uma conta ou região da AWS, com exceção dos recursos padrão ou gerenciados pela AWS, essencialmente redefinindo o ambiente para um estado inicial. Ela também oferece políticas de exclusão personalizáveis para garantir que os recursos críticos permaneçam protegidos. Utilizamos esta ferramenta tanto para o caso de uso padrão de otimização de custos, quanto em contextos de recuperação de desastres (DR) com bons resultados. Ao automatizar a limpeza em ambientes de desenvolvimento e sandbox, o aws-nuke ajuda a minimizar gastos desnecessários com recursos. Também facilita a desmontagem eficiente da infraestrutura temporária de DR após simulações ou exercícios. Embora estável, o aws-nuke é uma ferramenta muito destrutiva e não se destina ao uso em ambientes de produção. Sempre execute uma simulação para confirmar que os recursos essenciais não serão excluídos.

  • Bruno é uma alternativa de código aberto para desktop às ferramentas de teste, desenvolvimento e depuração de APIs como Postman e Insomnia. Ele armazena suas coleções localmente no sistema de arquivos, permitindo o uso do Git ou do controle de versão de sua preferência para colaboração. Várias equipes da Thoughtworks estão usando o Bruno e gostam do seu design simples e offline.

  • Develocity (anteriormente conhecida como Gradle Enterprise) aborda o problema dos ciclos longos de build e teste em projetos de software de larga escala. Ela emprega melhorias de performance, como cache de build e seleção preditiva de testes, para reduzir os ciclos de feedback do desenvolvedor em ambientes locais e de CI/CD. Nossas equipes de plataforma descobriram que ela é útil para acelerar builds e testes, analisar comandos para determinar qual parte do workflow ainda precisa ser otimizada, identificar e solucionar problemas em testes instáveis e realizar análises no hardware usado para executá-los.

  • Embora o mercado de assistentes de programação por IA esteja cada vez mais movimentado, o GitHub Copilot continua sendo nossa escolha padrão e é utilizado por muitas de nossas equipes. Desde a última vez que escrevemos sobre o GitHub Copilot, as melhorias mais interessantes vieram no recurso de chat. Por exemplo, não é mais necessário poluir o código com comentários como comandos; agora, um chat integrado ajuda você a dar comandos sem escrever um comentário. O chat integrado também pode alterar o código, não apenas escrever novas linhas. Agora você também pode expandir significativamente o contexto do chat ao fazer perguntas sobre seu código, usando a tag @workspace. Isso permite que você faça perguntas sobre toda a base de código, não apenas sobre os arquivos abertos. Você pode expandir ainda mais esse contexto com a versão Copilot Enterprise, que obtém contexto de todos os repositórios que você hospeda no GitHub. Por fim, o GitHub começou a direcionar algumas solicitações de chat para um modelo GPT-4 mais poderoso, e a disponibilidade do chat nas populares IDEs da JetBrains é iminente (embora ainda em beta privado no momento da redação). Esses lançamentos mostram que o ritmo de melhorias na área não desacelerou. Se você experimentou um assistente de programação no ano passado e o descartou, recomendamos que continue monitorando os recursos sendo lançados e dê outra chance.

  • Gradio é uma biblioteca Python de código aberto que facilita a criação de interfaces web interativas para modelos de Aprendizado de Máquina (ML). Ao prover uma interface gráfica sobre os modelos, o Gradio permite que as pessoas sem conhecimento técnico compreendam melhor os dados de entrada, restrições e saídas. A biblioteca ganhou bastante força na área de Inteligência Artificial Generativa, pois torna modelos generativos facilmente acessíveis para experimentação. Normalmente, só adicionamos tecnologias em Trial após observarmos seu uso em produção. O foco e força do Gradio são a experimentação e prototipagem, e já o utilizamos diversas vezes para esse fim. Recentemente, uma de nossas equipes utilizou o Gradio para auxiliar uma cliente em demonstrações ao vivo durante grandes eventos. Estamos muito satisfeitos com as capacidades do Gradio para esses casos de uso, o que motivou a inclusão em Avalie.

  • O catálogo de versões do Gradle é um recurso útil da ferramenta de compilação Gradle que permite o gerenciamento centralizado de dependências no arquivo de compilação. Nossas equipes têm o considerado especialmente valioso para projetos Android multi-módulo. Ao invés de programar nomes e versões de dependências em arquivos de compilação individuais e gerenciar atualizações manualmente, você pode criar um catálogo central de versões dessas dependências e então referenciá-lo de forma segura por tipo com a assistência do Android Studio.

  • Maestro é uma ferramenta extremamente útil para testar fluxos complexos em aplicativos mobile. Nossos times descobriram que ele é fácil de aprender, entender e integrar ao fluxo de desenvolvimento. O Maestro suporta diversas plataformas mobile, incluindo iOS, Android, aplicativos React Native e Flutter. Sua sintaxe declarativa em YAML simplifica a automatização de interações complexas de UI mobile (Interface de Usuário para dispositivos móveis). Baseado na evolução da ferramenta, marcada por recursos aprimorados como suporte abrangente ao iOS e a introdução de ferramentas como Maestro Studio e o Maestro Cloud, incentivamos que qualquer pessoa que busque otimizar seus processos de teste de aplicativos mobile experimente o Maestro.

  • A Microsoft SBOM tool é uma ferramenta de código aberto para gerar Listas de Materiais de Software (SBOM) compatíveis com SPDX. Já falamos anteriormente sobre a necessidade de SBOM, e esta ferramenta facilita o início do processo. A ferramenta SBOM suporta diversos gerenciadores de pacotes populares (incluindo npm, pip e Gradle), tornando-a compatível com uma ampla variedade de projetos. É muito fácil de usar e pode ser integrada aos fluxos de desenvolvimento existentes, incluindo a integração com pipelines de CI/CD. Ao aproveitar o SBOM gerado com esta ferramenta, as pessoas desenvolvedoras obtêm várias vantagens. A segurança aprimorada do software é um benefício fundamental, pois uma visão clara dos componentes permite uma identificação mais fácil de vulnerabilidades e um melhor gerenciamento de riscos. A conformidade com licenças também é aprimorada, pois as pessoas desenvolvedoras podem garantir a adesão a todos os contratos relevantes. Além disso, o SBOM promove transparência na cadeia de fornecimento de software, auxiliando no rastreamento de dependências e mitigando riscos potenciais. Se você deseja agilizar a geração de SBOM, melhorar a segurança do software e obter controle sobre sua cadeia de fornecimento de software, considere experimentar a ferramenta Microsoft SBOM.

  • Open Policy Agent (OPA) é uma estrutura e linguagem unificada para declarar, impor e controlar políticas. Para nossos times, ele se tornou a forma favorita de definir políticas para sistemas distribuídos, especialmente quando precisamos implementar conformidade no ponto de mudança. O OPA permite que os times implementem diversos padrões de engenharia de plataforma, como controlar o que é implantado em clusters Kubernetes, reforçar o controle de acesso entre serviços em um service mesh e implementar políticas de segurança como código granulares para acessar recursos de aplicativos. Embora existam algumas complexidades associadas às implementações do OPA, ele provou ser uma ferramenta altamente valiosa para garantir a conformidade em uma cultura DevOps. Também continuamos atentos à extensão e maturidade do OPA para soluções além de sistemas operacionais, alcançando soluções centradas em dados (big data).

  • Embora os runners do GitHub Actions cubram uma ampla variedade dos ambientes de execução mais comuns e sejam os mais rápidos para começar, às vezes as equipes precisam gerenciar runners auto-hospedados. Isso acontece, por exemplo, quando a política da organização permite apenas implantações em uma infraestrutura privada hospedada dentro do próprio perímetro de segurança da organização. Nesses casos, as equipes podem usar o runner auto-hospedado para GitHub Actions** da Philips**, um módulo Terraform que provisiona runners customizados em instâncias spot da AWS EC2. O módulo também cria um conjunto de Lambdas que lida com o gerenciamento de ciclo de vida (aumento e redução de escala) desses runners. Em nossa experiência, esta ferramenta simplifica muito o provisionamento e gerenciamento de runners auto-hospedados do GitHub Actions. Uma alternativa para equipes que usam Kubernetes é o actions-runner-controller.

  • A programação em pares continua sendo uma técnica essencial para nós, pois ajuda a melhorar a qualidade do código e a disseminar o conhecimento dentro da equipe. Embora seja melhor feita presencialmente, nossas equipes distribuídas tem explorado ferramentas, para tornar o pareamento remoto o mais agradável e eficaz possível, como Tuple, Visual Studio Live Share, Code With Me e ferramentas gerais de chat e conferência. A última ferramenta que chamou a nossa atenção foi a Pop (anteriormente conhecida como Screen). Vinda dos fundadores da Screenhero, ela suporta compartilhamento de tela com várias pessoas, anotações e áudio/vídeo de alta qualidade. Algumas de nossas equipes a utilizaram extensivamente para programação em pares e sessões de trabalho remoto, e relataram uma experiência positiva.

  • O monitoramento e a atualização automáticos de dependências como parte do processo de compilação de software se tornaram prática padrão em todo o setor. Isso elimina as incertezas de se manter atualizado com as atualizações de segurança para pacotes de código aberto assim que são lançadas. Por muitos anos, o Dependabot foi a ferramenta padrão para essa prática, mas o Renovate se tornou a ferramenta preferida para muitas de nossas equipes. Elas consideram o Renovate mais adequado ao ambiente moderno de desenvolvimento de software, onde um sistema implantável depende não apenas de código e bibliotecas, mas também abrange ferramentas de tempo de execução, infraestrutura e serviços de terceiros. O Renovate cobre dependências desses artefatos auxiliares, além do código. Nossas equipes também descobriram que o Renovate oferece mais flexibilidade por meio de opções de configuração e personalização. Embora o Dependabot permaneça como uma opção padrão segura e esteja convenientemente integrado ao GitHub, recomendamos avaliar o Renovate para ver se ele pode reduzir ainda mais o encargo manual das pessoas desenvolvedoras para manter seus ecossistemas de aplicativos seguros e protegidos.

  • Terrascan é um analisador estático de código para infraestrutura como código (IaC) projetado para detectar vulnerabilidades de segurança e problemas de compliance antes do provisionamento de infraestrutura nativa de nuvem. Ele suporta varredura de Terraform: Terraform, Kubernetes (JSON/YAML), Helm, AWS CloudFormation, Azure Resource Manager, Dockerfiles e GitHub. O pacote de políticas padrão cobre todos os principais provedores de nuvem, GitHub, Docker e Kubernetes. Nossas equipes utilizam o Terrascan localmente como um hook de pre-commit e o integram em pipelines de CI/CD para detectar vulnerabilidades e violações de IaC.

  • Velero é uma ferramenta de código aberto para backup e restauração de recursos e volumes persistentes do Kubernetes. Ela simplifica a recuperação de desastres e migrações de clusters permitindo backups agendados e sob demanda. O Velero também possibilita controles mais granulares sobre quais recursos serão copiados e sobre o fluxo de trabalho de backup/restauração (com hooks). Nossas equipes gostam da facilidade de uso da ferramenta e sua dependência nas APIs do Kubernetes em vez de camadas de nível inferior, como o etcd.

Avalie ?

  • O aider é um assistente de programação por IA de código aberto. Assim como muitas ferramentas de código aberto nessa área, o aider não possui integração direta com IDE, sendo iniciado como uma CLI no terminal. O aider é interessante porque fornece uma interface de chat com acesso de escrita para a base de código em vários arquivos, enquanto muitos dos produtos de assistente de codificação atuais lêem apenas o código ou podem alterar apenas um arquivo por vez. Isso permite que o aider auxilie na implementação de conceitos que se estendem por vários arquivos (por exemplo,adicionar localizadores ao meu HTML e também usá-los no meu teste funcional) e na criação de novos arquivos e estruturas de pastas na base de código (por exemplo,criar um novo componente semelhante ao da pasta X). Como o aider é open-source e não um produto hospedado, você precisa ter sua própria chave de API OpenAI ou Azure OpenAI para usá-lo. Por um lado, isso pode ser ótimo para uso ocasional, pois você só paga pelo uso. Por outro lado, o aider parece ser bastante falador em suas interações com a API de IA, portanto, fique atento aos custos de solicitação e limites de taxa ao usá-lo.

  • Akvorado é uma ferramenta de código aberto para o monitoramento e análise de rede. Ele captura fluxos de rede, como Netflow/IPFIX e sFlow, enriquece-os com nomes de interfaces e informações geográficas e, em seguida, salva os fluxos atualizados no ClickHouse para análises futuras. Embora o OpenTelemetry esteja ganhando adoção para observar o tráfego em nível de aplicativo, muitas vezes encontramos desafios na camada de rede que podem ser difíceis de identificar e solucionar. Ferramentas como o Akvorado são bastante úteis nessas situações, pois ajudam a analisar os fluxos de rede em vários dispositivos na topologia da rede.

  • O Baichuan 2 faz parte de uma nova geração de modelos de linguagem ampla de código aberto. Treinado em um corpus de alta qualidade com 2,6 trilhões de tokens, alcançou um desempenho muito bom para o seu tamanho em benchmarks de chinês, inglês e multilinguagem. Além disso, o Baichuan 2 foi treinado em diversos corpora específicos de domínio, incluindo conjuntos de dados de saúde e direito, por isso preferimos utilizá-lo nessas e em áreas relacionadas.

  • A eficiência e performance do Rust o tornam uma boa opção para a computação sem servidor. Outra vantagem é que as funções Rust não necessitam de um runtime, resultando em tempos de inicialização rápidos. No entanto, a experiência da pessoa desenvolvedora para escrever funções em Rust não era excelente. Isso mudou com o Cargo Lambda. Como um subcomando do Cargo, ele se integra ao workflow típico do Rust e permite executar e testar suas funções AWS Lambda na máquina da pessoa desenvolvedora sem a necessidade de Docker, VMs ou outras ferramentas. Usando uma cadeia de ferramentas Zig, o Cargo Lambda pode realizar a compilação cruzada das funções em diversos sistemas operacionais para os sandboxes Linux usados pelo AWS Lambda, sendo compatível com arquiteturas Arm e Intel como alvos.

  • No movimentado espaço emergente de assistentes de programação por IA, alguns produtos adotam uma abordagem mais focada, em vez de competir com os líderes de mercado consolidados. O Codium AI foca na geração de testes com IA. Ele funciona para todas as linguagens, mas possui suporte avançado para stacks comuns, como JavaScript e Python. Gostamos particularmente do fato de que a ferramenta, em vez de levar as pessoas desenvolvedoras diretamente para o código de teste, oferece uma lista de descrições de cenários em linguagem natural para revisão. Isso facilita o raciocínio sobre os cenários e a decisão de quais transformar em código de teste. Para melhorar ainda mais a geração de testes para uma codebase e caso de uso específicos, as pessoas usuárias podem fornecer testes de exemplo e instruções gerais para aprimorar as informações usadas pela IA para gerar os testes.

  • O Continue é um assistente de programação open-source para VS Code e JetBrains IDEs. Percebemos muito potencial nele, já que ele elimina a necessidade de copiar e colar código entre uma interface de chat e grandes modelos de linguagem (LLMs) graças à integração direta na IDE. Ele suporta diversos modelos comerciais e de código aberto e facilita a experimentação com diferentes provedores de LLM, incluindo LLMs auto-hospedados. É possível até rodar o Continue sem conexão com a internet.

  • Uma característica marcante de APIs REST bem-sucedidas é a documentação completa de seus contratos. Pessoas desenvolvedoras tendem a adotar e utilizar mais prontamente APIs cujo comportamento e sintaxe estejam descritos com precisão e de forma organizada. Manter essa documentação atualizada à medida que o contrato evolui pode ser demorado e é uma tarefa facilmente negligenciada. O Fern Docs auxilia nesse processo reduzindo o trabalho manual envolvido na escrita e manutenção da documentação de APIs. O Fern gera automaticamente um website com documentação atraente e utilizável a partir de um arquivo de especificação que pode ser versionado junto com o código da API. Embora nossas impressões iniciais sobre este produto sejam positivas, o Fern requer a manutenção das informações da API em um arquivo de configuração proprietário. Embora ele forneça uma maneira de converter especificações OpenAPI em seu próprio formato de configuração, preferiríamos uma ferramenta que gere documentos diretamente do código fonte anotado.

  • Como a estratégia de múltiplas contas é comum em ambientes AWS de organizações, as pessoas engenheiras frequentemente precisam alternar entre várias contas em um curto período. O Granted é uma ferramenta de linha de comando que simplifica a abertura simultânea de várias contas no navegador, facilitando a troca de contas. Ele aproveita os recursos nativos de cada navegador para isolar identidades múltiplas, utilizando os Contêineres Multiconta do Firefox e os Perfis do Chromium. Se um serviço específico (como S3) for especificado como argumento, o Granted abrirá a página de destino do serviço. Atualmente, o Granted oferece suporte apenas para AWS. Vale ressaltar que ele armazena as credenciais temporárias do AWS SSO com segurança em um chaveiro, em vez de texto simples no disco.

  • O LinearB é uma plataforma projetada para capacitar líderes de engenharia com insights baseados em dados para melhoria contínua. Ele aborda três áreas principais: benchmarking, automação de workflow e investimento. Nossa experiência com a ferramenta de métricas do LinearB destaca seu potencial para apoiar uma cultura de melhoria contínua. Uma de nossas equipes utilizou a plataforma para rastrear métricas de engenharia, identificar e discutir oportunidades de melhoria e definir etapas acionáveis baseadas em dados, levando a um progresso mensurável. Ficamos satisfeitos em ver que isso se alinha à proposta de valor central do LinearB: avaliar, automatizar e aprimorar. O LinearB integra-se com GitHub, GitLab, Bitbucket e Jira. Ele oferece um conjunto abrangente de métricas de engenharia pré-configuradas, com forte foco nas métricas DORA (frequência de deploy, lead time, taxa de falha de alterações e tempo de restauração). Como fortes defensores das quatro métricas-chave definidas pela pesquisa DORA, gostamos da ênfase do LinearB em medir o que realmente importa para o desempenho da entrega de software. Historicamente, coletar métricas específicas de DORA tem sido um desafio. As equipes recorriam a instrumentação complexa de pipelines de CD, painéis personalizados ou processos manuais. Embora nossa experiência seja limitada a uma equipe, o LinearB parece ser uma alternativa interessante para a coleta e monitoramento de métricas de engenharia, além de fomentar uma abordagem baseada em dados para a melhoria contínua.

  • O LLaVA (Large Language and Vision Assistant - Assistente de Linguagem e Visão Ampla) é um modelo multimodal de grande porte e código aberto que conecta um codificador de visão e um modelo de linguagem de grande porte (LLM) para compreensão visual e linguística de uso geral. A alta proficiência do LLaVA em seguir instruções o posiciona como um forte concorrente entre os modelos de Inteligência Artificial multimodais. A versão mais recente, o LLaVA-NeXT, permite melhor desempenho em tarefas de resposta a perguntas. Entre os modelos open-source para auxílio de linguagem e visão, o LLaVA é uma opção promissora ao ser comparado com o GPT-4 Vision. Nossas equipes têm experimentado o LLaVA para responder a perguntas visuais.

  • Marimo oferece uma nova abordagem para notebooks Python, priorizando a reprodutibilidade e a interatividade. Ela soluciona os desafios relacionados ao estado oculto em notebooks tradicionais (como o Jupyter) que podem levar a comportamentos inesperados e dificultar a reprodutibilidade. Isso é feito armazenando os notebooks como arquivos Python simples, sem estado oculto, e usando uma ordem de execução determinística baseada em dependências (quando uma variável muda, todas as células afetadas são executadas automaticamente). O Marimo também vem com elementos de interface do usuário interativos que propagam da mesma forma as alterações de valor para as células que dependem delas. Como pode ser implantado como um aplicativo web, também é uma ferramenta útil para demonstrações e prototipagem. Embora estejamos animadas com o potencial do Marimo, particularmente em termos de reprodutibilidade para exploração e análise de dados, continuamos a alertar contra o uso de notebooks em produção.

  • Mixtral faz parte da família de modelos de linguagem de grande porte aberta Mistral recém-lançada, que utiliza a arquitetura sparse Mixture of Experts. A família de modelos está disponível tanto na forma pré-treinada quanto fine-tuned, com tamanhos de parâmetros de 7B e 8x7B. Seu tamanho, natureza de pesos abertos, desempenho em benchmarks e comprimento de contexto de 32.000 tokens o tornam uma boa opção para LLMs auto-hospedados. É importante destacar que esses modelos de pesos abertos não são ajustados para segurança por padrão, e as pessoas usuárias precisam refinar a moderação com base em seus próprios casos de uso. Temos experiência com essa família de modelos no desenvolvimento do Aalap.1-bf16, um modelo Mistral 7B ajustado e treinado em dados relacionados a tarefas jurídicas indianas específicas, que teve um desempenho bastante satisfatório em comparação a um custo acessível.

  • NeMo Guardrails é um kit de ferramentas de código aberto fácil de usar da NVIDIA que permite que pessoas desenvolvedoras implementem guardas para modelos de linguagem de grande porte (LLMs) utilizados em aplicações conversacionais. Embora os LLMs tenham um imenso potencial para construir experiências interativas, suas limitações inerentes em relação à precisão factual, vieses e potencial uso indevido exigem salvaguardas. Os guardrails oferecem uma abordagem promissora para garantir LLMs responsáveis e confiáveis. Apesar de haver outras opções de guardrails para LLM, nossas equipes consideram o NeMo Guardrails particularmente útil porque ele suporta regras programáveis, integração em tempo de execução e pode ser aplicado a aplicações LLM existentes sem extensas modificações no código.

  • Ollama é uma ferramenta código aberto para executar e gerenciar modelos de linguagem de grande porte (LLMs) na sua máquina local. Anteriormente, discutimos os benefícios dos LLMs auto-hospedados, e é animador ver o ecossistema amadurecer com ferramentas como o Ollama. Ele suporta diversos modelos populares — incluindo LLaMA-2, CodeLLaMA, Falcon e Mistral — que você pode baixar e executar localmente. Uma vez baixado, é possível interagir com o modelo e executar tarefas através da CLI, API ou SDK. Estamos avaliando o Ollama e observando sucessos iniciais, pois ele melhora a experiência das pessoas desenvolvedoras ao trabalhar com LLMs localmente.

  • O OpenTofu é um fork do Terraform criado em resposta a uma recente mudança ambígua na licença pela HashiCorp. É um projeto de código aberto aceito pela Linux Foundation e apoiado por diversas organizações, incluindo fornecedores terceirizados. A versão atual é compatível com a última versão de código aberto do Terraform, e a versão 1.7 adiciona criptografia no lado da cliente. O futuro do OpenTofu é incerto em relação ao grau de compatibilidade que manterá com versões futuras do Terraform. Também há dúvidas sobre o suporte de longo prazo por seus apoiadores atuais. Recomendamos ficar de olho no projeto, mas adotamos uma postura cautelosa em relação ao uso, exceto para equipes com capacidade para gerenciar riscos, incluindo a possibilidade de contribuição para a base de código.

  • Os modelos de linguagens de grande porte (LLMs) e as técnicas de geração aumentada por recuperação (RAG) aprimoraram muito nossa capacidade de sintetizar e extrair informações. Estamos observando ferramentas emergentes estão aproveitando esse avanço, e o QAnything é um exemplo. O QAnything é um motor de gerenciamento de conhecimento com interface de perguntas e respostas, capaz de resumir e extrair informações de diversos formatos de arquivo, incluindo PDF, DOCX, PPTX, XLSX e MD, entre outros. Para questões relacionadas a segurança de dados, o QAnything também suporta instalação offline. Algumas de nossas equipes utilizam o QAnything para construir sua base de conhecimento interna. Em cenários de Inteligência Artificial Generativa (GenAI) com maior profundidade setorial (como geração de resumos para relatórios de investimento), também tentamos usar essa ferramenta para provas de conceito antes de construir produtos reais, demonstrando o potencial de LLMs e RAG.

  • Poucas coisas tem surgido nos últimos anos para desafiar o domínio do Terraform como uma ferramenta de infraestrutura como código. Embora alternativas como Pulumi, CDK e, mais recentemente, Wing tenham surgido, o paradigma modular e declarativo do Terraform provou ser o mais duradouro. De fato, todas essas abordagens compartilham o objetivo comum de código modular para criar infraestrutura monolítica. System Initiative é uma nova ferramenta experimental que representa uma direção radicalmente nova para o trabalho de DevOps. Uma maneira de ver o System Initiative é como um gêmeo digital para sua infraestrutura. Alterações interativas no estado do System Initiative resultam em conjuntos de alterações correspondentes que podem ser aplicados à própria infraestrutura. Da mesma forma, as alterações na infraestrutura são refletidas no estado do System Initiative. Uma das grandes vantagens dessa abordagem é o ambiente colaborativo que ele cria para coisas como implantação de aplicativos e observabilidade. Os engenheiros interagem com o System Initiative por meio de uma interface do usuário que possui uma representação gráfica de todo o ambiente. Além de gerenciar a infraestrutura em nuvem, você também pode usar a ferramenta para gerenciar contêineres, scripts, ferramentas e muito mais. Embora sejamos geralmente céticos em relação a esse tipo de ferramenta de interface gráfica, o System Initiative pode ser estendido para lidar com novos ativos ou impor políticas por meio de código TypeScript. Gostamos muito do pensamento criativo empregado nesta ferramenta e esperamos que incentive outros a romper com o status quo das abordagens de infraestrutura como código. O System Initiative é gratuito e open source sob a licença Apache 2.0, e atualmente está em beta aberto. Os próprios mantenedores ainda não recomendam a ferramenta para uso em produção, mas achamos que vale a pena conferir em seu estado atual para experimentar uma abordagem completamente diferente para ferramentas DevOps.

  • Tetragon é uma ferramenta de código aberto para observabilidade e aplicação de regras de segurança em tempo de execução baseada em eBPF. Já mencionamos o Falco para detecção de ameaças à segurança em edições anteriores do Radar. O Tetragon vai além da detecção de ameaças ao aproveitar o eBPF para implementar políticas de segurança em tempo de execução no kernel do Linux. Você pode usar o Tetragon como uma ferramenta independente em bare metal ou dentro do ambiente Kubernetes.

  • Estamos observando bastante movimentação no espaço de Infraestrutura como Código (IaC) com o surgimento de ferramentas como o Winglang. O Winglang adota uma abordagem diferenciada para definir infraestrutura e comportamento em tempo de execução. Ele fornece abstrações de alto nível sobre especificidades de plataforma oferecidas por ferramentas como CloudFormation, Terraform, Pulumi e Kubernetes. Com o Winglang, você escreve um código que é executado em tempo de compilação para gerar a configuração da infraestrutura e, em seguida, o código que é executado em tempo de execução para o comportamento da aplicação. Ele oferece um modo de simulação para execução local e possui uma estrutura de teste integrada. Estamos de olho nesta ferramenta interessante; é uma possível prévia da direção futura do IaC.

Evite ?

 
  • tools quadrant with radar rings Adote Experimente Avalie Evite Adote Experimente Avalie Evite
  • Novo
  • Modificado
  • Sem alteração

Não encontrou algo que você esperava achar?

 

Cada edição do Radar inclui blips que refletem nossas experiências nos seis meses anteriores. Talvez já tenhamos falado sobre o que você procura em um Radar anterior. Às vezes, deixamos coisas de fora simplesmente porque há muitas a serem abordadas. Também pode faltar um tópico específico porque o Radar reflete nossa experiência, não se baseando em uma análise abrangente do mercado.

Não encontrou algo que você esperava achar?

 

Cada edição do Radar inclui blips que refletem nossas experiências nos seis meses anteriores. Talvez já tenhamos falado sobre o que você procura em um Radar anterior. Às vezes, deixamos coisas de fora simplesmente porque há muitas a serem abordadas. Também pode faltar um tópico específico porque o Radar reflete nossa experiência, não se baseando em uma análise abrangente do mercado.

Baixe o PDF

 

 

 

English | Español | Português | 中文

Inscreva-se para receber o boletim informativo Technology Radar

 

 

Seja assinante

 

 

Visite nosso arquivo para acessar os volumes anteriores