Computação em nuvem: uma nova forma de construir sistemas distribuídos

  • Categoria do post:Tecnologia
No momento, você está visualizando Computação em nuvem: uma nova forma de construir sistemas distribuídos

Hoje em dia, a tendência atual para a construção de novas aplicações é a sua criação pensando em seu uso em ambientes de nuvem, sejam nuvens públicas, sejam nuvens privadas. Também devido às suas vantagens tecnológicas, muitas aplicações estão sendo portadas e/ou refeitas pensando em sua aplicação neste novo ambiente de execução. Mas o que passa de forma imperceptível pela maioria dos desenvolvedores é que a construção de aplicações em nuvem nada mais é do que uma nova forma de aplicar os conceitos de sistemas distribuídos.

Apesar de termos novas ferramentas para a construção destas aplicações, elas nada mais são do que novas formas de se fazer “coisas antigas”. Na verdade, com o advento da Computação em Nuvem, é que os alunos dos cursos de Tecnologia da Informação (TI) tiveram finalmente uma visão mais clara da aplicação dos conceitos vistos em disciplinas como “Sistemas Distribuídos” e, em alguns aspectos, “Sistemas Operacionais”, principalmente, para os alunos do Curso de Análise e Desenvolvimento de Sistemas.

Ferramentas como Docker, Kubernetes, balanceadores de carga, etc. tornaram bem mais visível para os desenvolvedores o uso prático dos conceitos visto nos cursos de graduação, conceitos estes que até então eram vistos de forma nebulosa por estes mesmo alunos, pois haviam produtos, ora embutidos nos sistemas operacionais comerciais, ora fornecidos de forma transparente pelas equipes de infraestrutura, apesar das nuvens comerciais ainda mascararem, de várias formas, certos aspectos de implementação a fim de facilitar, do ponto de vista dos desenvolvedores, a implantação das aplicações.

Com isso, a compreensão destes conceitos, ao desenvolver aplicações que irão ser executadas nestes ambientes, aumentou consideravelmente, pois os desenvolvedores passaram a ver, na prática, a aplicação na vida real dos conceitos vistos em sala de aula. Ferramentas, como o Kubernetes, dão um grande auxílio ao desenvolvedor, pois facilitam a construção de um sistema distribuído usando contêineres.

Todavia, o desenvolvedor, principalmente, aquele que constrói uma aplicação para ser executada em uma nuvem pública, deve ter um grande cuidado em evitar de cair na tentação (principalmente, em uma abordagem baseada em microserviços) que esta facilidade possa se traduzir em uma criação de instâncias além do necessário, pois caso ele caia nesta “cilada”, como a cobrança é baseada em consumo de CPU e armazenamento, então isto implicaria em aumento de custos, justamente, o tipo de coisa que se pretende evitar quando se usa um serviço de nuvem pública.

Enfim, se antes os alunos só tinham uma noção do funcionamento de sistemas distribuídos através de algumas aplicações que faziam uso parcial ou total dos conceitos empregados, tais como o NFS (Network File System) e o DNS (Domain Name System), sendo que boa parte destas aplicações possuem usabilidade reduzida para a comunidade de desenvolvedores, hoje, com o advento das aplicações usando contêineres e da computação em nuvem, tão importante como dominar as boas práticas de programação, também tem a mesma importância dominar as boas práticas no emprego dos conceitos de sistemas distribuídos.

Prof. Abívio Soares Pimenta
Docente do Curso de Análise e Desenvolvimento de Sistemas do Centro Universitário Ateneu.
Especialista em Administração e Segurança em Sistemas Computacionais e graduado em Redes de Computadores.

Conheça mais sobre o Curso de Análise e Desenvolvimento de Sistemas da UniAteneu.