안녕하세요. 달소입니다.
2월달에 출시한다고 말씀드렸던 Nextcloud 21가 저번달에 출시되긴 했네요 ㅎㅎ
까먹고있었습니다…
php8.0을 공식지원하나.. 호환안되는 문제가있을수도있으니 안정적으로 사용하시려면 7.4로 쓰세요~
https://nextcloud.com/blog/nextcloud-faster-than-ever-introducing-files-high-performance-back-end/Nextcloud faster than ever! Introducing Files High Performance Back-end – NextcloudNextcloud is the most deployed on-premises file share and collaboration platform. Access & collaborat…Nextcloud – Marinela Gogo
Nextcloud 21에서 우리는 모든 사용자에게 혜택을주는 무언가를하고 싶었습니다.
특히 대규모 설치의 용량을 늘리고 Nextcloud를 깔끔하게 유지하기 위해 우리 팀은 Nextcloud의 다양한 핵심 영역을 프로파일 링하고 최적화했습니다. 우리는 모든 종류의 개선을 수행했으며 위의 릴리스 비디오를 시청하여 자세한 내용을 확인할 수 있습니다.
COVID 위기로 인해 직원들이 집에서 일하게되면서 Nextcloud 서버 관리자는 계속해서 용량을 추가해야합니다. Nextcloud 21은 서버의 부하를 줄여 더 많은 직원이 추가 하드웨어없이 작업 할 수 있도록합니다. 동시에 새로운 공동 작업 기능은 일상적인 생산성을 향상시키고 팀 구성원이 더 짧은 시간에 더 많은 작업을 수행 할 수 있도록 지원합니다.
— Frank Karlitschek , Nextcloud GmbH의 CEO 겸 설립자
예를 들어 번역 및 테마를보다 효율적으로 처리하는 등 각 페이지에로드되는 코드의 양을 줄이는 여러 개선 작업을 수행했습니다. 또한 대규모 배포에서 중요한 제한 사항이므로 데이터베이스 사용을 최적화하기 위해 열심히 노력했습니다. 많은 일반적인 데이터베이스 쿼리가 줄었거나 완전히 제거되었습니다. PHP 8 로의 이동은 또한 그것이 설치된 시스템의 성능을 향상시킬 것 입니다!
이 일반적인 성능 작업 외에도 서버가 성능 제한에 부딪히는 특정 시나리오도 살펴 보았습니다. 메모 작성 및 기본 작성을 위해 많은 조직에서 널리 사용되는 Nextcloud Text는 변경 사항을 지속적으로 확인하여 서버에로드를 생성합니다. 이로드를 25 % 줄였고 30 분 동안 사용하지 않은 문서가 서버 폴링을 중지하는 ‘유휴 모드’를 도입했습니다. 또한 오브젝트 스토리지 처리를 최적화하고 휴지통보기를 두 배 빠르게로드하고 최적화 된 LDAP, 설치 및 업그레이드, 앱 스토어 등을 만들었습니다.
고성능 백엔드
위의 성능 향상은 거의 모든 서버에 영향을 미쳐 더 나은 사용자 경험을 제공하고 시스템 관리자가 하드웨어를 추가하지 않고도 사용자 기반을 늘릴 수 있습니다. 그러나 우리가 작업해온 또 다른 큰 변화가 있으며 약간의 배경 지식이 필요합니다.
Nextcloud는 거의 완벽한 확장 성을 제공합니다.
Linux, Apache, Mysql 및 PHP와 함께 기존 LAMP 스택을 사용함으로써 Nextcloud는 웹에서 가장 인기있는 몇 가지 기술을 기반으로 구축됩니다. 이것은 많은 이점이 있습니다. 우리의 플랫폼은 배포 및 유지 관리가 쉽고 매우 잘 확장됩니다. 특히 확장은 거의 모든 다른 기술에 비해 PHP의 큰 이점입니다. PHP 서버의 성능을 두 배로 높이려면 코어를 두 배로 늘릴 수 있으며 변경 없이도 모든 것이 작동합니다. 다른 언어와 달리 거의 100 % 확장 할 수있을뿐만 아니라이 확장은 단일 서버 이상으로 계속됩니다! 옆에 두 번째 서버를 놓고 요청을 처리하도록 할 수 있습니다. 이것은 PHP가 다른 모든 요청과 완전히 독립적으로 각 요청을 처리하기 때문에 가능합니다.
따라서 Nextcloud 자체의 확장 성은 거의 무한하지만 파일 시스템과 데이터베이스는 그렇지 않습니다. 이번 릴리스에서 수행 한 개선 사항은 확장에 도움이 될 것이지만 필연적으로 제한 요소가 될 것입니다. 이것이 우리가 Global Scale 을 발명 한 이유입니다 ! 이러한 혁신을 통해 수억 명의 사용자가있는 다중 대륙 배포가 가능합니다. 우리는 이미 2018 년 초에 첫 번째 글로벌 규모 설정을 배포했으며 현재 가장 큰 고객이 수천만 명의 사용자와 함께 사용하고 있습니다. 확장 성은 확실히 Nextcloud에 부족한 것이 아닙니다!
새로운 기술 활용
그러나 모든 기술적 선택에는 동전의 양면이 있으며 인터넷의 일부 신흥 기술은 다른 고유 한 이점을 제공합니다. 사용자가 항상 두 세계를 최대한 활용할 수 있도록 Nextcloud 21은 완전히 선택적인 새 구성 요소 인 파일 용 HPB (고성능 백엔드)를 도입합니다.
새로운 HPB는 Rust로 작성된 바이너리이며 Nextcloud가 클라이언트에 대한 영구적 인 연결을 유지하도록합니다. 그렇다면 이것이 어떤 영향을 미칩니 까?
더 빠른 알림 및 동기화
첫째, 더 이상 기다릴 필요가 없습니다! 현재 클라이언트는 30 초마다 서버에 변경 사항이 있는지 확인합니다. 연결이 열리면 서버는 클라이언트에게 변경 사항을 알리고 즉시 새 파일을 다운로드 할 수 있습니다. 따라서 동료가 “방금 공유 한 파일을 얻었습니까?”라고 물을 때 더 이상 “잠깐, 방금 동기화를 시작했습니다!”라고 말할 필요가 없습니다.
그러나 이것은 파일 동기화에만 영향을주는 것은 아닙니다. 또한 Talk 또는 수신 전화에서 새로운 채팅 메시지에 대해 즉시 알림을받을 수 있습니다. 나와 공유 된 새 파일. 동료가 파일에 댓글을 달았습니다. 마감일이 다가오는 덱 카드. 그리고 훨씬 더! 이러한 대부분의 경우 응답 시간이 빠를수록 큰 차이가 있습니다.
폴링으로 인한 부하 90 % 감소
서버 관리자도 기뻐할 것입니다. 30 초마다 한 번 확인하는 것은 하루에 2880 번에 해당합니다. 이 수치를 90 % 줄였으며 5 분에 한 번만 확인했습니다.
이러한 변화의 영향에 대한 아이디어를 제공하기 위해 TU Berlin에서 관리하는 30 개 이상의 교육 및 연구 기관과 함께 독일 DFN 클라우드에서 트래픽을 분석했습니다. 15 분 동안 데스크톱 클라이언트에서 다운로드 할 새 파일이 있는지 묻는 요청이 25 만 건 이상 발생합니다! 이것은 네트워크 연결의 2/3 이상을 차지했습니다. 트래픽을 90 %까지 줄이는 효과를 상상할 수 있습니다. 그리고 그것은 단지 데스크탑 클라이언트입니다. 우리는 또한 이것을 웹 인터페이스에 구현했습니다. 또한 30 초마다 확인합니다! 3 개의 탭이 열려있는 사용자는 30 초마다 3 번 서버를 폴링하고 10 개의 탭은 하루 종일 3 초마다 핑을 의미합니다. 이를 90 %까지 줄이는 데 어떤 영향을 미칠 수 있는지 상상할 수 있습니다.
수백만 명의 사용자에서 밀리 초가 더해지기 시작합니다. 애플리케이션 및 캐싱 서버, 스토리지 및 데이터베이스 동작을 분석 한 후 우리 팀은 일반적인 작업의 영향을 크게 줄일 수있었습니다. 반면에 고성능 백엔드는 서버 부하를 줄이는 완전히 새로운 방법을 제공하는 동시에 사용자에게 새로운 수준의 응답 성을 제공합니다.
— Roeland Douma, 서버 엔지니어링 및 지원 책임자