본문 바로가기

개발 방법론/DevOps의 개념6

[DevOps] 도구와 기술 - 2 1. 컨테이너 기술 - 컨테이너란 ? : 고립된 사용자 공간 사이에 커널이 공유되는 OS 수준의 가상화를 사용하여 항상 동일한 환경을 제공하는 기술이다. * 도커 : 도커(Docker)는 코드, 런타임 환경, 시스템 도구, 라이브러리를 랩핑하는 오픈소스 도구다. - 도커 컨테이너는 실행하는 커널을 공유한다. 따라서 경량 방식으로 바로 실행된다. - 도커 컨테이너는 리눅스 뿐만아니라 윈도우에서도 실행된다. - OS 수준의 가상화로 고려된다. - 각 컨테이너는 호스트 OS상의 사용자 공간에서 격리된 프로세스로 실행된다. (커널) - 각 컨테이너를 위한 별도의 OS가 필요없으므로 컨테이너의 크기가 훨씬 작다. - 각 컨테이너는 커널을 공유하므로 더 많은 자원이 공유 범위에 있다. - 가상 머신은 컨테이너에서 .. 2023. 4. 13.
[DevOps] 도구와 기술 - 도구와 기술은 DevOps 문화에서 중요한 역할을 담당한다. - 그러나 주의가 필요한 유일한 부분은 아니다. - 스킬적인 부분이 많고, 파이프라인과 도구의 장점, 기술스택과 연동성, 프로젝트의 요구사항 등을 잘 고려해서 사용해야 한다. 1. Git (Version Control System) - 모르면 취업 못함 - 코드의 버전을 이용해서 이전 버전까지 추적이 가능하고, 개발자의 협업에서 매우 중요한 역할을 한다. - 많은 개발자가 동시에 작업이 가능하게 해준다. - 소스코드 저장 서버가 있으므로 문제 발생 시 복구가 가능하다. - 비선형 개발을 지원한다. - 호환성이 좋다. 업계 표준이다. - 툴킷 기반 설계이다. - 다양한 병합기법(git branch strategy)을 지원한다. 2. SVN(S.. 2023. 4. 11.
[Jenkins] 설치 및 기본 문법 1. 설치 : 나는 MacOS다. brew install jenkins 2. 실행 : 설치가 다되면 실행한다. brew services start jenkins - 설치 이후 http://localhost:8080 로 접속한다. - 터미널에 적힌 키를 이용하여 첫 접속을 한다. 안적혀있으면 다음 명령어를 터미널에 실행한다. cat /Users/내컴터유저이름/.jenkins/secrets/initialAdminPassword - 나오는 키를 입력하고 접속한다. - 추천하는 플러그인을 설치하고 메인 대시보드를 확인한다. 3. 새로운 작업 생성(Pipeline) - Jenkins 대시보드에서 "새로운 작업"을 선택하고, "Pipeline"을 선택한 후 작업 이름을 지정한다. - 작업 설정 페이지에서 "Pipe.. 2023. 4. 10.
[DevOps] CI(지속적인 통합, Continuous Intergration) 1. 지속적인 통합 메커니즘 - CI는 개발자가 체크인하는 경우 다음 방법 중 하나로 검증하는 소프트웨어 엔지니어링 실천방법이다. 1) Pull Mechanism : 예정된 시간에 자동화된 빌드 작업을 실행한다. 2) Push Mechanism : 변경 사항이 저장소에 저장되는 경우 자동화된 빌드가 실행된다. - 이 단계에서는 소스 코드 저장소에서 이용 가능한 최신 변경사항에 대한 단위 테스트의 실행이 뒤따른다. - 빌드-테스트-통보 : 돌고 도는 파이프라인이 구성된다. 빌드 실행 결과에 기반한 빠른 피드백이 핵심이다. - CI의 필요성 : 개발의 초기단계에서 보완하고 고칠 수 있는 파이프라인 생성, 같은 이슈가 매우 오랜 기간 후에 발생하고 의존성과 복잡성이 증가했을 때 발생한다면, 고치기 어려워진다... 2023. 4. 10.
[DevOps] 용어정리 : 인프라스트럭쳐, 프로비저닝 1. 인프라스트럭쳐(Infrastructure) - 인프라스트럭쳐(Infrastructure)란 기본적인 시설과 서비스를 의미합니다. - 일반적으로 교통, 통신, 배수, 에너지 공급 등과 같은 기반 시설을 가리키며, 이들은 경제 활동과 사회 발전을 지원하는 데 필수적입니다. - IT 산업에서 인프라스트럭쳐는 하드웨어, 소프트웨어, 네트워크 등의 기술적인 구성 요소를 포함하며, 이들은 컴퓨팅 시스템의 핵심 기능을 제공합니다. 2. 프로비저닝(Provisioning) - 프로비저닝(Provisioning) 은 IT 관리에서 자원의 할당 및 배포를 관리하는 과정을 의미합니다. - 프로비저닝을 통해 사용자의 요구에 맞게 컴퓨터, 네트워크, 스토리지, 소프트웨어 등의 자원을 구성하고 배포합니다. - 프로비저닝의 .. 2023. 4. 7.
[DevOps] DevOps의 이해 1. DevOps의 이해 - 데브옵스는 기술적인 부분만 이야기하지 않는다. - 데브옵스는 문화이자 개발과 운영철학, 운동이다. - 개발팀, QA팀, 운영팀 각각의 목표와 목적이 다르고, 우선순위가 다르므로 다양한 문제가 발생한다. - 조직에서는 다양한 문제와 직면해있다. 예를 들면, 빠른 배포요구, 자동화 구축, 모니터링 프로세스의 구축, 변경사항 관리의 표준화, 빠르게 변경사항 구현 및 전달 2. 폭포수 모델 - 소프트웨어 개발을 위해 순차적인 앱 설계 프로세스를 따른다. - 좋은 통제 수단을 갖지만, 수정능력이 부족하다. - 목적 기반의 개발 방법론이다. - 내용 : 요구사항분석 -> 설계 -> 개발 -> 테스트 -> 배포 -> 유지/보수 - 장점 : 이해가 쉽다, 관리가 쉽다, 순차적 프로세스다(순.. 2023. 4. 7.