Menu

ADOTE?

  • Commitizen é uma ferramenta simples para ajudar a agilizar o processo de commit ao usar GIT. Ela induz o fornecimento de quaisquer campos requeridos e também formata sua mensagem de commit adequadamente. Diferentes convenções para descrever os formatos de check-in necessários são suportados e você pode adicionar o seu próprio por meio de um adaptador. Esta ferramenta simples economiza tempo e evita rejeições posteriores de um commit hook.

    Histórico
  • A ESLint está sendo usada como um padrão em muitos de nossos projetos. Como uma ferramenta linting para JavaScript, possui múltiplos conjuntos de regras, regras recomendadas e plugins para estender para frameworks ou estilos de JavaScript. Temos visto ela alavancar fortemente times na criação e execução de normas em seu código, ao permitir análise de código em tempo real durante o desenvolvimento. Pode ser usada para padronizar práticas de código, com a aplicação de boas práticas e estilização do código, e identificar vulnerabilidades em seu código. Ela faz isso ao se integrar bem com a maioria das IDEs e fornecer feedback em tempo real enquanto se está escrevendo o código. Suas regras de estilização, em particular, automaticamente corrigem os erros de linting, tornando o processo suave e eficaz sem incorrer em custo adicional de desenvolvimento. Pessoas desenvolvedoras podem rapidamente acelerar com as regras graças à documentação da comunidade, que faz um bom trabalho explicando padrões de código. À medida que a ESLint se torna mais comum e poderosa, tem ganhado força na indústria e isso é ilustrado pelo movimento do time do TypeScript para suportar e trabalhar com a ESLint em vez de investir em TSLint.

    Histórico
  • React Styleguidist é um ambiente de desenvolvimento para componentes React. Ele inclui um servidor de desenvolvimento com capacidades de hot reloading e gera um guia de estilo HTML para compartilhar com os times. O guia de estilo mostra uma versão ao vivo de todos os componentes em um lugar com documentação de uso e uma lista de seus acessórios. Nós mencionamos o Guiador de Estilo React como um ambiente de desenvolvimento UI anteriormente, e com o tempo ele se tornou nossa escolha padrão entre ferramentas similares neste espaço.

    Histórico

