152 views 22 mins

Tecnologia 26/07/2018

em Tecnologia
quarta-feira, 25 de julho de 2018
1 OF0xEMkW temporario

Teste A/B revolucionário com Varnish e CDN

O último semestre do ano foi cheio de novidades no GetNinjas. Nós decidimos fazer um novo tipo de teste A/B. Por sermos um grande marketplace de serviços no Brasil, nossa expertise com dados e análises é bem ampla. Sempre que vamos criar novas funcionalidades, fazemos teste A/B para que sejam menos arriscadas e possamos validá-las

Foto: Reprodução

1 OF0xEMkW temporario

Eduardo Matos (*)

Mas o que é um teste A/B? Apresentamos versões de uma mesma funcionalidade, com pequenas variações, de modo aleatório para os visitantes. Assim, podemos analisar qual delas conquistou um resultado melhor.
No lado do frontend, o JavaScript nos ajuda com certa tranquilidade. Abba.js é uma ferramenta que facilita nosso processo de controle de versões de testes e os comportamentos esperados do nosso experimento.
Mas, em alguns casos, precisamos testar mais do que um simples pedaço de HTML ou CSS. Tivemos grandes mudanças no nosso layout e UI com o Gaiden, nosso styleguide, então, em algumas páginas nós precisamos testar essas mudanças sem comprometer as taxas de conversão e o tráfego orgânico e de marketing.
Somando a isso, tínhamos enfrentado por algumas vezes o fracasso de subir páginas totalmente novas em produção, mas que performaram bem menos que as antigas. Isso porque não fazíamos testes a/b revolucionários por conta das camadas de cache, que vou explicar logo mais nesse texto.

Problemas
Geralmente, testes no frontend apresentam um problema clássico, que é o FOOC (Flash of Original Content). Existem algumas maneiras de contornar isso, como adicionar estilos de CSS no HEAD que escondam o trecho de alvo do teste, que sofrerá a alteração de conteúdo após o teste ser carregado. Isso para que, ao carregar o HTML, somente se exiba a versão final, decidida pela ferramenta de A/B, no caso, o Abba.js. Ainda assim, é uma tarefa arriscada, já que existe a possibilidade do usuário não ver o trecho do layout até que haja o split das versões.
Outro problema, desencadeado pelo problema apresentado acima, eram as métricas relacionadas a visualização completa da página. Como escondíamos alguns elementos, e só exibíamos quando o JS fazia o “sorteio” da versão, o usuário tinha a impressão de que a página não tinha terminado de carregar ou até mesmo tinha “travado”. Isso aconteceu em alguns testes que fizemos na primeira dobra de algumas páginas.
Aliado a isso, tínhamos um último problema, que era o de performance. A versão original acabava recebendo mais coisas (JS, CSS, imagens) do que tinha anteriormente, o que poderia prejudicar a fiel análise dos dados.

Como resolver (?)
A solução era fazer um split de versão no nosso backend, que é o Rails. Quando o request chega no controller, por meio de um header, o split acontece entre as versões de HTML que irão ser servidas para o cliente.
Adicionalmente, há duas camadas de cache no site: Varnish e CDN. Então, quando o primeiro usuário batia no backend, o Varnish e a CDN cacheavam uma das duas versões. O próximo usuário não iria “bater” no backend (Rails), porque a CDN e o Varnish estavam na frente, e apenas uma das versões seria servida para todos os próximos clientes. Isso parecia não fazer sentido.

CDN e Varnish para nos salvar
Para resolver isso, foi preciso mudar a VCL do Varnish, para tornar possível armazenar dois objetos de cache, baseados em um cookie. Mas, ainda tínhamos a CDN na frente. Com isso, começamos as conversas com o provedor, a Azion, para ver a possibilidade de dividir o tráfego e assinar o request do cliente com um cookie.

Explicando um pouco mais sobre CND, Varnish e tempo de backend
A Azion desenvolveu uma nova funcionalidade que divide as versões, e assim, nossa camada mais alta estava enviando ao Varnish um cookie. Quando esse cookie chega para o Varnish, criamos um header para avisar ao backend sobre qual versão era para ser servida de volta.
Dessa forma temos a possibilidade de testar novas funcionalidades grandes, sem o risco de sobrescrever uma página antiga que poderia ter uma taxa de conversão maior.
Versões com layouts diferentes na página. Novas possibilidades de testes no backend, ao invés do client-side

Resultados
O time de design consegue hoje criar mais possibilidades de testes, não se limitando apenas a trechos do layout, mas sim de uma página totalmente remodelada. A limitação técnica que havia antes não precisa mais ser impeditivo para a criação de ideias ou novas propostas de interface.
Do lado de desenvolvimento, diminuímos os riscos de implementar uma página do zero, substituindo completamente nosso código por um novo. Agora, como a página ainda é um experimento, não precisamos nos dedicar em remover código antigo e otimizar ou reaproveitar algo do nosso codebaseâ??—â??isso até que o teste ganhe.

