Participe da Maratona Behind the Code! A competição de programação que mais te desafia! Inscreva-se aqui

Uma introdução ao OpenShift 4

O Red Hat® OpenShift® continua a evoluir para alavancar o desenvolvimento nativo da nuvem. Como nossa postagem sobre a história do Kubernetes e do OpenShift do ano passado sugeriu, a recente liberação da V4 do OpenShift V4 é a plataforma corporativa contemporânea mais considerada para o desenvolvimento de aplicativos prontos para produção atualmente e ao longo desta década.

Estamos entusiasmados porque agora o OpenShift 4.3 está disponível no IBM Cloud.

Nesta postagem do blog, destacarei alguns dos novos recursos do OpenShift 4 e também apresentarei uma nova coleção de recursos para desenvolvedores aqui no website do IBM Developer, que explora esses recursos, detalhando as considerações para criar aplicativos seguros e capacitados para privacidade com a tecnologia de contêiner.

Quais são as novidades do OpenShift 4?

O IBM Cloud está fazendo a atualização do OpenShift 3.11 para o OpenShift 4.3. Agora, o OpenShift está ainda mais repleto de recursos corporativos para o desenvolvedor, e alguns desses recursos serão destacados abaixo:

Camadas do OpenShift 4

Novo painel

Se você está acostumado com o OpenShift 3.11, perceberá imediatamente uma atualização visual da interface com o usuário. Ela foi projetada para ficar mais limpa e organizada, com mais foco e menos ruído. A Red Hat até mesmo executa o processo de design com código aberto, o que considero inspirador. É possível ler mais sobre as intenções de design dos painéis, e até mesmo participar do processo contínuo de design do OpenShift.

Aqui está uma captura de tela do painel do nosso aplicativo “Example Loyalty” que desenvolvemos para explorar alguns dos novos recursos do OpenShift 4.

Novo painel

E aqui está uma captura de tela da nova visualização de topologia aprimorada que ajuda a visualizar a arquitetura de microsserviço de um aplicativo nativo da nuvem, novamente mostrando os componentes implementados do aplicativo “Example Loyalty”. É possível ler mais sobre nossa intenção com o aplicativo no diagrama a seguir.

Nova topologia

Para saber mais, consulte Refinamentos do painel do OpenShift 4.3 e o novo painel de Projeto.

OperatorHub

O Operator Framework é um kit de ferramentas de software livre para gerenciar os aplicativos nativos do Kubernetes, chamados de operadores, de uma forma efetiva, automatizada e escalável. O OpenShift 4 foi rearquitetado em torno dos operadores. Enquanto o Kubernetes permite que os desenvolvedores conteinerizem aplicativos de maneria metódica, os Operadores permitem que eles automatizem o gerenciamento dos componentes relacionados a um aplicativo (como bancos de dados ou outros elementos stateful) de uma forma consistente, repetível e escalável.

Além dos operadores, como parte da malha do Kubernetes no OpenShift 4, a Red Hat introduziu um marketplace para encontrar Operadores que possam acelerar o desenvolvimento de um aplicativo. Este novo OperatorHub também faz parte do OpenShift. É possível saber mais consultando o tutorial Diversão com o OperatorHub.

Malha de serviço do OpenShift

As malhas de serviço podem proporcionar uma abordagem de desenvolvimento consistente e inserir a comunicação entre serviços com segurança e outros recursos. Observei que essa é uma opção de abordagem para resolver problemas de escala e de ordem em aplicativos grandes e em empresas de grande porte, descrita nas Apresentações do KubeCon, da América do Norte, do ano passado.

O OpenShift 4 adotou o Istio, a nova malha de serviço escolhida para os sistemas baseados no Kubernetes, desenvolvendo sua própria malha de serviço nessa tecnologia.

Além disso, a versão mais recente do Istio oferece recursos de segurança úteis, que são mais explorados em Gerenciar o tráfico de microsserviços com o padrão de código de malha de serviço do OpenShift.

Computação sem servidor do OpenShift

A popularidade da computação sem servidor está aumentando entre os desenvolvedores porque ela pode oferecer confiabilidade e escala à computação em nuvem. O código geralmente é escrito como pequenas funções executáveis, uma abordagem que geralmente exige um pouco de raciocínio lateral para atingir um resultado significativo.

O desenvolvimento sem servidor é permitido no OpenShift 4 por meio da adoção do projeto Knative de software livre.

Pipelines do OpenShift

Os pipelines de integração contínua (CI) e de entrega contínua (CD) nativos da nuvem foram introduzidos no OpenShift 4.1.

Os pipelines do OpenShift são desenvolvidos com base no projeto de software livre Tekton, permitindo que as equipes desenvolvam pipelines de entrega nativos da nuvem que elas podem controlar completamente. Sua equipe pode possuir o ciclo de vida completo dos microsserviços sem precisar depender de equipes centrais para manter e gerenciar um servidor de CI, os plug-ins e suas configurações.

Há uma nova IU de pipeline disponível e, em nosso padrão de código introdutório, criamos uma etapa de varredura rudimentar em um pipeline de desenvolvimento para demonstrar o potencial para incluir etapas de segurança, também com essa nova abordagem.

Segurança aprimorada

A segurança de dados é uma grande preocupação atualmente, principalmente para empreendimentos corporativos que lidam com dezenas ou centenas de milhares de registros de clientes.

