Como migrar seu serviço JMS Java EE para a nuvem da Amazon
Aprenda neste artigo a utilizar serviços da nuvem pública da Amazon Web Services (AWS) para construir aplicações mais leves, rápidas e com menor custo.
ArtigosJavaComo migrar seu serviço JMS Java EE para a nuvem da Amazon
Mentoring:Atualmente é um fato que a Cloud Computing representa o presente e o futuro dos ambientes de execução de software, porém, para explorar todos os seus diferenciais, precisamos rever alguns conceitos relacionados à forma como implementamos nossas aplicações e assim aumentar a eficiência das mesmas nesse ambiente. Com base nisso, neste artigo apresentaremos uma aplicação corporativa que não foi planejada nem desenvolvida para a nuvem e ensinaremos como migrar o serviço JMS dessa aplicação para a nuvem pública da Amazon, a AWS (Amazon Web Services), quando aprenderemos, também, a utilizar o serviço de mensageria SQS (Simple Queue Service).
Definitivamente, Cloud Computing deixou de ser apenas uma
tendência e tornou-se um padrão de uso de recursos computacionais de escala
mundial. Diretamente relacionado ao crescimento exponencial dessa tecnologia, temos
o crescimento das startups nos últimos anos, o que seria mais difícil de
alcançar sem as facilidades e o baixo custo da computação em nuvem, que reduz
consideravelmente o “time-to-market” de um software e permite que empresas com
poucos recursos escalem suas aplicações conforme a demanda por elas aumente.
No entanto, para desenvolver um software que seja escalável
e eficiente para esse ambiente, precisamos atentar para a forma como a nuvem
opera, os serviços que ela oferece, o custo dos mesmos e nos livrar de
paradigmas antigos de desenvolvimento, que nos serviram muito bem até agora,
mas que precisam ser deixados de lado para que nossas aplicações sejam
realmente competitivas em um ambiente cloud.
Para quem iniciou no desenvolvimento de software
recentemente, já entrou no mercado na “era” cloud. Consequentemente, já adota
(ou deve adotar), naturalmente, práticas que são mais adequadas ao deploy na
nuvem, algumas vezes até mesmo sem saber disso, pois apenas são direcionados ou
condicionados pelo serviço de nuvem que estão utilizando. Porém,
desenvolvedores que fizeram carreira nas empresas criando aplicações corporativas
devem se atentar a esse novo modelo, principalmente porque estamos vivendo um
momento no qual as empresas estão iniciando sua jornada (termo utilizado para
migração) para a nuvem. Dentro desse contexto de mudanças de paradigma,
aplicações legadas são um grande desafio para a cloud, pois são menos
eficientes do que aplicações que foram criadas para ela, já que essas últimas
se aproveitam dos benefícios ofertados pelos provedores de computação na nuvem.
Neste artigo iremos falar sobre computação em nuvem, seus
benefícios e como construir aplicações mais aderentes ao seu modelo,
principalmente nos concentrando no mundo das aplicações Java Enterprise
Edition. Como exemplo, iremos implementar uma aplicação que utiliza um serviço
de fila local de um container Java EE, demonstrar como substituí-lo por um
serviço de fila de um provedor de nuvem e abordar os ganhos que temos ao
realizar essa atualização.
Antes disso, no entanto, vamos nos aprofundar sobre os
modelos de deploy e as diferenças entre eles, iniciando com uma breve
introdução sobre computação em nuvem.
Computação em
Nuvem
O Gartner define computação em nuvem como um estilo de computação onde a TI escalável e
elástica é entregue como serviço usando tecnologias da internet. Em outras
palavras, computação em nuvem pode ser definida como um conjunto de serviços de
tecnologia, inclusive computação propriamente dita, ofertado de uma forma que
você paga pelo que usar, quando usar e se usar. Fazendo uma analogia com nosso
cotidiano, podemos comparar a oferta de computação em nuvem com a energia
elétrica. Não precisamos ter em nossas casas ou empresas uma usina de geração
de energia elétrica. Basta conectar os aparelhos na tomada e consumir a energia
no período que desejarmos. A computação em nuvem é similar. Ao invés de manter
um parque de máquinas e pessoas qualificadas para manter esse parque em nossas
casas ou empresas, basta conectarmos nossas máquinas à internet e aos serviços
de nuvem e utilizar a computação, rede, banco de dados, filas, caches e tantos
outros serviços que os diversos provedores oferecem, pagando apenas por aquilo
que utilizarmos. Como esperado, isso reduz consideravelmente o custo de
infraestrutura de software e em alguns casos até mesmo possibilita o que antes
era inviável financeiramente.
Provedores de computação em nuvem
A AWS (Amazon Web
Services) é a pioneira nos serviços de computação em nuvem. Em consequência
disso, é a mais madura e com maior quantidade de serviços ofertados. No
entanto, nos últimos anos diversas empresas investiram pesado nesse segmento e
estão abraçando uma boa fatia do mercado. O Google, por exemplo, vem ganhando
bastante força, assim como a IBM, Microsoft, Rackspace, entre outras. Isso sem
contar os diversos fornecedores que utilizam esses provedores como base e
oferecem uma abstração de alto nível (PaaS), como veremos a seguir.
Tipos de oferta — IaaS, PaaS, SaaS
Termos comuns dentro do mundo da computação em nuvem, IaaS (Infrastructure as a Service), PaaS (Platform as a Service) e SaaS (Software as a Service) referem-se aos
tipos de oferta que estão relacionados ao quanto de autonomia você terá sobre
os recursos contratados da nuvem.
Quando usamos um serviço de IaaS
estamos consumindo o nível mais baixo de serviço da nuvem, que é a computação
propriamente dita. Isto é, estamos pagando para utilizar uma máquina que nos é
fornecida pela internet, com os diversos recursos contidos na mesma, como CPU,
memória, rede, etc. Nesse modelo, somos responsáveis por praticamente toda a
gestão da máquina, como:
Instalação e manutenção do sistema operacional e
tudo que for relacionado a ele, como patches de segurança, updates, etc.;
Instalação e configuração do ambiente necessário
para executar nossa aplicação, como JVM, servidor de aplicação, etc.;
Instalação e configuração da própria aplicação.
O IaaS é o modelo mais próximo do modelo tradicional, sendo
que se difere por não termos que cuidar fisicamente da máquina, pois alguém (o
provedor de serviço na nuvem) está fazendo isso por nós, mantendo a máquina
ligada, resfriada e funcionando. Além disso, quando desligamos a máquina não
pagamos por ela, apenas pelo espaço que a sua imagem ocupa no datacenter do
provedor.
Por sua vez, quando falamos de PaaS, nossas
responsabilidades diminuem e as do provedor aumentam. Nessa opção, a máquina,
sistema operacional e muitas vezes até o servidor de aplicação nos são
abstraídos. Assim, devemos nos preocupar exclusivamente com a nossa aplicação.
Nesse tipo de oferta a quantidade de fornecedores aumenta consideravelmente e
podemos citar players consolidados, como Heroku, CloudBees, Jelastic, além dos
serviços de PaaS disponibilizados por grandes empresas, como IBM Bluemix, AWS
Elastic Beanstalk, entre outros.
O PaaS, como esperado, é mais interessante para
desenvolvedores, pois toda a operação fica por conta da nuvem. Desse modo, em
muitos casos basta uma atualização no repositório de código fonte e a nova
versão da aplicação já estará em produção, após um ciclo automático e integrado
de build. Por outro lado, como consequência de toda essa facilidade, abre-se
mão de controle, pois qualquer configuração específica de SO, de servidor de
aplicação, ou mesmo de JVM, muitas vezes não é permitida. Nos casos em que
precisamos disso, ir para o IaaS pode ser o melhor caminho.
A Figura 1 apresenta
as responsabilidades que temos em relação ao provedor da nuvem nos diversos
modelos.
Figura 1. Da esquerda para a direita, do modelo tradicional de infraestrutura até
o mais alto nível de oferta de computação em nuvem (SaaS) — Fonte: Technet.
No modelo SaaS, que é a oferta de mais alto nível de
tecnologia na nuvem, utilizamos um software sem saber como ele foi
implementado, em qual máquina, sob qual sistema operacional ...
Oferta válida para todos os planos durante o mês de dezembro
+3 MESES
Grátis
Veja os resultado dos nossos alunos
Conquistas reais de quem está aplicando o método
<Perguntas frequentes>
Carreira
Por onde devo iniciar os estudos?
Recomendamos começar pelo Plano de Estudo Carreira Programador Front-End. Essa área da programação é mais visual e intuitiva, tornando-a ideal para iniciantes. No Front-End, você aprenderá a criar a parte visual dos sites, como layout, cores e interatividade. Depois de dominar o Front-End, você pode avançar para Programador Back-End, onde aprenderá a lidar com a lógica e o funcionamento interno dos sites, e, finalmente, para Programador Mobile, focando no desenvolvimento de aplicativos para smartphones. Nossa metodologia é estruturada de forma progressiva para garantir que você desenvolva confiança e experiência ao criar projetos reais, como sites estáticos e dinâmicos.
Em quanto tempo vou me tornar um programador?
O tempo necessário para se tornar um programador varia de acordo com a dedicação de cada estudante. Com nossa metodologia, que inclui um Plano de Estudo detalhado e suporte contínuo, você pode se tornar um programador de 6 meses a um ano, dependendo do seu ritmo e esforço. Nossa abordagem prática e orientada a projetos ajudará a acelerar seu aprendizado.
Eu preciso de um diploma de faculdade para começar a atuar como programador?
Não. Ser programador é uma excelente oportunidade para quem não possui diploma de faculdade. Muitas empresas contratam baseadas nas habilidades técnicas e experiência prática, não necessariamente em diplomas. Após conquistar uma vaga, você pode optar por complementar sua formação com um diploma.
Por que a programação se tornou a profissão mais promissora da atualidade?
A necessidade de programadores cresceu exponencialmente, especialmente após a pandemia de Covid-19, que forçou muitas empresas a se adaptarem ao digital. Com o crescimento das empresas de tecnologia, a demanda por programadores aumentou. Atualmente, há mais de 200 mil vagas abertas no Brasil devido à falta de profissionais qualificados.
Metodologia
Quais são os principais diferenciais da DevMedia?
Didática e Metodologia
Com mais de 20 anos de experiência, nossa metodologia foca em menos aulas e mais prática. Desenvolvemos dezenas de projetos e exercícios para ajudar você a se tornar um programador completo. Nossos projetos são desafiadores e autênticos, não apenas exercícios repetitivos.
Projetos reais e exercícios
Você desenvolverá diversos projetos práticos em cada carreira (Front-End, Back-End e Mobile), recebendo mentoria e suporte contínuo. A prática é essencial, e oferecemos milhares de exercícios para ajudar você a fixar o conteúdo e melhorar sua posição no ranking.
Suporte ao aluno
Nossa plataforma oferece suporte dedicado com professores experientes, respondendo suas dúvidas em menos de uma hora. Isso garante que você receba a ajuda necessária durante toda a sua jornada de aprendizado.
Gamificação
A DevMedia utiliza gamificação para tornar o aprendizado mais envolvente e motivador. Você acumula pontos e moedas por acertos, que podem ser trocados por produtos e customizações no seu card pessoal. Além disso, o sistema de ranking mensal incentiva a competição amigável e a melhoria contínua.
O que eu irei aprender estudando pela DevMedia?
Ao estudar conosco, você se tornará um programador Full Stack, dominando Front-End, Back-End e Mobile. Utilizamos a linguagem JavaScript, a mais utilizada no mercado, preparando você para criar sistemas webs e aplicativos celulares. Nossa abordagem prática inclui exercícios para fixar o conhecimento e desenvolvimento de projetos reais que te preparam, para o mercado de trabalho.
Quais as vantagens de aprender programação através da linguagem JavaScript?
Ela é Multiplataforma, ela vai te permitir programar para web e para celulares utilizando praticamente a mesma sintaxe.
Elá é Full Stack. Ela te permite criar aplicações Front-end, Back-end e Mobile. Isso acelera muito sua carreira e aumenta suas possibilidades de pegar trabalhos autônomos e conquistar uma vaga no mercado.
Ela é fácil de aprender. Como ela não exige conhecimento inicial em “Orientação a Objetos” ela se torna mais simples com uma curva de aprendizado suave e vai te permitir começar a programar mais rápido do que outras linguagens
A plataforma oferece certificados?
Sim, oferecemos dois tipos de certificados: o certificado de conclusão, que você adquire ao consumir o conteúdo, e o certificado de autoridade, que você obtém ao acertar exercícios. Ambos possuem carga horária, que pode ser utilizada para fins acadêmicos, como atividades complementares na faculdade, e também para comprovações em processos seletivos ou no seu currículo.
A plataforma tem suporte ao aluno, como funciona?
Sim, temos uma equipe de programadores pronta para ajudar com todas as suas dúvidas! Durante o horário comercial, o tempo médio de resposta é de até 10 minutos. E não se preocupe, também oferecemos suporte à noite e nos finais de semana, com um prazo de resposta um pouco maior.
A DevMedia me forma como programador Full Stack?
Sim! Oferecemos uma formação completa, do zero até Full Stack. Nosso foco é na prática, então você vai encontrar muitos exercícios e projetos reais ao longo do curso. Garantimos que você sairá com a autonomia necessária para desenvolver seus próprios projetos com confiança!
Tem horário para as aulas?
Não, não temos horários fixos para as aulas. Todo o nosso conteúdo está disponível para você acessar a qualquer momento, permitindo que você estude conforme sua própria disponibilidade e ritmo. Dessa forma, você pode integrar o aprendizado à sua rotina de maneira mais flexível e eficaz.
Por que a DevMedia não usa videoaulas em sua didática?
Nosso foco principal é formar programadores de verdade. Sabemos que o dia a dia de um programador envolve muita leitura, interpretação e escrita de código. Por isso, nosso conteúdo é desenvolvido para ambientar você nesse processo desde o início, proporcionando mais autonomia e acelerando seu aprendizado.
Na vídeo-aula é o professor que está lendo, interpretando e escrevndo o código para você, isso limita o seu progresso. Ao ler e interagir diretamente com o conteúdo, você exercita sua capacidade de leitura e concentração, além de poder avançar no seu próprio ritmo. Dessa forma, você se torna um programador mais independente e preparado para os desafios reais do mercado.
Preciso de um computador específico para estudar na DevMedia?
Não é necessário nada específico. Qualquer computador com processador atual e memória de 8 GB é suficiente.
Eu consigo estudar pelo celular?
Sim, a DevMedia possui um aplicativo que te permite seguir com seus estudos de qualquer lugar.
A DevMedia tem aplicativo?
Sim, nosso aplicativo está disponível na Play Store e na Apple Store, permitindo que você estude de forma prática e conveniente em qualquer lugar.
Preciso estar na faculdade para acompanhar os estudos na DevMedia?
Não, a faculdade não é necessária. Você não precisa de nenhum conhecimento prévio para iniciar os estudos na nossa plataforma.
Assinatura e Pagamentos
Quais são os planos de assinatura disponíveis?
Oferecemos o plano anual, o valor total é lançado no cartão de crédito, parcelado em 12 vezes, e você precisa dispor do valor total no limite do seu cartão. Você também pode optar por pagar no PIX
Adquirindo o plano, terei acesso a todo o conteúdo?
Sim, ao assinar nossa plataforma, você desbloqueia acesso total a todo o nosso conteúdo, sem precisar comprar nada separadamente.
A plataforma tem planos vitalícios?
Não, nossos planos são anuais, garantindo que você tenha acesso contínuo às atualizações mais recentes e aos novos conteúdos. A tecnologia evolui rapidamente, e um plano vitalício oferece um conteúdo estático que se tornará ultrapassado em pouco tempo. Com nossos planos anuais, você está sempre à frente, aprendendo as novidades e tendências mais atuais no mundo da programação.
A DevMedia tem fidelidade?
Sim, nosso plano tem uma fidelidade de 12 meses, o que garante o tempo ideal para você explorar nosso conteúdo e desenvolver a autonomia necessária para trabalhar com programação.
Como funciona o cancelamento?
Nós garantimos seu direito de cancelamento com reembolso total dentro dos primeiros 7 dias.
Para que você aproveite ao máximo seu investimento, oferecemos suporte personalizado para orientá-lo na utilização da plataforma. Também temos a opção de transferência de titularidade do plano, permitindo que outra pessoa aproveite o restante do seu período de assinatura.
Cadastro
Como excluir meus dados da plataforma?
Para excluir seus dados da plataforma, acesse o link : https://www.devmedia.com.br/fale-conosco/ e abra um protocolo de 'Exclusão de dados'. Nossa equipe processará a solicitação e removerá todas as informações do seu cadastro.
Compartilhe esse conteúdo com um amigo!
Faça login para ganhar recompensas.
Ou
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.