728x90
반응형

DevOps 55

프로메테우스, Prometheus Up & Running - ch.1

Chapter 1.What is Prometheus? 핵심만 알아보자 영어와 같이 적겠다. 시작해보자 Prometheus is an open soruce, metrics-based monitoring system. It has a simple yet powerful data model and a query language that lets you analyse how your applications and infrastrucgture are performing. 프로메테우스는 우선 오픈소스 이면서 메트릭 기반의 모니터링 시스템이다. 간단할 뿐만 아니라 data model이 잘 갖추어져 있고 그에 따른 query (PromQL)이 있어서 실제로 인프라에서 작동하는 어플리케이션에 영향을 거의 주지 않고 작동..

DevOps/Prometheus 2022.11.07

신규 개발자가 해야 하는 일

신규 개발자가 입사하면 무엇을 해야할까??? 이미 많이 경험해본 선배들이 해준 얘기를 귀담아들어보자 1. 상사의 기대치 파악 우선 프로젝트 단위 별로 배정받고 그 안에 과제를 수행하게 될 것이다. 그 과제를 어느 시간 안에, 어떤 방식으로, 어떤 결과를 낼 것이냐? 가 정해지고 시작한다. 즉, PM과 같이 일정을 잘 짜야 한다. 그 안에 수행해내야 하는 것은 물론이다. 1. 주요 업무 2. 협업하게 될 동료 3. 팀 내에 어떤 프로젝트가 어떤 프로세스로 돌아가는지 4. 적극적으로 질문하고 기록한다. 신규 개발자로서 해야할 것이 많다. 사실 신규 입사자라 함은 주니어, 시니어 가릴 것 없이 진짜 그 회사에 처음 온 사람을 뜻한다. 신입뿐만 아니라 경력도 처음 오면 적응의 기간이 필요하다. 정확히 회사가 무..

DevOps/좋은 글 2022.10.26

개발자가 성장하는 방법

개발자는 함수와 같아서 input이 있어야 ouput이 나온다. 즉, 무엇인가를 해야만 성장할 수 있다. 먼저 선배 개발자들이 이런 글을 써주었고 어떻게 해야하는지 제시해주었기에 나는 그저 숟가락만 얹어서 먹기만 하면 된다. 여러가지 방법을 알아보자 1. 기술 도서 읽기 처음은 누구나 쉽게 해볼 수 있는 기술 도서 읽기다. 온라인으로도 정보가 많이 있지만 사실 책만큼 보편적으로 깊이 알기는 어렵다. 오히려 저자가 신경써주었으면 더 신경써주었지 온라인보다 가벼운 정보는 들어있지 않다. 더군다나 글을 쓸 정도, 다른 사람이 읽을 수 있을 정도로 설명할 수 있다는 것은 저자가 엄청난 실력자임을 알 수 있다. 게다가 수많은 감수를 거쳐서, 교정을 거쳐서 출판되는 만큼 완성도도 높다고 기대한다. 사실 종이책은 가..

DevOps/좋은 글 2022.10.10

PromQL과 MetricsQL 의 쿼리 최적화 방법(진행중)

수많은 QL(Query Language) 중에 나는 PromQL, 다시 말해서 프로메테우스를 이용하는 방법에 대해서 알아보려고 한다. **참고로 프로메테우스의 수집된 것이 저장되는 곳은 Local이나 Remote이다. (알아서 마운트 하면 된다.) 프로메테우스에 대한 기본적인 설명은 이 글에서 설명하겠다. [분류 전체보기] - Prometheus, 프로메테우스 개념 뭐 기본적으로는 이해했다. 그런데 왜... 많고 많은 데이터들중 PromQL을 신경써주어야 하느냐..? 라는 것이 문제다. 그래서 여기서 PromQL 에서 무엇이 성능을 느리게 하는지 Query에 따른 비용, 어떻게해야 최적화할 수 있는지 알아보려고 한다. 우선 PromQL의 성능에 영향을 주는 요소는 뭐가 있을까?? 1. 뽑아내려는 데이터 ..

DevOps 2022.10.08

Prometheus, 프로메테우스 기본 개념

우선 데이터에 대해서 설명하겠다. 프로메테우스가 수집하는 데이터는 시계열 데이터다. 그래서 시간 간격에 따라 데이터가 같이 저장된다. 이런 식으로 저장된다. (timestamp, value) 즉, 시간과 같이 저장되는 데이터다. 그 시간, Timestamp는 밀리세컨드 단위를 가지고 있다.(64-bit 일 때 가능) 그런 시계열 데이터는 또 이름을 가지고 있다. 예를 들자면 node_cpu_seconds_total —> the total number of CPU seconds used node_filesystem_free_bytes —> free space on filesystem mount point go_memstats_sys_bytes —> the amount of memory used by Go ..

DevOps/Prometheus 2022.10.02

CMake 튜토리얼 - 2

