IBM Developer Blog

Siga os acontecimentos mais recentes com o IBM Developer, e fique por dentro.

Revise o histórico do aplicativo corporativo OpenShift do Kubernetes e os caminhos relacionados ao serviço IBM Cloud Kubernetes.


A recente apresentação do Red Hat® OpenShift® como opção na IBM Cloud aguçou minha curiosidade sobre suas origens e por que ele é tão popular entre os desenvolvedores. Muitos dos desenvolvedores com quem me encontrei em palestras ou com quem almocei na recente Conferência KubeCon, comentaram como eles usaram o OpenShift. Eu ouvi a opinião de desenvolvedores que trabalham em instituições financeiras, que realizam análises sobre transações, e de varejistas que estão criando novas experiências para seus clientes.

O OpenShift é uma plataforma empresarial e de nuvem híbrida do aplicativo Kubernetes. Agora, a IBM Cloud oferece-o como uma solução hospedada ou como uma plataforma como serviço (PaaS) no local. Ele é desenvolvido em contêineres e é orquestrado e gerenciado pelo Kubernetes com base no Red Hat Enterprise Linux.

Com o crescimento da computação em nuvem, o OpenShift tornou-se uma das plataformas de desenvolvimento e implementação mais populares, ganhando respeito com base em mérito. À medida que o desenvolvimento em nuvem fica mais “normal” para nós, é interessante considerar onde o OpenShift se encaixa como mais uma ferramenta da caixa de ferramentas para criar a solução certa. Ele pode ser combinado com softwares anteriores no local, com funções de nuvem, com o Cloud Foundry ou opções bare metal.

Nesta postagem do blog, meu colega Olaph Wagoner e eu retrocedemos no tempo para entender de onde o OpenShift vem e buscamos entender para onde ele está indo no mundo do desenvolvimento de aplicativos corporativos com o Kubernetes.

O gráfico a seguir mostra uma linha do tempo do OpenShift, da IBM e do Kubernetes:

Linha de tempo do OpenShift, da IBM e do Kubernetes

Início do OpenShift: 2011 – 2013

O OpenShift foi lançado pela primeira vez em 2011 e baseava-se nos contêineres do Linux para implementar e executar aplicativos de usuário, como Joe Fernandes descreve em Por que a Red Hat escolheu o Kubernetes para o OpenShift.

Quando o OpenShift surgiu em 2011, ele era baseado nos contêineres do Linux para implementar e executar aplicativos de usuário. O OpenShift V1 e o V2 usavam o ambiente de tempo de execução de contêiner e o mecanismo de orquestração de contêiner específicos da plataforma, próprios da Red Hat, como a base.

No entanto, a história do OpenShift começou um pouco antes de seu lançamento. Parte da origem do OpenShift provém da aquisição da Makara, anunciada em novembro de 2010. Essa aquisição forneceu o software como uma camada de abstração com base em sistemas e incluiu ambientes de tempo de execução para aplicativos PHP e Java, servidores de aplicativos Tomcat ou JBoss e servidores da web Apache.

O OpenShift inicial usava “engrenagens”, que eram um tipo próprio de tecnologia de contêiner. Os nós do OpenShift incluíam algum tipo de conteinerização. A metáfora da engrenagem foi baseada no que estava contido. O OpenShift chamava os clusters isolados de engrenagens: algo capaz de produzir trabalho sem acabar com o mecanismo inteiro. Uma engrenagem individual era associada a um usuário. Para criar modelos dessas engrenagens, o OpenShift usava cartuchos, que eram adquiridos da Makara.

O OpenShift em si não era um software livre até 2012. Em junho de 2013, a V2 foi disponibilizada ao público, com mudanças no formato do cartucho.

O Docker muda tudo

O Docker começou como um projeto de uma empresa chamada dotCloud e foi disponibilizado como software livre em março de 2013. Ele popularizou os contêineres com ferramentas avançadas que permitem que as pessoas desenvolvam e transfiram suas aptidões para a plataforma.

A Red Hat foi a primeira a adotar o Docker, anunciando a colaboração em setembro de 2013. A IBM lançou sua própria parceria estratégica com o Docker em dezembro de 2014. O Docker é uma das tecnologias de contêiner fundamentais que recebe a contribuição de códigos de diversos engenheiros da IBM desde os primeiros dias do projeto.

Kubernetes

O Kubernetes surgiu de um trabalho na Google em 2014 e tornou-se a maneira padrão de gerenciar contêineres.

Embora tenha sido desenvolvido originalmente pela Google, agora ele é um projeto de software livre mantido pela Cloud Native Computing Foundation (CNCF), com contribuições de software livre significativas da Red Hat e da IBM.