EXPERIMENTE?

  • Construir, testar e implantar aplicações móveis implica em passos complexos, especialmente quando consideramos uma pipeline que vai de repositório de código-fonte a lojas de aplicativos. Todos esses passos podem ser automatizados com scripts e pipelines de construção em ferramentas de CI/CD genéricas. Contudo, nossos times consideram Bitrise, uma ferramenta de entrega contínua específica de domínio para aplicações móveis, útil para aplicações móveis quando não há necessidade de integrar com pipelines de compilação para sistemas back-end. Bitrise é fácil de configurar e fornece um conjunto abrangente de passos pré-construídos para a maioria das necessidades de desenvolvimento móvel.

    Histórico
  • Manter dependências atualizadas é uma tarefa rotineira, mas por questões de segurança é importante responder a essas atualizações em tempo hábil. Você pode usar ferramentas para tornar esse processo o mais indolor e automatizado possível. Na prática, nossos times têm boas experiências com o Dependabot. Ele se integra com os repositórios do GitHub e verifica automaticamente dependências para novas versões. Quando requisitado, o Dependabot abrirá uma pull request com dependências atualizadas.

    Histórico
  • Detekt é uma ferramenta de análise de código estático para Kotlin. Ela fornece uma análise do mau cheiro do código e relatórios de complexidade baseados em conjuntos de regras altamente configuráveis. Pode ser executada a partir da linha de comando e usando plugins, via Gradle, SonarQube e IntelliJ. Nossos times encontraram grande valor ao usar Detekt para manter a qualidade de código alta. Quando a análise e a geração de relatórios são integradas em uma pipeline de compilação, é obviamente importante que os relatórios sejam verificados regularmente e os times tirem um tempo para agir em seus achados.

    Histórico
  • Uma das grandes dores no design visual e de interação é a falta de ferramentas feitas para colaboração. É aí que a Figma entra. Ela tem as mesmas funcionalidades de programas de design, como Sketch e Invision, mas, ao proporcionar colaboração com outra pessoa ao mesmo tempo, ela ajuda na descoberta de novas ideias em conjunto, com capacidades de colaboração em tempo real. Nossos times acham a Figma muito útil, especialmente na capacitação e facilitação do trabalho de design remoto e distribuído. Além de suas capacidades de colaboração, a Figma também oferece uma API que ajuda a melhorar o processo de DesignOps.

    Histórico
  • Construir aplicações conteinerizadas pode demandar configurações complexas em ambientes de desenvolvimento e em agentes de build. Se você está construindo uma aplicação Java e usa Docker, você pode considerar usar Jib, do Google. Jib é um plugin de código aberto que suporta Maven e Gradle. O plugin Jib usa informações da sua configuração de compilação para construir sua aplicação diretamente como uma imagem Docker sem precisar de Dockerfile ou Docker daemon. O Jib otimiza a estratificação de imagens, prometendo acelerar as compilações subsequentes.

    Histórico
  • Loki é uma ferramenta de regressão visual que funciona com o Storybook, que mencionamos anteriormente no contexto de ambientes de desenvolvimento UI. Com poucas linhas de configuração, Loki pode ser usado para testar todos os componentes UI. O modo preferido de operação é usando o Chrome em um contêiner Docker, pois evita diferenças de um pixel quando os testes estão rodando em ambientes não-idênticos. Nossa experiência é de que os testes são bem estáveis, mas atualizações no Storybook tendem a fazer os teste falharem com pequenas diferenças. Também parece impossível testar componentes que usam position:fixed, mas você pode trabalhar nisso envolvendo o componente com um fixed.

    Histórico
  • Pipelines de build que criam e implantam contêineres devem incluir escaneamento de segurança de contêiner. Nossos times gostam particularmente de Trivy, um scanner de vulnerabilidade para contêineres, porque é mais fácil de configurar do que outras ferramentas, graças ao seu envio como binário independente. Outros benefícios de Trivy são o fato de ser um software de código aberto e suportar contêineres distroless.

    Histórico
  • Twistlock é um produto comercial com detecção de vulnerabilidade de segurança durante o tempo de compilação e execução e com recursos de prevenção. Esses recursos abrangem proteção de máquinas virtuais, agendadores de contêineres e contêineres para vários registros e repositórios com os quais as aplicações contam. Twistlock ajudou nossos times a acelerarem o desenvolvimento de aplicações regulamentadas, em que a infraestrutura e a arquitetura da aplicação requerem conformidade com, por exemplo, padrões de Payment Card Industry (PCI) e da Health Insurance Portability and Accountability Act (HIPAA). Nossos times aproveitaram a experiência de desenvolvimento que o Twistlock fornece: a capacidade de executar provisionamentos como código, a fácil integração com outras plataformas comuns de observabilidade e benchmarks incluídos para mensurar a infraestrutura em relação às boas práticas que são consenso na indústria. Executamos Twistlock com escaneamentos regulares de tempo de execução em nossas aplicações nativas em nuvem, especificamente quando a conformidade regulatória é requerida.

    Histórico
  • Cada vez mais estamos vendo dispositivos poderosos de Internet das Coisas que rodam Linux em vez de um sistema operacional especial embutido. Para reduzir o uso de recursos e diminuir a superfície de ataque, faz sentido construir uma distribuição Linux personalizada que contenha apenas as ferramentas e dependências necessárias para rodar o software naquele dispositivo. Neste contexto, o Projeto Yocto renovou sua relevância como ferramenta para criar uma distribuição Linux feita sob medida para as necessidades de casos específicos. A curva de aprendizado é acentuada e, devido à sua flexibilidade, pode ser fácil fazer a coisa errada. Contudo, ao longo de seus muitos anos de existência, o projeto Yocto atraiu uma comunidade ativa que pode ajudar. Comparando a ferramentas similares, é mais fácil integrar a um fluxo de trabalho de entrega contínua e, diferente do Android Things ou Ubuntu core, por exemplo, não está atrelado a um ecossistema específico.

    Histórico

