요약

이 기사에서는 Google Cloud 플랫폼에서 Linux를 실행하는 이유를 탐색합니다. 또한 Linux를 내부적으로 사용하기로 한 Google의 결정에 대한 이유와 기존 업그레이드에 직면 한 문제도 있습니다. 그런 다음 Google이 Debian을 기반으로 Glinux Rodete와 함께 Rolling 릴리스를 구현 한 방법과 운영에 대한 이점에 대해 논의합니다.

키 포인트:

  1. Google은 Linux를 포함한 다양한 OS 플랫폼을 사용하여 YouTube 및 Gmail을 포함한 대규모 생산 차량을 운영합니다.
  2. 오랫동안 Google의 내부 Linux 배포 인 Goobuntu는 Ubuntu LTS 릴리스를 기반으로했습니다.
  3. LTS의 2 년 업그레이드주기는 10 만 개가 넘는 기기의 Google 함대에 대한 문제가 발생했습니다.
  4. 업그레이드 프로세스를 자동화하기 위해 Google은 수동 구성을 최소화하는 무인 내장 업그레이드 도구를 개발했습니다.
  5. 업그레이드 프로세스는 일반적으로 거의 1 년이 걸렸으며 팀의 스트레스 수준이 높고 소진되었습니다.
  6. LTS 버전을 사용하면 일부 버그 수정 및 개선 사항이 백포링되지 않았을 수 있습니다.
  7. 업그레이드 프로세스의 복잡성 및 기간에 추가 된 특수 사례 업그레이드 및 변경 관리 문제.
  8. 이러한 문제를 해결하기 위해 Google은 데비안 테스트를 기반으로 Glinux Rodete와의 롤링 릴리스로 전환했습니다.
  9. 롤링 릴리스는 2 년주기가 아니라 워크로드를 퍼뜨리고 더 작은 증분 변화를 허용했습니다.
  10. 데비안, 데비안 커뮤니티 및 기존 내부 패키지의 패키지 가용성은 데비안의 선택에 기본 배포로 영향을 미쳤습니다.

질문:

  1. Google은 어떤 플랫폼을 실행합니까??
  2. Google은 YouTube 및 Gmail과 같은 플랫폼에서 대규모 프로덕션 함대를 운영합니다. 또한 여러 플랫폼, 모델 및 위치에 수십만 개의 장치가있는 회사 함대가 있습니다.

  3. Google이 내부 Linux 배포의 기반으로 Ubuntu를 선택한 이유?
  4. Google은 사용자 친화적이고 사용하기 쉬우 며 2 년 이상의 보안 업데이트로 장기 지원 (LTS) 릴리스를 제공했기 때문에 내부 Linux 배포로 Ubuntu를 선택했습니다.

  5. LTS의 2 년 업그레이드주기와 함께 Google은 어떤 과제에 직면 했습니까??
  6. Google 함대의 워크로드의 복잡한 특성으로 인해 업그레이드 할 때마다 기계의 재개 및 사용자 정의가 어렵고 시간이 많이 걸리는 작업을 수행했습니다. 이것은 재정적으로 지속 가능하지 않았으며 엔지니어는 2 년마다 처음부터 작업 공간을 구성해야했으며 생산성이 떨어졌습니다.

  7. Google은 업그레이드 프로세스를 어떻게 자동화 했습니까??
  8. Google은 업그레이드 프로세스 중 공동 사례 문제를 자동화하는 무인 내장 업그레이드 도구를 개발했습니다. 이 도구는 엔지니어가 기계를 다시 설치하고 모든 구성을 재현하여 기계를 수동으로 업그레이드하지 못하도록 저장했습니다.

  9. LTS 버전이 Google 팀에게 스트레스가 많은 이유?
  10. Goobuntu 함대를 업그레이드하는 데 거의 1 년이 걸렸으며 다음 업그레이드까지 짧은 가동 중지 시간 만 남았습니다. 이 지속적인 업그레이드주기는 팀에게 스트레스가 많은 환경을 조성하여 소진 감으로 이어졌습니다. 버그 및 도움 요청도 작업 부하에 추가됩니다.

  11. Google이 롤링 릴리스로 전환 한 동기는 무엇입니까??
  12. Google은 2 년간의 업그레이드주기를 따르는 대신 워크로드를 확산시키고 더 작은 증분 변경을 허용했습니다. Linux 배포판을 사용한 롤링 릴리스는 작은 변경 사항이 더 쉽게 제어 및 롤백으로 나타나는 것으로 나타났습니다.

  13. Google이 롤링 릴리스 배포를 위해 Debian을 선택한 이유?
  14. Google은 롤링 릴리스 분포 인 Glinux Rodete로 데비안을 선택했습니다. 기존 내부 패키지 및 툴링도 Debian 형식을 사용했습니다.

  15. 데비안의 테스트 트랙은 어떤 장점을 제공합니까??
  16. 데비안의 테스트 트랙은 롤링 릴리스로 작동하여 업스트림에서 섭취하고 제작 된 모든 패키지의 풀을 제공합니다. 이를 통해 Google은 더 많은 세분화 된 변경을 받고 더 이상 대기 기간없이 엔지니어에게 최신 소프트웨어를 제공 할 수 있습니다.

  17. 롤링 릴리스 배포로 Google 릴리스가 얼마나 자주 업데이트됩니까??
  18. Google은 처음에는 더 자주 릴리스를 위해 의도했지만 주간 릴리스가 빠르게 이동하는 것과 적절한 출시 자격을 허용하는 것 사이의 균형을 맞았다는 것을 발견했습니다. 이를 통해 개발자 생산성의 혼란을 제한하는 데 도움이되었습니다.

  19. 롤링 릴리스 프로세스에서 원활한 릴리스를 보장하기 위해 Google이 어떤 접근 방식을 취 했습니까??
  20. Google은 새 릴리스를 시작할 때 데비안에서 섭취 한 모든 패키지의 스냅 샷을 가져옵니다. 수락 테스트 후, 밀폐 릴리스 후보는 추가 테스트를 위해 선택한 사용자 그룹에게 조심스럽게 출시됩니다.

