Executando verificação de segurança...
2

[PITCH] Open-Source Container OS com Dashboard, API e CLI - Construídos para simplicidade

Os containers são incríveis, mas às vezes podem ser um pouco complicados. Sempre ouço desenvolvedores que gastaram um tempão tentando containerizar seus aplicativos, especialmente os legados. Alguns têm várias dependências, outros dependem de gerenciamento de processos, cron jobs e coisas assim.

Então pensamos: e se pudéssemos simplificar isso? Foi assim que surgiu o Infinite OS. É um sistema operacional para containers de código aberto que criamos para facilitar a containerização. O Infinite OS é o container, não o sistema operacional host. Nosso objetivo era simples: permitir o gerenciamento e a implantação de aplicações com apenas alguns cliques.

Infinite OS Overview

O que o Infinite OS pode fazer por você hoje?

  • instalar aplicativos, stacks ou frameworks;
  • instalar e gerenciar serviços nativos suportados ou personalizados;
  • instalar e gerenciar bancos de dados e usuários de banco de dados;
  • gerenciar e emitir certificados SSL automaticamente;
  • gerenciar seus arquivos com um gerenciador de arquivos integrado;
  • configurar suas definições de runtime e módulos;
  • gerenciar mapeamentos de proxy reverso (ele fará o trabalho pesado para você se instalar o app pelo marketplace);
  • gerenciar seus cron jobs.

Preparei um FAQ rápido com perguntas que provavelmente surgirão, mas antes disso, se você precisa gerenciar múltiplos containers, temos outro projeto gratuito self-hosted que pode te interessar: o Infinite Ez. Provavelmente vou escrever outro post sobre isso, mas, em resumo, é uma PaaS self-hosted com uma abordagem diferente. Não é apenas uma interface sobre o docker-compose, mas sim um híbrido leve entre painéis de hospedagem compartilhada e containerização.

FAQ

P: "Isso é uma alternativa ao Proxmox/ESXi/<insira-plataforma-de-virtualização-ou-paas-aqui>?"

R: O Infinite OS é o container, não o sistema operacional host. Pense nele como uma imagem de container metamórfica (se é que isso existe). Você pode usar o Proxmox ou qualquer outra plataforma de virtualização/PaaS para realizar o deploy do Infinite OS.

O Infinite OS oferece um painel, uma API e uma CLI para você usar. Olha só como é simples:

Primeiro, faça o deploy do container usando sua interface ou CLI de runtime de containers favorita:

docker run --rm --name myapp-container \
  --env 'PRIMARY_VHOST=myapp.net' \
  -p 8080:80 -p 8443:443 -p 1618:1618 \
  -it docker.io/goinfinite/os:latest

O painel do container estará disponível em https://localhost:1618/_/, mas você precisará de uma conta para fazer login. Para isso, acesse o terminal do container e crie sua conta. Se desejar, pode até instalar um WordPress com um comando bem simples:

docker exec -it myapp-container /bin/bash
os account create -u admin -p admin
os mktplace install -s wp -n  \
  -f 'adminUsername:admin' \
  -f 'adminPassword:abc123' \
  -f 'adminMailAddress:[email protected]' 

Estamos adicionando um assistente de configuração (wizard) ao painel na próxima versão, então, depois de realizar o deploy do container, você poderá gerenciá-lo totalmente pelo painel, sem precisar acessar o terminal para criar a primeira conta ;)

O outro projeto que mencionei antes, o Infinite Ez, esse sim é um sistema operacional host. Confira a página do projeto para saber mais.

P: "Mas containers devem ser stateless e executar um único processo!"

R: Perfeito, num mundo ideal seria assim. Mas, às vezes, você só quer entregar algo sem configurar bancos de dados externos, object storage e toda uma pipeline de CI/CD. Nós entendemos. O Infinite OS tá aí pra te ajudar.

P: "Um painel e CLI não vão consumir muitos recursos?"

R: O Infinite OS foi escrito quase totalmente em Go. O comando podman stats mostra que o Infinite OS consome apenas 82 MB de RAM. A imagem? 316 MB compactada. E ainda incluímos algumas ferramentas úteis como o Vim, porque why not?

P: "O container ficará desatualizado?"

R: O unattended-upgrades já vem pré-instalado. No futuro, estamos planejando uma ferramenta de atualização completa no Infinite Ez (a PaaS self-hosted que mencionei) para migrar os dados e configurações do seu container para uma nova imagem do Infinite OS.

P: "Posso usar isso com Kubernetes ou Docker Swarm?"

R: Claro! Embora, se você já estiver profundamente envolvido com Kubernetes, talvez nem precise do Infinite OS. Ainda assim, ele deve funcionar bem com ferramentas tradicionais de orquestração. Mas não deixe de conferir o Infinite Ez também. É gratuito e fácil de usar.

P: "O Infinite OS é gratuito?"

R: Sim! O Infinite OS é totalmente gratuito e de código aberto.

P: "E o armazenamento persistente?"

R: Embora ainda não tenhamos documentação específica sobre o tema, é tecnicamente possível configurar armazenamento persistente usando volumes. Em breve, forneceremos mais orientações sobre isso.

P: "Posso personalizar o painel?"

