본문 바로가기
728x90
반응형

Server17

배포 전략 1. 인플레이스 배포(In-place Deployment) AWS의 Codedeploy가 대표적으로 이 방식을 사용한다. AWS CodeDeploy: 개발자가 EC2 인스턴스 및 온프레미스에서 실행 중인 인스턴스를 비롯한 모든 인스턴스에서 소프트웨어를 배포하고 업데이트하도록 지원하는데 초점을 맞춘 빌링 블록 서비스 배포 그룹의 각 환경에 있는 어플리케이션을 일시정지한 후 최신 상태의 어플리케이션 업데이트를 실행한다. 로드밸런서를 사용하면 인스턴스가 배포중이더라도 등록을 해제할 수 있고 배포 후에도 이전 버전으로 복원이 가능하다. 2. 롤링 배포(Rolling Update Deployment) 현재 위치 배포, 한개의 Load Balancer가 4개의 서버로 골고루 요청을 보낸다. 로드밸런서에서 연결된 서.. 2024. 4. 20.
CI/CD CI/CD, or Continuous Integration and Continuous Delivery, automates the software development process from the initial code commit all the way through to deployment. It eliminates much of the manual human intervention traditionally required to get new code to production. This process takes care of building,testing, and deploying new code to production. The promise is that it enables software team.. 2024. 4. 8.
Kubernetes Kubernetes is an open-source container orchestration platform. It automates the deployment, scaling, and management of containerized applications. A Kubernetes cluster is a set of machines, called nodes, that are used to run containerized applications. There are two core pieces in a Kubernetes cluster. The first is the control plane. It is responsible for managing the state of the cluster. In PR.. 2024. 4. 1.
14. 유저 세션(3) 6-2. 구현하기 유저가 로그인을 성공하면 유저 세션 역할을 하는 프로세스를 생성할 것이다. 점수를 저장하는 API는 핸들러에서 처리시 해당 세션 프로세스에게 메시지를 전달해서 결과값을 받아 오도록 한다. 6-2-1. 유저 세션 프로세스 생성 mon_users 모듈에 new_session/1, loop/1, make_session_key/2 함수를 만든다. 프로세스 생성 부분만 만들고, 나머지는 함수 껍데기만 작성하겠다. %% API -export([join/2, login/2]). join(Id, Password) -> F = fun() -> case mnesia:read(users, Id) of [] -> %% 해당 Id로 가입된 데이터가 없으면 저장한다 Users = #users{id=Id, pas.. 2018. 1. 18.
13. 유저 세션(2) 프로세스를 스스로 종료되도록 하려면 몇 가지 방법들이 있다. 물론 exit(Pid,kill)함수를 사용해도 되겠지만 프로세스 스스로 종료되도록 하는 것이 낫다. stop 메시지를 받으면 종료되도록 하는 방법 receive {Pid,Message} -> Pid ! Message; stop -> true end 5초 동안 아무런 메시지를 못 받으면 바로 종료되도록 하는 방법 receive {Pid,Message} -> Pid ! Message; after 5000 -> true end timer를 등록해서 몇초 후에 스스로에게 stop 메시지를 보내도록 해도 된다. erlang:send_after(Time, Dest, Msg) -> TimerRef. 예로 5초 후에 자기 자신에게 stop 메시지를 보내는 코.. 2018. 1. 15.
12. 유저 세션(1) 6-1. 유저 세션 서버에서 세션은 유저가 접속한 이후에 로그인된 상태에 지속적으로 관리하기 위해 필요하다. 모바일에서는 로그인과 다르게 로그아웃은 서버에서 자동으로 관리해줘야 한다. 로그인에 성공한 유저의 세션을 만들고, 해당 유저가 특정한 시간 동안 아무런 행동을 하지 않는다면 자동으로 세션을 종료해서 로그아웃 되도록 하는 기능이 필요하다. 사용자의 행동과 서비스에 맞는 적절한 시간을 이용해서 세션의 만료를 판단해야 한다. 얼랭 프로세스를 이용해서 유저의 세션을 만들 거다. 유저의 세션이라고 하는 것은 접속한 유저마다 독립적으로 하나씩 필요한 것이고, 이것에 가장 잘 부합되는 것이 얼랭의 프로세스이다. 6-1-1. 얼랭 프로세스 얼랭에서의 프로세스라고 하는 것은 OS의 프로세스를 생각하면 안 된다. .. 2018. 1. 15.
11. 데이터베이스(2) 5-2-3. 테이블 생성 테이블 생성은 mnesia:create_table(Name, Args) 함수를 사용한다. Name은 생성할 테이블 이름을 Atom 형식으로 작성, record 이름을 사용하면 편리하다. Args에는 테이블의 타입과 각종 테이블 관련 설정값들을 튜플의 리스트로 입력한다. Mnesia에서 생성할 수 있는 테이블에는 3가지 종류가 있다. ram_copies disc_only_copies disc_copies : 데이터를 디스크와 메모리에 동시에 저장한다. 가장 추천하는 옵션 mnesia:create_table 함수의 주요 설정값 {attributes, List} : 테이블의 칼럼 이름을 리스트 형식으로 입력한다. 예를 들어 전에 정의했던 users라는 record를 사용하는 테이블이라.. 2018. 1. 13.
728x90
반응형