16-01-2023
Qualquer organização que queira estar no mundo digital, tem de ter uma estrutura que suporte as suas necessidades. Só assim é que pode ter condições de atingir os seus objetivos, como por exemplo: vendas, lucros, clientes, pedidos, etc. Esta pode ser uma das máximas da inovação e da transformação digital, mas na prática, como começar? Como fazê-lo?
Estas são as questões que costumamos ouvir nos nossos webinares, as DEV Talks. Em 2022, a Xpand IT organizou uma sessão virtual dedicada a Java Software Engineering. Mais do que uma linguagem de programação (das mais utilizadas de sempre e com que se tem contacto logo desde muito cedo, na faculdade), apresentámos as tecnologias e as diferentes áreas de aplicação. Neste caso, introduzimos Spring para desenvolvimento web e Apache Spark como solução para o processamento de grandes volumes de dados.
Que framework utilizar para desenvolver aplicações Java? A resposta é Spring!
Devido às várias funcionalidades e componentes que tem, Spring já foi tema de um dos blog posts da Xtech Community. A comunidade tecnológica comprova que esta é, de facto, a melhor framework para desenvolver aplicações Java por vários motivos:
- Popularidade: é utilizada por mais de 50% da grande comunidade de developers em Java; tem licenciamento open-source
- Fiabilidade: tem suporte comercial disponível (importante para empresas e consultoras); existe desde 2004 e tem recebido várias atualizações desde então
- Produtividade: tem uma utilização prática, eficaz, simples, modular e está bastante bem documentado; também é deployable/testable/portable, ou seja pode estar a funcionar noutras framework como JBoss ou em containers de Docker – basta ter o executável e para se poder usar e arrancar a aplicação
Introduzimos Spring como uma framework com vários componentes e estes são os 3 mais utilizados:
- Spring Boot: para desenvolvimento de aplicações Java. Na demo deste webinar mostramos o quão rápido é desenvolver uma aplicação
- Spring Data: para podermos aceder a diferentes tipos de repositórios de dados (como bases de dados SQL, NoSQL, Rest, etc.) e de forma bastante unificada
- Spring Cloud: numa altura em que é necessário que as várias estruturas com uma sobrecarga de aplicações passem para arquiteturas modernas (como por exemplo de microserviços), este componente do Spring permite que as diversas ferramentas interajam entre si
As arquiteturas de microserviços são as mais utilizadas hoje em dia no desenvolvimento web. Antes, as arquiteturas mais implementadas eram monolíticas, ou seja, são baseadas numa só aplicação, levando a vários conflitos nas passagens para produção. Agora, uma arquitetura de microserviços necessita de ser escalável, disponível, veloz e autónoma.
Ou seja, com Spring é fácil criar vários microserviços para que as várias ferramentas de uma aplicação funcionem e interajam. Descobre tudo neste webinar, em que temos uma demonstração de como Spring pode funcionar numa livraria.
Qual a solução para gerir grandes volumes de dados? Big Data
Existem várias organizações que, devido ao seu sucesso ou indústria, vão recolhendo grandes quantidades de dados e informações que precisam de ser processadas. Essa é uma das funções de Big Data. Mais do que uma unidade tecnológica, é “uma buzzword que contempla vários conceitos”:
- Volume: se há grandes volumes de dados, há que quantificá-los e processá-los
- Variedade: os dados vêm de diversas fontes, como por exemplo bases de dados, sistemas de ficheiros ou sistemas legacy
- Velocidade: há que ter a capacidade de computar os dados com rapidez e em tempo útil
- Veracidade: o conhecimento dos tipos de dados e quais computar
- Valor: questionar quais dados computar para trazer valor e propósito aos clientes
Portanto, o Facebook gerou 4 petabytes de dados todos os dias ou a Google processou mais de 20 petabytes por dia (dados de 2020), é normal que Big Data se insurja para implementar sistemas robustos e escaláveis que permitam escalar esta enorme quantidade de dados. Mas como? São desafios que têm 3 soluções:
- Hadoop: Muito utilizado no processamento de dados. Framework que permite fazer a computação distribuída de informação. Tem de utilizar um sistema distribuído de ficheiros.
- Apache Spark: À semelhança do Hadoop mas com uma grande particularidade. Faz a computação dos dados em memória antes de os guardar em disco. Requer o uso de _clusters_ configurados com máquinas com imensa RAM
- Apache Kafka: Permite fazer computação de eventos em streaming onde é possível processar dados em _near real time_
Todas estas frameworks utilizadas em Big Data têm computação escalável na horizontal, onde basta acrescentar mais máquinas para correr novos processos e podermos paralelizar a computação. Na prática, estas frameworks permitem adicionar robustez a uma arquitetura, podendo suportar uma grande carga de fontes que podem comunicar a partir de várias aplicações.
Neste webinar, há uma segunda demonstração, onde podes ver como as tecnologias Apache Kafka e Confluent trabalham juntas no streaming de tweets (posts da rede social Twitter), processando e distribuindo-os com base no intuito/sentimento da mensagem (positiva, neutra ou positiva) e em near real time.
Leave a comment
Comments are closed.