R: Ainda não, mas está no nosso roadmap. Por enquanto, aproveite o conjunto de recursos padrão.

P: "E sobre logging e monitoramento?"

R: Temos um recurso integrado de registro de segurança que registra eventos-chave. Um frontend amigável e monitoramento adequado? Estão chegando, então fique ligado!

P: "Como posso ajudar ou contribuir com o projeto?"

R: Ficamos sempre empolgados com a participação da comunidade! Confira nossos repositórios no GitHub, envie issues, proponha recursos ou até envie pull requests. Por exemplo, tanto o marketplace de apps quanto os serviços nativos são baseados em arquivos JSON ou YAML — muito fáceis de escrever. Confira nos repositórios em https://github.com/goinfinite/os-marketplace e https://github.com/goinfinite/os-services. Se você não encontrar seu aplicativo favorito lá, que tal escrever sua própria receita/manifesto e compartilhar com a comunidade?

P: "Quem são vocês?"

R: Somos a Infinite, uma provedora de hospedagem gerenciada com uma década de experiência. Ao longo da nossa jornada, sempre quisemos retribuir à comunidade tech. Quando reconstruímos nossa plataforma em 2022, nos comprometemos a ser tão abertos quanto um negócio autossustentável pode ser. Anos trabalhando com painéis de hospedagem complexos e desafios de DevOps nos inspiraram a criar algo diferente – um jeito que não exigisse certificações e que até minha esposa pudesse hospedar o próprio blog ou VPN em uma VM, mesmo sem saber o que significa SSH. Ainda não chegamos lá, mas estamos nos aproximando de tornar a tecnologia acessível a todos que quiserem participar.


Adoraríamos ouvir sua opinião! Um abraço!

P.S. Pedimos desculpas se isso parece autopromoção! Estamos genuinamente animados com o projeto e seu potencial para ajudar a comunidade de self-hosting. Como é totalmente gratuito e de código aberto, esperamos que possa beneficiar muitos de vocês. Obrigado pela compreensão!

Carregando publicação patrocinada...
1

Não dá pra deixar de notar que vocês tiveram que reiterar algumas vezes que não eram o "OS" e sim um container, porque não fazer uma distro linux "infinite os" e um (sei lá) "infinite box" como sendo o container plug and play? O que roda em um container (que é diferente de uma VM) é uma runtime e não um sistema operacional, você tem o Debian por exemplo, o Debian é um OS e um runtime

1

Feedback super válido usuário-cujo-nick-é-a-senha-de-todos-nossos-parentes. Usamos o termo OS inicialmente pois a gente estende o sistema operacional base, tal como uma distro faria, exemplo do ElementaryOS => Ubuntu => Debian. No entanto, zero ego no projeto, podemos ir para um nome que explicasse a natureza/objetivo do projeto no problemo, como fizemos no Infinite Ez.

Nossa limitação é apenas usar duas letras pois é o padrão que estamos usando em todos nossos projetos. Seria bacana fazer uma enquete e deixar a comunidade que estamos criando sugerir. É pra isso que começamos a anunciar os projetos após 1 ano e meio de desenvolvimento, daqui pra frente queremos guiar os projetos com o input da turma.

Penso em algo como fizemos no Ez onde é uma abreviação do que esperamos que o usuário sinta ao usar a plataforma. No entanto, pode ser um jogo de palavras tipo CO = chief officer. É um desafio, mas também se acertamos direitinho vira um nome chiclete.

1

Uma boa sigla seria BX

Nossa limitação é apenas usar duas letras pois é o padrão que estamos usando em todos nossos projetos. Seria bacana fazer uma enquete e deixar a comunidade que estamos criando sugerir

Nem sempre democracia é a melhor coisa, as pessoas tendem a cair no padigma do terceiro mais votado

1
1

Se lembrou um painel de hosting comum, acertamos, hehehe. A ideia é essa mesma, só que baseado em contâiners. Os painéis de hosting tradicionais usam cgroups para limitar os usuários mas todos ainda são usuários diretos do host principal, ou seja, não podem instalar nada no sistema, compartilham o mesmo sistema de arquivo, o mesmo MySQL e a única camada que separa o usuário do root é o sudo. Você precisa do FTP para trazer seus arquivos e o "ambiente de produção" sempre será diferente do que você tem local.

Já com o Infinite OS, você instala o que quiser, você é o root. Você usa a sua variação ou versão do MySQL que desejar e é só seu. Se você tá rodando o Infinite Ez por exemplo, você pode exportar o seu Infinite OS local em um .zip e importar direto no painel. É como se fosse um "arrasta pra cima" pra levar seu ambiente local pra produção e vice-versa. Não há necessidade de usar FTP.

E claro, existem várias camadas de separação entre a sua aplicação/container e o root do sistema operacional. Não é só o cgroupv2, até a stack TCP é emulada. Se você usa o Ez que está em cima do openSUSE MicroOS com podman em rootless, além do sistema operacional ser imutável e se restaurar automaticamente em caso de falha (viva o btrfs), a stack TCP é emulada pelo pasta.

1

hahahah, valeu @Oletros!

Sim, a intenção do Infinite OS é facilitar o deploy das tuas aplicações pra que qualquer pessoa que seja um light user dê conta, e com poucos clicks :)