TheOpenCloudEngine / uEngine-cloud

OCE's main component includes : PaaS (Self-service) Portal, Dev-ops, Cloud orchestrator. Also includes microservices-architecture components: Identity & Access Management conforming to OAuth2 and JWT spec and Zuul-based API proxy that interacts with IAM and the service registry (Eureka).

Home Page:http://uengine.org/products/pass

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

프로덕션 아키텍트

SeungpilPark opened this issue · comments

네트워크

VPC
 subnets:
   public:
   	 10.0.0.0/24 : zoneA : public1 : ELB
   	 10.0.0.1/24 : zoneB : public2 : ELB
   private:
     10.0.0.2/24 : zoneA : master 1~ : ELB
     10.0.0.3/24 : zoneB : master 4~ : ELB

     10.0.0.4/24 : zoneA : agentN : uengine cloud apps
     10.0.0.5/24 : zoneB : agentN : uengine cloud apps

     10.0.10.0/24 : zoneA : agentN : tenantA
     10.0.10.1/24 : zoneB : agentN : tenantB
     ...


ELB:
  마스터 로드밸런서:
    dns: internal-master-balancer-1676051608.ap-northeast-2.elb.amazonaws.com
    subnets:
      10.0.0.2/24
      10.0.0.3/24
    targets:
      - master1
      - master2
      - master3
      - master4
      - master5
  퍼블릭 노드 로드밸런서:
    dns: internal-public-balancer-1676051608.ap-northeast-2.elb.amazonaws.com
    subnets:
      10.0.0.0/24
      10.0.0.1/24
    targets:
      - public1:9090
      - public2:9090


퍼블릭 서브넷 라우팅 테이블:
10.0.0.0/16 local
0.0.0.0/0 igw-052cd5d812d249e59	

프라이빗 서브넷 라우팅 테이블:
10.0.0.0/16 local
0.0.0.0/0 nat-0cac3b954d176010f

사용자 볼륨 구성

REX-Ray
:S3FS => 용량 제한 없이 데이터 안전 보관. IO 느림.
:EBS => 용량 제한 있지만 런타임 중 증설 가능. IO 빠름. S3 백업.
:EFS => 대량 병렬 공유 액세스. 용량 제한 있지만 런타임 중 증설 및 증감 가능. IO 확장 자동. S3 백업. 디스크 IO EC2 서버를 멀티 구성 가능.

REX-Ray server: EC2 mounted with EFS
REX-Ray client: All DC/OS agent node.
REX-Ray driver: DC/OS mesos docker excuter.

Provider Storage Platform(s)
Amazon EC2 EBS, EFS, S3FS
Ceph RBD
Dell EMC ScaleIO, Isilon
DigitalOcean Block Storage
FittedCloud EBS Optimizer
Google GCE Persistent Disk
Microsoft Azure Unmanaged Disk
VirtualBox Virtual Media

테넌트 DNS

테넌트 포함 DNS:
appname.tenantname.pas-mini.io

사용자가 DNS 를 소유하고 있는 도메인으로 변경법:
CNAME record type 으로
my.domain.com -> appname.tenantname.pas-mini.io

도커 레지스트리 관리:
AWS Elastic Container Registry
AWS 제공 수명 주기 관리 룰 적용. (Unused image auto deletion)

깃랩 관리:
EC2 Cluster with EFS?
GitLab은 AWS Elastic File System (EFS)을 사용하지 말 것을 강력히 권장합니다. 지원팀은 파일 시스템 액세스와 관련된 성능 문제를 지원할 수 없습니다.
https://docs.gitlab.com/ee/administration/high_availability/nfs.html#aws-elastic-file-system

스토리지: EBS with an NFS server
캐시: AWS Elastic Cache (Redis engine)
DB: AWS RDS (MultiAZ, Secondary is Read Replica setting)
서버: Multi Ec2 instaces in VPC with public,private subnets.
백업: Per day, S3 backup -> AWS glacier

RDS more:
다중 AZ 배포 읽기 전용 복제본
동기식 복제 – 높은 안정성 비동기식 복제 – 높은 확장성
기본 인스턴스의 데이터베이스 엔진만 활성 모든 읽기 전용 복제본은 접근이 가능하며 읽기 확장도 가능
자동 백업은 대기 상태에서 수행 기본 제공된 백업 구성 없음
단일 지역 내에 항상 2 개의 가용성 영역을 확장 가용 영역, 교차 AZ 또는 교차 지역 내에있을 수 있음
기본 데이터베이스 엔진 버전 업그레이드가 발생합니다. 데이터베이스 엔진 버전 업그레이드는 원본 인스턴스와 독립됨
문제가 감지되면 대기 모드로 자동 Failover 조치 독립형 데이터베이스 인스턴스로 수동 승격 될 수 있음

CI/CD -> Auto scaling with Spot instances.

테넌트 network isolation
런타임 중 DCOS 내부의 CDIR 블럭의 라우팅 테이블을 조정하는 방법은? 없다 (재인스톨하라고 함.)

  1. Docker network 를 사용해서 격리하는 방법.
  2. 테넌트를 위한 물리적 인스턴스 풀을 만드는 방법. (인스턴스 간 통신 rule iptable 업데이트)