AVALIE?

  • Frequentemente é muito difícil controlar as propriedades de nossos softwares à medida que elas ficam mais complexas. Aplas é uma nova ferramenta de mapeamento de software que pode ser usada para criar visualizações de cenários de nosso software na forma de mapas. A ferramenta trabalha ingerindo metadados sobre seus sistemas existentes e então mostrando um mapa sobre o qual várias visualizações podem ser projetadas. A ingestão pode tanto ser um processo manual como automatizado por meio de APIs. Estamos muito otimistas vendo esse produto evoluir e vislumbrando o que é possível com a coleta automatizada de metadados. Deveria ser possível, por exemplo, expor funções de aptidão arquitetônica, como custo de execução para criar visualizações do quanto está sendo gasto em infraestrutura de nuvem. Entender quais sistemas conversam com outros sistemas por meio de qual tecnologia é outro problema que frequentemente enfrentamos, e o Aplas pode visualizar isso para nós.

    Histórico
  • asdf-vm é uma ferramenta de linha de comando para gerenciar versões de execução de múltiplas linguagens por projeto. É similar a outras ferramentas de gerenciamento por linha de comando, como rvm para Ruby e nvm para Node.js, com a vantagem de um arquitetura de plugin extensível para lidar com múltiplas linguagens. Sua lista atual de plugins inclui muitas linguagens e também ferramentas, como Bazel ou tflint, cuja versão de execução você talvez precise gerenciar por projeto.

    Histórico
  • AWSume é um script conveniente para gerenciar tokens de sessão AWS e aceitar credenciais a partir da linha de comando. Achamos o AWSume muito útil quando lidamos com múltiplas contas AWS ao mesmo tempo. Em vez especificar roles individualmente em cada comando, o script lê a partir do cache do CLI e exporta para variáveis de ambiente. Como resultado, tanto os comandos quanto os SDKs AWS encontram as credenciais corretas.

    Histórico
  • A transformação de dados é uma parte essencial dos fluxos de trabalho de processamento de dados: filtra, agrupa ou reune múltiplas fontes em um formato adequado para analisar dados ou alimentar modelos de aprendizado de dados. dbt é uma ferramenta de código aberto e um produto SaaS comercial que fornece capacidades de transformação simples e efetivas para analistas de dados. Os frameworks atuais e o ferramental para transformação de dados caem ou no grupo de poderosos e flexíveis – requisitando um entendimento íntimo do modelo de programação e linguagens do framework, tais como Apache Spark – ou no grupo das ferramentas bobas de UI, de arrastar e soltar, que não se prestam a práticas de engenharia confiáveis, tais como testes automatizados e implantação. dbt preenche um nicho: usa SQL – uma interface amplamente entendida – para modelar simples transformações em lote, enquanto fornece ferramentas de linha de comando que incentivam boas práticas de engenharia, como versionamento, testes automatizados e implantações. Essencialmente, implementa a modelagem de transformação baseada em SQL como código. dbt atualmente suporta múltiplas fontes de dados, incluindo Snowflake e Postgres, e fornece várias opções de execução, como a Airflow e a própria oferta de nuvem da Apache. Sua capacidade de transformação está limitada ao que o SQL oferece e, até a publicação deste texto, não suporta transformações de streaming em tempo real.

    Histórico
  • Docker Notary é uma ferramenta de código aberto que permite assinar recursos como imagens, arquivos e contêineres. Isso significa que a procedência dos recursos pode ser declarada, o que é superútil em ambientes regulados e para boas práticas em todos os lugares. Como exemplo, quando um contêiner é criado, ele é assinado por uma chave privada e um hash, ligados à identidade da pessoa que publicou e armazenados como metadata. Uma vez publicado, a procedência do contêiner (ou outro recurso) pode ser verificada usando-se o hash da imagem e a chave pública de quem publicou. Há registros confiáveis disponíveis publicamente, como o Docker Trusted Registry, mas é possível rodar o seu próprio. Nossos times notaram algumas dificuldades rodando servidores Notary locais e sugerem usar um registro que inclua o Notary onde for possível.

    Histórico
  • Dada a crescente quantidade de decisões ponderadas derivadas de grandes conjuntos de dados, seja diretamente ou como um input de treinamento para modelos de aprendizado, é importante entender as lacunas, falhas e potenciais vieses em seus dados. O projeto Facets do Google fornece duas ferramentas úteis neste espaço: Facets Overview e Facets Dive. A Facets Overview visualiza a distribuição de valores para features em um conjunto de dados, pode mostrar vieses nos conjuntos de treinamento e de validação e pode ser usada para comparar múltiplos conjuntos de dados. A Facets Dive é para detalhar e visualizar pontos de dados individuais em grandes conjuntos de dados, usando diferentes dimensões visuais para explorar as relações entre os atributos. As duas são úteis para a execução de testes de viés ético.

    Histórico
  • Com a adoção crescente de Kubernetes como um orquestrador de contêineres, o conjunto de ferramentas de segurança acerca de contêineres e Kubernetes está evoluindo rapidamente. Falco é uma das ferramentas nativas de contêiner que visa lidar com segurança do tempo de execução. Falco alavanca a instrumentação de kernel do Linux do Sysdig e profiling de chamadas de sistema, e nos permite obter grandes insights a respeito do comportamento do sistema, ajudando a detectar atividades anormais em aplicações, contêineres, hosts subjacentes ou no orquestrador Kubernetes em si. Gostamos da capacidade de Falco de detectar ameaças sem injetar códigos de terceiros ou contêineres sidecar.

    Histórico
  • Estamos vendo o uso crescente do atestado binário para deixar segura a cadeia de suprimentos de software, especificamente em indústrias reguladas. As abordagens favorecidas atualmente parecem envolver tanto a construção de um sistema personalizado para implementar a verificação binária, quanto a dependência de um fornecedor de serviço de nuvem. Estamos otimistas de ver o código aberto in-toto entrar neste espaço. O in-toto é um framework para verificar criptograficamente cada componente e passo do trajeto de produção de um artefato de software. O projeto inclui um número de integrações em muitas ferramentas de compilação, auditoria de contêineres e implantação usadas amplamente. Uma ferramenta de cadeia de suprimentos de software pode ser uma parte crítica do aparato de segurança de uma empresa, então gostamos de que, como um projeto de código aberto, o comportamento do in-toto seja transparente, e sua própria integridade e cadeia de suprimentos podem ser verificadas pela comunidade. Teremos que esperar para ver se a ferramenta ganhará uma massa crítica de usuários e contribuidores para competir neste espaço.

    Histórico
  • Kubeflow é interessante por dois motivos. Primeiro, é um uso inovador de Kubernetes Operators, que destacamos em nossa edição de abril de 2019 do Radar. Segundo, fornece uma maneira de codificar e versionar fluxos de trabalho de aprendizado de máquina para que eles sejam mais facilmente transportados de um ambiente de execução para outro. O Kubeflow consiste de vários componentes, incluindo notebooks Jupyter, pipelines de dados e ferramentas de controle. Muitos desses componentes são empacotados como operadores Kubernetes para aproveitar a capacidade do Kubernetes de reagir a eventos gerados por pods implementando vários estágios do fluxo de trabalho. Ao empacotar os programas individuais e os dados como contêineres, fluxos de trabalho inteiros podem ser transportados de um ambiente para outro. Isso pode ser útil quando mover um fluxo de trabalho útil, porém computacionalmente desafiador e desenvolvido na nuvem, para um supercomputador personalizado ou cluster de uma unidade de processamento tensorial.

    Histórico
  • Se sua aplicação lida com informação sensível (como chaves criptográficas) como texto simples em memória, há uma alta probabilidade de que alguém possa explorá-la como um vetor de ataque e comprometer a informação. A maioria das soluções baseadas em nuvem frequentemente usa módulos de segurança de hardware (HSM) para evitar tais ataques. Contudo, se você está em uma situação em que precisa fazer isso de maneira auto-hospedada sem acesso a HSM, então achamos que o MemGuard pode ser bem útil. O MemGuard age como um enclave de software de segurança para armazenar informação sensível em memória. Apesar de MemGuard não ser um substituto para os HSMs, ele traz uma quantia de táticas de segurança, tais como proteção contra ataques cold boot, evitando interferência na coleta do lixo e fortalecendo guard pages para reduzir a probabilidade de dados sensíveis serem expostos.

    Histórico
  • Definir e executar políticas de segurança uniformemente em um cenário de tecnologia diverso é um desafio. Mesmo para aplicações simples, você tem que controlar o acesso a seus componentes – tais como orquestradores de contêineres, serviços e armazenamento de dados para manter o estado do serviço – usando sua configuração de política de segurança embutida dos componentes e mecanismos de execução.

    Estamos otimistas com o Open Policy Agent (OPA), uma tecnologia de código aberto que tenta resolver esse problema. O OPA deixa você definir controle de acesso refinado e políticas flexíveis como código, usando a linguagem de definição de política Rego. Rego executa as políticas de maneira distribuída e limpa fora do código da aplicação. À época em que escrevemos, o OPA implementou a definição de política uniforme e flexível e execução para assegurar o acesso a APIs do Kubernetes, APIs de microsserviços por meio do sidecar do Envoy e Kafka. Também pode ser usado como sidecar para qualquer serviço para verificar acesso a políticas ou filtrar dados de resposta. Styra, a empresa por trás do OPA, fornece soluções comerciais para visibilidade centralizada para políticas distribuídas. Gostamos de ver o OPA amadurecer por meio do programa de incubação CNCF e continuar fornecendo suporte para cenários de execução de políticas mais desafiadores, tais como armazéns de dados diversos.

    Histórico
  • Pumba é uma ferramenta de teste de caos e emulação de rede para Docker. O Pumba pode eliminar, parar, remover ou pausar contêineres Docker. Pode também emular redes e simular diferentes falhas de rede, como atrasos, perda de pacotes e limites na largura de banda. O Pumba usa a ferramenta tc para emulação de rede, o que significa que precisa estar disponível em nossos contêineres ou precisamos rodar o Pumba em um contêiner sidecar com tc. Pumba é particularmente útil quando queremos executar testes de caos automatizados em um sistema distribuído rodando em vários contêineres localmente ou na pipeline embutida.

    Histórico
  • O Google nos traz a Skaffold, uma ferramenta de código aberto para automatizar fluxos de trabalho de desenvolvimento locais, incluindo deploy em Kubernetes. A Skaffold detecta mudanças no código-fonte e ativa fluxos de trabalho para compilar, taggear e implantar em um cluster K8s, incluindo a captura de logs de aplicações de volta para a linha de comando. Os fluxos de trabalho são plugáveis com diferentes ferramentas de compilação e implantação, mas isso acontece com uma configuração padrão opinativa para tornar mais fácil a inicialização.

    Histórico
  • O mundo do aprendizado de máquina mudou levemente sua ênfase de explorar do que os modelos são capazes de entender para como eles fazem isso. Preocupações sobre introdução de vieses ou generalizar demais a aplicabilidade do modelo resultou em novas ferramentas interessantes, tais como What-if Tool (WIT). Essa ferramenta ajuda cientistas de dados a mergulhar no comportamento de um modelo e visualizar o impacto que várias funcionalidades e conjuntos de dados têm no resultado. Introduzida pelo Google e disponível tanto por meio do Tensorboard ou de notebooks Jupyter, WIT simplifica as tarefas de comparar modelos, partir conjuntos de dados, visualizar facetas e editar pontos de dados individuais. Apesar de WIT simplificar a execução dessas análises, ainda é necessário um profundo entendimento de matemática e teoria por trás dos modelos. É uma ferramenta para cientistas de dados obterem insights mais profundos sobre o comportamento do modelo. Usuários ingênuos não devem esperar que qualquer ferramenta remova o risco ou minimize os danos resultantes de um algoritmo mal treinado.

    Histórico

