전체 글 175

[DevOps] 도커 도입편

왜 (나는) 도커를 도입하려고 할까?업무를 하면서 아래와 같은 상황이 발생할 수 있다(했었다).테스트 서버의 OS가 EOS 되고, 다른 OS로 변경이 필요할 때특정 고객의 서버 OS가 무엇인지에 따라 솔루션이 해당 OS에 문제 없이 동작하는지 준비해야할 때솔루션 설계로 여러 서비스가 실행될 때등등이러한 상황에서 개발자(?)는 아래와 같은 준비를 해야한다.배포 및 테스트 서버에 명령어를 하나씩 입력해서 필요한 프로그램을 설치 및 세팅아니면, 특정 OS에 맞춰 스크립트를 실행하면 설치되도록 스크립트를 작성어떠한 방법이든 준비하는데 시간이 생각보다 많이 소요된다.만약 준비하면서 설치에 오류가 발생하면 쉽지않다.(눈물 난다. 😂) 고생을 하면서 느낀점이 도커를 사용해서 설치하면 쉽게 되지 않을까 생각했지만,팀..

[DevOps] 모니터링 시스템 도입기 with Grafana

관련 블로그 글Prometheus+Grafana+OpenTelemetry를 이용한 k8s 모니터링https://jm-baek.tistory.com/351  왜 모니터링 시스템?※ 개인적인 의견을 기반으로 작성해 보았습니다..!!! 현재 상황회사의 기존 플랫폼 서비스 아키텍처는 모놀리식 구조로 되어있지만,현재 새로운 플랫폼 서비스를 개발하면서 도메인 별로 서비스를 나누게 되었다. 문제점테스트 서버에 배포된 애플리케이션의 로그를 확인하려면, 매번 서버에 접속해서 명령어로 확인을 하는 불편함이 있다(서비스가 여러 개로 되어 있어 하나씩 로그를 vi 편집기 등으로 확인한다.)특정 고객사에서는 설치된 서버의 리소스 상태를 확인할 수 있는 대시보드 형태의 페이지를 원하기도 했다.엔지니어 및 개발자 입장에서 서버에 ..

Prometheus + Grafana + OpenTelemetry를 이용한 Kubernetes 모니터링

관련 블로그 글[DevOps] 모니터링 시스템 도입기 with Grafanahttps://jm-baek.tistory.com/352  강의 내용과 개인적으로 실습하면서 작성한 내용을 정리한 내용입니다.  교육 정보교육 제목: Prometheus + Grafana + OpenTelemetry를 이용한 Kubernetes 모니터링교육 날짜: 10/14 ~ 10/16(총 3일)교육 시간: 09:00 ~ 18:00 나의 후기역시나.. 일과 중에 시간내서 강의를 듣는게 쉽지 않다.(개발한 내용을 보여주는 중요한 미팅이 있는 주간이라, 어려울 것이라고 예상은 했다.)모니터링 시스템이라는 새로운 흥미와 내가 개발하고 싶은 내용이라 집중해서 듣고 싶은데...중간에 놓친 부분을 복습이 아닌 주신 자료를 읽으면서 공부하는..

Chapter 12. 열거형