답변:

  1. Google은 YouTube 및 Gmail과 같은 제품을 제공하는 대규모 생산 차량을 운영합니다. 또한 다양한 플랫폼, 모델 및 위치에서 수십만 개의 장치가 작동하는 회사 함대가 있습니다. 엔지니어를 포함한 직원을 지원하기 위해 Google은 Linux를 포함한 여러 OS 플랫폼을 사용하여 운영합니다. 2018 년 Google은 Debian을 기반으로 롤링 릴리스 모델로의 전환을 완료했습니다.
  2. Google은 Ubuntu를 사용자 친화적이고 사용하기 쉽고 2 년 이상의 보안 업데이트로 장기 지원 (LTS) 릴리스를 제공했기 때문에 내부 Linux 배포의 기반으로 선택했습니다. 이 LTS 릴리스는 Google의 장치 차량에 대한 안정성 및 정기 보안 업데이트를 제공했습니다.
  3. LTS의 2 년 업그레이드주기는 Google에 대한 문제가 발생했습니다. 차량에 10 만 개가 넘는 장치를 사용하여 OS의 수명 종료 날짜 이전에 각 기계를 수동으로 업그레이드하고 사용자 정의하면 시간이 많이 걸리고 재정적으로 실현 가능하지 않습니다. 회사 기계에 대한 워크로드의 복잡한 특성은 업그레이드 프로세스를 더욱 복잡하게 만들었습니다.
  4. 업그레이드 프로세스를 자동화하고 수동 구성을 최소화하기 위해 Google은 무인 내 업그레이드 도구를 개발했습니다. 이 도구는 업그레이드 중 공동 케이스 문제를 자동화하는 데 중점을 두었고 엔지니어는 기계를 다시 설치하고 모든 구성을 수동으로 재현하지 못하도록 저장했습니다.
  5. LTS 버전을 실행하는 것은 업그레이드 프로세스에 필요한 광범위한 시간과 노력으로 인해 Google 팀에게 스트레스가 많았습니다. 업그레이드 사이의 1 년 기간으로 팀은 지속적인 업그레이드 및 버그 수정주기를 경험했습니다. 이 스트레스가 많은 환경은 종종 팀원들 사이에서 번 아웃으로 이어졌습니다.
  6. 롤링 릴리스로의 Google 전환의 동기 부여는 작업량을 확산시키고 더 작은 증분 변화를 허용하는 것이 었습니다. 이 접근법은 CI/CD의 업계 트렌드와 일치하며 크고 드물게 업그레이드하는 대규모 업그레이드에 비해 작은 변화가 더 쉽게 제어되고 롤백이 더 쉽다는 것을 보여주었습니다.
  7. Google은 Debian을 롤링 릴리스 배포의 기반으로 선택했습니다. Glinux Rodete. 이 결정은 데비안의 패키지 가용성, 대규모 데비안 커뮤니티 및 데비안 형식을 사용한 기존 내부 패키지 및 툴링의 호환성을 포함하여 다양한 요인에 의해 영향을 받았습니다.
  8. 데비안의 테스트 트랙은 Google의 롤링 릴리스 배포에 몇 가지 장점을 제공합니다. 테스트 트랙은 롤링 릴리스로 작동하며 업스트림에서 끊임없이 섭취하고 패키지를 구축합니다. 이를 통해 Google은 더 빈번하고 세분화 된 변경을 수행하여 엔지니어가 대기 기간이 길지 않고 최신 소프트웨어에 액세스 할 수 있도록합니다.
  9. Google은 처음에 롤링 릴리스 배포로보다 빈번한 릴리스를 위해 의도했지만 나중에 주간 릴리스에 정착했습니다. 주간 릴리스는 빠르게 이동하는 것과 적절한 릴리스 자격을 허용하여 개발자 생산성에 대한 혼란을 최소화하는 것 사이의 균형을 잡았습니다.
  10. 롤링 릴리스 프로세스에서 원활한 릴리스를 보장하기 위해 Google은 새 릴리스가 시작될 때 데비안에서 섭취 한 모든 패키지의 스냅 샷을 가져옵니다. 수락 테스트 후, 밀폐 릴리스 후보는 추가 테스트를 위해 선택된 사용자 그룹에게 조심스럽게 출시되어 점진적이고 제어 된 릴리스를 보장합니다.

Google Cloud에서 Linux를 실행하는 이유는 무엇입니까?

