
일부 웹 애플리케이션과 일부 데스크톱 애플리케이션이 프로덕션 환경의 서버에서 실행되고 있다고 가정해 보겠습니다.
프로덕션 환경에서는 단 1분의 가동 중지 시간도 허용되지 않습니다. 현재 나는 HA Cluster system
이 목적으로 어떤 것이 사용되는지만 알고 있습니다. 이것이 시스템 종료를 방지하는 유일한 방법인지, 아니면 이 외에 다른 방법이 사용되는지 알고 싶습니다.
Google과 같은 대기업은 단 1초의 가동 중지 시간도 허용하지 않기 때문에 고가용성을 위해 무엇을 사용합니까?
감사해요
답변1
기본적으로 애플리케이션을 실행하는 데 필요한 모든 서비스에 대해 자동 장애 조치(failover)를 원합니다.
한 가지 해결책은 다음과 같은 접근 방식일 수 있습니다.
- 두 시스템 모두에 Keepalived가 설치되어 있습니다.
- HAP LB 2에 대한 장애 조치가 포함된 로드 밸런서로서의 HAProxy. keepalived로 모니터링됨
- HAP 뒤의 Apache/NGINX. 하나가 실패하면 HAP는 이를 모니터링하고 다른 서버의 Apache/NGINX로 리디렉션합니다.
- MySQL 마스터/마스터 복제, 로드 밸런싱 및 HAP를 통해 모니터링
기본적으로 HAProxy는 시스템의 로드를 분산시키고 서비스가 실행 중인 경우에만 서비스 중 하나로 전달합니다.
찾고 있는 아키텍처는 다음과 같습니다.
답변2
상황에 따라 다릅니다. 모든 애플리케이션과 모든 수준의 OSI 모델에 대해 자체 HA 시스템을 만들어야 합니다.
하지만 시작하려면 백엔드가 포함된 ha-proxy, keepalived 및 nginx에 대해 배울 수 있습니다.
답변3
시스템은 가장 약한 링크만큼만 강력합니다.
일반적인 프로덕션 환경에서는 모든 것이 여러 개 존재합니다. 소규모 웹 클러스터는 로드 밸런서, 여러 개의 역방향 프록시, 여러 개의 http 서버, 마스터/슬레이브 또는 마스터/마스터 데이터베이스 노드로 구성될 수 있습니다. 이 설정에서는 단일 로드 밸런서가 약한 링크가 됩니다. 죽으면 아무것도 작동하지 않습니다. 대규모 환경에서는 이를 복제하지만 규모가 더 커집니다.
궁극적으로 네트워크 설계는 사용 목적에 따라 달라집니다.