열거형을 볼 때마다 어떻게 만들어진 클래스인지 궁금해서 정리를 해보았다.해당 궁금증을 이해하기 위해서는 '2.4 열거형의 이해' 를 바로 읽으면 된다. 2. 열거형(Enum)2.1. 열거형이란?열거형은 서로 관련된 상수를 편리하게 선언하기 위한 것으로 여러 상수를 정의할 때 사용하면 유용하다. ※ 열거형이 없을 때, 작성한 코드public class Card { static final int CLOVER = 0; static final int HEART = 1; static final int DIAMOND = 2; static final int SPADE = 3; static final int TWO = 0; static final int THREE = 1; ..

섹션 4. 쿠버네티스 무게감 있게 설치하기

쿠버네티스를 너무 쉽게 설치하기 보다 무게감 있게 설치하면 향후, 쉽게 설치한 사람보다 더 빠르고 쉽게 설치할 수 있다. Sprint 1. 부커네티스 제대로 설치하기   => 인프라 환경 설치Sprint 2. 쿠버네티스 누구나 배포하기  =>  CI/CD 환경Sprint 3. 쿠버네티스 실무에 적용하기  => 개발 환경01.전체 환경 순서개발GitHubJenkins깃허브 소스 다운프로젝트 빌드 툴(Gradle, maven 등)로 Jar 생성dockerhub 에서 OpenJDK 이미지를 다운 MyApp 이미지 생성다시, dockerhub에 이미지 업로드jenkins는 Pod 생성 명령을 Kubernates 전달Kubernates는 docker hub 에서 이미지를 다운로드Kubernates는 컨테이너를 생..

섹션3. 컨테이너 한방 정리

해당 강의를 구매해서 듣는 결정적인 이유는 "책을 읽으면서 공부하기에는 이해가 잘 안되었다..."3장 쿠버네티스, 4장 도커, 5장 젠킨스 쯤 읽을 때... 안되겠다 싶어 강의를 구매했다. 공부 속도가 더욱 늦어지겠지만, 강의를 들으면서 책도 읽도록 하겠다.강사님께서도 자료를 바탕으로 자신의 스타일에 맞게 정리를 하면 된다고 했기 때문에 열심히 정리를 해본다..!! 01. 리눅스 흐름으로 이해하는 컨테이너 Container와 Container Orchestration 차이 기술의 흐름Container Orchestrationkubernates / docker swarm / Nomad / MESOS→ (기업관리형) OPENSHIFT / RANCHER / VMware Tanzu  (기업 서버에서 프라이빗 하..

5장. 지속적 통합과 배포 자동화, 젠킨스

컨테이너로 구동하는 애플리케이션을 어떻게 배포할 수 있을까?깃허브 등의 저장소에 저장해 둔 애플리케이션 소스 코드를 내려받아 도커 컨테이너 이미지로 빌드한다.빌드한 컨테이너 이미지를 쿠버네티스에서 사용할 수 있도록 레지스트리에 등록한다.레지스트리에 등록된 이미지를 기반으로 쿠버네티스 오브젝트를 생성한다.생성한 오브젝트를 외부에서 접속할 수 있도록 서비스 형태로 노출한다. 5.1 컨테이너 인프라 환경에서 CI/CD일반적으로 지속적 통합(CI, Continuous Integration)은 코드를 커밋하고 빌드했을 때 정상적으로 작동하는지 반복적으로 검증해 애플리케이션의 신뢰성을 높이는 작업이다. 지속적 배포(CD, Continuout Deploymeny) 는 CI 과정에서 생성된 실뢰할 수 있는 애플리케이션..

4장. 쿠버네티스를 이루는 컨테이너 도우미, 도커

4.1 도커를 알아야 하는 이유쿠버네티스를 이루는 기본 오브젝트가 파드이고, 파드는 컨테이너로 이루어져있으며, 컨테이너를 만들고 관리하는 도구가 도커이다.쿠버네티스를 이루고 있는 기술 자체는 컨테이너를 벗어날 수 없다.4.1.1 파드, 컨테이너, 도커, 쿠버네티스 1) 파드파드들은 워커 노드라는 노드 단위로 관리하며, 워커 노드와 마스터 노드가 모여 쿠버네티스 클러스터가 된다.파드는 1개 이상의 컨테이너로 이루어져 있다.파드는 쿠버네티스로부터 IP를 받아서 컨테이너가 외부와 통신할 수 있도록 경로를 제공컨테이너들이 정상적으로 작동하는지 확인하고 네트워크나 저장 공간을 서로 공유하게 한다.즉, 파드가 이러한 환경을 만들기 때문에 컨테이너들은 하나의 호스트(host)에 존재하는 것처럼 동작한다.2) 컨테이너..

Role(역할)과 Authority(권한)

Role 예시:ROLE_ADMIN: 관리자ROLE_USER: 일반 사용자ROLE_MANAGER: 매니저Authority 예시:READ_PRIVILEGES: 읽기 권한WRITE_PRIVILEGES: 쓰기 권한DELETE_PRIVILEGES: 삭제 권한  참고 사이트https://gregor77.github.io/2021/04/21/spring-security-02/ Spring Security - 2. Role과 권한(Privilege)Role과 권한을 조회하는 UserDetailsService이번 시간에는 SecurityContext에 보관되는 Authentication, Role과 권한(Authority 또는 Privilege)에 대해 알아보겠다.경험을 바탕으로 Role과 권한의 차이는 무엇이고, 실g..

회사 업무 2024.09.13

3장. 컨테이너를 다루는 표준 아키텍처, 쿠버네티스

컨테이너 인프라 환경 이란 리눅스 운영 체제의 커널 하나에서 여러 개의 컨테이너가 격리된 상태로 실행되는 인프라 환경을 말한다. 컨테이너는 하나 이상의 목적을 위해 독립적으로 작동하는 프로세스이다.3.1 쿠버네티스 이해하기실제로 쿠버네티스는 컨테이너 오케스트레이션을 위한 솔루션이다. 오케스트레이션(Orchestration)이란 복잡한 단계를 관리하고 요소들의 유기적인 관계를 미리 정의해 손쉽게 사용하도록 서비스를 제공하는 것을 의미한다. 다수의 컴테이너를 유기적으로 연결, 실행, 종료할 뿐만 아니라 상태를 추적하고 보존하는 등 컨테이너를 안정적으로 사용할 수 있게 만들어 주는 것이다. 컨테이너 오케스트레이션을 제공하는 솔루션들이 있다.도커 스웜메소스노매드쿠버네티스3.1.2 쿠버네티스 구성방법퍼블릭 클라우..