Linux 및 Google Cloud 플랫폼은 엔터프라이즈를 클라우드로 그리고 미래로 옮기는 강력한 조합입니다. 허락하다’s 팀으로서 눈에 띄게 만드는 것을 배우기 전에 각각을 살펴보십시오.

Google은 Linux에서 실행됩니다

영웅 이미지 크레디트 : Markus Teich

Google에서는 YouTube 및 Gmail과 같은 Google 제품에 서비스를 제공하는 대형 생산 차량을 운영합니다. 엔지니어를 포함한 모든 직원을 지원하기 위해 여러 플랫폼, 모델 및 위치에 걸쳐 수십만 개의 장치가있는 상당한 기업 함대를 운영합니다. 각 Googler가 가장 생산적인 환경에서 작동하도록하기 위해 Linux 시스템을 포함하여 많은 OS 플랫폼을 운영합니다. 오랫동안 우리의 내부 직면 Linux 배포 인 Goobuntu는 Ubuntu LTS 릴리스를 기반으로했습니다. 2018 년에 우리는 데비안을 기반으로 롤링 릴리스 모델로의 이동을 완료했습니다.

업그레이드 수고

15 년 전, Ubuntu는 사용자 친화적이고 사용하기 쉬우 며 멋진 엑스트라가 많이 있었기 때문에 내부 Linux 배포의 기반으로 선정되었습니다. LTS (장기 지원) 릴리스는 2 년 이상의 보안 업데이트를 제공 한 것으로 평가되었습니다.

그러나 LTS 릴리스에 대한이 2 년 릴리스주기는 또한 100 개가 넘는 차량의 모든 기계를 업그레이드해야했습니다.OS의 수명 종료 날짜 이전의 000 장치. 기업 기계에서 실행되는 복잡한 워크로드 특성은 기계를 다시 설치하고 완전히 사용자 정의하는 것이 어렵고 시간이 많이 걸리는 작업 일 수 있음을 의미했습니다. 모든 엔지니어가 2 년마다 처음부터 작업 공간을 구성하게하는 생산성은 재정적으로 책임이있는 옵션이 아닙니다.

각 OS주기마다 소프트웨어 구성에 중대한 변경이 필요할 수있는 주요 패키지에서 다소 큰 버전 점프가있었습니다. 이 프로세스를 자동화하기 위해 많은 공동 사례 문제를 처리하는 무인 내 업그레이드 도구를 작성했습니다. 이 자동화 중심 접근 방식은 대부분의 Google 직원이 기계를 다시 설치하고 모든 구성을 재현하여 기계를 수동으로 업그레이드 할 필요가 없음을 의미했습니다. 그러나이를 가능하게하려면 업그레이드 프로세스에 대한 포괄적 인 테스트를 수행하고 변경된 모든 주요 패키지가 계속 작동하는지 확인해야했습니다 (Ubuntu에서는 주요 버전간에 업그레이드 할 수있는 수천 패키지가 될 수 있습니다). 때로는 감가 상징이 발생한 경우 자동화를 제공하기가 어려웠고 엔지니어는 앞으로 나아가는 방법에 대한 결정을 내려야했습니다.

Goobuntu 함대를 업그레이드하려는 이러한 노력은 보통 1 년의 더 나은 부분을 차지했습니다. 2 년의 지원 창이 있으면 다음 LTS를 위해 같은 과정을 다시 살펴볼 때까지 1 년 밖에 남지 않았습니다. 이 전체 프로세스는 코너 케이스에 대한 도움을 요청한 수백 개의 버그를 얻었 기 때문에 우리 팀의 큰 스트레스 요인이었습니다. 한 번의 업그레이드가 완료되면 일반적인 존재감이있었습니다 “번 아웃에 가깝습니다” 다음 업데이트가 시작될 때까지 거의 회복 할 수있는 팀에서. LTS 버전을 실행하는 것은 또한 유통 사용자가 발생하는 일부 버그가’VE는 이미 상류로 고정되었지만 이러한 개선은’VE는 LTS 버전으로 백포링 된 적이 없습니다.

특별한 사례 업그레이드의 긴 꼬리도있었습니다. 이 프로세스를 처리하는 것은 엔지니어가 그랬던 기계를 업그레이드 할 수 있도록하는 큰 변화 관리 과제였습니다’자동 프로세스에서 작동합니다. 사용자가 기계를 업그레이드하도록 동기를 부여 할 때 창의력을 발휘했습니다. UI, 메일, 메일, 예약 재부팅 및 기계를 종료하는 데 따른 조치는 여전히 업그레이드가 필요하지 않은 일부 기계가 있다는 인식을 높이는 것입니다. 때때로 이것은 사람들이 완전히 잊어 버린 기계를 잡았습니다.

롤링 릴리스

Glinux Rodete (Rolling Debian Testing)를 설계했을 때, 우리는 2 년 업그레이드주기를 제거하고 대신 시간이 지남에 따라 팀에 부하를 퍼뜨리는 것을 목표로했습니다. 업계에서 CI/CD로의 일반적인 이동은 더 작은 증분 변화가 통제 및 롤백이 더 쉽다는 것을 보여주었습니다. 오늘날 Linux 배포판으로 롤링 릴리스가 더 일반화되고 있습니다 (Arch Linux, Nixos).

