Mesmo com todos os avanços na TI, seja hardware modular, recursos massivos de computação em nuvem ou dispositivos de borda de formato pequeno, a TI ainda tem um problema de escala. Não fisicamente – é fácil adicionar mais caixas, mais armazenamento e mais “coisas” nesse aspecto. O desafio da escala é fazer com que suas operações funcionem conforme planejado nesse nível e começa com a garantia de que você pode criar, implantar e manter aplicativos de maneira eficaz e eficiente à medida que cresce. Isso significa que o alicerce básico do Devops, o sistema operacional, precisa ser dimensionado de forma rápida, suave e contínua.

Vou dizer isso logo de cara: Isto é difícil. Muito difícil.

Mas poderíamos estar entrando em uma (outra) era de iluminação para o sistema operacional. Eu vi como poderia ser o futuro dos sistemas operacionais em escala, e isso começa com o Projeto Bluefin. Mas como um novo e relativamente obscuro projeto Linux para desktop prediz o próximo modelo de computação empresarial? Três palavras: sistema operacional conteinerizado.

Resumindo, este modelo é uma imagem de contêiner com uma distribuição Linux completa, incluindo o kernel. Você extrai uma imagem base, constrói sobre ela, envia seu trabalho para um servidor de registro, extrai-o para uma máquina diferente, coloca-o em disco e inicializa-o em bare metal ou em uma máquina virtual. Isso torna mais fácil para os usuários criar, compartilhar, testar e implantar sistemas operacionais, assim como fazem hoje com aplicativos dentro de contêineres.

O que é o Projeto Bluefin?

Os contêineres Linux mudaram o jogo quando se tratava de desenvolvimento nativo da nuvem e implantação de aplicativos de nuvem híbrida, e agora a tecnologia está preparada para fazer o mesmo com sistemas operacionais corporativos. Para ser claro, o Projeto Bluefin não é um produto empresarial – em vez disso, é uma plataforma de desktop voltada em grande parte para jogadores – mas acredito que seja um prenúncio de coisas maiores que estão por vir.

“Bluefin é Fedora”, disse o fundador do Bluefin, Jorge Castro, durante uma palestra em vídeo na Conferência ContainerDays do ano passado. “É um Linux para o seu computador com ajustes especiais que colocamos atomicamente em camadas de uma maneira única que achamos que resolve muitos dos problemas que têm assolado os desktops Linux.”

Na verdade, em qualquer ambiente Linux, os usuários fazem coisas para torná-lo seu. Isso pode ocorrer por vários motivos, incluindo o desejo de adicionar ou alterar pacotes, ou até mesmo por causa de certas regras de negócios. O Fedora, por exemplo, tem regras sobre a integração apenas de conteúdo de código aberto upstream. Se você quisesse adicionar, digamos, drivers da Nvidia, você mesmo teria que colá-los no Fedora e depois implantá-lo. O Projeto Bluefin adiciona esse tipo de molho especial antecipadamente para tornar o sistema operacional – neste caso, o Fedora – mais fácil de implantar.

A versão “padrão” do Bluefin é um desktop GNOME com um dock na parte inferior, indicadores de aplicativos na parte superior e o armazenamento flathub habilitado imediatamente. “Você não precisa fazer nenhuma configuração nem nada”, disse Castro. “Você realmente não precisa se preocupar com a origem deles. … Nós cuidamos dos codecs para você, fazemos várias habilitações de hardware, seu controlador de jogo vai funcionar. Haverá coisas que podem não funcionar no Fedora padrão que tentamos consertar, e também tentamos trazer o máximo de coisas que podemos, incluindo drivers da Nvidia. Não há mais razão para o seu sistema operacional compilar um módulo toda vez que você faz uma atualização. Fazemos tudo em CI e é ótimo. Automatizamos totalmente a manutenção da área de trabalho porque estamos buscando um Chromebook. … Ele vem com um tempo de execução de contêiner, como todos os bons desktops nativos da nuvem deveriam.”

Como o Bluefin pressagia o potencial empresarial