De acordo com o kubernetes.io, a Kubernetes busca oferecer “um sistema para automatizar a implementação, o ajuste de escala e as operações de contêineres de aplicativo” entre clusters de hosts. Ele funciona com uma variedade de ferramentas de contêiner, incluindo o Docker.

Com os contêineres, é possível adotar o design de aplicativo modular, no qual um banco de dados é independente, e é possível escalar aplicativos sem escalar as máquinas.

O Kubernetes é outro projeto de software livre para o qual a IBM contribui desde o início. No gráfico a seguir, é possível observar a porcentagem da contribuição da IBM para o Docker, o Kubernetes e o Istio, no contexto das cinco principais organizações que contribuíram para cada um desses projetos relacionados a contêineres. Ele destaca a importância da tecnologia de contêiner para a IBM, além de parte do volume de trabalho de software livre.

Parte da contribuição da IBM para a tecnologia de contêiner de software livre

OpenShift V3.0: aberto e padrão

A Red Hat anunciou a intenção de usar o Docker no OpenShift V3 em agosto de 2014. Nos bastidores, o salto do V2 para o V3 foi realmente considerável. O OpenShift passou do uso de engrenagens e cartuchos para o uso de contêineres e imagens. Para orquestrar essas imagens, o V3 introduziu o uso do Kubernetes.

O universo dos desenvolvedores também estava almejando o uso do Kubernetes, por alguns dos seguintes motivos:

  • Os pods do Kubernetes permitem implementar um contêiner ou vários deles como uma única unidade atômica.

  • Os serviços podem acessar um grupo de pods em um endereço fixo e vincular esses serviços usando um IP integrado e a descoberta de serviço baseada em DNS.

  • Os controladores de replicação asseguram que o número desejado de pods esteja em execução e usam rótulos para identificar os pods e outros objetos do Kubernetes.

  • Um modelo de rede eficiente permite o gerenciamento de contêineres entre vários hosts.

  • A capacidade de orquestrar o armazenamento permite a execução de serviços stateful e stateless em contêineres.

  • Os modelos de orquestração simplificados permitem rapidamente que os aplicativos entrem em execução sem precisar de planejadores complexos de duas camadas.

  • Uma arquitetura que entendeu que as necessidades dos desenvolvedores e dos operadores eram diferentes e considerou os requisitos dessas duas importantes funções, eliminando a necessidade de comprometer uma delas.

O OpenShift introduziu interfaces com o usuário altamente eficientes para a criação e a implementação rápidas de aplicativos, com as tecnologias de Source-To-Image e de pipelines. Essas camadas, com base no Kubernetes, simplificam e atraem novos públicos de desenvolvedores.

A IBM já estava contribuindo com códigos para os principais componentes de software livre nos quais o OpenShift se baseia. O gráfico a seguir mostra uma linha do tempo do OpenShift com o Kubernetes:

Linha de tempo do OpenShift e do Kubernetes

OpenShift V4.0 e o futuro

A Red Hat provou claramente estar à frente da tecnologia de contêiner, perdendo apenas para a Google em contribuições para projetos de CNCF. Outra realização recente da Red Hat que desejo mencionar foi a aquisição da CoreOS em janeiro de 2018. O principal produto da CoreOS era um sistema operacional Linux leve desenvolvido para executar aplicativos conteinerizados, que a Red Hat está disponibilizando na V4 do OpenShift como “Red Hat Enterprise Linux CoreOS”.

E esse é apenas um dos vários desenvolvimentos interessantes da V4. Como mostrado no gráfico de linha do tempo anterior, o OpenShift Service Mesh combinará o recurso de monitoramento do Istio com o poder de exibição do Jaeger e do Kiali. Os recursos sem servidor do Knative estão incluídos, além dos operadores do Kubernetes, para facilitar a automação do gerenciamento de aplicativo.

Os caminhos também se cruzam aqui. A IBM é uma grande contribuidora de código de software livre para o Istio, o Knative e o Tekton. Essas tecnologias são os caminhos para o desenvolvimento corporativo baseado em contêiner da próxima década.

O OpenShift V4.0 foi anunciado recentemente. E o Red Hat OpenShift on IBM Cloud™ é uma nova colaboração que combina o Red Hat OpenShift e o IBM Cloud Kubernetes Service. Para saber mais, revise o gráfico de linha do tempo anterior.

Algumas conclusões

A pesquisa das origens e do histórico do OpenShift foi interessante. O enfoque no uso do OpenShift reconhece que, em termos de desenvolvimento de software, esta década realmente é a década do contêiner.

É impressionante a quantidade de energia, de foco e de motivação que a Red Hat investiu para a criação de uma plataforma de contêiner atraente criando camadas significativas, progredindo as mesmas tecnologias nas quais a IBM demonstrou interesse e dedicando recursos de engenharia ao longo da última década.

Estamos ansiosos para aprender todas essas novas tecnologias e desenvolver com elas nos próximos anos.