[DevOps] - CMake 튜토리얼 - 1 이번에는 라이브러리를 추가해서 빌드하는 방법이다. C++에서는 바로 square root 계산이 불가능하다. 내가 직접 구현하지 않는 이상.. 어디 라이브러리를 이용하는 것이 편하다. 아니면.. 그냥 cmath 쓰던가? 그럼 이제 라이브러리를 추가하는 작업을 CMakeLists.txt 에 추가해야 한다. 이번에 내가 추가할 MathFunctions는 MathFunctions 이라는 하위 디렉터리에 라이브러리를 넣을 생각이다. 즉, 헤더파일하고 source file도 넣을 예정이다. 소스에는 mysqrt라는 내 라이브러리에서 가져온 메서드를 쓸 생각이다. 새로운 라이브러리를 추가할 때는 아래 키워드를 쓴다. add_library({library_name} {f..

DevOps 2022.09.20

CMake 튜토리얼 - 1

C++ 프로젝트를 CI 구성하려다 보니까.. 우분투 환경에서 컴파일, 빌드가 진행되어야 한다. 그래서 그것에 거의 필수적인 오픈소스인 CMake를 알아보기로 하였다. 배움의 길은 멀고도 험하다. 속성으로 끝내보자 가장 필요한 빌드부터!! 간단한 것을 빌드부터 해보고 그 다음 복잡하게 가보자 우선 제일먼저 CMakeLists 파일을 만들어야 한다. (이 파일은 Step1 폴더 안에 들어있다.) CMakeLists.txt 파일을 보자 cmake_minimum_required(VERSION 3.10) # set the project name project(Tutorial) # add the executable add_executable(Tutorial tutorial.cxx) 3가지로 나누어졌다. 1. CMa..

DevOps 2022.09.16

Github, Github Action 을 이용하여 CI 구성하기

업데이트중 #1. 220916 Jenkins도 아니고 왜 Github Action을 사용하느냐?? ** 수많은 CI 중 Github Action을 하는 이유는 몇가지가 있다. GitHub과 하나로 통일된 환경에서 CI 수행이 가능 중앙에서 관리하는 GitHub Actions Runner에 지속적으로 트러블슈팅하여 원활한 CI 환경 구성이 가능 프로젝트마다 개별 Runner를 통한 빌드 테스트가 가능 GitHub Actions Runner 기동을 하기 위해 친숙한 문법의 YAML 파일로 간단하게 파이프라인 구성 가능 핵심적인 이유는 1이겠다. GitHub을 쓰면서 다른 CI를 쓸 바에.. 그냥 쓰겠다라는 말이다. ??? GitLab도 있는데 뭐야 왜 그거 안해???? 사실 GitLab, GitHub Act..

DevOps 2022.09.16

Shell Script, 셸 스크립팅하기

나는 Ubuntu 환경에서의 bash Shell 이다. 알아보자 셀 스크립팅의 기본은 간단하다 아래 포맷만 지키면 된다. (prompt) command { option } { arg.. } 여러가지 환경변수들은 미리 지정되어 있다. 실제 값의 확인은 echo ${name} 으로 확인하며 미리 지정된 여러가지 값들은 아래와 같다. 변수 설명 변수 설명 HOME 현재 사용자 홈 디렉터리 PATH 실행 파일을 찾는 디렉터리 LANG 기본 지원 언어 PWD 사용자 현재 디렉터리 TERM 로그인 터미널 타입 SHELL 로그인해서 사용하는 셸 USER 현재 사용자의 이름 DISPLAY X 디스플레이 이름 COLUMNS 현재 터미널의 컬럼 수 LINES 현재 터미널의 라인 수 PS1 1차 명령 프롬프트 변수 PS2 ..

DevOps/Shell 2022.09.05

Continuos Integration / Continuous Delivery , CI / CD란?

제목에 나와있다시피 지속적 통합과 지속적 배포를 CI / CD라고 한다. 이것의 목적은 통합도 자동화요. 배포도 자동화다. 그리고 그 자동화를 효율적으로 고도화하는 것이 목적이다. 알아보자 CI부터 알아보자 어떤 식으로 진행되는 것인지부터 보자 1. 개발자가 작업 내용을 커밋한다. 2. 커밋을 하면 자동화된 툴이 해당 내용을 적용해서 빌드를 뽑아낸다. 이것이 CI이다. CI를 하는 이유는 디버깅을 빠르게 하는 것이다. 작업 내용이 적용되었을 때 예상치 못한 오류가 생기는 경우가 많은데 자동화가 이루어진다면 개발자는 CI가 뱉어낸 오류에 대해서 디버깅을 하면 된다. **만약 작업내용의 크기가 엄청 크다면.. 찾아야 할 버그도 많다는 말이다. => 지속적으로 커밋을 통해 버그를 detect 하자 개발자가 직..

DevOps 2022.09.03
728x90
반응형