As cinco principais tendências de desenvolvimento de software de 2018 - por Igor Lebedev, CTO da SONM
Publicados: 2021-08-09Até agora, 2018 foi um ano transformador para os desenvolvedores. O desenvolvimento de software se superou com novas versões e soluções de maior qualidade que tornam as tarefas informatizadas mais fáceis e eficientes do que nunca. Os bancos de dados agora são capazes de quantificar grandes pools de informações sem interrupção, os servidores são vendidos em série em vez de unidades individuais e o blockchain abriu portas usando um sistema descentralizado. Estas são as cinco principais tendências de desenvolvimento de software que estão tomando conta do mundo da tecnologia este ano:
Big Data
O crescimento constante de dados corporativos e públicos leva a uma situação em que os bancos de dados tradicionais e os instrumentos de armazenamento não são mais capazes de usar e gerenciar o volume de dados. As velhas abordagens não funcionam mais, tendo visto em primeira mão que os RDBMS (Relational Database Management Systems) não são mais capazes de conter tudo. Isso leva ao surgimento de novas ferramentas e abordagens, mas, mais importante, isso leva ao fim do domínio dos bancos de dados monolíticos tradicionais. A nova abordagem é armazenar dados compartilhados em vários nós. Os dados principais ainda são armazenados em bancos de dados centralizados tradicionais, mas mais volume de dados é armazenado separadamente e o compartilhamento de bancos de dados monolíticos é reduzido. O desafio do big data em 2018 é que ele exige que você reescreva seus aplicativos convencionais de uma nova maneira para lidar com grandes pools de dados.
Escalabilidade Horizontal
A solução de escalonamento tradicional sempre foi comprar um servidor maior e mais novo. Este novo servidor teria mais núcleos, cache de modo, frequências mais altas, bancos de memória maiores, barramentos mais rápidos e mais discos. No entanto, esta solução de dimensionamento tem limitações e essas limitações já foram alcançadas. O chassi de servidor comum pode ter no máximo 2 ou 4 CPUs, e você não pode adicionar CPUs sem limites, pois não pode aumentar as frequências. Em algum ponto, a escala vertical atinge seus limites. A próxima etapa é o dimensionamento horizontal. Isso significa que em vez de comprar um servidor maior para substituir o antigo, você compra um ou mais servidores adicionais do mesmo tipo para adicionar ao seu pool existente. Essa abordagem parece mais flexível, mas requer uma arquitetura de software diferente e, novamente, requer que você reescreva o software. Se você fizer isso, receberá os benefícios de um melhor gerenciamento de recursos com a capacidade de compartilhá-los. Aqui, vemos microsserviços, execução sem estado e Kubernetes como tendências.
Descentralização
As mudanças que vemos no mundo trazem novos desafios. Eles podem estar ligados a política, custos de entrega, confiança ou situações de mercado, mas a tendência continua de que as empresas tendem a descentralizar seus serviços e software. As redes de distribuição de conteúdo implantam servidores em seu ISP, fornecedores de SaaS abrem DCs em seu país e as empresas pensam em recuperação de catástrofe. Isso faz com que as empresas não tenham mais um único data center principal, mas dois ou mais, enquanto exige que seus engenheiros pensem em mudar alguns aspectos de sua arquitetura de aplicativo.
Processamento de Névoa
O uso de processamento de dados aumenta a cada dia. A IoT gera cada vez mais dados na borda da rede. Esses dados são tradicionalmente processados em DCs ou na nuvem. No entanto, levando em consideração o fato de que as linhas ópticas modernas são extremamente rápidas e a taxa de transferência da rede aumenta de ano para ano, a quantidade de dados cresce muito mais rápido. As redes são e sempre foram o “gargalo” do processamento global da informação. Se não for tecnicamente (por largura de banda e latência), então economicamente (por preço por transmissão). Atualmente, a maneira mais rápida e econômica de migrar seu data warehouse para outro DC é ligar para um veículo de carga e literalmente transportar HDDs para um novo local. Não, não é uma piada.

Isso leva à ideia fundadora da indústria de processamento Edge and Fog - o que significa que o máximo de dados possível deve ser processado localmente. As empresas líderes de TI trabalham em soluções para processar e fornecer dados próximos aos dispositivos. Este tipo de processamento é o Fog. Existem dificuldades para isso. Você não pode simplesmente copiar o código da nuvem e esperar que funcione, porque na nuvem todos os dados estão acessíveis localmente, enquanto na neblina nenhum nó possui todos os dados e deve solicitar a outros nós as informações necessárias. Exige que os desenvolvedores de aplicativos adotem sua arquitetura e reescrevam o código, para que as tarefas possam ser resolvidas no estilo MPP (processamento paralelo massivo). Isso dá mais um motivo para reescrever o código e IaaS descentralizado; até que se torne uma plataforma atraente para hospedar seu aplicativo recém-nascido.
Tolerância ao erro
Vivemos em uma época em que é mais difícil vender algo do que produzir. A concorrência do mercado aumenta e as empresas que executam software pensam em um SLA melhor para ter uma vantagem e gerar a confiança dos usuários. Com os pontos mencionados anteriormente, a probabilidade de falha de um único componente do sistema aumenta criticamente. Não se pode confiar na capacidade do cluster de banco de dados Oracle de lidar com falhas porque muitos dos dados residem no exterior. Em vez de ter alguns servidores superconfiáveis com fonte de alimentação dupla, agora pode haver 10 ou até 100 servidores e a expectativa matemática de falha de um único nó chega perto de 1 (um, 100%). Provavelmente, algo irá falhar e as empresas devem estar preparadas para isso novamente, observando a arquitetura de seus aplicativos. O mundo, e a TI em particular, está constantemente mudando e se movendo em um ritmo incrivelmente rápido. Abordagens mais antigas não funcionam. As empresas estão reescrevendo seu software com big data, escalabilidade horizontal, descentralização e processamento de névoa, tudo em seu núcleo. Os engenheiros estão constantemente tendo em mente as tolerâncias a falhas no lado da aplicação.
Essas tendências de desenvolvimento de software levaram ao surgimento de novos requisitos em relação ao hardware e sua disponibilidade, o que é menos crítico para a falha de um único nó e com mais opções de escala horizontal. Ao olharmos para o futuro, prevemos um excedente de novas tendências em desenvolvimento, que esperamos acompanhar a evolução da nossa tecnologia e a necessidade de maior suporte de hardware.
Sobre Igor Lebedev:
Igor Lebedev é um especialista em ciência da computação com mais de 15 anos de experiência em TI. Sua experiência está em arquiteturas de sistema clássicas, classes de sistema, bancos de dados, computação em névoa, sistemas de negociação automatizados, contratos inteligentes e microeletrônica. Igor atualmente atua como CTO e chefe da equipe de desenvolvimento SONM desde julho de 2017. Como CTO, Igor fornece uma visão e contribuição valiosa para a visão do produto e processo de desenvolvimento geral, enquanto constrói continuamente uma equipe de desenvolvedores que criam a computação em névoa, projeto SONM .
