본문 바로가기

Development(Web, Server, Cloud)143

IaC : Ansible, Vagrant, Terraform 사전 설정 문제는 DC에 너무 많은 compute node들이 존재한다. 이들이 관리가 안된다. 그래서 우리가 필요하다고 느끼는 노드에 가서 하이퍼 바이저를 이용하여 VM을 생성하라고 요청을 받으면 하이퍼바이저가 위쪽에 vResource가 할당되고 그 위에 VM이 생성된다. ㅇ 그래서 전체를 클러스터로 묶고, 전체를 오케스트레이션 하기 위한 도구가 필요해지는데 이 도구를 우리는 controller라고 부른다. 보통 DC에는 노드들이 위치하게 되는데 하나는 compute 노드(HV 노드 : 인스턴스, vNetwork 만듬), Controller를 이용한 오케스트레이션을 한다, 관리자는 controller에 작업지시를 해서 인스턴스에 작업을 수행한다. 이때의 controller 노드에도 오케스트레이션, 인증.. 2022. 5. 19.
CICD : Jenkins, gitlab, githosting, github action jenkins, gitlab, githosting 중 하나를 사용해야 한다. Jenkins jenkins를 이용해서 스크립트를 짜고 동작시키는 것이다. 이 스크립트 내용안에는 git clone, pull 중 하나를 하라고 한다. 그리고 new Image를 master node에서 만든다. 이미지를 바로 worker에 전달못하니 일단 docker hub에 올려버린다. 그리고 worker들은 docker hub에서 받아다가 rolling update 해버리면 된다. 그럼 개발자는 직접적으로 서비스에 들어가지 말고 git에 올리고 jenkins를 사용하기만 하면 된다. 이걸 또 자동화 시키기 위해 github의 변화를 감지하는 무언가를 붙이면 된다. jenkins를 설치하는 방법은 서버에 직접설치하는 방법과 .. 2022. 5. 19.
클라우드 76일차 web 서비스는 3tier로 나뉘어 있다. 3개의 계층으로 web서버, was, db로 나뉜다. web,was,db를 한꺼번에 묶어서 한곳에 구현하는 경우도 존재한다. 하지만 이게 구분이 되지 않으면 유연한 대응을 하기가 어려워 진다.(ex. 유연한 확장) 그리고 각 성분들을 수평적으로 확장하고 묶어 놓는것이다. 우리는 이것들을 cloud에 올려놓기 때문에 유연한 확장이 가능해지니. 외부에서 들어올 수 있게 된다. 만약 우리가 사용하는 이 환경이 legacy 한 환경에서 구현되었다면 새로운 환경을 구축하기 어려워진다. 또 하나 중요한 점은 각 계층별로 별도의 네트워크에 구성하게 된다. 서로 다른 서브넷에 배치하게 된다. 그럼 중간에 라우터가 들어가거나 방화벽을 넣어줄 수도 있다. ???? web 3-ti.. 2022. 5. 17.
클라우드 75일차 현재 구성은 위와같고 서버 안쪽에는 ansible과 gitlab이 설치되어 있는 상태이다. 그리고 vagrant를 이용해서 노드들을 배포했다. 실재 환경이라면 vagrant 를 쓰지 않고 새롭게 생성한 계정을 사용했을것이다. ansible 자체에서 become:yes로 해주면 각 노드에 있는 root로 실행이 되게 된다. gitlab을 동작시키기 위해서는 일종의 gitlab 자체에 접근하고 본인이 사용할 수 있는 도구(shell)와 사용자(gitlab-runner)가 필요했다. 실재 gitlab-runner은 /etc/passwd에 사용자로도 /etc/group 의 그룹으로도 등록이 되어 있다. 우리가 만약에 저장소에 코드를 올리게 되면 gitlab에서는 실행자체와 코드자체의 문제점을 모두 점검해본다. .. 2022. 5. 16.