DDoS 공격을 받고 있는데 아무것도 하지 않고 공격만 합니다...

최근 온라인 세상에서는 치열한 공방전이 조용히 벌어지고 있다.

그 주인공은 국가안전보위부나 해커조직이 아닌, 생소한 스타트업 회사인 테이블플러스이다 .

DDoS 공격자들은 시도하고 싶어합니다. 그들은 수억 건의 요청으로 TablePlus의 서버를 압도하겠다고 다짐하면서 사방에서 몰려들었습니다. 특히 독일과 영국에서 오는 교통량은 수천 마일을 쏟아내는 폭우와도 같습니다. TablePlus의 대역폭과 컴퓨팅 리소스를 고갈시키려는 시도로 단 5일 만에 8천만 건 이상의 다운로드 요청을 시작했습니다.

이러한 대규모 침략에 직면하여 TablePlus 친구들은 어떻게 해야 합니까? 그들은 당황하여 Cloudflare에 도움을 요청할 것입니까? IP를 차단하고 서비스를 종료하느라 바쁠까요?

대답은 다음과 같습니다. 아무것도 하지 말고, 필요할 때 먹고 마시십시오 . 마치 중요한 일이 전혀 일어나지 않은 것처럼 말입니다. CPU가 가끔 0%에서 1%로 오르지 않았다면 서버 자체가 '해리성 정체성 장애'를 앓고 있다고 의심했을 것입니다. TablePlus의 서버는 모두 전투에 능숙하며 이러한 사소한 문제를 심각하게 받아들이지 않습니다.

이 대담한 사람들은 어디서 자신감을 얻습니까?

이러한 평온함은 TablePlus의 독특한 건축 디자인 선택, 즉 단일 애플리케이션에서 비롯됩니다. 현재 널리 사용되는 마이크로서비스 아키텍처와 달리 TablePlus는 API, 웹사이트 프런트엔드, 결제 등 모든 기능을 하나의 서비스에 집중하는 방식을 선택합니다. 이 "통합" 아키텍처는 단순해 보이지만 과소평가할 수 없는 장점이 있습니다.

다른 사람들은 마이크로서비스, 컨테이너, 오케스트레이션에 대해 걱정하지만 TablePlus에는 바이너리 파일만 있으면 바로 사용할 수 있습니다.

TablePlus는 단일 애플리케이션의 성능을 극대화하기 위해 기술 선택에 많은 노력을 기울였습니다. 그들은 두 가지 고성능 언어인 Golang과 Rust를 주요 개발 도구로 선택했습니다 . 이 두 언어의 탁월한 동시 처리 기능과 메모리 관리 메커니즘을 통해 단일 TablePlus 서비스는 수십억 개의 요청을 쉽게 처리할 수 있습니다.

그러나 뛰어난 언어를 갖는 것만으로는 충분하지 않습니다. TablePlus는 또한 소프트웨어 엔지니어링의 모든 측면에서 우수성을 추구하며 단일 서비스의 성능을 극대화하기 위해 노력합니다.

쿼리 효율성을 높이기 위해 주요 데이터베이스를 색인화합니다.

주요 업무에 영향을 미치지 않도록 핵심 데이터베이스와 비핵심 데이터(예: 로그)를 별도로 저장합니다.

Nginx를 역방향 프록시로 사용하여 요청을 유연하게 예약하고 배포하세요.

Cloudflare가 제공하는 CDN, SSL 등의 기능으로 성능과 보안을 더욱 향상하세요.

세심하게 제작된 단일 서비스는 최적화된 배포 환경과 결합되어 TablePlus에 간단하고 효율적인 아키텍처를 제공합니다. 동시성이 높은 시나리오에서 이 아키텍처는 DDoS 공격에도 불구하고 놀라운 성능을 보여줍니다.

물론, 아무리 실력이 좋아도 부엌칼은 여전히 ​​두렵습니다 . 서비스가 아무리 훌륭하더라도 이를 사용하는 방법을 알아내야 합니다. 배포에 있어서도 TablePlus는 단순성과 효율성을 추구합니다. 그들은 Golang과 Rust의 기능을 최대한 활용하고 서비스를 단일 바이너리 파일로 컴파일한 다음 Linux 서버에서 직접 실행합니다. 이 "종속성 없는" 배포 방법은 운영 및 유지 관리 작업을 단순화할 뿐만 아니라 서버 성능을 극대화합니다.