우리는 다른 Linux 배포판을 고려했지만 다시 부드러운 내부 마이그레이션을 제공하고 싶었 기 때문에 데비안을 선택하게되었습니다. 여기에는 데비안, 대규모 데비안 커뮤니티의 패키지 가용성 및 데비안 형식을 사용하는 기존 내부 패키지 및 툴링에 대한 고려 사항이 포함되었습니다. 데비안 안정 트랙은 릴리스 사이의 대략 2 년의 점프를 따르는 반면, 데비안 테스트 트랙은 업스트림에서 섭취하고 구축 된 모든 패키지의 풀이기 때문에 롤링 릴리스로 작동하며 다음 안정적인 릴리스가 발생하기를 기다립니다.

업스트림 릴리스에서 테스트 가용성까지의 시간은 종종 며칠입니다 (데비안 안정적인 릴리스 전 동결 기간 동안 때때로 몇 달 뒤 지연 될 수 있습니다). 이것은 우리가 일반적으로 훨씬 더 세분화 된 변화를 얻고 더 긴 기간을 기다리지 않고 Google의 엔지니어들에게 최신 소프트웨어를 제공 할 수 있음을 의미합니다.

이 업데이트 빈도는 많은 시스템과 프로세스를 재 설계해야했습니다. 원래 더 자주 릴리스를 의도하는 동안, 우리는 주간 릴리스가 빠르게 이동하는 것과 적절한 출시 자격을 허용하는 것 사이의 달콤한 지점이라는 것을 발견했습니다.

새 릴리스를 시작할 때마다 당시 데비안에서 섭취 한 모든 패키지의 스냅 샷을 찍습니다. 수락 테스트 후, 새로운 헤르메틱 릴리스 후보는 전용 테스트 함대와 1% 함대 와이드 카나리아로 조심스럽게 출시됩니다. 카나리아는 전체 함대로 진행되기 전에 데비안 패키지 또는 Google 내부 패키지의 문제를 감지하기 위해 며칠 동안 의도적으로 개최됩니다.

체를 소개합니다

소스에서 모든 업스트림 패키지를 구축하여 이러한 복잡한 작업을 모두 관리하기 위해 Sieve라는 워크 플로 시스템을 구축했습니다. 새로운 버전의 데비안 패키지를 볼 때마다 새 빌드를 시작합니다. 우리는 패키지 그룹으로 패키지를 만들고 함께 업그레이드 해야하는 별도의 패키지를 고려합니다. 전체 그룹이 구축되면 핵심 구성 요소와 개발자 워크 플로가 깨지지 않도록 가상화 된 테스트 제품군을 실행합니다. 각 그룹은 해당 버전의 운영 체제에서 전체 시스템 설치, 부팅 및 로컬 테스트 스위트로 별도로 테스트됩니다. 개별 패키지에 대한 빌드는 일반적으로 몇 분 안에 완료되지만이 테스트는 패키지 그룹의 복잡성을 고려할 때 최대 1 시간이 걸릴 수 있습니다.

패키지가 구축되고 모든 테스트가 통과되면 모든 새로운 패키지를 최신 패키지 풀과 병합합니다. 새 릴리스를 잘라 내면 해당 릴리스를 위해 각 패키지 버전이 잠겨있는 스냅 샷. 그런 다음 증분 카나리아와 같은 SRE 원칙을 사용하여 함대 건강 모니터링과 같은 SRE 원칙을 사용 하여이 릴리스를 신중하게 안내합니다.

그러나 모든 빌드가 첫 번째 시도에서 성공하는 것은 아닙니다. 패키지가 빌드되지 않으면 일반적으로 Debian Bug Tracker가있는 알려진 버그를 확인하고 이미 알려지지 않은 경우 잠재적으로보고합니다. 때때로 우리의 릴리스 엔지니어는 창의력을 발휘하고 지역 해결 방법/패치를 적용하여 생태계 내에 패키지를 구축하고 나중에 업스트림이 수정 한 후에 해당 해결 방법을 떨어 뜨립니다.

예를 들어, 우리가 몇 차례에 걸쳐있는 한 가지 문제는 업스트림 데비안에서 패키지가 일반적으로 데비안 불안정에 구축된다는 것입니다. 며칠 후 이미 구축 된 패키지는 데비안 테스트로 마이그레이션됩니다. 그러나 어떤 경우에는 빌드 의존성이 불안정에 갇혀있어 테스트 내에서 건물을 구축하지 못할 수도 있습니다. 우리는 일반적 으로이 경우에 상류에서 먼저 일하려고 노력하므로 이러한 지역 패치를 유지하기 위해 복잡성과 유지 보수 부담을 줄이고 커뮤니티에 환원합니다.

단계가 실패하면 Sieve에는 재 시도 할 트릭의 도구 상자가 있습니다. 예를 들어, 패키지 그룹의 초기 빌드를 시작할 때 시스템은 어떤 종속성을 함께 구축 해야하는지에 대한 교육을받은 추측을 만듭니다. 그러나 때로는 데비안 소스 패키지에 제공된 버전 정보가 불완전 하고이 추측이 잘못되었습니다. 이러한 이유로, 체는 주기적으로 실패한 건물 그룹을 재정의합니다. 패키지의 최신 스냅 샷이 움직이는 대상이므로, 겉보기에 독립적 인 패키지 그룹이 스냅 샷에 추가 된 후에는 이전에 깨진 그룹이 예기치 않게 구축하고 테스트를 올바르게 통과 할 수 있습니다. 이 모든 워크 플로우는 대부분 자동 이므로이 분야에서 SRE로 사고의 중요성을 강조합니다. 실패에 직면 할 때 일반적으로 실패한 빌드를 한 번만 수정하는 것이 더 쉬운 것처럼 보이지만 동일한 해결 방법을 반복해서 적용 해야하는 경우 코드의 해결 방법을 엔지니어에게 넣는 전반적인 부담이 줄어 듭니다.

