메인 콘텐츠로 건너뛰기
블로그 데이터베이스 클라우드 기반 전자 문서 관리 시스템 배포

클라우드 기반 전자 문서 관리 시스템 배포

_Highly-Available-EDMS-with-Mayan-and-PostgreSQL

일상적인 작업의 경우 문서 저장은 일반적으로 온라인 생산성 소프트웨어 및 클라우드 저장소를 통해 수행됩니다. 응용 프로그램이 더 큰 볼륨을 처리, 저장 및 검색해야 하므로 더 어려워집니다. EDMS(전자 문서 관리 시스템)는 고성능 및 가용성이 높은 문서를 저장, 인덱싱 및 검색하도록 설계되었으며 일부는 사용자 지정 가능한 메타데이터 및 버전 제어와 같은 기능을 포함하므로 더 나은 솔루션입니다.

SaaS 기반 EDMS 솔루션을 많이 사용할 수 있지만 자체 오픈 소스 EDMS를 배포하여 데이터를 완벽하게 제어할 수 있습니다. 이 게시물에서는 PostgreSQL 데이터베이스에서 지원하는 고가용성 Mayan EDMS를 설정하는 방법을 배웁니다.

EDMS 혜택

이 설정은 많은 수의 문서를 저장 및 처리하고 웹 기반 응용 프로그램에 연결된 EDMS가 필요하므로 클라이언트 쪽 설치가 필요하지 않은 경우에 적합합니다. EDMS를 중앙 허브로 실행하면 다음이 보장됩니다.

  • 보안, 개인 정보 보호 및 데이터의 완전한 제어;
  • 타사 소프트웨어와의 쉬운 통합; 그리고
  • 비즈니스 프로세스를 위한 문서 워크플로 자동화.

왜 PostgreSQL인가?

PostgreSQL은 확장성, 보안 및 성능으로 높은 평가를 받는 강력한 오픈 소스 객체 관계형 데이터베이스 관리 시스템입니다. 애플리케이션에 대한 엔드 투 엔드 확장을 지원하려면 데이터베이스도 고가용성이어야 하므로 이 아키텍처 예제에서는 PostgreSQL을 위한 복제 도구를 통합합니다.

마야 EDMS 시작하기

Mayan 은 웹 기반 오픈 소스 EDMS입니다. Python. Mayan은 기본적으로 (설계상) 단일 시스템에 설치하고 실행합니다. 모든 애플리케이션 및 데이터베이스 구성 요소는 단일 서버 또는 여러 Docker 컨테이너 내에 있을 수 있습니다. 이는 테스트 또는 사소한 환경에는 적합하지만 프로덕션 환경에서는 고가용성과 SoC(우려 분리) 원칙으로 알려진 널리 알려지고 채택된 개념을 원합니다. 이는 계층화되고 확장 가능한 응용 프로그램을 빌드하기 위한 중요한 모범 사례입니다. 이 참조 아키텍처는 Mayan을 사용하여이를 수행하는 방법을 보여줍니다.

프로

  • 오픈 소스는 라이선스 비용이 없음을 의미합니다.
  • 문서 버전을 쉽게 저장, 보기 및 되돌릴 수 있습니다.
  • 사용자 정의 메타데이터를 사용한 문서의 전체 텍스트 검색
  • 효과적인 사용자 역할 및 권한을 설계하기 위한 유연한 액세스 제어
  • 문서를 최신 상태로 유지하기 위해 이벤트 트리거가 있는 사용자 지정 가능한 워크플로

죄수

  • 소규모 사용 사례에 대한 복잡성
  • 사용자 인터페이스는 다른 솔루션보다 직관적이지 않습니다.
  • OCR(광학 문자 인식)을 실행하는 CPU에 많은 리소스

응용 프로그램 참조 아키텍처

실제 응용 프로그램에서 Mayan의 기능을 최적화하기 위해 아키텍처는 다음을 사용합니다.

노드 밸런서는 트래픽을 애플리케이션 노드로 분산합니다. 하나의 응용 프로그램 서버가 다운되면 로드 밸런싱 서비스는 트래픽을 정상 노드로만 전달하기 시작합니다. 비정상 노드가 복구되는 즉시 이전과 같이 연결 균형 조정을 다시 시작합니다. 이를 통해 다운타임 없이 애플리케이션 서버를 쉽게 추가, 제거 또는 업데이트할 수 있으며 동시에 PostgreSQL 데이터베이스 노드에 대한 연결을 유지할 수 있습니다.

응용 프로그램의 "두뇌"를 위해 마야와 NGINX 동일한 가상 머신에 배포되며 s3boto3에 대한 Mayan의 지원을 스토리지 백엔드로 활용하여 문서를 Linode에 업로드 할 수 있습니다. S3-호환 가능한 오브젝트 스토리지.

애플리케이션이 미션 크리티컬하고 PostgreSQL을 기본 백엔드 데이터베이스로 사용하는 경우 Bucardo를 통합하면 가동 시간이 향상되고 데이터베이스에 내결함성이 있습니다.

PostgreSQL을 지원하는 관리형 데이터베이스 서비스를 사용하여 고가용성 및 복제를 달성할 수도 있지만, 대부분의 DBaaS 오퍼링은 PostgreSQL 버전을 업데이트하고 데이터베이스 클러스터를 온라인 상태로 사용 가능한 상태로 유지하는 데 중점을 둡니다. Bucardo를 구현하면 PostgreSQL 데이터베이스에 둘 이상의 데이터베이스 노드 간에 양방향 복제가 제공되므로 데이터베이스의 가용성이 높아집니다.

이 예에서 모든 노드는 공용 인터넷으로부터 보호하기 위해 클라우드 방화벽 으로 보호되고 사설 VLAN을 통해 내부적으로 통신합니다. 애플리케이션 서버는 페일오버를 용이하게 하기 위해 keepalive를 사용하는 공유 부동 VLAN IP 주소를 통해 데이터베이스에 연결합니다.

Keepalived 또는 FRRouting (FRRouting)과 같은 다른 IP 장애 조치 시스템은 정상 데이터베이스 노드가 애플리케이션 노드의 클러스터에 연결되도록 데이터베이스 수준에서 구현됩니다.

중요한 파일에 대한 내결함성 달성

EDMS는 일상적인 작업을 위한 중앙 허브 역할을 하는 경우가 많으며 조직의 가장 중요한 파일 중 일부를 호스팅합니다. 당사의 응용 프로그램은 기본 내결함성을 위해 모든 수준에서 중복성으로 구축되었으며 성능을 최적화합니다.

  • 문서는 Linode의 고가용성 오브젝트 스토리지에 저장됩니다.
  • 데이터베이스 는 성능을 향상시키고 단일 실패 지점이 발생하지 않도록 별도의 노드에 있습니다.
  • 부카르도는 Postgres 노드 간에 자동 데이터베이스 복제를 수행합니다.

더 많은 기술 콘텐츠 및 아키텍처 살펴보기

솔루션 엔지니어링 팀은 이와 같은 프레임워크, 가이드 및 도구를 공유하여 개발자가 소프트웨어 아키텍처에 대한 모범 사례를 따르는 애플리케이션을 더 쉽게 빌드할 수 있도록 합니다. 고가용성 MySQL/MariaDB 아키텍처에 대한 Galera 클러스터 참조 아키텍처를 확인하거나 Linode Docs에서 사용 가능한 참조 아키텍처 예제를 찾아보십시오.


코멘트

댓글 남기기

이메일 주소는 게시되지 않습니다. 필수 필드가 표시됩니다 *