Os contêineres são uma versão leve do espaço do usuário do sistema operacional Linux – na verdade, é o mínimo "nu". No entanto, ainda é um sistema operacional completo, e, portanto, a qualidade desse contêiner é tão importante quanto a de um sistema operacional robusto. É por isso que, por muito tempo, oferecemos , para que os usuários possam ter contêineres de nível corporativo, certificados, modernos e atualizados. Executar (container images) RHEL em hosts de contêineres (container hosts) RHEL garante compatibilidade e portabilidade entre ambientes, sem mencionar que são ferramentas já conhecidas. Havia, porém, um problema. Você não poderia simplesmente passar essa imagem para outra pessoa, mesmo que fosse um cliente ou parceiro usando o Red Hat Enterprise Linux.

Mas agora tudo mudou
Com o lançamento da imagem base universal do Red Hat (UBI), agora é possível obter a familiar confiabilidade, segurança e alto desempenho das imagens de contêineres oficiais da Red Hat, independentemente de ter ou não uma assinatura. Isso significa que você pode construir um aplicativo contêinerizado no UBI, colocá-lo em um registro de contêineres de sua escolha e compartilhá-lo com o mundo. A Red Hat Universal Base Image permite construir, compartilhar e colaborar em um aplicativo contêinerizado em qualquer ambiente – onde você quiser.

Com o UBI, é possível publicar e executar seus aplicativos praticamente em qualquer infraestrutura. Mas se forem executados em plataformas Red Hat, como Red Hat OpenShift e Red Hat Enterprise Linux, você pode obter benefícios adicionais (mais qualidade!). E antes de entrarmos em uma descrição mais detalhada do UBI, deixe-me apresentar um breve FAQ sobre por que você precisa da assinatura RHEL. Então, o que acontece ao executar uma imagem UBI na plataforma RHEL/OpenShift?

Agora que o marketing está satisfeito, vamos falar mais sobre o UBI
Razões para aplicar o UBI
O que você deve sentir para entender que o UBI será útil para você:
- Meus desenvolvedores querem usar imagens de contêiner que podem ser distribuídas e executadas em qualquer ambiente
- Minha equipe de operações quer uma imagem base suportada com um ciclo de vida de nível corporativo
- Meus arquitetos querem oferecer para meus clientes/usuários finais
- Meus clientes querem contar com suporte empresarial completo para todo o seu ambiente Red Hat
- Meu comunidade quer compartilhar, lançar e publicar aplicativos conteinerizados em qualquer lugar
Se pelo menos um dos cenários se aplica a você, vale a pena prestar atenção no UBI.
Mais do que apenas uma imagem básica
O UBI é menos do que um sistema operacional completo, mas possui três características importantes:
- Um conjunto de três imagens básicas (ubi, ubi-minimal, ubi-init)
- Imagens com ambientes de execução já preparados para várias linguagens de programação (nodejs, ruby, python, php, perl, etc.)
- Um conjunto de pacotes relacionados no repositório YUM com as dependências mais comuns

O UBI foi criado como base para aplicações nativas em nuvem e web, desenvolvidas e fornecidas em contêineres. Todo o conteúdo no UBI é um subconjunto do RHEL. Todos os pacotes no UBI vêm através dos canais RHEL e são suportados da mesma forma que o RHEL ao serem executados em plataformas Red Hat suportadas, como OpenShift e RHEL.

Para garantir um suporte de qualidade para contêineres, é necessário um esforço significativo de engenheiros, especialistas em segurança e outros recursos adicionais. É necessário não apenas testar as imagens básicas, mas também analisar seu comportamento em qualquer host suportado.
Para facilitar as tarefas relacionadas à atualização, a Red Hat está ativamente desenvolvendo e apoiando, permitindo que o UBI 7 seja executado, por exemplo, em hosts RHEL 8, e o UBI 8 em hosts RHEL 7. Isso proporciona aos usuários a flexibilidade, segurança e tranquilidade necessárias durante, por exemplo, atualizações de plataformas em imagens de contêineres ou hosts utilizados. Agora, tudo isso pode ser dividido em dois projetos independentes.
Três imagens básicas

