구현 계획
모든 플랜 에서 사용 가능
self-hosted 배포판
1 소개
1.1 목적
Mattermost는 프로프리어터리 SaaS 협업 솔루션에 대한 개인 클라우드 대안으로 제작된 오픈 소스이며, 조직에게 더 높은 통제, 자료주권, 구성 가능성, 락인으로부터의 자유, 그리고 방화벽 뒤의 중요한 통신 보안을 제공합니다. 지원 받는 `버전 및 제공사항:`_ 에서 Mattermost를 실행하기로 선택했습니다.
이 구현 계획의 목적은 다음과 같습니다:
배포될 솔루션 설명
솔루션 구현 프로세스 개요 (주요 인력, 작업, 일정 등)
구현 프로세스 중에 필요한 지원 확인
2 시스템 개요
이 섹션에서는 구현될 시스템에 대한 간단한 개요를 제공하며, 시스템 및 그 구성에 대한 설명을 포함합니다.
2.1 시스템 설명
Mattermost는 조직적인 마찰을 줄이기 위해 설계된 협업 솔루션입니다. Mattermost를 실행하는 목적은 다음과 같습니다:
[상태 이유]
[상태 이유]
[상태 이유]
이 구현에서는 다음 팀 사용자에게 Mattermost를 배포할 예정입니다:
[팀 1]
[팀 2]
[팀 3]
2.2 시스템 구성
Mattermost Enterprise 구현은 다음 시스템 구성 요소로 구성됩니다:
Mattermost 서버
Mattermost 서버는 RESTful JSON 웹 서비스, 인증 클라이언트, 인증 제공자, 알림 서비스 및 데이터 관리 서비스를 포함한 단일 이진 파일입니다. Mattermost 서버는 단독 또는 고가용성 모드(고나잇 프로토콜 및 클러스터링을 사용하여 두 개 이상의 서버를 클러스터화할 수 있음)로 배포될 수 있습니다.
Mattermost 데이터베이스
PostgreSQL 데이터베이스는 단독 또는 고가용성 구성(master 및 읽기 전용 레플리카)으로 사용됩니다. 데이터베이스를 선택할 때, 데이터베이스 유형의 내재된 검색 제한을 고려하십시오. 또한 배포에 가장 적합한 것은 Elasticsearch 임을 고려하십시오.
Mattermost 푸시 알림 서비스
Mattermost Android 및 Mattermost iOS 모바일 애플리케이션으로 알림을 푸시하는 호스팅된 또는 온프레미스 서비스입니다.
Mattermost 클라이언트 애플리케이션
클라이언트 애플리케이션은 다음 플랫폼용 Mattermost용으로 사용할 수 있습니다: Android, iOS, Windows, OSX 및 Linux (베타).
Mattermost 웹 클라이언트
Mattermost 사용자는 Mattermost 모바일 및 데스크톱 애플리케이션 대신에 자신이 좋아하는 웹 브라우저를 사용하여 Mattermost 서버에 연결할 수 있습니다.
프록시 서버
Mattermost에는 프록시 서버(NGINX, Apache, HAProxy, ELB 등) 사용이 권장되며, SSL 종료, HTTP에서 HTTPS로의 리다이렉션, 포트 매핑 :80 to :8065, 및 표준 요청 로그 생성 기능을 얻을 수 있습니다.
다음 다이어그램은 Mattermost 플랫폼의 다양한 구성 요소가 네트워크 내에서 상호작용하는 방식을 고수준으로 설명한 것입니다:
추천하는 Mattermost Enterprise E20 설치는 신뢰성이 높고 고가용성이 확보된 환경에서 구성되며, 애플리케이션(Mattermost Server) 및 데이터베이스 고가용성 기능이 활성화돼야 합니다. 물리적으로 또는 가상으로 다음 서버를 필요로 합니다:
작업 |
수량 |
CPU |
메 모리 |
저장 공간 |
---|---|---|---|---|
Mattermost 서버 |
2 |
2 vCPUs/코어 |
4 GB |
45-90 GB |
데이터베이스 서버 |
2 |
2 vCPUs/코어 |
8 GB |
100 GB |
프록시 |
2 |
1 vCPUs/코어 |
4 GB |
10 GB |
Note
세부 사항은 Mattermost 하드웨어 크기 조정안내 문서를 참조하세요.
2.3 프로젝트 참조
이 섹션은 프로젝트 개발 이전에 생성된 주요 프로젝트 참조 및 납품품 목록을 제공합니다.
Mattermost 개요: https://mattermost-docs.infograb.net/about/product.html
Mattermost 소프트웨어/하드웨어 요구 사항: https://mattermost-docs.infograb.net/install/software-hardware-requirements.html
Mattermost 보안 기능: https://mattermost-docs.infograb.net/about/security.html
Mattermost: https://mattermost-docs.infograb.net/guides/collaborate.html
Mattermost Playbooks 플러그인: https://mattermost-docs.infograb.net/guides/repeatable-processes.html
2.4 용어집
매뉴얼에 사용된 모든 용어와 약어의 용어집을 제공합니다. 용어집이 여러 페이지에 걸쳐 있는 경우 별지에 배치될 수 있습니다.
3 관리 개요
다음 섹션에서는 구현 및 해당 섹션에 포함된 주요 작업에 대한 간단한 설명을 제공합니다.
3.1 구현 설명
3.2 팀
이 섹션에서는 System Proponent, 책임 있는 조직 명칭, 그리고 시스템 구현에 관련된 책임을 지는 직책과 전화번호를 식별합니다. 이러한 연락 담당자로는 프로젝트 관리자, 프로그램 관리자, 보안 관리자, 데이터베이스 관리자, 구성 관리 관리자 또는 시스템 구현과 관련된 책임을 지는 기타 관리자 등이 포함될 수 있습니다. 적절하다면 각 필드 설치 또는 구현 사이트의 현지 구현 대표도 포함되어야 합니다. 구현이 조정되어야 하는 모든 관리자 및 직원을 나열합니다.
3.2.1 팀원
이름 |
직책 |
이메일 |
전화번호 |
---|---|---|---|
Jane Doe |
프로젝트 매니저 |
1 11.111.1111 |
|
3.3 주요 작업
이 섹션은 시스템 구현에 필요한 각 주요 작업에 대한 간단한 설명을 제공합니다. 이 섹션에 필요한 만큼의 하위 섹션을 추가하여 모든 주요 작업을 충분히 설명합니다. 이 섹션에 기술된 작업은 사이트별이 아닌 설치된 하드웨어 및 소프트웨어, 데이터 준비, 시스템 확인에 필요한 일반적이거나 종합적인 프로젝트 작업입니다.
3.3.1 시스템 아키텍처 문서 작성
시스템 아키텍처 문서는 Mattermost가 배포될 환경을 문서화하는 데 사용됩니다. 여기에는 다음과 같은 내용이 포함됩니다:
환경 (개발, 스테이징, 프로덕션 등)
서버 또는 가상 머신 사양
IP 주소 및 DNS
네트워크 다이어그램
참조 : https://mattermost-docs.infograb.net/deploy/deployment-overview.html
3.3.2 필요한 소프트웨어 및 문서 수집
Mattermost 플랫폼을 성공적으로 구현하기 위해 필요한 모든 소프트웨어 및 문서를 수집하고 조직의 구성 관리 시스템에 배치합니다.
3.3.3 배포 환경 준비
필요한 배포 환경 (개발, 스테이징, 프로덕션 등)을 구축하고 Chef, Puppet, Salt 등의 도구를 사용하여 구성 관리를 시행합니다.
참조 : https://mattermost-docs.infograb.net/install/software-hardware-requirements.html
3.3.4 소프트웨어 설치
Mattermost 및 해당 구성 요소 소프트웨어 (PostgreSQL, NGINX 또는 다른 프록시 등)를 설치하고 구성합니다.
참조 : https://mattermost-docs.infograb.net/guides/deployment.html#install-guides
하이 어빌리티로 설치 (Mattermost 엔터프라이즈에서 사용 가능): https://mattermost-docs.infograb.net/scale/high-availability-cluster.html
3.3.5 배포 테스트
각 환경에서 소프트웨어가 성공적으로 배포되었는지 확인합니다. 배포를 확인하기 위해 자동화된 테스트를 생성하거나 업데이트합니다.
참조 : https://mattermost-docs.infograb.net/manage/health-checks.html
3.3.6 대량 데이터 로드
대규모 데이터를 JSON 파일에서 명령줄을 사용하여 Mattermost로 가져올 수 있는 대량 로드 기능이 있습니다. 이 기능은 기존 시스템에서 데이터를 이관하거나 새로운 설치에 데이터를 사전으로 채우는 데 가장 적합합니다.
다음과 같은 데이터 유형을 가져올 수 있습니다:
팀
채널 (공개 및 비공개)
사용자
사용자의 팀 멤버십
사용자의 채널 멤버십
사용자의 알림 설정
글 (일반적이고 답글이 아닌 글)
직접 메시지 및 그룹 메시지 채널
직접 메시지 및 그룹 메시지
참조 : https://mattermost-docs.infograb.net/onboard/bulk-loading-data.html
3.3.7 백업 시행
Mattermost 데이터베이스, 사용자가 업로드한 파일 및 Mattermost
config.json
파일에 저장된 데이터를 보호하기 위한 백업 절차를
시행합니다.
참조 : https://mattermost-docs.infograb.net/deploy/backup-disaster-recovery.html
3.3.8 모니터링 시행
Mattermost 엔터프라이즈는 Prometheus 및 Grafana와 통합된 상태 및 성능 모니터링을 지원합니다. 수집된 통계에 대한 가이드는 아래의 참조에서 확인할 수 있습니다:
참조 : https://mattermost-docs.infograb.net/scale/performance-monitoring.html
3.3.9 AD/LDAP 설정
Mattermost 프로페셔널 및 엔터프라이즈 구독 요금제에서 사용 가능합니다.
Mattermost는 사용자 인증 및 사용자 속성 동기화를 위해 AD/LDAP 통합을 지원합니다.
참조 : https://mattermost-docs.infograb.net/onboard/ad-ldap.html
3.3.10 다중 요소 인증
Mattermost 프로페셔널 및 엔터프라이즈 구독 요금제에서 사용 가능합니다.
IT 보안 정책의 일부로 필요한 경우 다중 요소 인증(MFA)을 구성합니다. Google Authenticator와 호환됩니다.
참조 : https://mattermost-docs.infograb.net/onboard/multi-factor-authentication.html
3.3.11 SAML 단일 로그온
Mattermost Professional 및 Enterprise 구독 요금제에서 이용 가능합니다.
Mattermost를 SAML 2.0 서비스 제공자로 구성할 수 있습니다. Mattermost는 공식적으로 Okta, OneLogin 및 Microsoft ADFS를 IDP(Identity Provider)로 지원합니다.
참고 : https://mattermost-docs.infograb.net/onboard/sso-saml.html
3.3.12 관리자 교육
Mattermost를 관리하는 데 필요한 작업에 대해 관리자를 교육시킵니다.
참고 : https://mattermost-docs.infograb.net/guides/administration.html
3.3.13 법적 및 지원 설정 업데이트
Mattermost에는 이용 약관, 개인정보 보호 정책, 지원 URL 및 이메일을 구성하는 설정이 있습니다. 사용자가 올바른 법적 정보를 확인하고 계정 문제를 해결할 수 있도록 권장 사항입니다. 이 설정은 이전 버전에서는 시스템 콘솔 > 법적 및 지원 에서, 5.12 이후 버전에서는 시스템 콘솔 > 사이트 구성 > 맞춤 설정 에서 찾을 수 있습니다.
![Legal and Support settings](../_images/legal_and_support_settings.png)
3.3.14 사용자 온보딩
Mattermost 사용 방법에 대한 안내와 모바일 애플리케이션 및 사용자 가이드에 대한 링크를 포함하여 모든 사용자에게 환영 이메일을 보냅니다.
참고 : - Mattermost 앱 다운로드 링크: https://mattermost.com/apps - 채널 안내: https://mattermost-docs.infograb.net/guides/collaborate.html
3.4 실행 일정
이 섹션에서는 실행 중에 완료해야 할 활동 일정을 제공합니다. 각 작업의 시작 및 종료 날짜를 연대순으로 표시합니다(3.3절, 주요 작업에서 설명됨).
작업 |
시작 날짜 |
종료 날짜 |
|
---|---|---|---|
1 |
시스템 아키텍처 문서 작성 |
xx /xx/xxxx |
xx /xx/xxxx |
2 |
필요한 소프트웨어 및 문서 수집 |
||
3 |
배포 환경 준비 |
||
4 |
소프트웨어 설치 |
||
5 |
배포 테스트 |
||
6 |
대규모 데이터로드 |
||
7 |
백업 구현 |
||
8 |
모니터링 구현 |
||
9 |
관리자 교육 |
||
1 0 |
사용자 온보딩 |
3.5 보안
시스템 구현을 위해 적합한 경우, 시스템 보안 기능 및 요구 사항에 대한 개요를 포함합니다.
3.5.1 시스템 보안 기능
Mattermost 플랫폼은 다음과 같은 방법으로 보호될 것입니다:
Mattermost는 기업 방화벽 뒤에 완전히 온프레미스로 호스팅되며 VPN 연결로의 액세스가 제한됩니다;
Mattermost의 모바일 액세스는 다단계 인증을 통해 추가로 제한될 것입니다;
Mattermost와의 전송은 TLS를 사용하여 암호화될 것입니다;
데이터 암호화는 기업의 표준을 적용하여 적용될 것입니다;
Mattermost의 무결성 및 감사 제어는 편집 및 삭제를 포함한 모든 메시지의 완전한 이력과 업로드된 모든 파일을 저장합니다. 사용자 인터페이스에서 “메시지 삭제” 및 “채널 삭제” 작업은 데이터를 사용자 인터페이스에서만 제거하고 데이터는 데이터베이스에 유지됩니다. 귀하의 규정 준수 지침이 요구하는 경우 메시지 게시 후 사용자가 메시지를 편집하고 삭제하는 기능을 중지할 수 있습니다.
Mattermost는 API의 속도 제한을 통해 노력 악용 공격으로부터 보호될 것입니다;
Mattermost의 인증은 기업의 Active Directory/LDAP/SAML 디렉터리 서버를 사용하여 제어될 것입니다.
3.5.2 구현 중 보안
이 섹션은 필요한 경우 구현 노력과 관련된 보안 문제에 특히 관련됩니다. 예를 들어, LAN 서버나 워크스테이션이 민감한 데이터가 사전로드된 제거할 수 없는 하드 디스크 드라이브가 있는 사이트에 설치될 경우, 장치의 도난이 민감한 데이터를 침해할 수 있으므로 이러한 장치의 데이터에 대한 배송, 운송 및 설치 중에 데이터의 보호가 어떻게 제공될지에 대해 다룹니다.
4 구현 지원
이 섹션에서는 구현에 필요한 지원 소프트웨어, 자료, 장비, 시설 및 구현에 필요한 인력 요구 사항을 설명합니다. 이 섹션에서 제공된 정보는 사이트별로 구체적이지 않습니다. 하위 섹션에서 다루지 않는 추가적인 지원 요구 사항이 있으면 필요에 따라 추가할 수 있습니다.
4.1 하드웨어, 소프트웨어, 시설 및 자료
이 섹션에서는 필요한 경우 구현을 위해 필요한 지원 소프트웨어, 자료, 장비 및 시설을 나열합니다.
4.1.1 하드웨어
이 섹션은 지원 장비 목록을 제공하며 구현 중에 사용된 모든 하드웨어를 포함합니다. 예를 들어, 클라이언트/서버 데이터베이스가 LAN에 구현된 경우 네트워크 모니터 또는 “스니퍼”와 함께 고부하률에서 데이터베이스 및 LAN의 성능을 결정하는 테스트 프로그램을 사용할 수 있습니다. 장비가 사이트별로 구체적이면 5절, 사이트별 구현 요구 사항에 나열하세요.
4.1.2 소프트웨어
이 섹션은 구현을 지원하기 위해 필요한 소프트웨어 및 데이터베이스 목록을 제공합니다. 소프트웨어 이름, 코드 또는 머리 글자를 식별하십시오. 어떤 소프트웨어가 상용 제품이며 어떤 것이 특정 주(State)에서 사용되는지 확인하십시오. 구현 프로세스를 용이하게 하는 데 사용되는 소프트웨어를 식별하십시오. 소프트웨어가 특정 사이트에 필요한 경우 해당 정보를 4번 섹션에 나열하십시오.
4.1.3 시설
이 섹션에서는 구현 중에 필요한 물리적 시설과 숙박 시설을 식별합니다. 예를 들어 하드웨어 구성 요소를 조립하고 테스트하기 위한 물리적 작업 공간, 소프트웨어 설치자를 위한 책상 공간, 구현 직원 교육을 위한 교실 공간 등이 있습니다. 하루에 필요한 시간, 일수 및 예상 일자를 구체적으로 명시하십시오. 필요한 시설이 특정 사이트에 필요한 경우, 해당 정보를 사이트별 구현 요구사항 섹션 4에 제공하십시오.
4.1.4 자료
이 섹션은 자기 테이프 및 디스크 팩과 같은 필요한 지원 자료 목록을 제공합니다.
4.2 인원
이 섹션에서는 인원 요구사항과 알려진 또는 제안된 스태프 요구 사항(검토 시 적절한 경우)에 대해 설명합니다. 또한 구현 직원에 대한 교육(있는 경우)을 설명하십시오.
4.2.1 인원 요구사항 및 스태프
이 섹션에서는 구현 기간 동안 필요한 직원 수, 필요한 기간, 기술 유형 및 기술 수준을 설명합니다. 특정 직원이 구현을 위해 선택되거나 제안된 경우, 해당 직원과 역할을 식별하십시오.
4.2.2 구현 직원 교육
이 섹션에서는 시스템의 구현 및 유지에 대비하기 위해 필요한 교육(있는 경우)에 대해 다룹니다. 사용자 교육은 아니며, 별도의 교육 계획서에 해당합니다. 시스템 하드웨어/소프트웨어 설치, 시스템 지원, 시스템 유지 및 수정을 위해 각 영역에 필요한 교육 유형 및 양을 기술합니다. 제공될 교육 과정 목록, 교육 과정 순서, 제안 일정을 제시하십시오. 해당 직무 직위 설명에 따라 특정 유형의 직원이 참석해야 하는 교육 과정을 식별하십시오.
교육이 하나 이상의 상용 공급 업체에 의해 제공되는 경우, 그들과 교육 과정명, 교육 내용에 대한 간단한 설명을 제시하십시오.
교육이 주요 직원에 의해 제공되는 경우, 각 교육 과정의 이름과 내용 개요를 제공하십시오. 각 교육 과정을 가르칠 때 필요한 자원, 지원 자료 및 제안된 강사를 식별하십시오.
4.3 성능 모니터링
Mattermost Enterprise에서 제공됩니다.
이 섹션에서는 성능 모니터링 도구와 기술을 설명하고, 구현이 성공적인지를 결정하는 데 도움이 되는 방법에 대해 다룹니다: https://mattermost-docs.infograb.net/scale/performance-monitoring.html
4.4 구성 관리 인터페이스
이 섹션에서는 구성 관리 (CM) 대표와의 상호 작용에 관한 요구 사항을 설명하며, 소프트웨어 목록이 언제 배포될 것인지, 라이브러리가 개발 환경에서 운영 환경으로 이동되었는지 확인하는 방법 등에 대해 다룹니다.