D para o lançamento do LTS, que criou dificuldades e limitações desnecessárias para nossos usuários.
O modelo de liberação rolante
Para enfrentar esses desafios e melhorar a experiência geral para nossos funcionários, decidimos fazer a transição do modelo LTS para um modelo de liberação rolante. O modelo de liberação rolante permite atualizações contínuas e elimina a necessidade de saltos de versão principal a cada dois anos. Em vez disso, as atualizações são entregues de forma incremental, garantindo que todas as máquinas estejam sempre atualizadas com as mais recentes versões de software e patches de segurança. Isso não apenas economiza tempo e esforço em termos de atualização, mas também melhora a estabilidade e a segurança em nossa frota.
Ao mudar para um modelo de liberação rolante, conseguimos abordar vários pontos problemáticos que estavam presentes com o modelo LTS. Em primeiro lugar, os engenheiros não precisavam mais atualizar manualmente suas máquinas, reinstalando e configurando -as do zero. As atualizações incrementais permitiram uma transição perfeita com interrupção mínima. Em segundo lugar, o teste abrangente do processo de atualização garantiu que todos os principais pacotes continuassem funcionando de maneira eficaz, reduzindo as chances de qualquer problema de compatibilidade. Por fim, mantendo-se atualizado com as mais recentes versões de software, conseguimos tirar proveito das correções de bugs e melhorias que não foram apoiadas para a liberação do LTS, aumentando o desempenho geral de nossos sistemas.
Os benefícios
A transição para o modelo de liberação rolante trouxe inúmeros benefícios para nossa organização. Em primeiro lugar, melhorou a produtividade de nossos engenheiros, eliminando a necessidade de gastar tempo e esforço significativos para atualizar suas máquinas. Isso lhes permitiu se concentrar mais em seu trabalho e contribuir para o desenvolvimento de soluções inovadoras. Em segundo lugar, as atualizações contínuas garantiram que nossos sistemas estejam sempre equipados com os mais recentes patches de segurança, reduzindo o risco de vulnerabilidades e ameaças em potencial. Além disso, as atualizações incrementais tornaram o processo geral de gerenciar nossa frota muito mais suave e mais eficiente, reduzindo a carga de trabalho em nossa equipe e minimizando as chances de erros ou interrupções. No geral, o modelo de liberação rolante provou ser uma abordagem valiosa em termos de estabilidade, segurança e produtividade.
Conclusão
A transição do modelo LTS para o modelo de liberação rolante tem sido um marco significativo em nossa jornada para otimizar nossa distribuição Linux para as diversas necessidades de nossa organização. Ao incorporar atualizações contínuas e eliminar os principais saltos da versão, conseguimos melhorar a produtividade, a estabilidade e a segurança de nossos sistemas. Essa transição não apenas beneficiou nossos engenheiros, mas também melhorou a experiência geral para todos os funcionários do Google que confiam no ambiente Linux. Continuaremos a evoluir e inovar nossa distribuição Linux para garantir que ela permaneça uma plataforma de ponta para nossa organização.
1. Por que o Google transitou para um modelo de lançamento rolante para sua distribuição Linux?
O Google passou para um modelo de lançamento rolante para enfrentar os desafios e limitações do modelo LTS. O modelo LTS exigiu que a versão principal saltas a cada dois anos, causando esforço significativo, tempo e interrupções para os engenheiros. A transição para um modelo de liberação rolante permite atualizações contínuas, eliminando a necessidade de grandes atualizações e garantindo que todas as máquinas estejam sempre atualizadas com as mais recentes versões de software e patches de segurança.
2. Quais foram os desafios enfrentados com o modelo LTS?
O modelo LTS apresentou vários desafios para o Google. Um dos principais desafios foi a necessidade de atualizar manualmente as máquinas, reinstalando e configurando -as do zero a cada dois anos. Este processo foi demorado e disruptivo. Além disso, a versão grande salta nos principais pacotes durante cada ciclo do sistema operacional exigia testes abrangentes e problemas de compatibilidade colocados. As limitações do modelo LTS também impediram o Google de acessar as mais recentes correções de bugs e melhorias que não foram retrucadas para a liberação do LTS.
3. Como o modelo de liberação do rolling melhorou o processo de atualização?
O modelo de liberação rolante melhorou o processo de atualização, eliminando a necessidade de reinstalação manual e configuração das máquinas. Atualizações incrementais foram entregues continuamente, garantindo uma transição perfeita e minimizando interrupções. O teste abrangente do processo de atualização garantiu que todos os principais pacotes continuassem funcionando de maneira eficaz, reduzindo os problemas de compatibilidade. Ao manter-se atualizado com as mais recentes versões de software, o Google conseguiu tirar proveito das correções e melhorias de bugs que não estavam disponíveis na versão do LTS.
4. Que benefícios tem a transição para o modelo de lançamento rolante trazido para o Google?
A transição para o modelo de lançamento rolante trouxe vários benefícios para o Google. Em primeiro lugar, melhorou a produtividade dos engenheiros, economizando tempo e esforço gastos anteriormente na atualização de máquinas. Isso permite que os engenheiros se concentrem mais em seu trabalho e contribuam para soluções inovadoras. Em segundo lugar, as atualizações contínuas garantem que os sistemas do Google estejam sempre equipados com os mais recentes patches de segurança, reduzindo o risco de vulnerabilidades. Por fim, as atualizações incrementais tornaram o gerenciamento de frota mais suave e mais eficiente, reduzindo a carga de trabalho na equipe e minimizando erros ou interrupções.
5. Como o modelo de liberação aumentou a estabilidade e a segurança?
O modelo de liberação rolante aprimora a estabilidade e a segurança, garantindo que todas as máquinas estejam sempre atualizadas com as mais recentes versões de software e patches de segurança. Com atualizações contínuas, os sistemas do Google são constantemente otimizados e protegidos contra possíveis vulnerabilidades e ameaças. Ao manter -se atualizado com correções e melhorias de bugs, o desempenho geral dos sistemas é aprimorado, proporcionando um ambiente mais estável e seguro para os usuários.
6. Qual era a distribuição interna de Linux, interna anterior do Google, com base em?
A distribuição interna de Linux, face anterior do Google, Goobuntu, foi baseada em lançamentos do Ubuntu LTS.
7. Quantos dispositivos existem na frota corporativa do Google?
A frota corporativa do Google consiste em centenas de milhares de dispositivos em várias plataformas, modelos e locais.
8. Por que o Ubuntu foi escolhido como a base da distribuição interna do Google?
O Ubuntu foi escolhido como base para a distribuição interna do Google, porque era fácil de usar, fácil de usar e ofereceu recursos adicionais e atualizações de segurança por meio de seus lançamentos de suporte a longo prazo (LTS).
9. Que desafios a versão principal saltou durante o ciclo do sistema operacional presente?
A versão principal salta durante o ciclo do sistema operacional apresentou desafios relacionados à configuração de software. Os engenheiros tiveram que tomar decisões sobre como avançar quando confrontados com as deprecações e garantir que todas as configurações de software fossem compatíveis com as novas versões. Isso exigiu testes abrangentes e às vezes representava dificuldades em fornecer automação.
10. Como o processo de atualização afetou a equipe trabalhando em goobuntu?
O processo de atualização foi estressante para a equipe que trabalhava no Goobuntu. Eles receberam centenas de insetos e pedidos de ajuda, especialmente para casos de canto. O ciclo constante de atualizações sem tempo de recuperação suficiente criou uma sensação de estar perto de esgotamento na equipe.
11. Como o Google garante a integridade de seus pacotes Linux?
Os pacotes Linux do Google são assinados com as teclas GNU Privacy Guard (GPG). Essas chaves são configuradas automaticamente no gerenciador de pacotes para verificar as atualizações do produto. No entanto, os usuários também podem optar por instalar as chaves separadamente para verificar manualmente a integridade dos downloads iniciais de pacotes.
12. Qual é o significado da distribuição Linux do Google sendo baseada no Debian Now?
A distribuição Linux do Google agora é baseada no Debian, que permite um modelo de lançamento rolante. Isso significa que as atualizações são entregues continuamente, eliminando a necessidade de saltos de versão principal a cada dois anos. Isso aprimora a estabilidade, segurança e produtividade para a organização.
13. Como os sistemas baseados em APT podem instalar a chave de assinatura do pacote Linux do Google?
Em sistemas baseados em APT como Debian ou Ubuntu, os usuários podem baixar a chave usando o comando:
wget -q -o -https: // dl.Google.com/linux/linux_signing_key.pub | Sudo Apt-Key Add -
14. Como os sistemas baseados em RPM podem instalar a chave de assinatura do pacote Linux do Google?
Em sistemas baseados em RPM como o Fedora ou Suse, os usuários podem baixar a chave usando o comando:
wget https: // dl.Google.com/linux/linux_signing_key.bar
sudo rpm --import linux_signing_key.bar
15. Como a instalação da tecla RPM pode ser verificada?
A instalação da tecla RPM pode ser verificada executando o comando:
rpm -qi gpg-pubkey-7fac5991-*
Como o Google chegou aos lançamentos do Rolling Linux para desktops
E aqui’s Outra coisa-o Red Hat Enterprise Linux for SAP Solutions no Google Cloud é uma plataforma de alto desempenho para operações de banco de dados que inclui conteúdo e recursos específicos do SAP e permite que as organizações implantem SAP em ambientes de nuvem híbridos. Red Hat Enterprise Linux é uma das duas distribuições Linux certificadas para uso com SAP HANA® e SAP S/4HANA®.
Repositórios de software Linux
Google’Os pacotes de software Linux definirão automaticamente as configurações do repositório necessárias para manter seus aplicativos do Google Linux atualizados. Faça o download e instale pacotes nas páginas de produto apropriadas.
- Google Chrome
- Google Earth
- Gerente de música do Google
- Google Voice and Video Chat
- mod_pagespeed para apache
- Google web designer
As chaves de assinatura do pacote Linux
Google’S Pacotes Linux são assinados com as teclas GNU Privacy Guard (GPG). Google’Os pacotes S configurarão automaticamente o seu gerenciador de pacotes para verificar as atualizações do produto com a chave de assinatura pública, mas você também pode instalá -lo separadamente se, por exemplo, você deseja verificar a integridade de um download inicial de pacote. Siga as instruções abaixo para configurar manualmente seu gerenciador de pacotes para usar as chaves.
Detalhes -chave
- Download: https: // dl.Google.com/linux/linux_signing_key.bar
- Chave ID: Google, Inc. Chave de assinatura do pacote Linux
Impressão digital: 4CCA 1EAF 950C EE4A B839 76DC A040 830F 7FAC 5991 - Google Inc. (Autoridade de assinatura de pacotes Linux)
Impressão digital: EB4C 1BFD 4F04 2F6D DDCC EC91 7721 F63B D38B 4796
Instalação da chave da linha de comando para apt
Em um sistema baseado em APT (Debian, Ubuntu, etc.), faça o download da chave e depois use o apt para instalá -la.
wget -q -o -https: // dl.Google.com/linux/linux_signing_key.pub | Sudo Apt-Key Add -
Versões recentes do apt-get tentarão automaticamente verificar os pacotes no download. Se uma chave apropriada não for encontrada ou se o pacote estiver corrompido, você receberá uma mensagem como a seguinte:
Aviso: os pacotes a seguir não podem ser autenticados!
nome do pacote
Instalação da chave da linha de comando para RPM
Em um sistema baseado em RPM (Fedora, Suse, Mandriva, Rhel, etc.), faça o download da chave e use o RPM para instalá -la.
wget https: // dl.Google.com/linux/linux_signing_key.bar
sudo rpm --import linux_signing_key.bar
Você pode verificar a instalação principal em execução:
rpm -qi gpg-pubkey-7fac5991-*
Para verificar manualmente um pacote de RPM, você pode executar o comando:
RPM -Checksig -V Packagename.RPM
Google é executado no Linux?
Crédito da imagem do herói: Markus Teich
No Google, administramos grandes frotas de produção que servem produtos do Google como YouTube e Gmail. Para apoiar todos os nossos funcionários, incluindo engenheiros, também administramos uma frota corporativa considerável com centenas de milhares de dispositivos em várias plataformas, modelos e locais. Para permitir que cada googler trabalhe no ambiente em que são mais produtivos, operamos muitas plataformas OS, incluindo um sistema Linux. Por um longo tempo, nossa distribuição interna de Linux, Goobuntu, foi baseada nos lançamentos do Ubuntu LTS. Em 2018, concluímos uma mudança para um modelo de lançamento rolante baseado no Debian.
Atualizar o trabalho
Mais de 15 anos atrás, o Ubuntu foi escolhido como base para a distribuição interna do Linux, pois era fácil de usar, fácil de usar e tinha muitos extras sofisticados. Os lançamentos de suporte a longo prazo (LTS) foram escolhidos como foi valorizado que canônico, por mais de 2 anos de atualizações de segurança.
No entanto, esse ciclo de lançamento de dois anos para lançamentos de LTS também significava que tivemos que atualizar todas as máquinas em nossa frota de mais de 100.000 dispositivos antes da data de final de vida do sistema operacional. A natureza complexa das cargas de trabalho executadas em máquinas corporativas significava que a reinstalação e a personalização de máquinas pode ser uma operação difícil e demorada. O sucesso da produtividade de ter todos os engenheiros configurar seu espaço de trabalho do zero a cada dois anos não era uma opção financeiramente responsável.
Para cada ciclo do sistema operacional, tivemos um salto de versão bastante grande nos principais pacotes que poderiam exigir alterações significativas na configuração do software. Para automatizar esse processo, escrevemos uma ferramenta de atualização no local não atendida que cuidava de muitos problemas de caso comum. Essa abordagem focada na automação significava que a maioria dos funcionários do Google não precisava atualizar manualmente suas máquinas, reinstalando-as e recriando toda a sua configuração. Para tornar isso possível, no entanto, precisávamos fazer testes abrangentes do processo de atualização e verificar se todos os principais pacotes que haviam mudado continuaram funcionando (no Ubuntu, isso pode chegar a vários milhares de pacotes para atualizar entre as principais versões). Às vezes, era difícil fornecer automação nos casos em que as depreciações aconteciam e os engenheiros tiveram que tomar decisões sobre como avançar.
Esse esforço para atualizar nossa frota Goobuntu geralmente levou a maior parte de um ano. Com uma janela de suporte de dois anos, restava apenas um ano até que tivéssemos que passar pelo mesmo processo de novo para o próximo LTS. Todo esse processo foi um enorme fator de estresse para nossa equipe, pois obtivemos centenas de insetos com pedidos de ajuda para casos de canto. Uma vez que uma atualização foi feita, havia um senso geral de ser “perto de esgotamento” na equipe que mal conseguimos nos recuperar até a próxima rodada de atualizações surgiu. Executar uma versão LTS também significava que alguns bugs encontrados pelos usuários de nossa distribuição podem’já foi corrigido a montante, mas essas melhorias podem’nunca estive de volta para a versão LTS.
Havia também uma longa cauda de atualizações de casos especiais que às vezes podiam se arrastar por vários anos. Lidar com esse processo foi um enorme desafio de gerenciamento de mudanças para fazer com que os engenheiros atualizem as máquinas que não fizeram’t trabalho no processo automático. Ficamos criativos ao motivar nossos usuários a atualizar suas máquinas. As medidas variaram de mensagens incômodas em sua interface do usuário, e -mails, reinicializações programadas e até desligando as máquinas, para aumentar a conscientização de que ainda havia algumas máquinas com extrema necessidade de uma atualização. Às vezes, essas máquinas capturadas que as pessoas esqueceram totalmente, como a única máquina sob uma mesa que estava executando um pipeline crítico para algo importante, pois acabou.
Lançamentos de rolamento
Quando projetamos o Glinux Ridete (Rolling Debian Testing), pretendemos remover o ciclo de atualização de dois anos e, em vez disso, espalhar a carga na equipe ao longo do tempo. A mudança geral para CI/CD na indústria mostrou que mudanças incrementais menores são mais fáceis de controlar e reverter. Os lançamentos rolantes com as distribuições Linux hoje estão ficando mais comuns (Arch Linux, Nixos).
Consideramos outras distribuições do Linux, mas acabamos escolhendo o Debian porque novamente queríamos oferecer uma migração suave no local. Isso incluiu considerações sobre a disponibilidade de pacotes no Debian, a grande comunidade Debian e também os pacotes e ferramentas internos existentes que estavam usando o formato Debian. Enquanto a faixa estável do Debian segue um salto de aproximadamente dois anos entre os lançamentos, a pista de testes do Debian funciona como um lançamento, pois é a piscina de todos os pacotes ingeridos e construídos a partir de montante, esperando a próxima versão estável acontecer.
O tempo desde a liberação upstream até a disponibilidade nos testes geralmente é apenas alguns dias (embora durante os períodos de congelamento antes de um lançamento estável do Debian, às vezes pode ficar atrasado alguns meses atrás). Isso significa que podemos obter mudanças muito mais granulares em geral e fornecer o software mais recente para nossos engenheiros no Google sem ter que esperar períodos mais longos.
Essa frequência de atualizações nos exigia redesenhar muitos sistemas e processos. Embora originalmente pretendam lançamentos mais frequentes, descobrimos que, para nós, os lançamentos semanais eram um ponto ideal entre se mover rapidamente e permitir a qualificação adequada de liberação, limitando a interrupção da produtividade do desenvolvedor.
Sempre que iniciamos um novo lançamento, tiramos um instantâneo de todos os pacotes ingeridos do Debian naquele momento. Após alguns testes de aceitação, o novo candidato à liberação hermética é então cautelosamente lançada para uma frota de testes dedicada e um canário de frota de 1%. O canário é mantido intencionalmente ao longo de alguns dias para detectar problemas com pacotes debianos ou pacotes internos do Google antes de progridir para toda a frota.
Apresentando peneira
Para gerenciar todas essas tarefas complexas da criação de todos os pacotes a montante da fonte, construímos um sistema de fluxo de trabalho chamado peneira. Sempre que vemos qualquer nova versão de um pacote Debian, começamos uma nova compilação. Construímos pacotes em grupos de pacotes, para levar em consideração pacotes separados que precisam ser atualizados juntos. Depois que todo o grupo foi construído, executamos uma suíte de teste virtualizada para garantir que nenhum dos nossos principais componentes e fluxos de trabalho dos desenvolvedores estejam quebrados. Cada grupo é testado separadamente com uma instalação completa de instalação, inicialização e suíte de teste local executada nessa versão do sistema operacional. Enquanto as compilações para pacotes individuais geralmente são concluídas em minutos, esses testes podem levar até uma hora, dada a complexidade do grupo de pacotes.
Depois que os pacotes são construídos e todos os testes passados, mesclamos todos os novos pacotes com nosso último pool de pacotes. Quando reduzimos um novo lançamento, instantâneos que se acumulamos com cada versão do pacote bloqueada para esse lançamento. Em seguida, prosseguimos para guiar cuidadosamente esta liberação para a frota, utilizando princípios de SRE, como Canarying Incremental e monitorar a saúde da frota.
Mas nem todas as construções têm sucesso na primeira tentativa. Se um pacote não conseguir construir, geralmente verificamos bugs conhecidos com o rastreador de insetos do Debian e potencialmente o relatam, caso ainda não seja conhecido. Às vezes, nossos engenheiros de liberação precisam se tornar criativos e aplicar soluções/patches locais para obter um pacote para construir dentro do nosso ecossistema e, mais tarde, soltar essas soluções alternativas quando a Upstream lançar uma correção.
Uma questão que encontramos algumas vezes, por exemplo, é que, no Debian Upstream, os pacotes geralmente são construídos em Debian Instable. Depois de alguns dias, esses pacotes já construídos migram para os testes do Debian. Em alguns casos, é possível, no entanto, que uma dependência de construção esteja presa em instável e, assim, construir dentro dos testes, ainda não é possível. Geralmente tentamos trabalhar a montante primeiro nesses casos, por isso reduzimos a complexidade e a carga de manutenção para manter esses patches locais, além de devolver à comunidade.
Se alguma das etapas falharem, a peneira tem uma caixa de ferramentas de truques para tentar novamente as compilações. Por exemplo, quando inicia a construção inicial de um grupo de pacotes, o sistema faz um palpite educado sobre quais dependências precisam ser construídas juntas. Mas às vezes as informações da versão fornecidas nos pacotes de origem do Debian podem ser incompletas e esse palpite está errado. Por esse motivo, peneiram periodicamente grupos de construção que falharam. Como o instantâneo mais recente de nossos pacotes é um alvo em movimento, pode acontecer que, depois que um grupo de pacotes aparentemente independente é adicionado ao instantâneo, um grupo anteriormente quebrado constrói e passa os testes corretamente. Todos esses fluxos de trabalho são principalmente automáticos e isso destaca a importância de pensar como um SRE neste campo. Ao enfrentar um fracasso, geralmente parece mais fácil corrigir uma construção falhada uma vez, mas se precisarmos aplicar a mesma solução alternativa repetidamente, colocar a solução alternativa no código reduzirá a carga geral em nossos engenheiros.
Existem também alguns benefícios de segurança em construir todos os nossos binários a partir da fonte e ter uma proveniência adicional do código -fonte que verifica a origem do binário em execução. Durante um incidente de segurança, por exemplo, somos capazes de reconstruir rapidamente e confiar na construção trabalhando com um patch temporário, pois estamos construindo todos os pacotes antes, que aterrissa em nossa distribuição. Além disso, também reduzimos o envelope de confiança que precisamos colocar em Debian a montante e os artefatos de construção binária produzidos por sua infraestrutura. Em vez disso, uma vez que o código -fonte é ingerido e o binário construído verificamente, podemos atestar criptograficamente que o binário em execução se originou exatamente desse código -fonte.
Atualizando para Rodete
O último lançamento do Goobuntu foi baseado no Ubuntu 14.04 LTS (Codename Trusty). O desenvolvimento de Rodete começou em 2015 e ficou rapidamente claro que não podíamos’T Apenas solte suporte para confiabilidade e exige que toda a população de engenharia instale uma nova distribuição. Desde a experiência anterior de atualizar no local entre as versões LTS, já tivemos uma boa experiência de saber o que nos esperava com essa migração. Como o Ubuntu é um derivado do Debian e usa muitas das mesmas infraestruturas/formatos de embalagem (APT), não foi’Uma ideia totalmente louca de atualizar a frota do goobuntu 14.04 para o Debian no local. Reutilizamos algumas partes da nossa ferramenta de atualização anterior no local e trabalhamos para torná-la mais confiável, adicionando mais automação e muito mais testes.
Para facilitar a criação dessa ferramenta, testá -la e mantê -la durante a migração, optamos por congelar temporariamente Glinux Rodete como um instantâneo de testes debian em uma data específica que chamamos de linha de base. Podemos avançar nessa linha de base por conta de nossa própria escolha, para equilibrar o que os pacotes peneiram ingestões. Para reduzir o atrito, estabelecemos intencionalmente a linha de base de Rodete no atual lançamento estável do Debian em 2016, que estava muito mais próximo do estado geral do Ubuntu Trusty. Dessa forma, poderíamos separar a atualização no local de confiança para o Debian e as principais alterações da versão do pacote que aconteceram no Debian em uma data posterior.
Em 2017, começamos a migrar as máquinas para Rodete e concluímos o último migração no local até o final de 2018. No entanto, ainda tínhamos uma linha de base de pacotes que naquele momento datavam quase dois anos no passado. Para acompanhar os testes do Debian, iniciamos um esforço de equipe para focar em otimizar o comportamento da peneira e acelerar o tempo necessário para criar / testar pacotes. Reparar as atualizações dessa maneira incremental e ter um alvo de lançamento em movimento que controlamos aliviou a carga de trabalho para os engenheiros do Google e nossa equipe.
No início de 2019, começamos a fechar os últimos restos de Goobuntu Machines. Nossa linha de base também avançou apenas para trás por ~ 250 dias, o que na época significava que estávamos usando a maioria das versões do pacote que faziam parte do Buster. Em meados de 2020, finalmente alcançamos completamente o mesmo tempo quando o Bullseye Debian foi lançado. Continuamos a avançar em nossa linha de base e provavelmente já estaremos usando uma versão semelhante do próximo lançamento estável do Debian, antes de seu lançamento em meados de 2023.
Chegando ao zen
Hoje, a vida de um membro da equipe do Glinux parece muito diferente. Reduzimos a quantidade de tempo e energia de engenharia necessários para lançamentos para um engenheiro de liberação de serviço que gira entre os membros da equipe. Não temos mais um grande empurrão para atualizar toda a nossa frota. Não há mais necessidade de alfa, betas e gás multi -estágios para novos lançamentos de LTS, enquanto perseguia máquinas mais antigas que ainda estavam executando o Ubuntu Precise ou Lucid.
Também melhoramos dramaticamente nossa posição de segurança, operando nossa frota mais próxima de lançamentos upstream. Enquanto Debian fornece uma boa fonte de patches de segurança para as faixas estáveis e antigas, percebemos que nem todos os buracos de segurança que recebem patches, necessariamente tem um consultor de segurança do Debian (DSA) ou número CVE. Nosso cronograma de lançamento rolante garante que corrigimos os orifícios de segurança em toda a frota rapidamente, sem comprometer a estabilidade, enquanto os engenheiros de segurança anteriormente tinham que revisar cuidadosamente cada DSA e garantir que a correção chegasse à nossa frota.
Nosso conjunto de testes aprimorado e testes de integração com equipes parceiras -chave que executam sistemas críticos de desenvolvedores também produziram uma experiência mais estável usando uma distribuição Linux que fornece as versões mais recentes do kernel Linux. Nosso forte desejo de automatizar tudo no pipeline reduziu significativamente o trabalho e o estresse dentro da equipe. Agora também é possível relatar insetos e incompatibilidades com outras versões da biblioteca, garantindo que as ferramentas do Google funcionem melhor no ecossistema Linux.
Se você estiver interessado em fazer um sucesso em sua empresa, considere equilibrar as necessidades da empresa contra a agilidade de atualização. Estar no controle de nosso próprio alvo em movimento e linha de base ajudou a desacelerar sempre que encontramos muitos problemas e quebraram qualquer um de nossos times SLOS. Nossa jornada acabou reforçando nossa crença de que as mudanças incrementais são melhor gerenciáveis do que as liberações do Big Bang.
Se você é capaz de controlar o influxo de novos trabalhos e manter isso previsível, tornamos a experiência de que nossos engenheiros permanecem mais felizes e estão menos estressados. Isso acabou diminuindo a agitação da equipe e garantiu que possamos construir conhecimentos em vez de lidar com vários incêndios em chamas ao mesmo tempo.
No futuro, estamos planejando trabalhar ainda mais de perto com o Debian Upstream e contribuir com mais de nossos patches internos para manter o ecossistema de pacotes do Debian.
- Desenvolvedores e praticantes
- Sistemas
- DevOps & Sre
A história por trás do Google’S Linux da área de trabalho interno
Se você olhar em torno dos escritórios da Mountain View, da CA do Google, verá máquinas Windows, Chromebooks, Macs – e Glinux Desktops. G o que você pergunta? Bem, além de confiar no Linux para seus servidores, o Google tem sua própria distribuição de desktop Linux.
Você não consegue entender – maldito! – Mas há mais de uma década, o Google está assando e comendo sua própria distribuição caseira de desktop linux. A primeira versão foi Goobuntu. (Como você imagina do nome, foi baseado no Ubuntu.)
Em 2018, o Google mudou seu desktop de Linux interno do Goobuntu para uma nova distro Linux, o Glinux, com sede no Debian. Por que? Porque, como explicou o Google, o lançamento de dois anos do Ubuntu’s Long Term Support (LTS) “significava que tínhamos que atualizar todas as máquinas em nossa frota de mais de 100.000 dispositivos antes da data de final de vida do OS.”
Isso foi uma dor. Adicione a necessidade demorada de personalizar totalmente os PCs dos engenheiros, e o Google decidiu que custou muito. Além disso, o “esforço para atualizar nossa frota goobuntu geralmente levou a maior parte de um ano. Com uma janela de apoio de dois anos, restou apenas um ano até que tivéssemos que passar pelo mesmo processo de novo para o próximo LTS. Todo esse processo foi um enorme fator de estresse para nossa equipe, pois obtivemos centenas de insetos com pedidos de ajuda para casos de canto.”
Então, quando o Google teve o suficiente disso, ele se mudou para o Debian Linux (embora não apenas Vanilla Debian). A empresa criou uma distribuição rolante do Debian: Glinux Rolling Debian Testing (Rodete). A idéia é que usuários e desenvolvedores sejam mais bem servidos, dando a eles as últimas atualizações e patches, conforme são criados e considerados prontos para a produção. Tais distribuições incluem Arch Linux, Debian Testing e OpenSuse Tumbleweed.
Para o Google, o objetivo imediato era sair do ciclo de atualização de dois anos. Como a mudança para a integração contínua/implantação contínua (IC/CD) mostrou, essas mudanças incrementais funcionam bem. Eles também são mais fáceis de controlar e reverter se algo der errado.
Para fazer tudo isso funcionar sem muito sangue, suor e lágrimas, o Google criou um novo sistema de fluxo de trabalho, peneira. Sempre que peneira vê uma nova versão de um pacote Debian, ele inicia uma nova compilação. Esses pacotes são construídos em grupos de pacotes, uma vez que pacotes separados geralmente devem ser atualizados juntos. Depois que todo o grupo foi construído, o Google executa um conjunto de testes virtualizado para garantir que nenhum componente principal e fluxos de trabalho do desenvolvedor sejam quebrados. Em seguida, cada grupo é testado separadamente com uma instalação completa do sistema, inicialização e pacote de testes local, execução. O pacote aumenta em minutos, mas os testes podem levar até uma hora.
Uma vez feito isso, todos os novos pacotes são fundidos com o mais novo pool de pacotes Glinux. Então, quando o Google decide que é hora de lançá -lo em produção, os instantâneos da equipe que piscina. Finalmente, ele lançou o novo lançamento para a frota. Claro, isso’não vai apenas despejar nos usuários. Em vez disso, ele usa princípios de engenharia de confiabilidade do site (SRE), como Canarying incremental para garantir que nada dê errado.
Ao longo dos anos, o Google ficou melhor nisso. Hoje, graças ao Sieve, toda a equipe de desenvolvimento do Glinux consiste em uma única posição de engenheiro de lançamento em serviço que gira entre os membros da equipe. Não há grandes empurrões para atualizar a frota. Não há versões alfa, betas e disponibilidade geral de vários estágios (GA).
Melhor ainda, graças ao cronograma de lançamento, o Google pode consertar os orifícios de segurança em toda a frota rapidamente, sem comprometer a estabilidade. Anteriormente, os engenheiros de segurança tinham que revisar cuidadosamente cada Advisory de Segurança Debian (DSA) para garantir que a correção estivesse em.
Além disso, o “suíte de teste aprimorado do Google e os testes de integração com equipes parceiras que executam sistemas críticos de desenvolvedores também produziram uma experiência mais estável usando uma distribuição Linux que fornece as mais recentes versões do kernel Linux. Nosso forte desejo de automatizar tudo no pipeline reduziu significativamente o trabalho e o estresse dentro da equipe. Agora também é possível relatar insetos e incompatibilidades com outras versões da biblioteca, garantindo que as ferramentas do Google funcionem melhor no ecossistema Linux.”
Olhando para o futuro, a equipe do Google declarou que isso’Funciona “mais de perto com o Debian Upstream e contribua com mais de nossos patches internos para manter o ecossistema de pacotes do Debian.”
Tudo isso parece ótimo. Mas eu tenho dois pensamentos para compartilhar.
Primeiro, para algumas organizações, os lançamentos do LTS ainda fazem sentido. Se você não precisa dos programas mais novos e brilhantes para o seu negócio, um Ubuntu ou Red Hat LTS Linux ainda faz sentido.
Segundo, e este é o importante: peneira soa como o miau do gato. Um programa que pode automatizar um pipeline de produção de distração rolante até o ponto em que leva apenas um engenheiro para manter uma área de trabalho usada por mais de 100.000 usuários? Inscreva -me!
Melhor ainda, libere o código do Sieve para que todos possamos começar a produzir lançamentos de desktop linux rolling. Que tal isso, Google? O que você diz?
- Desktop Linux
Copyright © 2022 IDG Communications, Inc.
A verdade sobre Goobuntu: o Google’s Interno Desktop Ubuntu Linux
San Diego, CA: A maioria das pessoas do Linux sabe que o Google usa o Linux em seus desktops, bem como seus servidores. Alguns sabem que o Ubuntu Linux é a área de trabalho do Google e que se chama Goobuntu. Mas quase ninguém fora do Google sabia exatamente o que estava nele ou em que papéis o Ubuntu Linux interpreta no campus do Google, até agora.
Hoje, 29 de agosto, Thomas Bushnell, líder tecnológica do grupo que gerencia e distribui o Linux aos desktops corporativos do Google revelados Goobuntu de atrás da cortina do Google no Linuxcon, a conferência técnica anual da Fundação Linux, primeiro as coisas, você pode baixar o Goobuntu para executar você mesmo? Bem sim e não.
Bushnell explicou isso “Goobuntu é simplesmente uma pele clara sobre o ubuntu padrão.” Em particular, o Google usa o mais recente suporte a longo prazo (LTS) do Ubuntu. Isso significa que se você baixar uma cópia da versão mais recente do Ubuntu, 12.04.1, você, para os propósitos mais práticos, estará executando Goobuntu.
O Google usa as versões LTS porque os dois anos entre os lançamentos são muito mais viáveis do que o ciclo de seis meses de lançamentos comuns do Ubuntu. Além disso, o Google também tenta atualizar e substituir seu hardware a cada dois anos, para que sincronize bem também.
Por que o Ubuntu, em vez de dizer Macs ou Windows? Bem, você pode executar isso também. Bushnell disse, “Os Googlers [funcionários do Google] são convidados a usar as ferramentas que funcionam para eles.. Se o Gmail não quiser funcionar para eles, eles podem usar o Pine [um cliente de e-mail baseado em caráter do Unix Shell, tudo bem. As pessoas não são obrigadas a usar o Ubuntu.” Mas, o uso de goobuntu é encorajado e “Todas as nossas ferramentas de desenvolvimento são para o Ubuntu.”
Os Googlers devem pedir para usar o Windows porque “O Windows é mais difícil porque possui problemas de segurança “especiais”, por isso requer permissão de alto nível antes que alguém possa usá-lo.” Além disso, “As ferramentas do Windows tendem a ser pesadas e inflexíveis.”
Dito isto, Bushnell foi perguntado por que o Ubuntu, em vez de dizer Fedora ou OpenSuse? Ele respondeu, “Escolhemos o Debian porque pacotes e APT [programas básicos de pacote de software do Debian] estão anos-luz à frente do RPM (Red Hat e Suse de gerenciamento de pacotes padrão do SUSE.]” E, por que o Ubuntu sobre as outras distribuições Linux baseadas no Debian? “Porque a cadência de lançamento é incrível e canônica [empresa -mãe do Ubuntu] oferece um bom suporte.”
Sim está certo. O Google não usa apenas o Ubuntu e contribui para o seu desenvolvimento, o Google é um cliente pagador do programa de suporte do Ubuntu Advantage da Canonical. Chris Kenyon, vice -presidente de vendas e desenvolvimento de negócios da Canonical, e esteve presente na palestra de Bushnell confirmou isso e acrescentou que “O Google não é o nosso maior cliente de desktop de negócios.”
Então, e a própria área de trabalho? Todos são necessários para usar o Unity, o popular mas controverso desktop do Ubuntu? Não.
Quando perguntado sobre o uso da unidade, disse Bushnell, “Unidade? Aborrecedores que vão odiar. Nossos usuários de desktop estão em todo o mapa quando se trata de suas interfaces. Alguns usam gnome, outros usam kde, outros usam x-window e x-terms. Alguns querem unidade porque isso os lembra do mac. Vemos os amantes do Mac se movendo para a unidade.” Não há interface goobuntu padrão.
O que existe, porém, são “dezenas de milhares de usuários do Goobuntu. Isso inclui designers gráficos, engenheiros, gerenciamento e pessoal de vendas. É uma comunidade muito diversificada. Alguns, como Ken Thompson, ajudaram a criar o Unix e outros não sabem nada sobre computadores, exceto como usar seu aplicativo.”
Para gerenciar todos esses desktops Goobuntu, o Google usa ferramentas de administração APT e Puppet Desktop. Isso dá ao Google Desktop Management Team o poder de controlar e gerenciar rapidamente seus PCs. Isso é importante porque, “Uma única reinicialização pode nos custar um milhão de dólares por instância.”
Dito isto, problemas de mesa, mesmo no Linux, acontecerão. Como Bushnell disse “Esperança não é uma estratégia. A maioria das pessoas espera que as coisas não falhem. Esperando que os computadores não falhem, você morra algum dia algum dia. Seu PC vai cair algum dia. Você tem que projetar para falha.”
É aqui que aparece o ‘molho especial’ de Goobuntu. Nos desktops do Google, “O monitoramento ativo é absolutamente crítico. No Google, temos demandas desafiadoras, estamos sempre empurrando as estações de trabalho para seus limites e trabalhamos com ciclos de desenvolvimento rapidamente em movimento.”
Além disso, o Google tem requisitos de segurança muito estritos. Como Bushnell observa, “Google é um alvo que todo mundo quer nos hackear.” Portanto, alguns programas que fazem parte da distribuição do Ubuntu são proibidos como possíveis riscos de segurança. Isso inclui qualquer programa “Isso chama de lar” para um servidor externo. Além disso, o Google usa sua própria autenticação proprietária de rede de usuários de usuário de usuário que Bushnell diz ser “Empurrando o estado da arte em autenticação de rede, porque somos uma meta de segurança de alto perfil.”
Junte tudo: a necessidade de segurança de primeira linha, desempenho de PC de ponta e flexibilidade para atender às necessidades de desktop de desenvolvedores de gênio e representantes de vendas recém-contratados, e não é de admirar que o Google use o Ubuntu para seu sistema operacional de desktop de escolha de escolha. Para citar, Bushnell, “Você seria um tolo para usar qualquer coisa, menos Linux.”
Histórias relacionadas:
Por que executar o Linux no Google Cloud?
As empresas na nuvem têm muito a sua vontade: aumento da agilidade, adaptabilidade, flexibilidade e confiabilidade – que facilita muito a curva da curva. A combinação de infraestrutura local com serviços em nuvem pode dar uma nova vida aos processos existentes e aumentar o número de ferramentas e tecnologias à sua disposição.
Parece ótimo, certo? É – mas primeiro, você precisa considerar sua escolha de provedor de nuvem e sistema operacional. Quais forneceriam a melhor base para construir seu ambiente híbrido em nuvem, enquanto ainda permite a flexibilidade de adotar os serviços e tecnologias que você deseja?
Linux e Google Cloud Platform são uma forte combinação para mover sua empresa para a nuvem e para o futuro. Deixar’s Dê uma olhada em cada um antes de aprender o que os faz se destacar como uma equipe.
Como o Linux e o Google Cloud Platform funcionam juntos
Plataforma do Google Cloud
Plataforma do Google Cloud, como a Amazon’S AWS e Microsoft Azure, são uma plataforma de nuvem pública e faz parte do Google Cloud, que é construída no Google’s infraestrutura global. O Google Cloud fornece serviços em nuvem e ferramentas de gerenciamento – VIA o Google Cloud Console – que entrega tudo o que é necessário para criar ambientes de nuvem e multicloud eficazes, implantar aplicativos e APIs e suportar cargas de trabalho em ambientes.
A plataforma do Google Cloud possui as ferramentas e recursos focados em segurança para permitir que sua empresa aproveite todos os benefícios da computação em nuvem com uma estratégia clara (Google Cloud Multicloud Solutions), toma decisões com base em empresas precisas e atualizadas da empresa e das informações de inventário (análise de dados), além de transformar como as equipes se comunicam e se comunicam (Google Google Workspace).
O Google Cloud inclui o Google Cloud Platform, além de um conjunto de produtos e ferramentas como o Google Cloud Storage (armazenamento de objetos), Google Cloud DataStore (banco de dados NoSQL), funções do Google Cloud (plataforma de computação orientada a eventos como serviço), Google Compute Engine ou GCE (máquinas virtuais em execução no Google’s Data Center) e Google App Engine (plataforma de aplicativo sem servidor) – bem como muito mais.
Linux foR Computação em nuvem
Linux é um sistema operacional de código aberto. Devido ao seu modelo de desenvolvimento de código aberto, o Linux é ideal para a computação em nuvem, pois permite que as empresas escolham as plataformas e tecnologias que melhor atendem às suas necessidades e propósitos, além de permitir a escolha de serviços e fornecedores necessários, evitando assim despesas desnecessárias e bloqueio de fornecedores. Com o Linux for Cloud Computing, você obtém todos os benefícios do Linux para implantações tradicionais de TI com flexibilidade de crescer usando tecnologias mais recentes como Kubernetes, AI/ML e Computação de Edge. Por esses motivos, o Linux continua sendo a principal escolha do sistema operacional na computação em nuvem.
Melhor juntos: benefícios da execução do Linux na plataforma do Google Cloud
O Google Cloud Platform é construído no Linux e trabalha com várias distribuições Linux, como CentOS, Ubuntu e Red Hat Enterprise Linux. A natureza de código aberto de um sistema Linux com a plataforma do Google Cloud significa que os usuários obtêm os seguintes benefícios:
- Flexibilidade de fornecedores e serviços
- Migração mais fácil de aplicações e informações
- Consistência de informações e processos nas pegadas
- A inovação de uma estrutura de código aberto e comunidade
Basicamente, um forte provedor de nuvem em uma fundação Linux estabelecida significa que sua estratégia de nuvem corporativa está indo na direção certa.
Benefícios do Red Hat Enterprise Linux na plataforma do Google Cloud
Adotar uma abordagem híbrida ou multicloud pode ser desafiadora – especialmente quando você’eu é usado em hardware legado e infraestrutura tradicional. Mas o provedor de serviços em nuvem certo e a distribuição Linux fornecem um início sólido. Com o Red Hat® Enterprise Linux® na plataforma do Google Cloud, você tem a base para uma estratégia em nuvem que o levará aonde você quiser. E porque o Red Hat Enterprise Linux é executado no Google, assim como todo o resto do Red Hat’s produtos.
Red Hat Enterprise Linux e Google Cloud Platform Ajuda simplificar sua plataforma de infraestrutura, acelerar o desenvolvimento e entrega de aplicativos e incorporar automação para seus processos de negócios e gerenciamento, para que você possa inovar mais rapidamente e se adaptar às mudanças da indústria, regulatória e global com um ambiente de nuvem híbrida ágil.
E aqui’s Outra coisa-o Red Hat Enterprise Linux for SAP Solutions no Google Cloud é uma plataforma de alto desempenho para operações de banco de dados que inclui conteúdo e recursos específicos do SAP e permite que as organizações implantem SAP em ambientes de nuvem híbridos. Red Hat Enterprise Linux é uma das duas distribuições Linux certificadas para uso com SAP HANA® e SAP S/4HANA®.
Com configuração flexível, código aberto e base focada em segurança, infraestrutura de rede global e gerenciamento e análise de dados avançados, Red Hat e Google Cloud oferecem as funções e recursos necessários para criar e operar ambientes híbridos e multicloud de maneira eficaz e eficiente. Cada componente oferece funcionalidade e valor-chave e um ambiente operacional confiável e de alto desempenho para suas cargas de trabalho e aplicativos em infraestrutura física, virtualizada, contêinerizada, baseada em nuvem e de borda.