본문 바로가기

서버운영 (TA, ADMIN)/인프라

(48)
Caused by: java.sql.SQLException: null, message from server: "Can't create a new thread (errno 11); if you are not out of available memory, you can consult the manual for a possible OS-dependent bug" Caused by: org.apache.commons.dbcp.SQLNestedException: Error preloading the connection pool at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1398) ~[commons-dbcp-1.4.jar:1.4] at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044) ~[commons-dbcp-1.4.jar:1.4] at b612cam.infrastructure.deprecated.datasource.DataSourceInitializer.(DataSour..
[인프라] 도커 네트워크 컨테이너 네트워크 모델 (CNI) - Sandbox는 Container의 Network Stack을 의미한다 (ex. Interface, DNS, Routing Table, ...): 네트워크 물리 장비 역할- Endpoint는 Sandbox를 Network에 Join(Attach) 해주는 역할을 한다.- Network는 Group of Endpoint로 한 Group의 Endpoint 간에는 서로 통신할 수 있다. 시스템의 ifconfig가 나오는 인터페이스를 바로 Endpoint라고 한다. Endpoint는 실제 Docker Network라는 것이 있어서 Docker Network에 Attach되는 방식이다. 드라이버 종류가 많은데, 드라이버를 지정하여 네트워크를 생성하고 컨테이너를 띄울때 네트워크를..
[인프라] 도커 컨테이너 컨테이너란? 개발, 배포하는 소프트웨어 패키지들의 표준. OS 커널 하나에 여러개의 컨테이너가 격리된 상태로 병리되어 실행될 수 있는 개념. 컨테이너는 VM 보다 가볍고 빠르다. 컨테이너는 리눅스 커널에서 제공하는 기능으로, 도커는 컨테이너라는 기술을 이용한 오픈소스이다. 도커는 컨테이너를 이미지 파일로 빌드/배포하도록 한다. 도커 이미지 규격에 따라 git 저장소 처럼 build/push/pull하는 것도 가능하다. 비슷하게 리눅스 컨테이너를 활용한 rkt, lxc, lxd 오픈소스도 존재하지만 도커만큼 많이 사용되고 있지는 않다. 기존 Virtual Machine의 경우는 모든 VM이 자신의 OS를 별도로 가지고 있다면, 컨테이너의 개념은 단일 HOST OS 위에 애플리케이션 + 바이너리/라이브러리가..
[인프라] 도커 주요 명령어 모음 개인 테스트 서버에 도커를 이용해서 이것저것 다양한 실습을 하고 있습니다. 예전에는 그냥 한 서버에 이것저것 다 설치하고 실습하고, 정리도 안해뒀는데, 도커를 쓰니까 원래 os에서 분리가 되어서 개인테스트서버가 정리된 느낌을 받기도 합니다. 개인 실습용이다 보니 고급 기능없이 간단한 기능만 사용하고 기본적인 명령어만 이용하고 있어서 그런지 사용하려고하면 까먹게 되네요. 기회가 되면 컨테이너간 연결같은 고급기능도 써봐야하는데... 아무튼 기본 검색어를 매번 찾아보기가 번거로워 포스팅에 정리해 두려고 합니다. 나중에는 쉘로 만들어두고 써야겠습니다. http://pyrasis.com/Docker/Docker-HOWTO Docker 설치 우분투$apt-get update$apt-get install docker..
[인프라] CI(지속적인 통합, Continuous Integration) 이해하기 지속적인 통합이란?소프트웨어 개발 프로젝트는 [분석/설계] → [코드 작성] → [빌드] → [테스트] → [릴리스] → [디플로이] 와 같은 생명 주기를 지니고 있으며, 각 단계는 프로젝트가 진행되는 동안 계속 반복적으로 실행되는 경우가 많습니다. 또 개별 단계 내에서 진행되는 업무 내역을 자세히 분석해 보면 처리해야 할 업무가 생각보다 많고 복잡하며, 중간에 하나만 실수하거나 잘못돼도 이를 바로잡는 데 상당히 오랜 시간이 걸리는 경우가 많습니다. 이 같은 복잡성 및 시간이 많이 소요된다는 특성 때문에 반복적인 단계가 잘 진행되지 않고, 이로 인해 개별 개발자가 작업한 내용을 통합하고 테스트하는 작업을 드물게 수행하거나 심지어 프로젝트의 중반 이후에야 수행하는 경우가 많았습니다. 그 결과, 소프트웨어 ..