소스로부터 모든 바이너리를 구축하고 러닝 바이너리의 기원을 검증하는 추가 소스 코드 출처를 갖는 데 몇 가지 보안 이점이 있습니다. 예를 들어 보안 사고 중에, 우리는 이전에 모든 패키지를 구축 한 것처럼 유통에 대한 토지와 마찬가지로, 임시 패치로 작업하는 빌드에 대한 확신을 가질 수 있습니다. 또한, 우리는 또한 우리가 인프라에서 생산 한 바이너리 빌드 아티팩트에 상류 데비안에 배치 해야하는 신뢰 봉투를 줄입니다. 소스 코드가 수집되고 바이너리가 확인되면 대신에 실행중인 바이너리가 정확히 해당 소스 코드에서 시작되었음을 암호로 증명할 수 있습니다.

Rodete로 업그레이드

마지막 Goobuntu 릴리스는 Ubuntu 14를 기반으로합니다.04 LTS (CodeName Trusty). Rodete에 대한 개발은 2015 년에 시작되었으며 우리가’t 신뢰할 수있는 지원을 줄이고 전체 엔지니어링 인구가 새로운 새로운 유통을 설치하도록 요구합니다. LTS 버전간에 내 위치를 업데이트 한 이전 경험에서, 우리는 이미이 마이그레이션으로 우리를 기다리는 것이 무엇인지 아는 좋은 경험을 가지고있었습니다. 우분투는 데비안의 파생물이며 동일한 패키징 인프라/형식 (APT)을 많이 사용하기 때문에’t Goobuntu 14에서 함대를 업그레이드하는 완전히 미친 아이디어.04 데비안에게. 우리는 이전의 내 업그레이드 도구의 일부를 재사용하고 더 많은 자동화와 더 많은 테스트를 추가하여 더 신뢰할 수 있도록 노력했습니다.

이러한 도구를보다 쉽게 ​​만들고 테스트하고 마이그레이션 기간 동안 유지 관리하려면 Glinux Rodete가 기준선이라고하는 특정 날짜에 대한 데비안 테스트 스냅 샷으로 일시적으로 동결을 선택했습니다. 우리는이 기준선을 우리 자신의 선택으로 발전시켜 패키지를 섭취하는 균형을 잡을 수 있습니다. 마찰을 줄이기 위해 2016 년 현재 Debian Stable 릴리스에서 Rodete의 기준선을 의도적으로 설정하여 Ubuntu Trusty의 일반적인 주에 훨씬 더 가깝습니다. 이렇게하면 내면 업그레이드를 신뢰할 수있는 데비안으로 분리 할 수 ​​있으며 나중에 데비안에서 발생한 주요 패키지 버전 변경.

2017 년에 우리는 기계를 Rodete로 마이그레이션하기 시작했고 2018 년 말까지 마지막으로 마이그레이션을 완료했습니다. 그러나 우리는 여전히 그 시점에서 과거에 거의 2 년 일이었던 패키지의 기준선을 가지고있었습니다. 데비안 테스트를 따라 잡기 위해, 우리는 체 행동 최적화에 중점을두고 패키지를 구축 / 테스트하는 데 필요한 시간을 가속화하기 위해 팀의 큰 노력을 시작했습니다. 이 점진적인 방식으로 업그레이드를 재생하고 Google 엔지니어와 팀의 워크로드가 완화되었습니다.

2019 년 초 우리는 Goobuntu 기계의 마지막 잔재를 폐쇄하기 시작했습니다. 우리의 기준선은 또한 ~ 250 일 뒤에 뒤쳐지기 위해 진행되었습니다. 당시 우리는 Buster의 일부였던 대부분의 패키지 버전을 사용하고 있음을 의미했습니다. 2020 년 중반까지 우리는 Debian Bullseye가 석방되었을 때 마침내 완전히 따라 잡았습니다. 우리는 계속해서 우리의 기준선을 앞두고 2023 년 중반에 출시되기 전에 이미 다음 Debian Stable Release의 유사한 버전을 사용하고있을 것입니다.

선에 도달

오늘날 Glinux 팀원의 삶은 매우 다르게 보입니다. 우리는 팀원들 사이에서 회전하는 한 명의 의무 릴리스 엔지니어에게 릴리스에 필요한 엔지니어링 시간과 에너지의 양을 줄였습니다. 우리는 더 이상 전체 함대를 업그레이드하려는 큰 추진력이 없습니다. 더 이상 새로운 LTS 릴리스 용 다단 무대 알파, 베타 및 가스가 필요하지 않으며 동시에 Ubuntu를 정확하게 또는 명쾌하게 실행중인 오래된 기계를 쫓아냅니다.