A maneira como Castro descreve como e por que o projeto Bluefin foi construído parece muito semelhante às razões pelas quais desenvolvedores, arquitetos, administradores de sistemas e qualquer outra pessoa que consuma sistemas operacionais corporativos criam compilações básicas. E é aí que reside o potencial empresarial, embora a maioria das pessoas não perceba que o problema que o Bluefin resolve é idêntico a um problema comercial que temos na empresa.

Tudo começa com os “ajustes especiais” mencionados por Castro.

Tomemos, por exemplo, um grande banco. Eles pegam o que o fornecedor do sistema operacional lhes oferece e fazem ajustes especiais para torná-lo adequado ao seu ambiente com base em suas regras de negócios. Esses ajustes se acumulam e podem se tornar bastante complicados. Eles podem adicionar reforço de segurança, bibliotecas e codecs para compactação, algoritmos de criptografia, chaves de segurança, configurações para LDAP, software especialmente licenciado ou drivers. Pode haver centenas de personalizações em uma grande organização com requisitos complexos. Na verdade, sempre que um software complexo transfere a custódia entre duas organizações, quase sempre requer ajustes especiais. Essa é a natureza da computação empresarial de grande porte.

Fica ainda mais complicado dentro de uma organização. Especialistas internos distintos, como engenheiros de segurança, administradores de rede, administradores de sistemas, arquitetos, administradores de banco de dados e desenvolvedores, colaboram (ou tentam, de qualquer maneira) para construir uma única pilha de software adequada ao propósito dentro das regras e diretrizes daquela organização específica. Isto é particularmente verdadeiro para o sistema operacional de ponta ou com IA, onde os desenvolvedores desempenham um papel mais importante na configuração do sistema operacional subjacente. Para acertar uma única carga de trabalho, seriam necessárias de 50 a 100 interações entre todos esses especialistas. Cada uma dessas interações leva tempo, aumenta os custos e amplia a margem de erro.

Fica ainda mais difícil quando você começa a adicionar parceiros e consultores externos.

Hoje, todos esses especialistas falam línguas diferentes. O gerenciamento de configuração e ferramentas como o Kickstart ajudam, mas não são elegantes quando se trata de colaboração complexa e às vezes hostil entre e dentro das organizações. Mas e se você pudesse usar contêineres como linguagem nativa para desenvolver e implantar sistemas operacionais? Isso resolveria todos os problemas (especialmente os problemas de pessoas) que foram resolvidos com contêineres de aplicativos, mas você está trazendo isso para o sistema operacional.

AI e ML estão prontos para sistemas operacionais em contêineres

A inteligência artificial e o aprendizado de máquina são casos de uso particularmente interessantes para um sistema operacional em contêineres porque são híbridos por natureza. Um modelo básico geralmente é treinado, ajustado e testado por engenheiros de qualidade e dentro de um aplicativo de chatbot – tudo em locais diferentes. Então, talvez, ele volte para fazer mais ajustes e finalmente seja implantado em produção em um ambiente diferente. Tudo isso exige o uso de contêineres, mas também requer aceleração de hardware, mesmo em desenvolvimento, para inferência mais rápida e menos incômodo. Quanto mais rápido um aplicativo for executado e mais curto o ciclo interno de desenvolvimento, mais felizes serão os desenvolvedores e o pessoal de engenharia de qualidade.

Por exemplo, pense em uma carga de trabalho de IA implantada localmente em um laptop de desenvolvedor, talvez como uma VM. A carga de trabalho inclui um modelo pré-treinado e um chatbot. Não seria bom se funcionasse com aceleração de hardware para uma inferência mais rápida, para que o chatbot respondesse mais rapidamente?

Agora, digamos que os desenvolvedores estejam mexendo no chatbot e descubram um problema. Eles criam uma nova interação de usuário rotulada (documento de perguntas e respostas) para corrigir o problema e desejam enviá-lo a um cluster com placas Nvidia para mais ajustes. Depois de treinado ainda mais, os desenvolvedores desejam implantar o modelo na borda em um dispositivo menor que faça algumas inferências. Cada um desses ambientes possui hardware e drivers diferentes, mas os desenvolvedores desejam apenas a conveniência de trabalhar com os mesmos artefatos – uma imagem de contêiner, se possível.

