Prévia do material em texto
01/08/2021 AVA UNINOVE https://aapa.uninove.br/seu/AAPA/topico/container_impressao.php 1/10 Provedores de serviço de Cloud Computing ESTUDAR A UTILIZAÇÃO DE SERVIÇOS EM CLOUD COMPUTING, COM FOCO NOS PROFISSIONAIS DE DESENVOLVIMENTO AUTOR(A): PROF. MARCOS OLIMPIO AZEVEDO Olá caros alunos! Muitos profissionais da área de desenvolvimento de software, vêm percebendo a necessidade realizar entregas, cada vez mais rápida e com maior qualidade. As utilizações de metodologias ágeis, como o Scrum, ajuda viabilizar estes objetivos. Legenda: COMPUTAçãO EM NUVEM Soluções para Cloud Computing 01/08/2021 AVA UNINOVE https://aapa.uninove.br/seu/AAPA/topico/container_impressao.php 2/10 O mercado está oferecendo uma grande quantidade de soluções para Cloud Computing e com o aumento dos investimentos neste segmento, percebemos que a direção é trabalhar em nuvem. As IDEs (Integreted Develpment Environment), são os ambientes de desenvolvimento em nuvem, que oferecem aos programadores a possibilidade de não se preocuparem com configurações de ambiente e outros detalhes locais, podendo escrever código a qualquer momento e de qualquer lugar, bastando dispor de um equipamento com navegador e acesso à internet. Os desenvolvedores de várias linguagens importantes, como Java, Python, JavaScript, C#, Ruby e PHP, já contam com serviços na web oferecendo IDEs. Exemplos de IDEs na nuvem: Python Fiddle e JS Fiddle, Cloud9 IDE, eXo Cloud IDE. A transformação dos profissionais para desenvolvedor de sistemas na nuvem, enfrenta muitos desafios por exemplo: Superar a cultura de estar fisicamente nas empresas, com as equipes de desenvolvimento de sistemas Desenvolver segurança e garantir as funcionalidades avançadas, disponíveis nas IDEs tradicionais Desenvolver Tecnologia para as integrações, com outros aplicativos que compõem o kit de desenvolvimento tradicional Com o amadurecimento das ferramentas e das próprias tecnologias de nuvem, muitas questões devem ser respondidas ou solucionadas. O conceito de desenvolver softwares online, é muito recente, mas é possível identificar um grande potencial de crescimento, apenas examinando o que está disponível hoje. A nuvem é o futuro dos IDEs. Com a experiência que tenho sobre esse tema, vejo que a parte de desenvolvimento de aplicações não fica exatamente intrínseca ao ambiente de Nuvem. O que realmente acontece é que o desenvolvedor ainda vai manter seu ambiente de desenvolvimento instalado e configurado em sua estação de trabalho e, através dele criar suas aplicações, com as devidas bibliotecas, frameworks, e outros recursos que venham a ser necessários para a construção de um projeto. Feito isso, o que o desenvolvedor irá fazer é publicar a aplicação dentro da Nuvem, de forma transparente, utilizando recursos que são residentes da própria Nuvem, como repositório de versionamento (CVS, Git, SVN, ou outro qualquer), servidores de aplicações (JBoss, WebLogic, WebSphere, etc), Bancos de Dados, etc. Para isso ocorrer, o desenvolvedor deve fazer o commit do seu projeto para o repositório de versionamento da Nuvem e, tendo concluído essa parte, irá fazer a publicação (deployment) no servidor de aplicações que também está dentro da Nuvem. Como resultado final, o projeto publicado passará a ter um caminho (URL) que permitirá o acesso direto a aplicação que foi produto do projeto do desenvolvedor por seu público, de forma transparente. As questões de segurança da Nuvem são regidas por ela mesma, conforme os padrões de configuração seguidos pelo fornecedor do serviço. Uma vez que você está dentro de uma Nuvem, seu acesso já está sendo regido por normas de segurança já implementadas pelo fornecedor do serviço, mediante um contrato de 01/08/2021 AVA UNINOVE https://aapa.uninove.br/seu/AAPA/topico/container_impressao.php 3/10 compra desse serviço e os componentes a ele agregados. Num cenário em que se pensa em colocar informações de uma empresa numa Nuvem, essas questões de segurança devem ser revisitadas, pois o serviço deve garantir que as informações vão ficar intactas e preservadas pelo fornecedor. DevOps Desenvolvedores precisam adaptar a maneira de criar aplicativos para a nuvem, não limitando apenas à criação de aplicações, mas também visando segurança da nuvem, a fim de promover o crescimento da aplicação. O desenvolvimento de aplicações visando crescimento desta modalidade é o foco, devemos conhecer uma nova categoria chamada DevOps que refere à prática de aliar o desenvolvimento de um departamento de TI e operações para criar uma melhor comunicação entre as duas arquiteturas, aumentando rapidamente a velocidade em que as aplicações são desenvolvidas e implantadas. DevOps é uma parte importante do trabalho com a computação em nuvem PaaS, pois sua metodologia e tecnologia são destinadas para a otimização do tempo. 01/08/2021 AVA UNINOVE https://aapa.uninove.br/seu/AAPA/topico/container_impressao.php 4/10 Os desenvolvedores devem manter o seu código e banco de dados simples e também encontrar uma maneira de armazenar dados de modo que possam ser escalados, da mesma forma que os desenvolvedores devem olhar para o futuro e construir suas aplicações com os padrões de amanhã em mente. Isso significa que deve ser feito um planejamento para a portabilidade e interoperabilidade. DEFINIçãO DevOps é uma prática que unifica pessoas, processos e tecnologias entre desenvolvimento e TI em cinco práticas principais: planejamento e acompanhamento, desenvolvimento, build e teste, entrega e monitoramento e operações. Com a prática de DevOps, as equipes de desenvolvimento, operações de TI, engenharia da qualidade e segurança trabalham em estreita cooperação, eliminando práticas que antes eram isoladas. A melhoria da coordenação e da colaboração entre essas disciplinas reduz o tempo que uma alteração confirmada em um sistema leva para ser colocada em produção. Além disso, ela assegura que os padrões de segurança e confiabilidade sejam atendidos como parte do processo. O resultado: produtos melhores, entregues com mais rapidez para clientes mais satisfeitos. Modelo de DevOps Planejar e acompanhar Identifique e acompanhe o trabalho usando práticas e processos como quadros Kanban e Agile. Quando o trabalho é acompanhado visualmente, os stakeholders têm um insight claro sobre a capacidade da equipe de desenvolvimento e podem planejar e priorizar melhor as tarefas, evitando ações desnecessárias. Desenvolver Escreva códigos usando sistemas de controle de versão modernos, como o Git, para integrar de forma contínua e segura ao branch mestre. Quando um recurso está concluído, o desenvolvedor envia uma solicitação de pull e, quando ela é aprovada, as alterações são mescladas ao branch mestre e o branch antigo é excluído. Criar e testar Fazer check-in do código no Git ou em outro sistema de controle de versão faz com que um processo de build automatizado seja iniciado. O código é testado e validado, assegurando que os bugs sejam capturados antecipadamente no desenvolvimento, quando eles ainda estão frescos na mente do desenvolvedor e sua correção é menos onerosa. Esse processo de automatizar o build e o teste é chamado de CI (integração contínua). O resultado do sucesso do build e da integração é um artefato que pode ser implantado na produção, permitindo a CD (entrega contínua), ou seja, a capacidade de implantar para produção a qualquer momento. 01/08/2021 AVA UNINOVE https://aapa.uninove.br/seu/AAPA/topico/container_impressao.php 5/10 Implantar Após o teste e a validação, cada alteração pode ser implantada no ambiente de produção. Usando práticas de entrega contínua, a implantação final na produção é uma decisão de negócios controlada manualmente. Com a implantação contínua, todo o processo, desde a confirmação do código até a produção, é automatizado. Quando o código é implantado automaticamente, os clientes têm acesso aos novos recursos assim que eles ficam prontos. Monitorar e operar Quando o aplicativoestá ativo em produção, o monitoramento entrega informações sobre seus padrões de uso e desempenho. Para alcançar a alta disponibilidade, receba dados de diagnóstico completos e imediatos, com base nos quais sua equipe pode agir rapidamente. Atenue problemas de usuários e reúna dados para tomar decisões de negócios conscientes sobre o desenvolvimento futuro. E, com políticas de conformidade automatizadas, usando “infraestrutura como código” e “política como código”, você garantirá que os aplicativos implantados na produção usem Desired State Configurations alinhadas às melhores práticas de segurança. Conclusão Para resumir tudo, do ponto de vista de desenvolvedor de aplicações, trabalhar com Nuvem torna todo o trabalho centralizado e organizado, pois os recursos necessários para um desenvolvimento e finalização de uma aplicação estão todos no mesmo lugar, minimizando impactos como busca de recursos em outros ambientes/servidores e principalmente, minimizando custos como investimento em hardware. Um serviço como esse deve ter um alerta sempre ativo no que tange a Segurança da Informação, pois no final do dia, as informações de negócio de um cliente têm que estar sempre preservadas e mantidas em um local seguro e com um contrato que dê sustentação a qualquer que seja o problema relacionado a informações que um cliente pode armazenar dentro de uma Nuvem. 01/08/2021 AVA UNINOVE https://aapa.uninove.br/seu/AAPA/topico/container_impressao.php 6/10 Legenda: PERGUNTAS ATIVIDADE FINAL Qualquer aplicação podem ser migradas para nuvens públicas? A. Sim, desde que dentro de uma estratégia de migração estruturada. Mover as aplicações internas, que ainda na sua maioria não foram projetados para ambientes de nuvem, pode significar um fracasso e custos não previsíveis. B. Sim, apenas aplicaçoes desenvolvidas em C#, ASP.NET, Silverlight, PHP, visual basic, cobol, JavaScript e HTML C. Não, apenas aplicações em Java 01/08/2021 AVA UNINOVE https://aapa.uninove.br/seu/AAPA/topico/container_impressao.php 7/10 D. Sim, desde que dentro de uma estratégia de migração dos dados e arquivos Analise as alternativas abaixo e escolha qual é um Beneficio da computação em nuvem A. Incompatibilidade B. Disponibilidade C. Baixa largura de banda D. Falta de Suporte O DevOps é uma parte importante para trabalhar com a computação em nuvem ____________, pois sua metodologia e tecnologia são destinadas para a otimização do tempo. Escolha a alternativa correta para preencher a lacuna da frase. A. SaaS B. PaaS C. IaaS D. MaaS REFERÊNCIA DATE, C. J. Introdução a sistemas de bancos de dados. Rio de Janeiro: Elsevier, 2004. ELMASRI, Ramez. Sistemas de banco de dados. 4. ed. São Paulo: Pearson, 2005. LONEY, Kevin; BRYLA, Bob. Oracle Database 10g ¿ manual do DBA. 1. ed. Rio de Janeiro: Campus, 2005. LUIS, de C. Costa Rogério. SQL Guia Prático. 2. ed. São Paulo: Brasport, 2006. PEREIRA Neto, Álvaro. PostgreSQL técnicas avançadas. São Paulo: Érica, 2003. RAMALHO, José Antonio. Oracle 10g. São Paulo: Thomson, 2005. SILBERSCHATZ, Abraham; KORTH, Henry F.; SUDARSHAN S. Sistema de banco de dados. 5. ed. Rio de Janeiro: Campus, 2006. SOARES, Walace. MySQL conceitos e aplicações. São Paulo: Érica, 2004. MICROSOFT. Visão geral da tecnologia de DevOps. [S. l.], 2018. Disponível em: https://azure.microsoft.com/pt-br/overview/devops/. Acesso em: 24 nov. 2018. 01/08/2021 AVA UNINOVE https://aapa.uninove.br/seu/AAPA/topico/container_impressao.php 8/10 01/08/2021 AVA UNINOVE https://aapa.uninove.br/seu/AAPA/topico/container_impressao.php 9/10 01/08/2021 AVA UNINOVE https://aapa.uninove.br/seu/AAPA/topico/container_impressao.php 10/10