또한 업스트림 릴리스에 가까운 함대를 운영하여 보안 자세를 극적으로 개선했습니다. Debian은 안정적이고 오래된 트랙을위한 훌륭한 보안 패치를 제공하지만 패치를 얻는 모든 보안 구멍이 반드시 Debian Security Advisory (DSA) 또는 CVE 번호가 있음을 깨달았습니다. 우리의 롤링 릴리스 일정은 안정성을 손상시키지 않고 전체 함대의 보안 구멍을 빠르게 패치 할 수 있도록하는 반면, 이전 보안 엔지니어는 각 DSA를 신중하게 검토하고 수정으로 인해 차량에 수정되었는지 확인해야했습니다.

Critical Developer Systems를 실행하는 주요 파트너 팀과의 개선 된 테스트 스위트 및 통합 테스트는 Linux 커널의 최신 버전을 제공하는 Linux 배포를 사용하여보다 안정적인 경험을 제공했습니다. 파이프 라인의 모든 것을 자동화하려는 우리의 강한 갈망은 팀 내에서 수고와 스트레스를 크게 줄였습니다. 이제 Google 도구가 Linux 생태계 내에서 더 잘 작동하는지 확인하면서 다른 라이브러리 버전으로 버그 및 비 호환성을보고 할 수도 있습니다.

회사의 롤링 릴리스를 성공적으로 만드는 데 관심이 있다면 회사의 요구와 업그레이드 민첩성에 대한 균형을 맞추십시오. 우리 자신의 움직이는 목표와 기준선을 통제하면 너무 많은 문제를 겪고 팀 SLO를 깨뜨릴 때마다 속도를 늦추는 데 도움이되었습니다. 우리의 여정은 궁극적으로 빅뱅 릴리스보다 증분 변화가 더 잘 관리 가능하다는 우리의 믿음을 강화했습니다.

새로운 작업의 유입을 통제하고 예측 가능성을 유지할 수 있다면 엔지니어가 더 행복하고 스트레스를받지 못한 경험을했습니다. 이것은 궁극적으로 팀의 이탈을 낮추고 동시에 여러 번 불타는 불을 다루는 대신 전문 지식을 구축 할 수 있도록했습니다.

앞으로, 우리는 업스트림 데비안과 더 밀접하게 협력하고 데비안 패키지 생태계를 유지하기 위해 더 많은 내부 패치를 제공 할 계획입니다.

  • 개발자 및 실무자
  • 시스템
  • DevOps & sre

Google Cloud에서 Linux를 실행하는 이유는 무엇입니까??

클라우드의 기업은 민첩성, 적응성, 유연성 및 신뢰성 향상 – 곡선보다 훨씬 쉽게 머무르는 것입니다. 온 프레미스 인프라와 클라우드 서비스를 결합하면 기존 프로세스에 새로운 수명을 마감하고 도구 및 기술의 수를 늘릴 수 있습니다.

훌륭하게 들립니다? 그것은 먼저 클라우드 제공 업체 및 운영 체제를 선택해야합니다. 하이브리드 클라우드 환경을 구축 할 수있는 최고의 기초를 제공하는 동시에 원하는 서비스 및 기술을 채택 할 수있는 유연성을 제공 할 수있는 최고의 기초?

Linux 및 Google Cloud 플랫폼은 엔터프라이즈를 클라우드로 그리고 미래로 옮기는 강력한 조합입니다. 허락하다’s 팀으로서 눈에 띄게 만드는 것을 배우기 전에 각각을 살펴보십시오.

Linux 및 Google Cloud 플랫폼이 어떻게 함께 작동합니까?

Google 클라우드 플랫폼

Amazon과 같은 Google 클라우드 플랫폼’S AWS 및 Microsoft Azure는 퍼블릭 클라우드 플랫폼이며 Google 클라우드의 일부이며 Google에서 구축되었습니다’글로벌 인프라. Google Cloud는 클라우드 서비스 및 관리 도구 인 Google Cloud 콘솔 VIA를 제공하여 효과적인 클라우드 및 멀티 클라우드 환경을 구축하고 애플리케이션 및 API를 배포하고 환경 전체에서 워크로드를 지원하는 데 필요한 모든 것을 제공합니다.

Google Cloud Platform은 Enterprise가 명확한 전략 (Google Cloud Multicloud Solutions)을 통해 클라우드 컴퓨팅의 모든 이점을 활용하고 정확하고 최신 회사 및 인벤토리 정보 (데이터 분석)를 기반으로 결정을 내릴 수있는 보안 중심 도구 및 기능을 보유하고 있으며 팀이 함께 통신하고 협력하는 방법 (Google Workspace).

Google Cloud에는 Google Cloud 플랫폼과 Google Cloud Storage (Object Storage), Google Cloud DataStore (NOSQL 데이터베이스), Google Cloud Functions (이벤트 중심 컴퓨팅 플랫폼으로 구성), Google Compute Engine 또는 GCE (Google에서 실행되는 가상 머신에는 Google에서 실행되는 가상 머신’S Data Center) 및 Google App Engine (Serverless Application Platform) – 그리고 훨씬 더.

Linux for 클라우드 컴퓨팅

