top of page
Procure por Tags

O que esperar de uma plataforma de rastreamento e telemetria? Visão técnica.

  • Jairo de Abreu Filho
  • 15 de jul. de 2016
  • 5 min de leitura

Hoje é comum encontrar vários sistemas de rastreamento, alguns com lindos templates e com promessas de telemetria, outros confusos e com excesso de relatórios inúteis. Não vou discutir o que é, e o que não é telemetria, pois este tema merece um post dedicado.

Na minha visão, os pontos principais de um sistema são a estabilidade e a escalabilidade. Para obter um sistema estável não é tão simples quanto parece e demanda muito tempo e dinheiro. O processo se inicia quando o programador começa o desenvolvimento do sistema. O primeiro passo é determinar a linguagem de programação, o banco de dados e o sistema operacional que servirá de pano de fundo. Se houver erros nessa fase, certamente teremos problemas com o futuro do sistema. Outro ponto fundamental é a escalabilidade, palavra muito utilizada hoje no mundo da programação. Mesmo que o sujeito tenha escolhido uma linguagem de programação adequada e um sistema operacional justo, as consequências podem ser devastadoras caso o sistema não tenha sido estruturado de maneira a permitir sua expansão.

Você, como usuário ou empreendedor deve estar se perguntando agora: Nossa, como vou saber disso se mal sei utilizar o Excel? A resposta é: Perguntando! Leia este post até o fim e entenda um pouco mais sobre as tecnologias que podem ser utilizadas num sistema de rastreamento e aprenda a avaliar de maneira técnica quando estiver na dúvida de qual sistema escolher.

Pra começar a conversa, vamos falar de sistemas operacionais. Vamos começar falando em sistemas baseados em UNIX. Agora você me pergunta: Que diabos é UNIX? Não vou me aprofundar nos conceitos, mas por curiosidade veja alguns exemplos de sistemas que utilizam o UNIX como base: Mac OS, Linux e suas variações (CentOS, Ubuntu, Debian), BSD, Solaris e outros. Quais quer destes sistemas citados são confiáveis e com alta imunidade a invasões e vírus. Resumindo, falou que um sistema roda em Windows, desconfie. Preconceito? Não, pós conceito e matemática. Sabidamente sistemas com arquitetura UNIX são mais seguros e confiáveis. Na sua maioria são de código aberto e desenvolvidos por milhares de programadores espalhados pelo mundo. Na contramão, o Windows é um sistema desenvolvido pela Microsoft e baseado no MS-DOS (Antigo Q-DOS). Não vou me alongar neste tema Windows x Linux, pois não é esse o objetivo do post, mas vale a pesquisa sobre o tema para entender melhor suas diferenças.

Além das considerações técnicas acima, eu disse também que é uma questão de matemática, certo? O Windows Server é um sistema fechado e para utiliza-lo de maneira legal, é necessário pagar uma licença e essa licença não é barata. A maioria dos grandes Data Centers nem se quer oferecem versões de servidores com Windows Server, por outro lado você encontra facilmente diversas compilações de Linux. Se a plataforma utilizar Windows, logo, deve cobrar mas por isso.

Passado o fantasma Sistema Operacional do servidor, vamos entender um pouco sobre a linguagem de programação e o banco de dados escolhido pelo seu fornecedor de plataforma de rastreamento. Hoje o mercado oferece uma infinidade de linguagens, frameworks, ferramentas e aplicações "pré prontas" para facilitar a vida do programador. É comum que os desenvolvedores (programadores) utilizem "atalhos" para facilitar o desenvolvimento do produto, mas muitas vezes esses atalhos limitam ou dificultam a evolução do sistema.

