SNAFU (Situation Normal. All Fu***d Up)

Dalila Araújo disse hoje no forum TSF que não sabe o que se passou e que causou a falha generalizada dos sistemas em dia de eleições.
Vão pedir à Universidade do Minho que faça uma auditoria para terem a certeza do que falhou.

Isto é realmente fascinante. Não sabem.

Mas aparentemente eu não falho nas minhas assumpções. Tinha escrito que devia haver fornecedores externos envolvidos e de facto havia - A Critical. A empresa que faz software para a NASA e que vai fazer a nova aplicação para os tribunais (migração para .NET) do Citius. Ganhou o contrato por ajuste directo e por um valhor que foi noticiado como sendo de 1 milhão de Euros.

Eu disse também que não acreditava que tivesse havido qualquer teste de stress aos sistemas.
Uma notícia do Público revela que chegou a haver 22 mil pedidos num minuto.

Ora acontece que o mais certo é este número ser manipulado.
E porquê manipulado?
Na verdade, quando se entra na página em que se pode saber a informação de eleitor, pedir a página significa pedir 49 elementos ao server (página, imagens, css e scripts contidos na mesma). É transferido um volume de 800K para o PC de quem consulta pela primeira vez. Em vezes seguintes haverá algumas coisas em cache mas mesmo assim o pedido e a resposta (304 Not Modified) são enviadas na mesma (só que a carga no servidor é muito menor).

É nesta página em que se coloca a identificação do cartão  e a data de nascimento e se recebe a informação de eleitor.

Se tivessem sido pedidos num minuto 22 mil informações destas daria 366 por segundo. Ora eu tenho muita dificuldade em acreditar neste número. Acredito mais que tenham olhado para os pedidos de cada IP à pagina de entrada e tenham visto nos logs os 49 elementos por página que são enviados para o browser de quem pede.
Sendo assim o número de pedidos será mais ou menos de 49 pedidos/respostas por cada visita à página.
Se for este o caso a carga é absolutamente marginal. Rondaria os 7 pedidos por segundo em situação de pico.
Acontece que independentemente do número de elementos na página só será gerado um pedido do nº à base de dados (a menos que alguém peça muitas vezes).
Acredito que tenham dado um valor de "requests" ao server e não de "requests" à bd que são certamente muito menos.

A minha opinião é que a estatística é verdadeira, mas manipulada pura e simplesmente para se adaptar ao cenário da carga catastrófica impossível de prever. Provavelmente se revelassem a verdadeira carga por segundo as pessoas mesmo não sabendo o que é normal encolheriam os ombros e diriam : Não parece nada de extraordinário...

Deu também para ver usando o Page Speed da Google que a página em causa tem muito por onde optimizar. Desde compressão até erros cometidos na estrutura da mesma que têm impacto na performance (e obviamente na carga dos servidores).

Mas o que acredito que tenha falhado foi a parte em que é feita a interrogação à BD. Se este for o estrangulamento (a BD) isso pode explicar porque é que todas os canais ficaram em baixo - Internet e SMS.
Isso é claramente o tipo de falha que se pode antecipar e para a qual tem mesmo de haver testes de stress.

Seja como for, este tipo de situação só revela a que ponto estes sistemas estão vulneráveis a ataques de Denial of Service. Basta afogar o(s) server(s) com pedidos. Não existe nenhum mecanismo que evite uma enxurrada de pedidos que cause o rebentar do sistema. Os meus parabéns aos implementadores.

Quer saber o que se passou Sra. Secretária de Estado?

O cliente não sabe o que comprou
O fornecedor sabendo isso fez o que quis com enorme liberdade
O cliente não deve ter exigido testes minimamente credíveis
O fornecedor terá feito os testes necessários para ter a certeza que a coisa funcionava e ia buscar a massa do contrato
O cliente todo ufano aceitou. Não acautelou o que devia, informando os cidadãos nos dias antes das eleições.

Já ouvi gente, com considerável despudor, culpar os portugueses que deixam sempre tudo para a última da hora.
A palavra SEMPRE é muito importante. Se assim for pode SEMPRE planear-se que isso vai acontecer. Só que no caso houve muito boa gente que ao tirar o cartão do cidadão viu a sua identificação eleitoral mudada sem saber. Um processo a que eram completamente alheios. Sendo assim não se pode assacar a responsabilidade a essas pessoas porque elas pensavam, e bem, que o sitio onde votavam e a sua identificação se mantinham. Não receberam qualquer aviso.

Durante os dias que antecederam o acto eleitoral não assisti a qualquer aviso nos media para que os portadores do cartão do cidadão fizessem esta pesquisa. Pode ter acontecido mas eu não vi. E eu consumo bastante televisão em prime time e em mais que um canal...


No meio disto tudo, a responsabilidade técnica do falhanço é apenas uma parte do problema. A falha de gestão destes processos é tão ou mais importante que a falha técnica.

Se estes processos fossem conduzidos como deve ser, nunca a administração pública aceitaria pelo preço que aceita, as aplicações que vai comprando às empresas do "regime".

Os dois responsáveis que se demitiram têm uma responsabilidade não nula no acontecido. Seja como for são os responsáveis da área e devem assumir as responsabilidades de toda a área. Afinal é para isso que ganham mais que os outros e têm regalias que os outros não têm.

Mas a iniciativa política de avançar com estes serviços (Cartão do Cidadão) para tirar dividendos imediatos sem pensar no que se vai passar a seguir, vem de cima.. Vem do Ministro e do Conselho de Ministros.

Mas esses já têm os cordeiros sacrificados para apaziguar os Deuses. Já podem descansar em paz