kpuce2022CD / CACA

원격 저장소를 활용한 그림 협업 & 버전관리 툴 (Mobile drawing collaboration tool using remote storage)
4 stars 3 forks source link

Architecture #12

Closed papavhub closed 2 years ago

papavhub commented 2 years ago

image

papavhub commented 2 years ago

image

papavhub commented 2 years ago

GitHub의 DevSecOps : 깃허브는 GitHub Advanced Security 를 사용해 DevSecOps를 자동으로 실행할 수 있음.

<깃허브의 취약점을 식별하는 다이어그램>

  1. GitHub Security가 해당 리포지토리 관리자에게 메일 경고를 보냄.
  2. GitHub Dependabot은 취약한 패키지 및 응용프로그램을 자동으로 탐색하는 봇. 취약점 발견시 다음 작업을 자동으로 완료함.
    • 해당 리포지토리에서 새로운 브랜치 생성
    • 취약성을 보완하기 위해 라이브러리 검사, 자동 업데이트 -> 새 브랜치에서 작업
    • 업데이트 한 브랜치를 Pull Request 함.
  3. Pull Request 승인시 merge 후, 기존 브랜치와 병합됨.
  4. 머지 후 CI/CD 작업 실행
    • 마스터 브랜치에서 앱을 추출하여 배포
    • CI/CD : 개발>빌드>테스트 자동화(CI) 및 배포 자동화(CD)
  5. 테스트 또는 스테이징 환경에 새 앱 버전을 배포함.
    • Azure 같은 배포 템플릿을 이용하여 배포.
papavhub commented 2 years ago

— AWS 서비스를 사용한 Git Webhook

— AWS code deploy

— AWS CodeBuild

=> 필요없음

papavhub commented 2 years ago

간단하게 말하면 저거는 깃허브가 아니라 깃 레포지토리에 있는거 배포하는 거 같음

AWS S3 : 깃허브 레포지토리라고 생각하면 편함

Pipeline : 배포할 때 쓰임 https://docs.aws.amazon.com/ko_kr/codepipeline/latest/userguide/tutorials-s3deploy.html (공식문서 - 안읽어도 됨)

=> 결론 : AWS S3를 이용하는 방향으로가는건 어떻습니까?

papavhub commented 2 years ago
papavhub commented 2 years ago
  1. Commit

    • ssh > GitLab Shell > Redis > Sidekiq > Gitlab rails > postgreSQL
  2. Clone

    • postgreSQL > Gitlab rails > unicorn > GitLab Shell
  3. Website

    • GitLab Pages > gitlab workhorse > unicorn > gitlab rails > postgreSQL
  4. Website 접속

    • nginx > gitlab workhorse > GitLab Pages
papavhub commented 2 years ago
pjy7814 commented 2 years ago

무제 drawio

ghost commented 2 years ago

Architecture_강태화

Jimin731 commented 2 years ago

구성도 drawio (1)

pjy7814 commented 2 years ago

최종

구성도 drawio

pjy7814 commented 2 years ago

Github, GitLab 구조

- Nginix : 동시 접속 처리에 특화된 웹서버 프로그램, - Gitlab Workhorse : GitLab용 스마트 리버스 프록시/ 파일 다운로드, 업로드, 깃 푸시 풀 등 대규모 HTTP 요청 처리 - 리버스 프록시 : 캐싱, 보안, Load Balancing - Unicorn : 빠른 클라이언트 및 Unix를 위한 랙 HTTP서버 - Ngnix 서버랑 연동이 잘 됨 - rails의 기본 서버가 webrick인데 배포용으로 좋지 않아서 passenger, mongrel, unicorn, thin, puma 사용하는데 그 중 unicorn 사용한듯 합니다 - PostgreSQL : 오픈소스 DB - GitLab Rails : Ruby on Rails - 오픈 소스 웹 프레임워크 - MVC 패턴 - Redis : 캐시 서버 (https://brunch.co.kr/@jehovah/20) - 키 -값 기반의 인메모리 데이터 저장소 - sidekiq이랑 같이 쓰임 - 디스크에 지속되는 메모리 내 데이터베이스 - Sidekiq : 비동기 작업 처리 - Ruby on Rails 안에 들어있는 듯 - Redis에 의존적 사용하려면 redis 서버 설치 필수 - Rails - redid - sidekiq (https://kbs4674.tistory.com/85) - Ruby 용 백그라운드 처리, redis를 작업 관리 저장소로 사용 - GitLab Shell : ssh를 통해 리포지토리 제공 —————— - Puma : Rails 5.0 기본 서버 - Gitaly : NFS(Network File System) 없이도 Git 레파지토리에 대한 RPC 기반의 빠른 읽기/쓰기를 가능하게 하는 오픈소스 서비스 - gitLab 고가용성을 보장 - Git 레파지토리의 오류를 줄이고 복제된 저장소를 얻을 수 있음
pjy7814 commented 2 years ago
Jimin731 commented 2 years ago

Github, GitLab MSA 구조 (+Container) : 컨테이너 기반 마이크로 서비스 아키텍처

GitLab Rails (Puma)

Puma

PostgreSQL (+이유)

papavhub commented 2 years ago
스크린샷 2021-12-26 오후 5 05 10
papavhub commented 2 years ago

— Nginx (vs apache)

— Gitlab workhorse https://gitlab.com/gitlab-org/gitlab-workhorse

papavhub commented 2 years ago

image https://blog.shikisoft.com/sharing-aws-codecommit-repo-with-devs/

pjy7814 commented 2 years ago

swift에서 c++ 사용 https://ichi.pro/ko/swifteseo-c-kodeuleul-sayonghaneun-bangbeob-198832457836937

papavhub commented 2 years ago

image