Linux는 오픈 소스 운영 체제입니다. 오픈 소스 개발 모델로 인해 Linux는 클라우드 컴퓨팅에 이상적으로 적합합니다. 기업은 자신의 요구와 목적에 가장 적합한 플랫폼 및 기술을 선택하고 필요한 서비스 및 공급 업체의 선택을 허용하여 불필요한 비용 및 공급 업체 잠금 장치를 피할 수 있습니다. 클라우드 컴퓨팅 용 Linux를 사용하면 Kubernetes, AI/ML 및 Edge Computing과 같은 새로운 기술을 사용하여 유연하게 성장할 수있는 전통적인 IT 배포에 대한 Linux의 모든 이점을 얻을 수 있습니다. 이러한 이유로 Linux는 클라우드 컴퓨팅에서 운영 체제의 주요 선택으로 남아 있습니다.

더 나은 함께 : Google Cloud 플랫폼에서 Linux를 실행하는 이점

Google Cloud Platform은 Linux에서 구축되며 Centos, Ubuntu 및 Red Hat Enterprise Linux와 같은 여러 Linux 배포판과 함께 작동합니다. Google Cloud 플랫폼이있는 Linux 시스템의 오픈 소스 특성은 사용자가 다음과 같은 이점을 얻는다는 것을 의미합니다

  • 공급 업체 및 서비스의 유연성
  • 응용 프로그램 및 정보의 더 쉽게 마이그레이션
  • 발자국에서 정보와 프로세스의 일관성
  • 오픈 소스 구조 및 커뮤니티의 혁신

기본적으로 설립 된 Linux Foundation의 강력한 클라우드 제공 업체는 Enterprise Cloud 전략이 올바른 방향으로 향하고 있음을 의미합니다.

Google 클라우드 플랫폼에서 Red Hat Enterprise Linux의 이점

하이브리드 또는 멀티 클라우드 접근 방식을 채택하는 것은 특히 어려울 수 있습니다’레거시 하드웨어 및 기존 인프라에 다시 사용됩니다. 그러나 올바른 클라우드 서비스 제공 업체 및 Linux 배포는 확실한 시작을 제공합니다. Google Cloud 플랫폼의 Red Hat® Enterprise Linux®를 사용하면 클라우드 전략의 기초가있어 원하는 곳으로 이동할 수 있습니다. 그리고 Red Hat Enterprise Linux는 Google에서 실행되기 때문에 나머지 Red Hat도 마찬가지입니다’S 제품.

Red Hat Enterprise Linux 및 Google Cloud 플랫폼은 인프라 플랫폼을 단순화하고, 애플리케이션 개발 및 전달을 가속화하며, 비즈니스 및 관리 프로세스를위한 자동화를 통합하여 민첩한 하이브리드 클라우드 환경으로 업계, 규제 및 글로벌 변경에보다 신속하게 혁신 할 수 있습니다.

그리고 여기’S 다른 것-Google Cloud의 SAP 솔루션 용 Red Hat Enterprise Linux SAP 특정 컨텐츠 및 기능을 포함하고 조직이 하이브리드 클라우드 환경에 SAP를 배포 할 수있는 데이터베이스 작업을위한 고성능 플랫폼입니다. Red Hat Enterprise Linux는 SAP HANA® 및 SAP S/4HANA®와 함께 사용하기 위해 인증 된 두 개의 Linux 배포판 중 하나입니다.

유연한 구성, 오픈 소스 및 보안 중심 재단, 글로벌 네트워크 인프라, 고급 데이터 관리 및 분석을 통해 Red Hat 및 Google Cloud는 하이브리드 및 멀티 클라우드 환경을 효과적이고 효율적으로 구축하고 운영하는 데 필요한 기능과 기능을 제공합니다. 각 구성 요소는 주요 기능과 가치와 물리적, 가상화, 컨테이너화, 클라우드 기반 및 에지 인프라 전반에 걸쳐 워크로드 및 응용 프로그램에 대한 신뢰할 수있는 고성능 운영 환경을 제공합니다.

구글의 이야기’사내 데스크탑 리눅스

리눅스 로고

Google의 Mountain View, CA 사무실을 둘러 보면 Windows 머신, 크롬 북, Mac 및 Glinux 데스크톱이 표시됩니다. g 뭐, 당신은 묻습니다? 글쎄, 서버를 위해 Linux에 의존하는 것 외에도 Google은 자체 Linux 데스크탑 배포를 가지고 있습니다.

당신은 그것을 얻을 수 없습니다 – 그것을 대담합니다! – 그러나 10 년 이상, Google은 자체 수제 Linux 데스크탑 배포를 굽고 먹었습니다. 첫 번째 버전은 Goobuntu였습니다. (이름에서 추측 한대로 Ubuntu를 기반으로했습니다.))

2018 년 Google은 사내 Linux 데스크탑을 Goobuntu에서 새로운 Linux 배포판 인 Debian 기반 Glinux로 옮겼습니다. 왜? Google이 설명했듯이 Ubuntu의 장기 지원 (LTS) 2 년 릴리스 “는 OS의 수명이 끝나기 전에 10 만 개가 넘는 장치의 모든 기계에서 모든 기계를 업그레이드해야했습니다.”

그것은 고통이었습니다. 엔지니어의 PC를 완전히 사용자 정의 해야하는 시간이 소요되는 시간을 추가하고 Google은 너무 많은 비용이 들기로 결정했습니다. 게다가 “Goobuntu 함대를 업그레이드하려는 노력은 보통 1 년의 더 나은 부분을 차지했습니다. 2 년간의 지원 창이 있으면 다음 LTS를 위해 같은 과정을 다시 살펴볼 때까지 1 년 밖에 남지 않았습니다. 이 전체 프로세스는 코너 케이스에 대한 도움을 요청한 수백 개의 버그를 얻었 기 때문에 우리 팀의 큰 스트레스 요인이었습니다.”