TablePlus 엔지니어는 또한 Linux의 Systemctl을 사용하여 서비스 프로세스를 관리하고 자동 재시작 및 모니터링과 같은 기능을 구현하여 시스템 안정성을 더욱 향상시킵니다. 수백 개의 마이크로서비스로 구성된 복잡한 아키텍처에 비해 TablePlus의 배포는 매우 간단합니다.

이러한 방식으로 TablePlus는 신중하게 설계된 단일 애플리케이션 아키텍처와 최소한의 배포를 통해 시스템 성능과 효율성을 새로운 수준으로 높였습니다. DDoS 공격에도 침착하게 대응하며 아키텍처 설계의 위력을 입증했다.

컨테이너, VM 및 오케스트레이션은 모두 TablePlus 앞에서는 멋진 트릭일 뿐이므로 언급할 가치가 없습니다.

단일 애플리케이션인 Zhenjing Protector를 사용하여 TablePlus는 DDoS 공격에도 침착함을 유지합니다. 수억 건의 요청이 들어오고 시스템 서비스는 이를 견딜 수 있습니다. 트래픽이 아무리 심하더라도 Cloudflare는 이를 견딜 수 있으며 모놀리식 아키텍처는 여전히 유지됩니다.

이 이야기는 모든 것에는 양면이 있다는 것을 말해줍니다. 단일 애플리케이션이 단순해 보일 수도 있지만 특정 시나리오에서는 강력한 기능을 보여줄 수도 있습니다 . 핵심은 자신의 사업 특성에 따라 현지 상황에 적응하고, 자신의 장점을 활용하고 약점을 피하는 것입니다. 마치 TablePlus처럼 자신과 적을 알고, 결코 위험에 빠지지 않을 것입니다.

"민첩성"과 "유연성"이 요구되는 이 시대에 TablePlus의 "혼자 회의에 참석하는 것"은 의심할 여지 없이 다소 비극적입니다. 그러나 그들은 실제 행동을 통해 세상에 알립니다. 단일 엔터티인지 마이크로서비스인지에 관계없이 아키텍처에서 좋은 일을 하고, 성능을 강조하고, 그 밖의 모든 것은 단지 클라우드일 뿐입니다 .

이 이야기는 또한 기술이 결코 흑백이 아니라는 점을 상기시켜 줍니다. 기술의 품질을 판단하는 것은 특정 응용 시나리오와 분리될 수 없습니다 . 당신에게 어울리는 것이 가장 좋습니다. 개방적이고 혁신적인 사고를 유지하고 변화를 수용해야만 끊임없이 변화하는 기술의 물결 속에서 우리 자신의 위치를 ​​찾을 수 있습니다.

마이크로서비스는 확실히 유행이지만 모놀리식 애플리케이션에도 그 나름의 존재 이유가 있습니다. 핵심은 올바른 포지셔닝을 찾고, 강점을 활용하고 약점을 피하며, 장점을 극대화하는 것입니다.

TablePlus와 마찬가지로 다른 사람들이 여전히 패션을 쫓고 있는 동안 그들은 조용히 성능의 정점에 도달했습니다. 이러한 "대세를 거스르는" 용기와 지혜는 우리 각자가 생각하고 배울 가치가 있습니다.

Linus는 커널 개발자가 탭을 공백으로 대체하는 것을 막기 위해 스스로 노력했습니다. 그의 아버지는 코드를 작성할 수 있는 몇 안되는 리더 중 한 명이고, 둘째 아들은 오픈 소스 기술 부서의 책임자이며, 막내 아들은 오픈 소스 코어입니다. 기고자 Robin Li: 자연 언어 새로운 범용 프로그래밍 언어가 될 것입니다. 오픈 소스 모델은 Huawei에 비해 점점 더 뒤쳐질 것입니다 . 일반적으로 사용되는 5,000개의 모바일 애플리케이션을 Hongmeng으로 완전히 마이그레이션하는 데 1년이 걸릴 것입니다. 타사 취약점. 기능, 안정성 및 개발자의 경험이 크게 개선된 Quill 2.0 출시되었습니다. Ma Huateng과 Zhou Hongyi는 "원한을 제거하기 위해" 공식적으로 출시되었습니다. Laoxiangji의 소스는 코드가 아닙니다. Google이 대규모 구조 조정을 발표한 이유는 매우 훈훈합니다.
{{o.이름}}
{{이름}}

추천

출처my.oschina.net/u/4148359/blog/11049955