Ferramentas
Adote
-
dbt continua sendo nossa ferramenta preferida para a transformação de dados no fluxo ELT. Nós gostamos que a ferramenta se adequa ao rigor de engenharia e habilita práticas como modularidade, testabilidade e reusabilidade de transformações baseadas em SQL. dbt está disponível em versões de código aberto e SaaS comercial e tem um ecossistema saudável, incluindo uma central para a comunidade com pacotes para teste unitário, qualidade de dados e observabilidade dos dados, para mencionar alguns. Alguns dos pacotes de extensão que queremos destacar incluem: dbt-expectations e dbt-unit-testing que facilitam armazenamento de dados em nuvem, lakehouses e bancos de dados incluindo, Snowflake, BigQuery, Redshift, Databricks e Postgres. Quando estamos trabalhando com dados estruturados onde é possível configurar a transformação dos dados em SQL, nosso time prefere dbt - e é por isso que estamos movendo-o para Adote.
-
Mermaid permite gerar diagramas a partir de uma linguagem de marcação semelhante ao Markdown. Desde que o apresentamos no Radar, Mermaid adicionou suporte para mais diagramas e integrações com repositórios de código, IDEs e ferramentas de gerenciamento de conhecimento. De maneira notável, é adotado de forma nativa em repositórios de código populares como GitHub e GitLab, permitindo a fácil incorporação e atualização de diagramas Mermaid no meio da documentação Markdown. Muitas de nossas equipes preferem usar o Mermaid como sua ferramenta de diagrama-como-código devido à sua facilidade de uso, diversidade de integrações e ampla variedade de tipos de diagramas suportados, que continuam crescendo.
-
Ruff é um linter relativamente novo para Python. Quando se trata de linters, para nós a questão não é sobre usar, mas qual devemos usar. Ruff se destaca por sua experiência pronta para uso e sua velocidade. São mais de 500 regras internas, o que substitui facilmente o Flake8, incluindo muitos dos plugins dele. As afirmações feitas pelo time do Ruff sobre seu desempenho são confirmadas pela nossa experiência de uso; é realmente mais rápido que outros linters, em pelo menos uma ordem de magnitude, o que é um benefício enorme, pois ajuda a reduzir o tempo de compilação em grandes bases de código. Por esses motivos, Ruff se tornou nossa escolha padrão para linters Python.
-
Snyk oferece testes de segurança de aplicações estáticas (SAST) e análise de componentes de software (SCA) para ajudar você a encontrar, corrigir e monitorar problemas de segurança ao longo do ciclo de vida de desenvolvimento de software. Sua ampla gama de recursos é projetada para acelerar o ciclo de feedback, favorecendo segurança na fase inicialem vez do antipadrão sanduíche de segurança. Como uma das melhores plataformas de segurança disponíveis hoje, Snyk se destaca por sua capacidade de identificar uma gama mais ampla de problemas, habilitada principalmente por uma equipe de pesquisa dedicada adicionando à sua base de dados de vulnerabilidades. Mas há espaço para melhorias: o painel atualmente não oferece uma maneira fácil de filtrar o ruído para informações específicas e acionáveis; dependendo do ecossistema de linguagem, as integrações baseadas em SCA podem gerar falsos positivos em comparação com as integrações baseadas em pipeline porque o Snyk precisa adivinhar quais são as dependências resolvidas; a resolução automatizada não é consistentemente bem-sucedida; e é necessário um investimento significativo em integração para alcançar um controle de acesso adequado ou estabelecer um SBOM em ambientes de alta regulamentação. Apesar dessas limitações, muitos de nossos clientes corporativos adotaram o Snyk; e nós também o usamos em nossa área de TI interna.
Experimente
-
O gerenciamento de multicontas é um desafio na AWS, especialmente na configuração e governança. AWS Control Tower aborda esse desafio simplificando a configuração e automatizando a governança; ele atende aos requisitos regulatórios com proteções. O AWS Control Tower possui uma Fábrica de Contas integrada que ajuda a automatizar a workflow de provisionamento de contas. Entre outras coisas, você pode atualizar, desassociar e fechar contas que você cria e provisiona por meio da Fábrica de Contas. Devido à sua falta de automação e personalização, a Amazon introduziu o AWS Control Tower Account Factory for Terraform (AFT). O AFT permite que você provisione personalizações para enviar webhooks ou tomar ações específicas que permitem a integração com outras ferramentas para iniciar trabalhos como parte do processo de criação da conta.
Um dos casos de uso aproveitados por nossa equipe foi gerenciar um conjunto de itens prontos para uso para contas que eram configurações deconfigure e esqueça para baselining e criação de acesso para roles para GitHub Actions. Isso resultou em fornecer às pessoas desenvolvedoras uma conta com segurança padrão estabelecida com um VPC totalmente integrado, pronto para receber workload via GitHub Actions. Nossas equipes relataram ótimos resultados usando o AWS Control Tower para gerenciar contas, como um único controle de acesso para várias equipes, e com o uso do AFT em suas tarefas.
-
Bloc é uma biblioteca de gerenciamento de estado reativo para Flutter. Dentre as opções de gerenciamento de estado disponíveis para Flutter, queremos destacar o Bloc porque nossas equipes tiveram uma boa experiência com a biblioteca ao construir aplicativos móveis complexos. A organização estrutural do código em torno do padrão BLoC resultou em uma separação limpa da lógica de negócios da camada de apresentação, pois os Widgets da IU comunicam-se com a lógica de negócios por meio de streams e sinks de eventos. O Bloc também tem um bom suporte a plugins em ambos os IDEs IntelliJ e VSCode.
-
O cdk-nag identifica e relata problemas de segurança e conformidade em aplicações AWS CDK ou modelos do CloudFormation. Ele vem com vários pacotes de regras: um pacote geral da AWS que inclui verificações para o que a AWS considera as melhores práticas, bem como pacotes para conformidade com HIPAA, NIST e PCI. Você pode adicionar regras conforme necessário. As regras podem resultar em avisos ou erros, ambos incluídos nos relatórios gerados pela ferramenta. Quando há erros, o comando
cdk deploy
não fará implantações. Se a causa do erro não puder ser corrigida a tempo, você ainda pode implantar com o erro presente, mas suprimido. Obviamente, isso só deve ser feito em casos excepcionais. -
Checkov é um escâner de segurança estático especializado em infraestrutura como código (IaC). Ele suporta uma ampla gama de linguagens de infraestrutura, incluindo manifestos do Kubernetes, gráficos do Helm, modelos do CloudFormation e Terraform. Facilmente implantável em pipelines de CI/CD, ele protege contra potenciais lacunas de segurança em diversas configurações de infraestrutura de nuvem. Ao aproveitar um conjunto de regras padrão, ele identifica cenários de segurança comuns com conselhos de remediação detalhados disponíveis em seu site. Checkov suporta regras personalizadas e usa YAML para definições de diretrizes simples ou Python para criar regras mais complexas. Nossas equipes usaram com sucesso o Checkov para aprimorar a segurança durante as implantações de infraestrutura, apreciando os avisos precoces que ele fornece sobre potenciais problemas antes da implantação.
-
Chromatic é uma ferramenta de teste de regressão visual para ajudar a detectar regressões de IU em aplicações web. Ele funciona fazendo snapshots de componentes de IU e comparando-os com snapshots anteriores quando eles são alterados. É um serviço hospedado que se integra com serviços populares de hospedagem de código em nuvem. Construído sobre o Storybook, ele faz teste de regressão visual de componente. Ele pode renderizar os componentes em diferentes tamanhos de tela para testes responsivos e integra-se com fluxos de trabalho de CI, gerando o changeset da IU para cada commit, o que facilita a revisão. Nossas equipes acham que a diferença visual entre o Chromatic e outras ferramentas neste espaço é muito melhor; e a capacidade de destacar as alterações visualmente o torna particularmente útil.
-
eBPF é famoso por ser uma aplicação transparente, de alto desempenho e baixa sobrecarga. Por isso, a comunidade tem explorado seu uso para malha de serviço sem sidecar. Cilium é um projeto de código aberto que fornece rede, segurança e observabilidade para ambientes nativos de nuvem, como clusters Kubernetes e outras plataformas de orquestração de contêineres. Ele fornece uma rede Layer 3 plana simples para roteamento ou sobreposição e é compatível com o protocolo L7. Ao desacoplar a segurança do endereçamento, Cilium pode desempenhar um papel significativo como uma nova camada de proteção de rede. Vimos a adoção do Cilium por alguns provedores de nuvem e também o usamos em projetos da Thoughtworks. A comunidade ainda está discutindo se o eBPF pode substituir o sidecar, mas parece haver consenso de que alguns recursos da malha (mesh) não podem ou não devem ser executados no kernel. Além disso, a aplicação do Cilium também requer experiência relacionada ao eBPF. Com base nos resultados positivos em nosso projeto, recomendamos que você experimente essa tecnologia.
-
Cloud Carbon Footprint (CCF) é uma ferramenta de código aberto que estima emissões de carbono para workloads na nuvem dos principais provedores de serviços de nuvem. Ele consulta as APIs da nuvem para obter dados de uso de recursos e usa várias fontes para rastrear emissões de carbono. Seguindo uma metodologia publicada, o CCF combina essas informações em estimativas de emissões e fornece uma visualização dos dados ao longo do tempo. Os provedores de nuvem começaram a adicionar ofertas semelhantes às suas plataformas, mas as organizações ainda estão implantando o CCF porque ele possui todos os recursos: é de código aberto, foi projetado para ser expandido, funciona em várias nuvens e tem uma metodologia transparente e publicada. Além disso, ele também inclui estimativas para emissões de escopo 2 e escopo 3 — para uso de eletricidade e produção de hardware, respectivamente.
Em nossos experimentos, as estimativas entre diferentes ferramentas variaram, o que não é uma grande surpresa, dado que todas as ferramentas nessa área fazem estimativas e multiplicam números estimados. No entanto, definir uma ferramenta, estabelecer uma linha de base e melhorar a partir dessa linha de base é o cenário de uso principal que encontramos, e ferramentas como Kepler podem reduzir a necessidade de estimativas no futuro. O CCF também fornece recomendações de otimização para GCP e AWS, que não só ajudam a reduzir sua pegada de carbono na nuvem, mas também podem se tornar parte de uma estratégia mais ampla de otimização de custos de nuvem. A Thoughtworks é uma importante contribuidora do CCF.
-
Container Structure Tests (CST) é uma ferramenta desenvolvida pelo Google para testar a estrutura de uma imagem de contêiner. O CST pode ser usado para verificar a existência ou ausência de um determinado arquivo no sistema de arquivos da imagem, para verificar o conteúdo de um arquivo, para verificar a saída ou erros dentro de um comando específico executado no contêiner e para verificar os metadados da imagem do contêiner (ou seja, labels, entrypoint e command), o que ajuda a garantir a conformidade com o CIS Docker Benchmark. Temos tido boas experiências com o CST e recomendamos que você experimente. Além de prevenir vulnerabilidades — verificando se o contêiner está expondo portas desnecessárias — também o usamos para validar que cada contêiner Docker passa por todos os requisitos necessários para ser implantado e para executar um aplicativo na plataforma da empresa. Um desses requisitos era ter um agente de observabilidade instalado na imagem. É importante estar ciente de que o CST não é oficialmente suportado pelo Google, o que pode afetar sua manutenção.
-
Devbox é uma ferramenta de linha de comando que fornece uma interface de fácil acesso para criar ambientes de desenvolvimento reproduzíveis, por projeto, aproveitando o gerenciador de pacotes Nix sem usar máquinas virtuais ou contêineres. Nossas equipes o utilizam para eliminar incompatibilidades de versão e configuração de ferramentas CLI e scripts personalizados em seus ambientes de desenvolvimento por projeto, além da padronização que os gerenciadores de pacotes por linguagem fornecem. Elas descobriram que isso simplifica significativamente o workflow de onboarding porque, uma vez que ele foi configurado para um repositório de código, basta um comando CLI (
devbox shell
) para instalá-lo em uma nova máquina. O Devbox suporta hooks de shell, scripts personalizados e geração de devcontainer.json para integração com VSCode. -
DX DevEx 360 é uma ferramenta baseada em questionários que ajuda a encontrar sinais precursores de produtividade das pessoas desenvolvedoras, concentrando-se nas divergências que elas enfrentam em sua rotina, como o processo de revisão de código, qualidade do código, capacidade de realizar trabalho profundo e muito mais. O questionário foi desenvolvido por Nicole Forsgren e Margaret-Anne Storey, que lideraram esforços anteriores como DORA e SPACE, entre outras especialistas. Nossas equipes de engenharia de plataforma usaram a DX DevEx 360 com sucesso para entender como as pessoas desenvolvedoras se sentiam e identificar pontos de conflito para informar a roadmap da plataforma. Ao contrário de ferramentas semelhantes, com a DX DevEx 360, obtivemos uma taxa de resposta de 90% ou mais, muitas vezes com comentários detalhados das pessoas desenvolvedoras sobre problemas e ideias de melhorias. Também gostamos que a ferramenta torna os resultados transparentes para as pessoas engenheiras da empresa, e não apenas para a gestão, e que permite a análise por equipe e proporciona a melhoria contínua de acordo com o contexto do grupo.
-
GitHub Copilot é usado por muitas de nossas equipes para ajudá-las a escrever código mais rápido. De modo geral, a maioria de nossas pessoas desenvolvedoras acha a ferramenta muito útil e não gostariam de parar de usá-la. Estamos coletando e compartilhando muitas dessas nossas experiências com o Copilot por meio de uma série sobre IA Generativa e um guia de introdução ao uso de Copilot. É importante dizer que o GitHub Copilot pode ser usado com qualquer código, não apenas com códigos hospedados no GitHub.
Também ficamos animados ao perceber que o recurso de bate-papo do Copilot do roadmap do Copilot X teve sua disponibilidade ampliada desde que o apresentamos no Radar. É uma poderosa adição ao recurso de assistência in-line do Copilot. A disponibilidade de um chat dentro da IDE torna mais fácil a descoberta das informações mais procuradas e sua integração com o editor torna mais fácil explorar erros ou pedir ao chat para auxiliar com tarefas relacionadas ao código em foco.
-
Desde que o Postman anunciou em maio de 2023 que iria descontinuar o modo Scratch Pad com suas capacidades offline, as equipes que precisam manter os dados do espaço de trabalho da API fora de servidores de terceiros tiveram que encontrar alternativas. Insomnia é uma delas: é um aplicativo desktop gratuito e de código aberto projetado para teste, desenvolvimento e depuração de APIs. Embora Insomnia suporte sincronização online, ele permite que você mantenha os dados do espaço de trabalho da API offline. Nossas equipes consideraram a migração do Postman para o teste manual de API sem problemas, pois seus recursos são semelhantes, e ele permite a importação de coleções do Postman. Apesar das experiências positivas de nossas equipes com Insomnia, estamos de olho em outras alternativas em desenvolvimento de várias formas - de ferramentas GUI similares ao Insomnia, que são alternativas drop-in, a ferramentas CLI como o HTTPie, e plugins de IDE como o plugin HTTP Cliente do IntelliJ.
-
O plugin HTTP Client do IntelliJ permite que pessoas desenvolvedoras criem, editem e executem requisições HTTP no editor de código, simplificando o processo de desenvolvimento para criar e consumir APIs. Ele está se tornando cada vez mais popular entre nossas equipes, que apreciam que suas funcionalidades são amigáveis às pessoas usuárias e sua conveniência. Suas funcionalidades mais notáveis incluem suporte a arquivos privados, que protegem chaves sensíveis ao excluí-las do git por padrão, controle de versão e a capacidade de utilizar variáveis, o que aprimora a experiência da pessoa desenvolvedora. Dada sua capacidade de otimizar os fluxos de trabalho das pessoas desenvolvedoras e reforçar as medidas de segurança, recomendamos experimentar esta ferramenta.
-
KEDA, o redimensionador automático (Autoscaller) de Eventos Kubernetes, faz exatamente o que o nome sugere: ele permite a escalabilidade de um cluster Kubernetes em relação ao número de eventos que devem ser processados. Em nossa experiência, é preferível usar indicadores líderes como a profundidade da fila (queue depth) - em vez de indicadores defasados como o uso da CPU. O KEDA suporta diferentes fontes de eventos e vem com um catálogo de mais de 50 escaladores para várias plataformas de nuvem, bancos de dados, sistemas de mensagens, sistemas de telemetria, sistemas CI/CD e muito mais. Nossas equipes relatam que a facilidade com que o KEDA pode ser integrado permitiu manter a funcionalidade em microsserviços no Kubernetes, onde eles poderiam ter considerado portar parte do código de tratamento de eventos para funções serverless.
-
Kubeconform é uma ferramenta simplificada para validar manifestos e definições de recursos personalizados (CRD) do Kubernetes: Facilmente implantável em pipelines CI/CD ou configurações de máquinas locais, ele promove confiança ao validar recursos antes do deploy, mitigando potenciais erros. Dado seu histórico de aprimoramento da garantia operacional, especialmente com recursos filtrados compartilhados entre equipes, recomendamos experimentar Kubeconform para reforçar a segurança e eficiência de seus processos de validação de recursos.
-
mob é uma ferramenta de linha de comando para um git handover sem interrupções para programação em par ou em grupo remota. Ele esconde todos os elementos de controle de versão atrás de uma interface de linha de comando, o que torna a participação em sessões de programação em grupo mais simples. Também oferece conselhos específicos sobre como participar remotamente, por exemplo, “pegar a tela” no Zoom em vez de encerrar uma tela compartilhada, garantindo que o layout do vídeo não seja alterado para as participantes. Várias de nossas equipes recomendam mob, e ele se tornou parte integrante do nosso conjunto de ferramentas em programação em par ou em grupo remota.
-
MobSF é uma ferramenta de código aberto, para automação de teste de segurança estática e dinâmica para detectar vulnerabilidades de segurança em aplicativos móveis iOS e Android. Ele escaneia tanto as fontes dos aplicativos quanto os binários e fornece relatórios detalhados sobre as vulnerabilidades. MobSF é distribuído como imagens Docker e vem com APIs REST fáceis de usar e, via mobsfscan, pode ser integrado em pipelines CI/CD. Nossa experiência com o uso do MobSF para teste de segurança de aplicativos Android tem sido positiva; recomendamos experimentá-lo para suas necessidades de teste de segurança de aplicativos móveis.
-
Mocks Server é uma ferramenta de mocking de API baseada em Node.js que é muito reconhecida por nossas equipes pela sua capacidade de replicar respostas, cabeçalhos e códigos de status de API intrincados. A geração de resposta dinâmica suporta a simulação de diversos cenários, o que permite o teste rigoroso de interações de API. Os mocks podem ser descritos como YAML ou JSON e gerenciados por meio da CLI, API REST ou código JavaScript. Os recursos do Mocks Server incluem correspondência de solicitações, proxy e recursos de reprodução de registro, que facilitam a emulação de interações de API realistas. Gostamos especificamente da integração com contêineres Docker, o que torna fácil implantar o servidor de forma consistente entre os ambientes para que ele possa ser versionado e mantido como outro artefato do ecossistema. Sua abordagem direta se alinha com nosso foco na simplicidade e eficiência nos processos de desenvolvimento. Esperamos usar o Mocks Server mais extensivamente à medida que nossa estratégia de teste evolui junto com nossas soluções.
-
Prisma runtime defense, que faz parte do conjunto de produtos Prisma Cloud, oferece uma nova abordagem à segurança de contêineres. Ele emprega um mecanismo para construir um modelo do comportamento esperado de um contêiner e, em seguida, detecta e bloqueia atividades anômalas quando alguma variação é encontrada em tempo de execução. Ele monitora processos de contêineres, atividades de rede e sistemas de arquivos em busca de padrões e alterações que indiquem que um ataque pode estar em andamento e bloqueia de acordo com as regras configuradas. Os modelos que aprendem o que constitui comportamentos “normais” são construídos a partir da análise estática de imagens Docker e da análise comportamental dinâmica por um período pré-configurado. Nossas equipes consideraram os resultados de nosso uso promissores.
-
Terratest continua sendo uma opção interessante para testes de infraestrutura. É uma biblioteca Golang que facilita a escrita de testes automatizados. Usando ferramentas de infraestrutura como código, como o Terraform, você pode criar componentes de infraestrutura real (como servidores, firewalls ou balanceadores de carga) para implantar aplicativos e depois validar o comportamento esperado usando o Terratest. No final do teste, o Terratest pode retirar os aplicativos e limpar os recursos. Nossas equipes relatam que essa abordagem para teste dos componentes de infraestrutura implantados promove a credibilidade da infraestrutura como código. Observamos nossas equipes escrevendo uma variedade de testes de segurança de infraestrutura para componentes de aplicativos e suas integrações. Isso inclui detectar configurações incorretas, verificar o controle de acesso (por exemplo, para garantir se certos papéis ou permissões IAM estão configurados corretamente ou para garantir que apenas usuárias autorizadas tenham acesso a recursos específicos) e realizar testes de segurança de rede para validar a prevenção de tráfego não autorizado para recursos sensíveis, entre outros. Isso permite que os testes de segurança aconteçam na fase inicial e forneçam feedback durante o próprio desenvolvimento.
-
Embora o Prometheus continue sendo uma opção robusta para um stack de observabilidade autogerenciada, muitas equipes que gerenciam sistemas distribuídos nativos da nuvem modernos esbarram em suas limitações de nó único à medida que suas métricas crescem em quantidade e volume, e quando começam a precisar de uma configuração de alta disponibilidade. O Thanos estende o Prometheus adicionando recursos que o tornam adequado para monitoramento de grande escala, de longo prazo e altamente disponível. Ele faz isso, por exemplo, introduzindo componentes que irão ler os dados de instâncias do Prometheus e os armazenar em repositórios de objetos, gerenciar a retenção e compactação nos repositórios de objetos e federar as consultas em várias instâncias do Prometheus.Nossas equipes consideraram a migração do Prometheus sem problemas, pois o Thanos mantém a compatibilidade com a API de consulta do Prometheus. Isso significa que eles podem continuar usando seus painéis existentes, ferramentas de alerta e outras ferramentas que integram à API do Prometheus. Embora nossas equipes tenham sido bem-sucedidas com Thanos, também recomendamos ficar de olho no Cortex, como uma outra forma de estender o Prometheus.
-
Yalc é um repositório local simples de pacotes JavaScript e uma ferramenta para publicar e usar pacotes em um ambiente de desenvolvimento local. É uma alternativa mais confiável ao comando npm link que tem algumas restrições. Yalc é útil quando se trabalha com vários pacotes, especialmente quando alguns usam yarn e outros usam npm. Também é útil para testar os pacotes localmente antes de publicá-los em um registro remoto. Em nossa experiência, o Yalc é valioso em uma configuração de múltiplos pacotes e acelera front-end e outros fluxos de trabalho de desenvolvimento de aplicações JavaScript.
Avalie
-
ChatGPT continua a atrair atenção. Os casos de uso imaginativos e abordagens inovadoras para o prompt significam que ele está ganhando utilidade crescente ao longo do tempo. GPT4, o modelo de linguagem de grande porte (LLM) que alimenta o ChatGPT, agora também tem a capacidade de se integrar a ferramentas externas, como um repositório de gerenciamento de conhecimento, ambiente de codificação sandbox ou pesquisa na web. A recente introdução do ChatGPT Enterprise pode ajudar a aliviar as preocupações de propriedade intelectual, ao mesmo tempo que fornece recursos “corporativos” como rastreamento de uso e melhor gerenciamento de usuárias por meio de SSO. Embora a capacidade do ChatGPT deescrever código tenha sido muito louvada, acreditamos que as organizações devam utilizá-lo em todo o ciclo de vida do software para melhorar a eficiência e reduzir erros. Por exemplo, o ChatGPT pode fornecer perspectivas ou sugestões adicionais para tarefas tão diversas quanto análise de requisitos, design arquitetônico ou engenharia reversa de sistemas legados. Ainda acreditamos que o ChatGPT é melhor utilizado como a etapa inicial em um processo - como ajudar com um primeiro rascunho de uma história ou o modelo para uma tarefa de codificação - em vez de uma ferramenta que produz resultadostotalmente prontos. Dito isso, suas capacidades estão melhorando a cada semana, e algumas tarefas de programação podem agora ser totalmente possíveis por meio de um prompt cuidadoso, que é uma arte por si só.
-
No ecossistema de assistentes de programação com IA, Codeium é um dos produtos mais promissores. Semelhante ao Tabnine, Codeium busca endereçar algumas das maiores preocupações das empresas sobre o uso de assistentes de programação: ele reduz alguns dos receios de licenciamento de código aberto, porque não treina seus modelos com código de repositórios com licenças não permissivas. Também oferece autohospedagem para a ferramenta, assim não há necessidade de enviar seus snippets de código para um serviço de terceiros. O Codeium se destaca por seu amplo suporte a IDEs e serviços de notebook, e embora não esteja disponível há tanto tempo quanto o GitHub Copilot ou o Tabnine, nossas primeiras impressões do produto foram positivas.
-
Há muito tempo defendemos o uso de branches de desenvolvimento de curta duração que são mesclados (merged) frequentemente no branch principal, que é então mantido pronto para implantação. Essa prática de desenvolvimento (trunk-based) está de mãos dadas com a integração contínua e, quando as condições permitem, resulta em ciclos de feedback mais rápidos e em um fluxo de desenvolvimento mais eficiente. No entanto, nem todos preferem essa abordagem, e frequentemente, adaptamos nosso estilo para acomodar as práticas das nossas clientes. Às vezes, isso inclui branches de longa duração seguidos de pull requests que devem ser revisadas e aprovadas manualmente antes de serem mescladas no branch principal. Nessas situações, usamos o novo recurso de fila de merges do GitHub. Ele permite que os pull requests recebidos sejam automaticamente colocados em fila e mesclados (merged) em um branch especial na ordem em que foram recebidos. Em seguida, temos a opção de automatizar nossas próprias “verificações de merge” para evitar commits incompatíveis. Isso essencialmente simula o desenvolvimento direto no tronco (trunk-based) (mesmo que os Pull Requests ainda não tenham sido mesclados no branch principal do código) e permite que as pessoas desenvolvedoras testem suas funcionalidades no contexto sem ter que esperar que o Pull Request seja aprovado. Com a fila de merges do GitHub, você obtém os benefícios do desenvolvimento direto no tronco (trunk-based) mesmo quando não pode se comprometer totalmente com ele.
-
Google Bard é um chatbot de IA generativa desenvolvido pelo Google AI. Assim como o ChatGPT, ele é conversacional e capaz de se comunicar e gerar texto semelhante ao humano em resposta a uma ampla gama de prompts e perguntas. O Bard é alimentado pelo Pathways Language Model (PaLM 2) do Google, que é um modelo de linguagem de grande porte (LLM) treinado em um grande conjunto de dados de texto e código. O Bard é capaz de gerar texto, traduzir idiomas, escrever diferentes tipos de conteúdo criativo e responder às suas perguntas de forma informativa. O Bard também pode ser usado como uma ferramenta de orientação para o desenvolvimento de software. Às vezes, nossas pessoas desenvolvedoras o acham útil para obter algumas sugestões de programação ou melhores práticas e configurações de infraestrutura para diferentes cenários. Também experimentamos o Bard para as traduções de idiomas do Radar e obtivemos bons resultados para criar o primeiro rascunho do texto. Embora a ferramenta ainda esteja em desenvolvimento, razão pela qual pode ser um pouco mais lenta em comparação com o ChatGPT, encorajamos as pessoas desenvolvedoras a explorar a ferramenta e avaliar seus potenciais benefícios.
-
Google Cloud Workstations é uma oferta de Ambiente de Desenvolvimento em Nuvem (Cloud Development Environment - CDE, em inglês) do Google Cloud Platform. Oferece ambientes de desenvolvimento totalmente gerenciados e conteinerizados que são acessíveis por meio de SSH, HTTPS, VSCode e IDEs Jetbrains, entre outros, dando às pessoas desenvolvedoras a ilusão de se conectar a um ambiente local. O Google Cloud Workstations permite que as pessoas administradoras tornem os ambientes de desenvolvimento conteinerizados parte de uma rede privada e que sejam acessíveis publicamente ou privadamente. Essa capacidade de ajustar as configurações de rede, juntamente com o suporte para criar os ambientes com imagens personalizadas ou predefinidas, torna o Google Cloud Workstations, em nossa opinião, digno de ser avaliado por organizações que procuram uma solução CDE segura dentro de seu próprio perímetro GCP. Se você está considerando o Google Cloud Workstations, recomendamos que você teste sua configuração de rede antes de implantá-lo amplamente, pois a alta latência pode se tornar um grande obstáculo à experiência das pessoas desenvolvedoras com esses contêineres.
-
O Gradio é uma biblioteca Python de código aberto que permite a criação rápida e fácil de interfaces web interativas para modelos de ML. Uma interface gráfica de usuário (GUI) sobre modelos de ML permite uma melhor compreensão das entradas, restrições e saídas por públicos não técnicos. O Gradio suporta muitos tipos de entrada e saída - de texto e imagens a voz - e se tornou uma ferramenta essencial para prototipagem rápida e avaliação de modelos. O Gradio permite que você hospede seus demos facilmente no Hugging Face ou execute-os localmente e permita que outras pessoas acessem a demo remotamente com uma url XXXXX.gradio.app. Por exemplo, o famoso experimento DALL-E mini usa o Gradio e é hospedado no Hugging Face Spaces. Nossas equipes ficaram satisfeitas em usar essa biblioteca para experimentação e prototipagem, razão pela qual a colocamos no anel Avalie.
-
KWOK é uma ferramenta que simula o ciclo de vida de nós e pods falsos para testar o plano de controle de um cluster Kubernetes. É difícil realizar testes de estresse em controladores e operadores Kubernetes personalizados sem um cluster significativamente grande. No entanto, com o KWOK, você pode facilmente configurar um cluster com milhares de nós em seu laptop sem consumir uma quantidade significativa de CPU ou memória. Essa simulação permite diferentes configurações de tipos de nós e pods para testar vários cenários e casos de borda. Se você precisa de um cluster real para testar seus operadores e definições de recursos personalizados (CRDs), recomendamos kind ou k3s; mas se você só precisa simular um grande número de nós falsos, sugerimos que você avalie o KWOK.
-
Llama 2, da Meta, é um modelo de linguagem de grande porte que é gratuito para uso tanto em pesquisa quanto comercial. Ele está disponível como um modelo pré-treinado bruto e, depois de ajustado, como Llama-2-chat para conversação e Code Llama para finalização de código. Como está disponível em vários tamanhos — 7B, 13B e 70B — o Llama 2 é uma boa opção para um LLM auto-hospedado, se você quiser controlar seus dados. A Meta descreve o Llama 2 comode código aberto, uma afirmação que tem atraído alguma crítica. A licença e a política de uso aceitável da Meta impõem restrições ao uso comercial para algumas pessoas usuárias e também restringem o uso do modelo e do software para determinados fins. Os dados de treinamento do Llama 2 não são abertos, o que pode dificultar a compreensão e a alteração do modelo. No entanto, a disponibilidade de um modelo poderoso e capaz, pelo menos de formasemi-aberta, é bem-vinda.
-
Maestro é uma nova ferramenta para a automação de teste de interface de pessoas usuárias, móvel e multiplataforma, com tolerância integrada a instabilidades e variância nos tempos de carregamento do aplicativo, devido a fatores de rede ou externos. Com uma sintaxe YAML declarativa, ele facilita a escrita e a preservação de testes automatizados para aplicativos móveis. Ele suporta aplicativos nativos iOS e Android, React Native e Flutter, bem como uma variedade de recursos para automatizar interações complexas de IU móvel, como tocar, rolar e deslizar. O Maestro é distribuído como um único binário para facilitar o uso, é executado em modo interpretado e facilita a criação de novos testes graças a recursos como o modo contínuo. O Maestro ainda não possui recursos específicos, como suporte a dispositivos iOS, mas a ferramenta está evoluindo rapidamente.
-
GitHub Copilot é uma ferramenta valiosa para assistência de programação durante o desenvolvimento de software. Por baixo dos panos, os modelos de linguagem de grande porte (LLMs) podem oferecer ótimas experiências de desenvolvimento por meio de assistência de código em linha, ajuste fino de código, suporte conversacional na IDE e muito mais. A maioria desses modelos é proprietária e só pode ser usada por meio de serviços de assinatura. No entanto, existem vários modelos de linguagem de grande porte (LLMs) de código aberto para programação que podem ser usados. Se você precisar construir seu próprio serviço de assistência de programação (como para uma indústria altamente regulada), considere modelos como StarCoder e WizardCoder. StarCoder é treinado com um grande conjunto de dados mantido pelo BigCode. WizardCoder é um modelo StarCoder aprimorado com Evol-Instruct, um modelo de linguagem que pode gerar código de forma criativa. Usamos StarCoder em nossos experimentos e o consideramos útil para gerar elementos estruturados de engenharia de software, como código, YAML, SQL e JSON. Com base em nossos experimentos, descobrimos que ambos os modelos são receptivos à aprendizagem contextual usando exemplos de few-shot no prompt. No entanto, para tarefas subsequentes específicas (como geração de SQL para um banco de dados específico como Postgres), os modelos precisaram de ajuste fino. Recentemente, a Meta lançou o Code Llama, uma versão especializada para código do Llama 2. Recomendamos que você utilize com cautela esses modelos de código aberto. Considere suas licença, as licenças dos códigos e dos conjuntos de dados usados para treinar os modelos. Avalie cuidadosamente esses aspectos antes de escolher qualquer um desses LLMs para sua organização.
-
OpenCost é um projeto de código aberto para monitoramento de custos de infraestrutura que mostra os valores na granularidade de objetos Kubernetes (pods, containers, clusters, etc.), cobrindo vários recursos intra-cluster (CPU, GPU, RAM, armazenamento, rede). Ele tem integrações com várias APIs de provedores de nuvem para obter dados de faturamento e pode ser configurado com preços para clusters Kubernetes locais. O OpenCost é o motor de alocação de custos originalmente construído e ainda usado pelo Kubecost, mas também pode ser usado sozinho. Os dados de alocação de custos do OpenCost podem ser exportados para arquivos CSV ou para Prometheus para análise e visualização adicionais. Nossas equipes estão acompanhando de perto os desenvolvimentos de ferramentas como OpenCost e Kubecost que permitem a visibilidade de custos para equipes de produto e plataforma em organizações que adotaram o Kubernetes. Nestas fases iniciais, eles acreditam que o OpenCost ainda não funciona bem com certos workloads, como instâncias de curta duração (spot instances) frequentemente usadas em pipelines de dados.
-
Observamos vários casos de uso para ferramentas de inteligência de código: mover para uma nova versão de API de uma biblioteca amplamente usada, entender o impacto de uma vulnerabilidade recém-descoberta em uma determinada biblioteca de uma empresa, ou aplicar atualizações a muitos serviços que foram criados a partir do mesmo modelo. Sourcegraph ainda é uma ferramenta popular neste ecossistema, e OpenRewrite é uma outra ferramenta que queremos destacar. Embora nossas equipes tenham usado principalmente em Java para problemas específicos, como atualizar serviços criados por meio de um kit de inicialização, ele continua a ampliar sua cobertura de linguagens e casos de uso. Gostamos que ele venha com um catálogo de receitas, que descrevem as alterações a serem feitas, por exemplo, para migrar frameworks comumente usados entre versões. O mecanismo de refatoração, as receitas incluídas e os plugins da ferramenta de compilação são software de código aberto, o que torna mais fácil para as equipes usarem o OpenRewrite apenas quando precisam. Nos resta saber como o amadurecimento do ecossistema de ferramentas de inteligência de código, que são todas baseadas na análise do código-fonte em uma árvore de sintaxe abstrata (AST), será impactado pelo desenvolvimento rápido no ecossistema de LLMs.
-
O OrbStack é uma forma de executar containers Docker no macOS; nossas pessoas desenvolvedoras o consideraram mais leve, mais rápido e mais simples de configurar e usar em comparação ao Docker Desktop e o Colima. A ferramenta ainda está em desenvolvimento e, por isso, possui menos recursos, mas já demonstra um grande potencial devido à sua simplicidade e velocidade. Você também pode usar o OrbStack para criar e gerenciar VMs Linux no macOS.
-
Pixie é uma ferramenta de observabilidade para aplicações nativas de Kubernetes. Ela adota uma abordagem interessante para a observabilidade ao aproveitar o eBPF para coletar automaticamente dados de telemetria de várias fontes de dados. Os dados de telemetria coletados são armazenados localmente em cada nó e processados centralmente por meio de sua API de plano de controle. No geral, achamos que o Pixie vale a pena ser avaliado para observabilidade no ecossistema Kubernetes.
-
Tabnine é um dos atuais concorrentes no movimentado ecossistema de assistentes de programação. Ele fornece sugestões de preenchimento de código em linha e bate-papo diretamente na IDE. Similar ao GitHub Copilot, o Tabnine existe bem antes da expectativa exagerada atual e, portanto, é um dos produtos mais avançados do setor. Ao contrário do Copilot, ele usa um modelo que é treinado apenas em código licenciado de forma permissiva e oferece uma versão para auto-hospedagem pensado para atender as organizações que se preocupam em enviar seus trechos de código para serviços de terceiros. O Tabnine está disponível em duas versões: uma gratuita que é limitada; e uma paga que oferece sugestões mais abrangentes e também oferece um modo com um modelo local (embora menos poderoso), que você pode usar sem precisar de conexão com a internet.
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.