Uma das linguagens mais utilizadas no mundo web é o PHP. Há uma grande chance de você estar utilizando um sistema desenvolvido com esta linguagem. O motivo principal desta escolha é a facilidade de encontrar material de aprendizagem na internet e, consequentemente encontrar "profissionais" para trabalhar. Em geral, esses "profissionais" são autodidatas sem maiores conhecimentos técnicos de performance e arquitetura de sistemas. Coloquei a palavra profissionais entre aspas, pois, quantidade não significa qualidade. Tente escrever "programador php" no Google e veja quantas páginas são carregadas. Pouquíssimos eu teria coragem de contratar.

Algumas linguagens estão na moda para o desenvolvimento de aplicações em tempo real, posso citar algumas: Pyton, Clojure, Ruby, Elixir e Go. Todas eu indicaria para quem está iniciando um sistema de rastreamento, porém logo esbarraríamos na contratação de um bom profissional. Mesmo com a crise, o mercado de programação está aquecido e os salários só aumentam. Para contratar bons programadores você precisará de sorte, tempo e dinheiro. Temos o JAVA, que é amplamente difundido, tem excelente performance, mas a sua sintaxe é altamente verbosa, prejudicando a velocidade de desenvolvimento e atualizações.

Falando em banco de dados, ou apenas BD, temos no mercado diversas opções, os mais utilizados são: MySQL, Oracle (pago), PostgreSQL, MariaDB, MongoDB e outros. Se a modelagem for bem feita, não vai ser no banco que um possível gargalo vai ocorrer. Teríamos outras variáveis mais delicadas para pensar até que o nosso BD não desse conta do recado.

Ok, já entendi. Precisamos olhar o Sistema Operacional, a linguagem de programação utilizada e o Banco de dados. Deu? Tem mais alguma coisa? Sim! Precisamos olhar a infraestrutura dos servirdes, a redundância de dados, backups, link de dados e a usabilidade do sistema. Sendo bem objetivo, vou comentar cada tópico citado acima:

Redundância: É essencial que o sistema contratado tenha um "Plano B". Caso um servidor entre em colapso, você não pode ficar sem sistema, e imediatamente o sistema paralelo deve entrar em funcionamento. De preferência que o seu usuário nem perceba isso. Hoje existem várias ferramentas que fazem esse serviço, tornando inadmissível que um sistema não tenha adotado alguma delas.

Backup: Muito parecido com a redundância, o backup nada mais é que o armazenamento dos dados recebidos dos rastreadores em discos rígidos, fitas ou "freezers" para uma recuperação no caso de perda dos dados no servidor principal. Isso deve ser trivial.

Link de dados: Faz parte do UPTIME oferecido pelo fornecedor de Data Center. Deve ter capacidade compatível com o número de rastreadores e usuários do sistema. Em geral, em bons data centers, isso não é gargalo. Acima de 5Gbps estamos bem.

Usabilidade: Esse tema é muito delicado, pois pode envolver preferências pessoais, mas tenho certeza que existe um senso comum, onde é possível desenvolver um sistema de fácil utilização, mesmo quando lidamos com ferramentas complexas. Dê preferência por sistemas que utilizam links escritos. ícones só devem ser utilizados quando são realmente óbvios, fora isso, só complicam a vida do usuário. Sistema bom é sistema que o usuário se vira sozinho, utilizando o mínimo possível o suporte.

Conclusão:

Um sistema de rastreamento e telemetria é muito mais complexo do que se pensa. Qualquer sistema roda com 1.000 ou 2.000 veículos, agora quando começamos a falar de volume, talvez acima de 20 ou 30 mil rastreadores, é onde os homens se diferenciam dos meninos. Esse tema poderia se estender muito se começássemos a falar de mapas, tratamento de dados em tempo real, micro serviços, UX (User Experience) ou em português Experiência do Usuário, etc.

 
 
 

Comments


  • Facebook Black Round
  • Google+ Black Round
  • Tumblr Black Round

© 2016 todos os direitos reservados

  • Facebook Black Round
  • Google+ Black Round
  • Tumblr Black Round
bottom of page