EVITE?

  • Azure Data Factory (ADF) é atualmente o produto padrão da Azure para orquestrar pipelines de processamento de dados. Ele suporta ingestão de dados, copiar dados de e para diferentes tipos de armazenamento localmente ou no Azure e executar lógica de transformação. Embora tenhamos tido uma experiência razoável com ADF para migrações simples de armazéns de dados de local para nuvem, desencorajamos o uso de Azure Data Factory para orquestração para pipelines complexas de processamento de dados. Nossa experiência tem sido desafiadora por vários fatores, incluindo cobertura limitada de capacidades que podem ser implementadas por meio de código primeiro, pois parece que ADF está priorizando a possibilidade das capacidades de plataforma de baixo código; capacidade ruim de debug e relatar erros; observação limitada, já que as capacidades de login da ADF não se integram com outros produtos, como Azure Data Lake Storage ou Databricks, tornando difícil obter uma observação de ponta-a-ponta; e disponibilidade de mecanismos de acionamento da fonte de dados apenas para certas regiões. Nesse momento, encorajamos usar outras ferramentas de orquestração de código aberto (ex.: Airflow) para pipelines de dados complexos, e limitar ADF para cópias de dados ou snapshotting. Esperamos que a ADF aborde essas preocupações para suportar fluxos de trabalho mais complexos de processamento de dados e priorize o acesso a capacidade por meio de código primeiro.

    Histórico
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 estar faltando um tópico específico porque o radar reflete nossa experiência, não se baseando em uma análise abrangente do mercado.

Novo ou modificado,Sem modificação