As melhores tecnologias de código aberto para desenvolvimento de software
Ameeta Roy, diretor de arquitetura de soluções da Red Hat India, e Vaibhav Jain, diretor associado, arquiteto de soluções especialista da Red Hat India
Cada empresa é uma empresa de softwareRoy: Os aplicativos estão no centro do modelo de negócios orientado a software de hoje. E as empresas precisam que os aplicativos sejam entregues com mais rapidez e com a alta qualidade que os usuários exigem. A computação em nuvem e o desenvolvimento nativo da nuvem são fundamentais para isso. Os aplicativos neste ambiente são microsserviços pequenos, independentes e fracamente acoplados implantados em contêineres Linux. O código aberto é fundamental para tudo isso e há muitas inovações acontecendo na comunidade de código aberto.
Novas estruturas para facilitar a transição
Jain: Cloud tem tudo a ver com agilidade, escala, fazer coisas em um ritmo rápido e otimização de custos. Se tentarmos adaptar os antigos aplicativos monolíticos grandes e gordos para o modelo de nuvem, eles podem não oferecer os benefícios que procuramos. Os desenvolvedores precisam desenvolvê-los de maneira muito diferente. O que vi é que os unicórnios do mundo dos negócios são capazes de fazer e sustentar, mas não todos. Portanto, as comunidades de código aberto têm trabalhado agressivamente para desenvolver ferramentas, tecnologias e estruturas para facilitar esse processo para o desenvolvedor. A ideia é trazer várias tarefas no próprio framework. É aqui que frameworks como Quarkus, Kojito e Camel K estão provando ser muito úteis.
Roy: Java foi originalmente projetado para essas pilhas de aplicativos monolíticos, não para aplicativos modernos nativos da nuvem. No novo ambiente, o Java pode ser muito lento na inicialização, porque carrega muita memória para funcionar. O Quarkus permite que você execute esse processo de maneira muito diferente, calculando com antecedência quantos recursos são necessários, onde e como o aplicativo se comportará. Assim, o sistema pode preparar todos os recursos necessários durante o tempo de compilação. Será necessária menos memória e as tarefas desnecessárias não precisam ser executadas. Isso torna muito mais fácil para os desenvolvedores Java.
Arquitetura orientada a eventos
Roy: As arquiteturas orientadas a eventos ajudam as organizações a ter um sistema flexível que pode se adaptar às mudanças e tomar decisões em tempo real. Os eventos são capturados de onde quer que estejam as fontes de eventos – podem ser dispositivos IoT, aplicativos, redes. Uma plataforma de processamento de eventos determinará a resposta correta a um evento e a enviará para os consumidores certos.
Jain: Apache Kafka (uma plataforma de streaming de eventos distribuídos de código aberto) é a camada subjacente à arquitetura orientada a eventos. É tudo sobre a construção de aplicativos em tempo real. Digamos que estou em um site de comércio eletrônico e adiciono um produto ao meu carrinho. Imediatamente, várias coisas diferentes precisam acontecer. O cartão de crédito precisa ser cobrado, o sistema precisa verificar o estoque, a entrega precisa ser atualizada, a solicitação de remessa precisa ser criada. Na arquitetura tradicional, isso ocorreria passo a passo. Na arquitetura orientada a eventos, tudo acontece paralelamente. E é uma arquitetura flexível. Se amanhã eu quiser adicionar mais dois cenários – digamos, análise de detecção de fraude e obter dados para fazer a você outra oferta de produto – eles podem ser facilmente conectados. A arquitetura orientada a eventos está se tornando a escolha de fato para a maioria dos aplicativos.
FacebookTwitterLinkedin
Source link