Olá Walter! Podes falar-me um pouco mais sobre ti, bem como sobre o teu papel na Runna?
Sim, chamo-me Water e sou o CTO da Runna. Como um dos primeiros funcionários, concentrei-me inicialmente na construção da plataforma e da aplicação móvel a partir do zero. Juntamente com a infraestrutura de back-end, tudo isto estava (e ainda está) alojado na AWS e com uma arquitetura totalmente sem servidor (o que é uma loucura e ótimo para nós, se pensarmos bem). Estou a partilhar este contexto porque até hoje nos permite escalar o produto rapidamente com um pequeno número de engenheiros.
Desde que assumi um papel de liderança, o meu foco passou a ser o crescimento da equipa e a expansão da plataforma. Somos agora uma equipa de 45 pessoas, estruturada em 5 equipas:
- Equipa de aplicações: Engenheiros de pilha completa construindo recursos de ponta a ponta em nossa pilha - React Native, AWS Serverless, GraphQL, DynamoDB, S3.
- Equipa de treino: Engenheiros de ML e Python que estão a melhorar o nosso motor de treino e as funcionalidades baseadas em LLM, como a engenharia de prontidão com OpenAI e Gemini.
- Equipa de dados: Focada na construção de um armazém de dados baseado em Snowflake para desbloquear insights de dados de treinamento e atividade que estão atualmente isolados em DynamoDB e S3.
- Equipa da plataforma: Garante a escalabilidade e fluxos de trabalho de desenvolvimento suaves, aplicando as práticas recomendadas sem servidor e evitando gargalos de engenharia.
- Equipa de crescimento: Desenvolve aplicações nativas para dispositivos portáteis como o Apple Watch para alargar o nosso ecossistema de produtos.
Naturalmente, estas equipas são apoiadas por equipas de produto multifuncionais (que têm designers, gestores de produto...).
Como é que o Runna aborda a segurança?
A nossa forma de trabalhar é como uma equipa de generalistas. Encorajamos toda a gente a abordar todas as coisas de uma forma completa, incluindo a segurança.
Geralmente, a equipa da Runna Platform é responsável pela nossa segurança na nuvem. Como tudo está hospedado na AWS, configuramos o AWS config e o hub de segurança. Temos um engenheiro de segurança responsável por tudo o que diz respeito à segurança: desde o ponto de vista estratégico (indo para além da segurança na nuvem, como programas de deteção de bugs, testes de penetração externos...), até às ferramentas, ao acompanhamento dos alertas (críticos) e à garantia de que a triagem é feita entre as diferentes equipas.
Ao ouvir (ou ler) isto, provavelmente pensará que é muito difícil. E é mesmo! Não é viável para uma pessoa manter tudo. É muito trabalho manual e, por vezes, uma reflexão tardia - e é aí que entra o Aikido.
"Não é viável que uma pessoa faça a manutenção de tudo. É muito trabalho manual - e, por vezes, uma reflexão tardia. É aí que entra o Aikido".
Houve outros desafios de segurança com que se deparou?
Deixando de lado o tédio manual e as prioridades concorrentes, estávamos à procura de uma solução de segurança que pudesse servir como uma extensão do conhecimento interno de segurança mais limitado que tínhamos. Deveria servir como uma extensão da nossa equipa, com a capacidade de automatizar o máximo possível a sinalização, triagem e correção.
"Estávamos à procura de uma solução de segurança que pudesse servir como uma extensão dos conhecimentos internos de segurança mais limitados que tínhamos."
Temos a sorte de a nossa plataforma ter apenas 2-3 anos e de estarmos a alojar tudo no AWS. A aplicação móvel é bastante recente e a aplicação Web é ainda mais recente, pelo que a consolidação da segurança em todos os produtos que oferecemos também foi uma prioridade.
Quando é que começou a estudar as ferramentas de segurança?
A avaliação começou com o desejo de mudar tudo para a esquerda. Queríamos tornar a segurança tão autossuficiente quanto possível, permitindo simultaneamente que todas as equipas contribuíssem para proteger o nosso produto. A última coisa que queríamos era que a segurança se tornasse uma fonte única e isolada, da qual todos tirassem as mãos e dissessem que "não era problema deles" (risos).
Começámos a procurar uma ferramenta que pudesse resolver os problemas mencionados anteriormente e, ao mesmo tempo, ser capaz de os resolver:
- Identificar os problemas o mais cedo possível, e
- Enviar pull requests para repositórios específicos, levantando questões de segurança quando alguém tenta submeter código
"Queríamos tornar a segurança tão autossuficiente quanto possível, permitindo simultaneamente que todas as equipas contribuíssem para proteger o nosso produto."
Avaliaram outras ferramentas de segurança antes de o Aikido entrar em cena?
Já estávamos a utilizar o Dependabot para a gestão básica de dependências. Avaliámos brevemente o Snyk também, principalmente porque é um dos grandes players. Mas, honestamente, pareceu-nos um pouco pesado demais para o que precisávamos. Ele veio com muita complexidade e um preço alto, e não vimos o valor para nosso tamanho e configuração.
O que realmente fez com que o Aikido se destacasse foi a rapidez com que começámos a trabalhar. A configuração foi fácil, a interface do utilizador foi criada especificamente para os programadores e funcionalidades como o AI AutoFix e os PRs automáticos deram-nos a sensação de que não se tratava apenas de mais um dashboard, mas de algo que poderia realmente aliviar o nosso trabalho. Foi como adicionar outro engenheiro à equipa, sem o processo de contratação.
O que realmente fez com que a Aikido se destacasse foi a rapidez com que começámos a trabalhar. Foi como adicionar outro engenheiro à equipa, sem o processo de contratação.
Qual foi o tempo mais rápido que passou de um alerta de segurança para uma correção?
Para qualquer coisa crítica (por exemplo, um alerta de dependência de alta gravidade), conseguimos corrigir e enviar a correção no espaço de algumas horas após termos sido alertados. Isto deve-se, em grande parte, à forma como o Aikido se integra no nosso fluxo de trabalho: os problemas surgem claramente, os PRs são levantados automaticamente e os nossos engenheiros podem entrar em ação com o contexto já definido. É um divisor de águas em termos de redução do tempo entre a deteção e a resolução.
Com o Aikido, a segurança deixou de ser um obstáculo na Runna. A segurança adapta-se perfeitamente à forma como a equipa de desenvolvimento trabalha, automatiza as coisas ruidosas e dá aos engenheiros o contexto de que necessitam para resolver problemas rapidamente - sem quebrar o seu fluxo.