IT 이야기/Open Source 11

Jenkins 작업등록

Code Example 별도의 github repo 생성 github tokens 생성 jnekins Credentials system global credentials username with password / global / git사용자명 / token 입력 jenkins 새 작업 등록 helloworld 응용프로그램 구현하기 (사전에 생성한 github repo) helloworld-github git clone https://github.com/Moon-Tae-Kwon/helloworld.git cd helloworld git checkout -b initial-baranch touch helloworld.js 테스트 기반 개발 방법 (TDD) 적용을 위한 아래의 작업 진행 PC에 nodejs ..

docker in docker (DinD)

docker in docker (DinD) docker container 이미지에서 docker를 설치하여 container 이미지를 생성하고 운영 테스트입니다. dind dind-github container 이미지 안에서 docker 설치 및 container 이미지를 생성하여 dockerhub 업로드까지의 과정을 수동으로 테스트해보았습니다. Dockerfile source docker build -t dind . docker run --privileged -t -i dind docker continer console docker -v & docker images & docker ps -a # docker 동작 유무 확인. docker pull ubuntu docker run -it --name=mo..

Docker outside of Docker (DooD)

Docker outside of Docker (DooD) DinD의 아래 문제점을 해결하기 위해 DooD를 확인해 보았습니다, DooD는 호스트의 Docker 소켓을 게스트로 마운트 하여 게스트 continer에서 호스트에서의 docker install 환경을 이용하는 것으로 DinD와는 다른 형태의 테스트입니다. docker in docker (dind)의 가장 큰 문제점은 보안 측면에서의 호스트의 권한의 많은 부분을 사용할 수 있는도록 하는 privileged 옵션을 부여해야 하는 부분에 입니다. -privileged 옵션 설명 Give extended privileges to this container 호스트의 docker 소켓을 마운트 하는 게스트 continer 생성 및 게스트 continer에..

Kubernetes(K8S) Meetup

쿠버네티스 밋업은 여러 경로를 통해서 찾아서 들을 수 있습니다, 저는 여러 행사게 참석하다가 Meetup 정보를 얻어서 들을 수 있었습니다 발표 이야기 컨테이너 컨테이너 오케스트레이션 쿠버네티스 개념 및 아키텍처 실습 도카, 도커 컴포트를 이용한 웹 서비스 배포 쿠버네티스 기본 사용법 쿠버네티스가 리눅스 운영체제 같은 역할을 할 수 있게 될 수 있다. 맛보기 - 쿠버네티스 → desired state MSA 부분으로 해당 역할만 수행 POD 배포 과정 git - argoCD - ku → dns a.com / b.com 쿠버네티스 → 스팟인스턴스 타입 유형 ASG(테스트 목적인 pod가 위치할 예정) 스팟인스턴스 종료 5분 전 API 보내면 쿠버네티스 pod 교체 쿠버네티스 → 오토스케일 기능 지원(설치해..

Kubernetes 기본 개념

Kubernetes 컨테이너화 된 애플리케이션을 자동으로 배포 , 스케일링 및 관리해주는 오픈소스 시스템이며 구글에서 설계되었고 애플리케이션을 구성하는 컨테이너들의 쉬운 관리를 위해 논리적인 단위로 그룹화한다. Kubernetes 어원은 그리스어로 조타수, 키잡이라는 뜻이며 Kubernetes에서 ubernete가 8글자이므로 k8s라고 표현하기도 한다. 출시 배경 마이크로 서비스 아키텍처 발전 마이크로 서비스 아키텍처가 단순 개념에서부터 점점 발전하기 시작하였고 디자인 패턴과 이를 구현하기 위한 다양한 인프라 플랫폼들이 소개되기 시작했다. 또한 서비스가 점점 작아지면서 1~2 Core로도 운영할 수 있는 작은 서비스들이 등장하게 되었고 이런 작은 서비스는 VM 환경으로 운영하기에는 낭비가 심하다 설루션..

Monitoring With AWS & On-premise

지난 몇 년간 많은 Monitoring Tool을 사용해 오면서 그중 가장 간결하고, 빠르게 적용 할 수 있는 Monitoring Tool(Influxdb, Telegraf, CloudWatch, Grafana)을 소개하고 AWS와 On-premise의 통합 모니터링 사이트 구축 방법을 공유하기 위해서 작성하였습니다. Monitoring Tool Influxdb Go 언어로 작성되어 외부 의존성이 없습니다. 다양한 API, HTTP(S)를 제공한다. 시계열 데이터베이스로 시간 순서에 따라 저장하고 조회하는 기능으로 인해 실시간 비교가 필요한 모니터링에 적합합니다. Telegraf Go 언어로 작성되어 외부 의존성이 없습니다. (Influxdb와 동일한 업체에서 개발) 다양한 매트릭을 수집하여 데이터베이스..

Python Programming

Python Programming Python Programming 의 경우에는 실무적용이 바로 가능하도록 안내및, 실습 테스트를 하여 바로 진행 하겠습니다.기본적인 설명을 건너뛰고, 실습적용 단계 로그 추출및, 로그 데이터 백업등의 간단한 부분부터 시작하도록 하겠습니다. 저 또한, 지속적으로 미루어 왔던 부분인지라 같이 배우면서 테스트가 되었으면 좋겠습니다.

Apache Spark

Spark의 중심에는 RDD(Resilient Distributed Dataset, 회복성 있는 분산 데이터 세트) 개념이 있다. 이는 YARN 클러스터의 여러 물리적 노드에서 나뉘고 분산되었으며, 병렬적으로 작동될 수 있는 객체들의 변경 불가능한 집합을 뜻한다.주로 RDD은 공유된 파일 시스템, HDFS, HBase 혹은 YARN 클러스터에 하둡 InputFormat을 제공하는 데이터 소스에서 데이터를 로드할 때 인스턴스화된다.RDD가 실체화 되면, 사용자는 일련의 연산을 적용할 수 있다. 모든 연산은 변형이나 동작 중 하나의 유형으로 나뉜다. 이름이 뜻하듯이 변형 (Transformation) 연산은 기존의RDD에서 새로운 데이터 세트를 생성하고 YARN 클러스터의 분할된 데이터 세트에 적용될 수 있..

Varnish cache

Varnish 소개Varnish는 BSD 라이선스를 따르는 오픈 소스 웹 캐시 소프트웨어이다. Varnish는 2006년 노르웨이의 최대 신문사인 Verdens Gang(VG)에서 사용하기 위해 개발되기 시작했으며, 유명한 FreeBSD의 커널 개발자인 Poul-Henning Kamp(PHK)가 개발을 주도했다. PHK는 OS 커널에 대한 해박한 지식을 바탕으로, Varnish가 OS 커널과 조화롭게 동작하여 최적의 성능을 발휘할 수 있도록 설계했다. Varnish가 개발된 후, VG는 기존에 사용하던 12대의 Squid 서버를 3대의 Varnish 서버로 교체했다. 현재는 Varnish Software(www.varnish-software.com)가 Varnish를 개발하고 있으며, Varnish에 대..