O OpenShift 4.3 oferece criptografia em conformidade com o Federal Information Processing Standard (FIPS) e aprimoramentos de segurança adicionais. Quando o OpenShift é executado no Red Hat Enterprise Linux inicializado no modo do FIPS, ele chama as bibliotecas de criptografia validadas pelo FIPS do Red Hat Enterprise Linux. O conjunto de ferramentas da linguagem Go que permite que essa funcionalidade esteja disponível a todos os clientes da Red Hat.

O cenário cada vez maior de aplicativos seguros e privados

Como observado anteriormente, o OpenShift 4.3 apresenta mais recursos de segurança para aplicativos e sistemas sensíveis a dados.

Para mim, um dos temas que mais se destacaram no KubeCon da Europa, no ano passado, foi o interesse no GDPR.

O GDPR tem causado um impacto significativo no gerenciamento de dados desde que foi introduzido em 2018. Alguns casos significativos foram registrados contra companhias aéreas e hotéis sobre violação de sigilo de dados. O que chama atenção aqui é que se trata de áreas de problema típicas de softwares “corporativos”.

Ao explorar o OpenShift 4.3, eu queria entender o que realmente é necessário para desenvolver aplicativos seguros e mais privados. O que ficou claro foi que não existe uma forma instantânea, nem mesmo uma forma possível de desenvolver um aplicativo perfeitamente seguro, ou seja, a segurança é um desafio contínuo.

Há opções, como desenvolver em uma plataforma em conformidade com o FIPS, o que permite lançar um aplicativo já com uma base de alta segurança. Em seguida, há abordagens, práticas e percepções que podem estabelecer uma base de segurança para aplicativos nativos da nuvem e é possível ir expandindo nosso entendimento para uma ampla variedade de ameaças e de ideias para combatê-las.

Uma descoberta útil (novamente de uma palestra do KubeCon da qual participei) foi sobre a modelagem de ameaças usando o modelo STRIDE. Nós escrevemos nosso próprio padrão de código que detalha um pouco o que é o modelo STRIDE e percorre um rápido exercício que considera opções para combater as diferentes dimensões das ameaças de segurança.

A intenção era criar uma coleção de conteúdo do OpenShift 4.3 que apresentasse alguns dos principais recursos na plataforma, pensando também em como desenvolver aplicativos mais seguros. Então desenvolvemos um aplicativo básico de fidelidade do cliente.

Exemplo de desenvolvimento de um aplicativo de fidelidade do cliente

A ideia de desenvolver um aplicativo de fidelidade surgiu de uma solicitação real para inserir verificações de evento em nosso aplicativo móvel IBM Developer. Ainda estamos pensando nessa ideia. Em nossa primeira versão do aplicativo de desenvolvimento, tivemos o cuidado de evitar o armazenamento de dados do usuário e foi intrigante questionar o que seria necessário para armazenar dados de uma forma compatível com o GDPR.

Começamos a executar scaffolding no aplicativo no OpenShift, para nos permitir questionar as etapas que tomaríamos para deixá-lo seguro e protegido. Transformamos esse protótipo em um simulador baseado na web para compartilhar nossos insights.

Captura de tela de fidelidade de exemplo

E abrimos nosso trabalho como uma coleção de padrões de código, tutoriais e artigos que mostram como usamos os recursos do OpenShift 4 para “desenvolver com inteligência e com segurança”.

Nossa coleção inclui:

  • Uma postagem do blog destacando alguns dos novos recursos no OpenShift 4 que realmente podem desenvolver aplicativos nativos da nuvem.

  • Um microperfil JEE padrão de código usando operadores para conectar a um banco de dados PostgreSQL.

  • Um tutorial que apresenta uma visão geral de como usar operadores no OpenShift 4.

  • Um tutorial que percorre a criação de pipelines de CI/CD que incluem etapas customizadas no OpenShift 4.

  • Um artigo que considera o design de privacidade e o modelo de ameaça STRIDE.

Nas próximas semanas, desenvolverei um pouco mais de conteúdo relacionado a esse conceito, incluindo um padrão de código que detalha o TLS e a segurança na malha de serviço do OpenShift e um padrão de código que mostra como desenvolver com o novo padrão aberto para componentes da web no front-end.

Nossa equipe não é uma equipe de especialistas em segurança. A IBM, como muitas outras grandes empresas, tem seus próprios consultores e sistemas protegidos por firewall para oferecer segurança aos dados, portanto, nós já teríamos um ponto de partida avançado para um aplicativo real.

No entanto, acreditamos que a preocupação com segurança não cabe somente aos especialistas. Mesmo para os especialistas, uma abordagem nativa da nuvem é um cenário totalmente novo. Nós também queríamos nos aprofundar, entender melhor o cenário, ter mais conhecimento sobre o assunto e analisar as opções para começar do zero. Há muito para ser analisado.

Resumo: arquitetura de aplicativo de fidelidade de protótipo

Arquitetura de fidelidade de exemplo

Aqui está a arquitetura básica do sistema do aplicativo de fidelidade desenvolvido no OpenShift 4. Usamos os pipelines e os operadores do OpenShift para implementar e configurar uma CI/CD para esse sistema. É possível bifurcar o código para executar o pipeline por conta própria, bifurcar as partes de repositório constituintes ou testar uma versão de execução em tempo real do aplicativo.

Aviso

O conteúdo aqui presente foi traduzido da página IBM Developer US. Caso haja qualquer divergência de texto e/ou versões, consulte o conteúdo original.