Com as instâncias spot do Amazon EC2, economizamos facilmente de 85% a 90% dos custos. Por sua vez, isso nos permite testar com menos risco e desenvolver produtos de alta qualidade para nossos clientes. 
Joe Gardner Arquiteto-chefe de nuvem

Fundada em 1976, a National Instruments (NI) trabalha com engenheiros e cientistas para fornecer respostas às perguntas mais desafiadoras. A NI disponibiliza a eles soluções tecnológicas avançadas concebidas para acelerar a produtividade e a inovação em áreas que vão desde a tecnologia de cuidados de saúde até a computação móvel e a investigação espacial. Os mais de 35.000 clientes da NI já entregaram centenas de milhares de produtos ao mercado, superando inúmeros obstáculos tecnológicos ao longo do caminho. Sediada em Austin, Texas, a NI emprega cerca de 7.400 funcionários em quase 50 países ao redor do mundo. A empresa teve uma receita anual de 1,23 bilhão USD em 2015, dos quais 16% são investidos em pesquisa e desenvolvimento.  

Entre as tecnologias oferecidas pela National Instruments aos seus clientes está o LabVIEW, um ambiente de desenvolvimento de software para a criação de aplicativos personalizados. O módulo FPGA do LabVIEW amplia esse ambiente e permite que os engenheiros adicionem aos aplicativos tecnologias sofisticadas de Field Programmable Gate Array (FPGA – Matriz de portas programáveis em campo), ou chips de silício reprogramáveis. Um projeto de FPGA deve ser compilado antes de ser implantado. Para isso, os engenheiros devem executar um processo de compilação demorado e com uso intenso de recursos em uma máquina configurada com capacidades de hardware consideráveis e os pacotes de software necessários.

Historicamente, as equipes de desenvolvimento da NI testavam localmente novos recursos para produtos como esse. No entanto, era necessário adicionar infraestrutura para acompanhar o crescimento da empresa. Ao mesmo tempo, a complexidade dos projetos de FPGA aumentava cada vez mais, exigindo uma quantidade maior de capacidade computacional. Para reduzir os custos e o tempo de desenvolvimento, a equipe do LabVIEW da NI começou a investigar a computação em nuvem. “Os transistores estão ficando cada vez menores e temos mais portas com capacidade de programação. Isso significa projetos maiores e mais complexos que exigem mais poder computacional para executar a compilação”, afirmou Joe Gardner, arquiteto-chefe de nuvem da NI.  

Depois de considerar várias opções, a equipe de FPGA ampliou o seu módulo em 2010, oferecendo um serviço de compilação de FPGA hospedado em instâncias sob demanda do Amazon Elastic Compute Cloud (Amazon EC2). A equipe de FPGA também usa a AWS para desenvolvimento e testes internos. A equipe de FPGA escolheu a AWS considerando os recursos de Auto Scaling, o controle oferecido aos desenvolvedores e as instâncias spot do Amazon EC2, que permitem que a National Instruments reduza substancialmente os custos de computação dos testes de novos recursos do produto.

Com o Auto Scaling da AWS, a NI pode ampliar rapidamente seus recursos do AWS EC2 para acompanhar o aumento das cargas de trabalho dos clientes. “Antes, o nosso processo de escalabilidade, desenvolvido internamente, demorava de 5 a 30 minutos para escalar em resposta a cargas de trabalho adicionais”, disse Gardner. “Com a AWS, fazemos isso em menos de cinco minutos, o que é um grande benefício para nós, pois nossos clientes não precisam ficar esperando para começar a usar.”

Além disso, a equipe de FPGA também selecionou a AWS pela facilidade de uso oferecida aos desenvolvedores. “A AWS é mais simples que os outros ambientes de nuvem, oferece mais controle e não obriga a aplicar atualizações que resultam em problemas de compatibilidade”, comentou Gardner. “Além disso, a AWS é simples de usar, o que significa que podemos criar produtos sem, por exemplo, contratar especialistas em Hadoop ou IoT. Em vez disso, podemos usar os talentos que já temos.”

Talvez o mais importante seja que a equipe de FPGA percebeu que poderia obter economias significativas usando instâncias spot do Amazon EC2 durante o desenvolvimento e os testes. Essas instâncias equilibram a oferta e a demanda, permitindo que os usuários façam ofertas por capacidade de computação excedente do Amazon EC2. “As economias são substanciais”, explicou Gardner. “Por exemplo, com as instâncias spot, o teste de um dos nossos produtos custou cerca de 500 USD. Usando o processamento sob demanda, o custo seria 10 vezes maior, ou 5.000 USD.”