Mínima – destinada a aplicações com todas as dependências (Python, Node.js, .NET, etc.)
- Conjunto mínimo de conteúdo pré-instalado
- Sem executáveis SUID
- Ferramentas mínimas do gerenciador de pacotes (instalação, atualização e remoção)
Plataforma – para quaisquer aplicações executadas no RHEL
- Pilha criptográfica unificada OpenSSL
- Pilha completa YUM
- Inclui utilitários básicos úteis do sistema operacional (tar, gzip, vi, etc.)
Multi-Service – simplifica a execução de vários serviços em um único contêiner
- Configurado para iniciar o systemd na inicialização
- Capacidade de habilitar serviços na fase de construção
Imagens de contêineres com ambientes de execução de linguagens de programação já prontos
Além das imagens básicas que permitem a instalação de suporte para linguagens de programação, os UBI incluem imagens pré-construídas com ambientes de execução prontos de várias linguagens de programação. Muitos desenvolvedores podem simplesmente pegar uma imagem e começar a trabalhar no aplicativo que estão desenvolvendo.
Com o lançamento do UBI, a Red Hat oferece dois conjuntos de imagens – baseadas no RHEL 7 e no RHEL 8. Elas foram desenvolvidas com base, respectivamente, nas Red Hat Software Collections (RHEL 7) e nas Application Streams (RHEL 8). Esses ambientes de execução são mantidos atualizados e recebem, por padrão, até quatro atualizações por ano, garantindo sempre a possibilidade de trabalhar com as versões mais recentes e estáveis.
Aqui está uma lista de imagens de contêineres UBI 7:

Aqui está uma lista de imagens de contêineres para UBI 8:

Pacotes associados
O uso de imagens prontas é realmente muito conveniente. A Red Hat mantém sua atualidade e as atualiza juntamente com cada nova versão do RHEL, assim como na ocorrência de atualizações críticas de CVE, conforme a política de atualizações. para que você possa pegar uma dessas imagens e imediatamente começar a trabalhar no aplicativo.

Mas às vezes, ao criar um aplicativo, pode ser que você precise repentinamente de algum pacote adicional. Ou, às vezes, para fazer o aplicativo funcionar, é necessário atualizar um determinado pacote. É por isso que as imagens UBI vêm com um conjunto de RPMs que estão disponíveis através do yum e que são distribuídos por meio de uma rede de entrega de conteúdo rápida e de alta disponibilidade (você recebe o pacote!). Quando você executa uma atualização do yum em seu CI/CD no momento crítico do lançamento, você pode ter certeza de que funcionará.
O RHEL é a base
Não nos cansamos de repetir que o RHEL é a base de tudo. Sabe quais equipes da Red Hat estão trabalhando na criação das imagens básicas? Como estas:
- O grupo de engenharia responsável por garantir que bibliotecas básicas como glibc e OpenSSL, bem como ambientes de execução de linguagens como Python e Ruby, forneçam desempenho estável e funcionem de maneira confiável com cargas de trabalho ao serem usadas em contêineres.
- O grupo de segurança de produtos se dedica a corrigir em tempo hábil erros e problemas de segurança em bibliotecas e ambientes de linguagem, e a eficácia do seu trabalho é avaliada por meio de um índice especial. .
- A equipe de gerentes de produto e engenheiros trabalha na adição de novos recursos e garante um ciclo de vida duradouro para o produto, o que proporciona confiança nos investimentos, que podem ser utilizados como base.
O Red Hat Enterprise Linux atua como um excelente host e imagem para contêineres, mas para muitos desenvolvedores, a capacidade de trabalhar com o sistema em vários formatos é importante, alguns dos quais podem exceder os cenários de uso suportados pelo sistema Linux. E é aí que entram as imagens universais UBI.
Suponha que, neste momento, você esteja apenas procurando uma imagem base para começar a trabalhar em um aplicativo contêinerizado simples. Ou você já está mais próximo do futuro, movendo-se de contêineres autônomos, que operam em um motor de contêiner, para uma história cloud-native usando operadores (construindo e certificando Operadores), que funcionam no OpenShift. De qualquer forma, a UBI fornecerá uma ótima base para isso.

Os contêineres incluem uma versão leve do espaço do usuário do sistema operacional em um novo formato de empacotamento. O lançamento das imagens UBI estabelece um novo padrão da indústria para o desenvolvimento contêinerizado, tornando contêineres de classe empresarial acessíveis a qualquer usuário, desenvolvedores independentes de software e comunidades de código aberto. Em particular, os desenvolvedores de software podem padronizar seus produtos usando uma base única e confiável para todos os seus aplicativos contêinerizados, incluindo . Empresas de desenvolvimento que utilizam UBI também têm acesso à certificação Red Hat Container Certification e Red Hat OpenShift Operator Certification, o que, por sua vez, permite a verificação contínua do software em execução em plataformas Red Hat, como o OpenShift.

Como começar a trabalhar com a imagem
Em resumo – é muito simples. O Podman está disponível não apenas no RHEL, mas também no Fedora, CentOS e em uma série de outras distribuições Linux. Tudo o que você precisa fazer é fazer o download da imagem de um dos seguintes repositórios, e siga em frente.
Para UBI 8:
podman pull registry.access.redhat.com/ubi8/ubi
podman pull registry.access.redhat.com/ubi8/ubi-minimal
podman pull registry.access.redhat.com/ubi8/ubi-init
Para UBI 7:
podman pull registry.access.redhat.com/ubi7/ubi
podman pull registry.access.redhat.com/ubi7/ubi-minimal
podman pull registry.access.redhat.com/ubi7/ubi-init
E veja o guia completo do Universal Base Image
Fonte: habr.com