Possíveis problemas
Embora o teste tenha suas vantagens, existem alguns poréns na hora de aplicá-lo. Um deles é que limitamos um pouco o número de testes que podem acontecer numa mesma página. Tivemos um caso de teste revolucionário na mesma página de um teste de front-end, utilizando JavaScript, que também estava funcionando lá. Quando começamos a ver esse cenário, já vimos como foi difícil entender os experimentos e pegar as métricas de resultado. O problema sempre vai ser manter os dois tipos de teste na mesma página.
Outro ponto de atenção é com relação a desenvolvimento de uma página toda, do zero, apenas para efetuar um teste. Não é difícil pensar em um teste menos agressivo para usar, mas quando a página toda é o alvo, o tempo de desenvolvimento pode ser gasto “à toa”, pois o teste pode não ganhar. Isso é um fator que pode desmotivar o time ao trabalhar com esse tipo de abordagem.

Conclusões
Com essa nova abordagem, os testes de páginas novas são entregues de forma mais rápida e com menos risco para a saúde do negócio. Dessa forma, somente páginas que realmente convertem mais são adicionadas no site.
Se você tem um tempo disponível para poder fazer um teste desse tipo, antes de subir definitivamente para produção, faz muito sentido tentar. Se tiver um teste menor, que não altere a página toda, mas um trecho considerável, talvez faça sentido duas páginas para isso. Lembre-se que o fator tempo de carregamento da página, ou o próprio First Meaningful Paint, nesse caso, pode ser determinante no teste.
Outro ponto positivo é poder se beneficiar do split que uma CDN faz. Chegando dois headers diferentes, é mais simples fazer o split entre dois objetos de cache (pensando no Varnish aqui).
Enfim, esse tipo de abordagem pode ser uma boa para evitar qualquer queda de métricas do produto ou site que você trabalha.

(*) É Head de Tecnologia do GetNinjas.

Nova resolução dita regras para a segurança de dados nas instituições financeiras

Foto: Reprodução

seguranca-informaca temporario

O Banco Central aprovou uma resolução que estabelece novas obrigações para as instituições financeiras brasileiras no que diz respeito à segurança da informação. O setor financeiro é o que mais investe em soluções para a segurança de dados no Brasil, mas também é o principal alvo dos cibercriminosos.

Basicamente, as normas são divididas em duas partes, a primeira fala sobre a implementação obrigatória de uma política de segurança nas instituições financeiras e a segunda parte detalha algumas práticas para a adoção e uso da nuvem no setor.

A resolução diz que as instituições devem implementar e manter uma política de segurança cibernética formulada com base em princípios e diretrizes que busquem assegurar a confidencialidade, a integridade e a disponibilidade dos dados e dos sistemas de informação utilizados para isso.

Todas as empresas regulamentadas pelo Banco Central terão que implementar e testar um plano de ação de resposta a incidentes e também implementar controles mínimos definidos como autenticação, criptografia, prevenção de intrusos, DLP, antivírus, análise de vulnerabilidades, entre outros. Também passa a ser obrigatório existir um executivo responsável pelo planejamento e execução da segurança, independentemente do porte da empresa.

Sobre a adoção e uso de nuvem, as normas visam criam um padrão sobre como as nuvens podem ser adotadas e de que maneira dados devem ser processados e armazenados. Nesse ponto chama a atenção a preocupação com a residência dos dados, ou seja, conseguir indicar geograficamente onde os dados hospedados em nuvem estarão. Não será obrigatório hospedar os dados apenas no Brasil, mas será preciso comprovar o país de hospedagem.

As novas normas têm o intuito de disseminar a cultura de segurança da informação e aprimorar a proteção dos dados das empresas e dos clientes, criando algumas padronizações em todo o setor. Até abril de 2019, um ano após a publicação da resolução, todas as empresas regulamentadas pelo Banco Central terão que apresentar seus relatórios para provar que estão de acordo com todas as regras estabelecidas.

O setor financeiro, em sua maioria, já possui uma maturidade muito maior em segurança e por isso é usado como modelo para os outros segmentos. Muitas empresas já têm todas ou quase todas as normas aplicadas, mas antes não existia obrigatoriedade. A grande vantagem agora é poder usar o apelo da resolução para melhorar ainda mais a postura de segurança das empresas, ajudar a conscientizar a área de negócios sobre o assunto e usar essas diretrizes para direcionar mudanças e conquistar mais robustez para o futuro.

(Fonte: Bruno Zani é líder de vendas para segurança na nuvem da McAfee no Brasil).

O Dia Nacional da Ciência e a importância do estudo científico nas escolas de Ensino Fundamental e Médio

Ana Carolina Arcanjo (*)

Este mês comemoramos o Dia Nacional da Ciência – dia 8/07 – e, estimulados pela data e provocados por uma ação da Sociedade Brasileira para o Progresso da Ciência (SBPC)  nós resolvemos investigar à fundo de que maneira a como se define a Ciência para os estudantes, desde a Educação Básica ao Ensino Médio