Em agosto de 2014, a NI ampliou a utilização da AWS para a equipe de desenvolvimento do software LabVIEW, que passou a usar instâncias spot do Amazon EC2 para processar cargas de trabalho de teste excedentes quando a infraestrutura local esgotava sua capacidade. “O número de testes estava aumentando, e a equipe de desenvolvimento do LabVIEW não tinha os recursos computacionais para realizar todos os testes”, afirmou Gardner. “Eles nos procuraram porque sabiam que já tínhamos experiência na nuvem. Em uma semana, estavam executando os testes excedentes na nuvem.”

Além das instâncias spot do Amazon EC2, a NI usa vários outros serviços da AWS, como Amazon Simple Storage Service (Amazon S3) para armazenamento de objetos altamente escalável, Amazon Relational Database Service (Amazon RDS) como banco de dados relacional, Amazon DynamoDB como um banco de dados NoSQL rápido e flexível, e Amazon Route 53 como web service escalável de Domain Name System na nuvem. A NI também usa o AWS CloudFormation, que proporciona aos desenvolvedores uma maneira fácil de criar e gerenciar recursos relacionados da AWS, e o AWS CloudTrail, que registra chamadas de APIs da AWS e fornece um histórico de arquivos de log.

Com o modelo de definição de preço das instâncias spot da Amazon, a National Instruments pode executar cargas de trabalho internas por uma fração do preço do processamento sob demanda, economizando dezenas de milhares de dólares nos testes de novos recursos. “Com as instâncias spot do Amazon EC2, economizamos facilmente de 85% a 90% dos custos”, comentou Gardner. “Por sua vez, isso nos permite testar com menos risco e, essencialmente, desenvolver produtos com melhor qualidade para os nossos clientes.”

A NI também evitou o custo de criar uma maior infraestrutura local. Por exemplo, a equipe do LabVIEW usou instâncias spot do Amazon EC2 para executar mais de 30.000 horas de servidor de compilações de teste por mês. A execução local dessa quantidade de trabalho exigiria dobrar o tamanho da infraestrutura interna da equipe, com custos de hardware e manutenção de 1 milhão USD. O uso da AWS permitiu que a NI escalasse rapidamente para atender às demandas atuais, sem necessidade de aumentar a equipe e aguardar processos de compras para ampliar a infraestrutura local.

Além disso, a execução de cargas de trabalho de desenvolvimento e teste na AWS aumentou a agilidade da NI. Como as cargas de trabalho de teste variam consideravelmente durante o ciclo de vida de desenvolvimento de software, a NI pode evitar os custos de servidores ociosos quando a necessidade de testes diminui. Da mesma forma, a empresa pode escalar rapidamente quando a necessidade de testes aumenta, obtendo a capacidade computacional necessária para analisar rapidamente e disponibilizar novos recursos para os clientes. Por exemplo, para desenvolver um dos recursos, a equipe da FPGA precisava concluir um processo de teste abrangente que incluía mais de 900 compilações. Se a equipe realizasse as compilações usando um único servidor local, precisaria de mais de três semanas. No entanto, com as instâncias spot e a execução em paralelo do Amazon EC2, a equipe conseguiu realizar os testes em menos de 10 horas, com um custo inferior a 50 USD por execução. “Com a AWS, reduzimos o ciclo de desenvolvimento em meses”, disse Gardner. “Se eu precisar de mais servidores, poderei acessá-los, sem questionamentos.”

A NI conseguiu repassar essa agilidade aos clientes. Com o FPGA Compile Cloud Service hospedado integralmente na AWS, os engenheiros podem usar o serviço conforme a necessidade, sem gastar milhares de dólares em seu próprio hardware. “No passado, nossos clientes podiam gastar de 5.000 a 10.000 USD para obter os servidores de compilação necessários, que ficavam ociosos alguns meses depois”, afirmou Gardner. “Como as compilações são um processo sujeito a picos, a AWS é ideal para o que fazemos.”

Como a NI continua a crescer, a empresa planeja estender o uso da AWS para outros ambientes de desenvolvimento. Além disso, a empresa está considerando o uso de mais serviços da AWS, como AWS IoT e Amazon QuickSight, para criar novas ofertas de produtos para os clientes. “A AWS permitiu experimentar muito mais do que antes”, disse Gardner. “A AWS nos oferece uma grande variedade de ferramentas de trabalho e acelera o desenvolvimento e a implantação de novos produtos, o que é fundamental para o sucesso da nossa empresa.”

Para saber mais sobre como a AWS pode ajudar nas atividades de desenvolvimento e testes, acesse a nossa página de detalhes de desenvolvimento e testes.