그래서 Google은 충분히 충분했을 때 Debian Linux로 옮겼습니다 (바닐라 데비안뿐만 아니라). 회사는 롤링 데비안 배포판을 만들었습니다 : Glinux Rolling Debian Testing (Rodete). 아이디어는 사용자와 개발자가 생산 준비가되어있는 최신 업데이트와 패치를 제공함으로써 가장 잘 제공된다는 것입니다. 이러한 배포 배포에는 Arch Linux, 데비안 테스트 및 OpenSuse Tumbleweed가 포함됩니다.

Google의 즉각적인 목표는 2 년 업그레이드주기에서 벗어나는 것이 었습니다. CI/CD (Continuous Integration/Continuous Deployment)로의 이동이 보여지면서 이러한 점진적인 변화는 잘 작동합니다. 뭔가 잘못되면 제어하고 롤백하기가 더 쉽습니다.

많은 피, 땀, 눈물 없이이 모든 작품을 만들기 위해 Google은 새로운 워크 플로 시스템 인 Sieve를 만들었습니다. Sieve가 새로운 버전의 데비안 패키지를 발견 할 때마다 새로운 빌드를 시작합니다. 이 패키지는 별도의 패키지를 종종 함께 업그레이드해야하므로 패키지 그룹으로 내장되어 있습니다. 전체 그룹이 구축되면 Google은 핵심 구성 요소와 개발자 워크 플로가 깨지지 않도록 가상화 된 테스트 제품군을 실행합니다. 다음으로, 각 그룹은 전체 시스템 설치, 부팅 및 로컬 테스트 스위트 런으로 별도로 테스트됩니다. 패키지 빌드는 몇 분 안에 완료되지만 테스트는 최대 1 시간이 걸릴 수 있습니다.

완료되면 모든 새로운 패키지는 최신 Glinux 패키지 풀과 병합됩니다. 그런 다음 Google이 프로덕션에 출시 할 시간이라고 결정하면 팀 스냅 샷이 수영장. 마지막으로, 그것은 함대에 새로운 릴리스를 출시합니다. 물론’S 사용자에게 버리지 않을 것입니다. 대신, 증분 카나리아와 같은 SRE (Site Reliability Engineering) 원칙을 사용하여 아무것도 엉망이되는지 확인합니다.

수년에 걸쳐 Google 은이 점이 더 나아졌습니다. 오늘날 Sieve 덕분에 전체 Glinux 개발 팀은 팀원들 사이에서 회전하는 단일 OP 의무 릴리스 엔지니어 위치로 구성됩니다. 함대를 업그레이드하려는 큰 푸시는 없습니다. 다단계 알파, 베타 및 일반 가용성 (GA) 릴리스 없음.

롤링 릴리스 일정 덕분에 Google은 안정성을 손상시키지 않고 전체 함대의 보안 구멍을 빠르게 패치 할 수 있습니다. 이전에 보안 엔지니어는 수정이 내장되어 있는지 확인하기 위해 각 DEBIAN Security Advisory (DSA)를 신중하게 검토해야했습니다.

또한 중요한 개발자 시스템을 실행하는 주요 파트너 팀과 함께 Google의 “개선 된 테스트 스위트 및 통합 테스트는 Linux 커널의 최신 버전을 제공하는 Linux 배포를 사용하여보다 안정적인 경험을 제공했습니다. 파이프 라인의 모든 것을 자동화하려는 우리의 강한 갈망은 팀 내에서 수고와 스트레스를 크게 줄였습니다. 이제 Google 도구가 Linux 생태계 내에서 더 잘 작동하는지 확인하면서 다른 라이브러리 버전으로 버그 및 비 호환성을보고 할 수도 있습니다.”

앞으로 Google 팀은이를 선언했습니다’LL 작업 “업스트림 데비안과 더 밀접하게 작업하고 데비안 패키지 생태계를 유지하기 위해 더 많은 내부 패치를 제공합니다.”

모든 것이 훌륭하게 들립니다. 그러나 나는 공유 할 두 가지 생각이 있습니다.

먼저 일부 조직의 경우 LTS 릴리스가 여전히 의미가 있습니다. 비즈니스에 가장 새롭고 빛나는 프로그램이 필요하지 않은 경우 Ubuntu 또는 Red Hat LTS Linux는 여전히 의미가 있습니다.

둘째, 이것은 중요한 것입니다. 체는 고양이의 야우처럼 들립니다. 롤링 배포판 생산 파이프 라인을 자동화 할 수있는 하나의 프로그램은 10 만 명 이상의 사용자가 사용하는 데스크탑을 유지하는 데 한 명의 엔지니어 만 필요합니다? 저에게 가입하십시오!

더 나은 점은 Sieve 코드를 릴리스하여 롤링 Linux 데스크탑 릴리스 생성을 시작할 수 있습니다. 어때요, 구글? 당신은 무엇을 말합니까??

  • 데스크탑 리눅스
  • Google

Copyright © 2022 IDG Communications, Inc.