Constatamos que a Ciência é muito mais do que uma disciplina, muito mais que a Biologia, a Química e a Física, pois a Ciência está presente em nosso dia a dia quando, ao enfrentarmos alguma situação desconhecida, criamos perguntas e tentamos responde-las. Além do mais é ela que nos dá segurança para refutar ideias absurdas e fracas de conteúdo, uma vez que se sustenta na observação de fatos científicos.
Sua importância na sala de aula é enorme e ela deve ser estimulada entre os estudantes, pois, para leva-los a se interessarem pela pesquisa científica, eles devem realizar experimentos e buscarem nisso uma forma de resolver o problema apresentado. Eles jamais devem ser levados a decorar fórmulas para fazerem uma prova, pois é na experimentação, na pesquisa e na busca de soluções que se aprende.
Um aluno ativo, que busca conhecer o mundo a seu redor, utilizando-se do instrumentário oferecido pela disciplina, é um aluno interessado em aprender, a evoluir e a ser útil no futuro. Isto decorre dos benefícios que a sociedade recebe e que são inúmeros e a cada dia aumentam como é o caso das vacinas que já erradicaram muitas moléstias malignas e fatais. Outro exemplo é a tecnologia da edição do DNA que já está sendo usada nos grandes centros de pesquisa ao redor do mundo, a CRISPR-Cas9.Os estudos realizados e direcionados à determinada região do genoma são muito promissores e podem ajudar muitas pessoas com doenças genéticas (e até mesmo o câncer), que atualmente ainda não tem cura.
Também não se pode esquecer da importância das vacinas que nos protegem de inúmeras doenças. A vacina da gripe, por exemplo, a cada ano deve ser renovada, uma vez que os vírus da Influenza sofrem modificações constantes. Cabe ao professor aplicar diversos tipos de metodologias científicas durante as aulas, até utilizar-se da História da Ciência levando ao conhecimento dos estudantes fatos históricos e curiosidades que lhes prendam a atenção.
Na verdade, todo somos cientistas e explorar isso em sala de aula é uma ferramenta muito poderosa.
Além do mais há sites e aplicativos na internet, uma infinidade de fontes seguras, tanto vindas do exterior como das universidades federais e estaduais daqui do Brasil e o Google lançou recentemente o Google Science Journal (https://sciencejournal.withgoogle.com).
Em geral as universidades públicas brasileiras têm convênios com escolas de ensino básico tanto particulares como públicas e isso possibilita que alunos do Ensino Médio já trabalhem através de Projetos de Iniciação Científica Junior com bolsa e certificado e, nos programas de extensão das universidades há diversos tipos de trabalho que são voltados à comunidade em que essa universidade está inserida.
Mas o que se ressalta é a necessidade de atualização das feiras de ciência nas escolas. Antigamente um tema era dado aos alunos para que apresentassem algo relacionado a ele no dia marcado para a feira. Isso acabou tirando a criatividade do estudante, pois impedia que ele buscasse resposta para suas próprias perguntas.
Hoje, no Colégio Marista de Brasília Asa Sul Ensino Fundamental, a coordenado de Ciência da Natureza, professora Samara Meira, implementou e adota uma nova forma de feira de ciências. Os alunos, sob sua orientação, estão seguindo o Método Científico de Galileu Galilei, observando os fenômenos do seu cotidiano, problematizando e criando hipóteses sobre esses fenômenos e estão desenvolvendo experimentos para comprovar ou refutar suas hipóteses. É um projeto piloto e inovador em Brasília e todos estão empolgados com os trabalhos que estão sendo desenvolvidos.
Atualmente na área de formação de Genética e Evolução Humana, a professora Ana Carolina Arcanjo está pesquisando na sua área de formação. No momento está iniciando as tramitações burocráticas para implementar um centro de pesquisa genômica dentro da unidade do Ensino Médio , já pensando em formar futuros cientistas.
Além disso, o Colégio Marista de Brasília Asa Sul, também conta com um projeto de iniciação científica chamado Marista Faz Ciência. Por ele , no ano passado, os estudantes fizeram o levantamento dos tipos sanguíneos dos estudantes do terceiro ano do Ensino Médio, Através da soro tipagem em laboratório, além de fazer o levantamento dos dados dois outros estudantes por meio de pesquisa demográfica. Ao final escreveram um artigo muito interessante que debatia a importância de se conhecer o tipo sanguíneo, as disparidades de frequência com outras regiões do Brasil e do mundo e estão agora em busca de uma revista científica para a sua publicação. Cientistas a caminho!¬

(*) É licenciada em ciências biológicas pela Universidade de Brasília, especialista em Ciências Forenses pela PUC-GO, mestre e doutora em Biologia Animal pela Universidade de Brasília. Atualmente é professora no Colégio Marista de Brasília – Asa Sul