A ideia é que você possa implantar a carga de trabalho em qualquer lugar, da mesma maneira, com apenas alguns pequenos ajustes. Você está pegando esta imagem do sistema operacional e compartilhando-a em um laptop Windows ou Linux. Você o move para um ambiente de teste de desenvolvimento, treina-o um pouco mais em um CI/CD, talvez até mesmo o mova para um cluster de treinamento que faz algum refinamento com outro hardware especializado. Em seguida, você o implanta em produção em um data center ou em um data center virtual em uma nuvem ou na borda.

A promessa e a realidade atual

O que acabei de descrever é atualmente um desafio de realizar. Em uma grande organização, pode levar seis meses para fazer as construções principais. Em seguida, vem uma atualização trimestral, para a qual leva mais três meses para ser preparada. A complexidade do trabalho envolvido aumenta o tempo necessário para colocar um novo produto no mercado, muito menos “apenas” atualizar algo. Na verdade, as atualizações podem ser a proposta de maior valor de um modelo de sistema operacional em contêiner: você pode atualizar com um único comando assim que a construção principal for concluída. As atualizações não estariam mais executando o yum – elas apenas rolariam do ponto A para o ponto B. E, se a atualização falhasse, você simplesmente reverteria. Este modelo é especialmente atraente na periferia, onde a largura de banda e a confiabilidade são preocupações.

Um modelo de sistema operacional conteinerizado também abriria novas portas para aplicativos que as organizações decidissem não colocar em contêineres, por qualquer motivo. Você poderia simplesmente colocar os aplicativos em uma imagem do sistema operacional e implantar a imagem em bare metal ou em uma máquina virtual. Neste cenário, as aplicações ganham algumas, embora não todas, das vantagens dos containers. Você obtém os benefícios de uma melhor colaboração entre especialistas no assunto, uma rodovia padronizada para entrega de carga (imagens e registros de contêineres OCI) e atualizações e reversões simplificadas na produção.

Um sistema operacional em contêiner também proporcionaria, teoricamente, benefícios de governança e proveniência. Assim como acontece com os aplicativos em contêineres, tudo em um sistema operacional em contêiner seria confirmado no GitHub. Você seria capaz de criar uma imagem do zero e saber exatamente o que ela contém e, em seguida, implantar o sistema operacional exatamente a partir dessa imagem. Além disso, você pode usar a mesma infraestrutura de teste, linting e varredura, incluindo automação em CI/CD.

Claro, haveria alguns obstáculos a serem superados. Se você estiver implantando o sistema operacional como uma imagem de contêiner, por exemplo, precisará pensar nos segredos de uma maneira diferente. Você não pode mais simplesmente ter senhas incorporadas no sistema operacional. Você tem o mesmo problema com aplicativos em contêineres. O Kubernetes resolve esse problema agora com seu serviço de gerenciamento de segredos, mas definitivamente seria necessário algum trabalho em torno dos segredos com um sistema operacional quando ele for implantado como uma imagem.

Há muitas perguntas a serem respondidas e cenários a serem considerados antes de obtermos um sistema operacional conteinerizado que se torne uma realidade empresarial. Mas, o Projeto Bluefin sugere um futuro de sistema operacional em contêineres que faz muito sentido não para se concretizar. Será interessante ver se e como a indústria abraça este novo paradigma.

Na Red Hat, Scott McCarty é gerente sênior de produto principal do RHEL Server, indiscutivelmente o maior negócio de software de código aberto do mundo. Scott é um veterano em startups de mídia social, um veterano em comércio eletrônico e um experiente tecnólogo de pesquisa governamental, com experiência em uma variedade de empresas e organizações, desde startups de sete pessoas até empresas de tecnologia com 12.000 funcionários. Isso culminou em uma perspectiva única sobre desenvolvimento, entrega e manutenção de software de código aberto.

O New Tech Forum oferece um local para explorar e discutir tecnologias empresariais emergentes com profundidade e amplitude sem precedentes. A seleção é subjetiva, baseada na escolha das tecnologias que acreditamos serem importantes e de maior interesse para os leitores do InfoWorld. A InfoWorld não aceita material de marketing para publicação e reserva-se o direito de editar todo o conteúdo contribuído. Envie todas as perguntas para [email protected].