반응형

 

아래 웹 문서가 파일, 블록, 오브젝트 스토리지에 대해서 잘 설명해주고 있다.

 

 

[기고] 차세대 워크로드의 중심 ‘오브젝트 스토리지’

정부의 디지털 뉴딜에 쏠린 관심이 산업계 안팎에서 뜨겁다. 특히 데이터 산업은 최근 데이터 3법 개정으로 제도 개선이 이뤄지고 있다. 데이터는 다수가 동시에 활용 가능한 비...

zdnet.co.kr

 

위 웹 문서에 있는 그림.

 

 

 

 

블록, 파일, 오브젝트 스토리지 쉽게 이해하기 : Dongkuk Systems Portal

최근 스토리지 시장이 크게 변하고 있습니다. SNS, Big data, IoT, AI 기술이 발달하면서 사진, 영상, 자율주행 데이터, IoT 센싱 데이터 등의 비정형 데이터가 급증하고 있죠.이런 4차 산업혁명 시대에

www.dknyou.com

 

위 웹 문서에 있는 Diagram이다.  한눈에 비교하기 좋게 표현되어 있다.

반응형

 

Prometheus Query를 몇달만에 수행하면, 나의 기억력이 떨어져서 손이 멈짓하는데

자주 사용하는 PromQL 예제를 여기에 메모하고 참조해야겠다.

 

##
## Kubernetes, OCP(Openshift)의 ETCD Pods CPU 통계 데이터 조회
##

pod:container_cpu_usage:sum{namespace="openshift-etcd", pod=~"etcd.+"}


##
## Kubernetes, OCP(Openshift)의 DNS Pods CPU 통계 데이터 조회
##

pod:container_cpu_usage:sum{namespace="openshift-dns", pod=~"dns-.+"}


##
## Kubernetes, OCP(Openshift)의 API Server Pods CPU 통계 데이터 조회
##
pod:container_cpu_usage:sum{namespace="openshift-apiserver", pod=~"apiserver-.+"}

 

위 예제의 마지막 Query를 실행하면 아래와 같은 챠트가 출력된다.

 

 

 

반응형

 


 

Open Source Project(오픈 소스 프로젝트) 그 자체 또는 그것을 이용한 제품(Project)를 보면,

Upstream(업스트림), Downstream(다운스트림)이라는 표현이 자주 보인다.

 

예를 들어, 아래와 같은 표현을 보자.

OKD는 Upstream 활동으로 만들어진 Open Source Project이고
OCP는 OKD에 대한 Downstream 활동으로 만들어진 Project이다.

Fedora는 Upstream Project이다.
RHEL 8은 Fedora의 Downstream 활동으로 만들어진 OS이다.
RHEL 9은 CentOS Stream의 Downstream 활동으로 만들어진 OS이다.

 

 

Open Source  Project는 Upstream, Downstream으로 이루어진다.

(절대적으로 이렇다는 것은 아니고, 대부분 활성화된 Open Source Project가 이렇다는 뜻이다)

 

Upstream은 그 Project의 Open Source Code에 직접 Contribution하는 것이고,

Downstream은 Upstream 활동으로 만들어진 결과물(Artifact)를 사용해보면서(즉, 테스트하면서) Feedback을 주는 행위를 하거나 자기 사업에 적용하는 행동을 의미한다.

 

 

Upstream, Downstream 활동을 요약해보면, 아래와 같다.

  • Upstream Activity
    • 요구 사항 분석(Requirement Analysis)
    • 설계(Design)
    • 구현(Implementation)
    • 문서(Document) 작성
    • 번역
    • Bug Fix
  • Downstream Activiry
    • Upstream Project에서 배포된 PKG 설치, 사용
    • 사용 후 Feedback을 Upstream Project(Community)에 제공
    • 본인 사업에 적용하여 운영
    • 사례 공유

위 내용은 사전적 정의라기 보다는 나의 주관이 쬐~끔 반영된 것이니까, 너무 찰떡 같이 받아들이지 않기를~~~

 


 

반응형

아래 Web Docs에 간단한 사용법과 예제가 있어서 급하게 MD 작성할 때 참조하기 좋다.

 

 

https://heropy.blog/2017/09/30/markdown/

 

MarkDown 사용법 총정리

마크다운(MarkDown)에 대해서 알고 계신가요?파일 확장자가 .md로 된 파일을 보셨나요?웹 개발을 하면서 아마 README.md라는 이름의 파일을 한 번은 보셨을텐데, ...

heropy.blog

 

반응형

Elastic 가이드 북 (김종민 님)

업무 때문에 1~2일 이내에 잽싸게 Elastic을 스터디하고, ElasticSearch를 설치 및 Client App을 개발해야 하는데 어디서 부터 봐야 하는지 막막했다.

그러다가 찾은 Web Docs가 김종민 님의 "Elastic 가이드 북" 이었다.

 

https://esbook.kimjmin.net/

 

Elastic 가이드 북 - Elastic 가이드북

7. 인덱스 설정과 매핑 - Settings & Mappings

esbook.kimjmin.net

 

위 Elastic 가이드 북을 읽고, Elastic에 관해 두루두루 이해를 하고 깊게 봐야 하는 것만 Elastic 공식 Web Site에서 Document를 보면 딱 좋다.

 

 

Elastic Official Guide Documents

Elasticsearch 및 그 주변의 Stack Tool에 관한 모든 것이 다 설명되어 있다.

게다가 Elasticsearch Client API도 Programming Language 별로 설명 및 Example이 잘 작성되어 있다.

Elasticsearch를 사용하다가 궁금하거나 필요한 정보가 있다면, 이 Official Guide Docs를 보는 것이 좋다.

 

 

 

Welcome to Elastic Docs | Elastic

 

www.elastic.co

 

 

 

 

ElasticSearch REST API Example

내가 많이 사용하는 검색 예시이다. 급할 때 참고해서 작성하면 좋을 듯...

 

## 참고: 아래 HTTP REST API 예시는 Kibana의 [Dev Tools] UI에서 수행하기 !!!


##
## index 목록과 요약 정보(Document 개수, 용량) 조회하기
##
GET _cat/indices?v

## 응답은 이렇다.
health status index           uuid                   pri rep docs.count docs.deleted store.size pri.store.size
yellow open   example-index-0 Up1jqY3PTG2pLHdOLJcLGQ   1   1   18126912          739      2.9gb          2.9gb
yellow open   test-index      nGaLdNNORHKfJF1maBlNvw   1   1          2            0     11.2kb         11.2kb




##
## "ALARM" 문자열이 있는 Document를 탐색
##

GET _search?size=50
{
  "query": {
    "match": {
      "message": "ALARM"
    }
  }
}


##
## "kubernetes.container_name": "apiserver" 인 Document를 탐색
##

GET _search?size=50
{
  "query": {
    "match": {
      "kubernetes.container_name": "apiserver"
    }
  }
}


##
## Pod labels에 "vendor=KingSejong" 설정된 Pod가 출력만 로그(즉, Docs)만 검색
##

GET app-*/_search?size=30
{
  "query": {
    "match": {
      "kubernetes.flat_labels": "vendor=KingSejong",
    }
  }
}


##
## Index가 app-000051인 문서 전체를 열람
##

GET app-000051/_search
{
  "query": {
    "match_all": {}
  }
}


##
## Pod의 labels에 "app=my-test-app"가 설정되어 있는 Pod가 출력한 로그 중에서
## 로그의 내용이 "CREATE" 문자열을 포함하는 Document만 검색
##

GET _search
{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "kubernetes.flat_labels": "app=my-test-app"
          }
        },
        {
          "match_phrase": {
            "message": "CREATE"
          }
        }
      ]
    }
  }
}

 

 

 

 

CURL 명령으로 Elasticsearch의 Index, Document를 조회, 생성하는 예제

아래 Blog에 작성된 예제 코드를 그대로 따라하면,

  • Index
    • 생성, 삭제, 리스트를 조회, 특정 Index를 조회하는 것을 할 수 있다.
  • Document
    • 생성, 삭제, 리스트를 조회, 특정 Document를 조회하는 것을 할 수 있다.

 

https://twofootdog.tistory.com/55

 

Elasticsearch REST API 사용하기(인덱스, 도큐먼트 CRUD)

Elasticsearch에서 인덱스(index)와 도큐먼트(document)를 조회/등록/변경/삭제 등을 수행하기 위해서는 REST API를 호출하게 된다. 이번 글에서는 Elasticsearch에서 사용하는 API에 대해 알아보고자 한다. 1.

twofootdog.tistory.com

 

반응형

 

요즘 새 프로젝트를 시작하면서, 이전에 설계했던 방식과 다르게 운영 시스템을 만들게 되었다.

참고로, 내가 일하고 있는 분야(Core Network 시스템, IP Network 시스템)는 개발 방식이 20년 전이나 지금이나 크게 변한게 없다.

그래서 기왕에 새로 개발하는 거라면, 요즘 API 트렌드를 공부하고 설계하는 것이 좋겠다는 생각이 들어서 서점에 가서 최근 2년 사이에 출간한 IT 도서를 몇권 구입해서 왔다.

그 중에서 Arnaud Lauret이 쓴 The Design of Web APIs를 읽어보니 API 설계를 쉽게 설명해줘서 재미있게 읽었다.

 

회사에서 API 설계할 일이 있어서, 그 동안 통밥으로 API를 설계/구현한 일이 몇번 있지만, 내가 잘 알고 한 일이 아니라서 항상 협업하는 동료한테 미안한 마음이 있었다.

 

책을 읽고 좀더 API 설계에 대한 기준이 세워진 것 같아서 좋았다.

 

그리고 책 중간 중간에 유용한 도구를 소개해주고 있는데, API 관련 개발 도구 목록도 있어서 메모를 해본다.

 

 

https://OpenAPI.tools

 

 

 

 

 

 

OpenAPI Generator

 

OAS (OpenAPI Specification) 문서를 이용해서 OpenAPI Source Code를 프로그래밍 언어별로 생성해주는 Tool

 

https://openapi-generator.tech/docs/generators/go

 

OpenAPI Generator · Generate clients, servers, and documentation from OpenAPI 2.0/3.x documents

## METADATA

openapi-generator.tech

 

반응형

 

 


 

Network Programming을 하다보면, curl을 이용해서 간단하게 테스트할 일이 종종 있다.

맨날 사용하는 개발자라면, 머릿속에 curl 사용법이 있어서 금방 명령어를 만들어서 사용하겠지만 나처럼 1년에 5번 정도 사용하는 사람은 매번 검색하는 것도 일이고 시간 낭비이다. 

그래서 자주 사용하는 명령 패턴을 메모를 좀 남겨놓고 필요할 때마다 Copy & Paste 해볼까 한다.

 

설치

아래 명령처럼 설치한다.

##
## Ubuntu 리눅스
##

$ apt install curl


## CentOS, RedHat Linux(RHEL)

$ yum install curl

 

 

CURL 명령의 주요 옵션

-X  (--request)

    HTTP Method.

    예를 들어 GET(조회), POST(데이터 생성), PUT(전체 내용 변경), DELETE, PATCH(일부 내용 변경)

 

-d  (--data)

   POST, PUT 메소드로 요청시 HTTP Body에 담아서 보낼 데이터

 

-H  (--header)

   HTTP Header 항목과 값을 정의

 

 

CURL 명령 예제

 

GET Method 예제

 

##
## Example - OCP에서 Node 정보를 가져오는 명령
##

TOKEN=$(oc whoami -t)
ENDPOINT="https://api.ocp.mycluster.io:6443"
NAME="worker1.ocp.mycluster.io"

curl -k \
    -H "Authorization: Bearer $TOKEN" \
    -H 'Accept: application/json' \
    -X GET  $ENDPOINT/api/v1/nodes/$NAME/status  
    
    
##
## Example - 요청 메시지에 Data를 포함하여 전송하기
##

curl -d "mykey1=myvalue1&mykey2=myvalue2" \
     -H "Content-Type: application/x-www-form-urlencoded" \
     -X GET http://mywebserver.example/api/v1
     
     
     
##
## Example - Query Parameter 형태로 요청 메시지를 전송하는 경우
##           이 때는 특수문자 또는 공백 문자 때문에 urlencode 처리를 해야 한다.
##
## 참고로, 아래 예시는 OCP Pod의 Memory 사용량 조회하는 API를 Call하는 것이다.
##

RESPONSE_FILE=curl-metric-node-cpu.json

curl -s -k -o $RESPONSE_FILE\
    -H "Authorization: Bearer $TOKEN" \
    -H 'Accept: application/json' \
    --data-urlencode "query=instance:node_memory_utilisation:ratio{job=\"node-exporter\", instance=\"worker4.ocp.mycluster.io\", cluster=\"\"} != 0" \
    $ENDPOINT/api/v1/query

 

POST Method 예제

 

##
## Example - URL 형식의 Data 전송
##

$  curl -d "mykey1=myvalue1&key2=myvalue2" \
        -H "Content-Type: application/x-www-form-urlencoded" \
        -X POST  http://my.webserver.example/api


##
## Example - JSON 형식의 Data 전송
##
$  curl -d '{"mykey1":"myvalue1", "mykey2":"myvalue2"}' \
        -H "Content-Type: application/json" \
        -X POST  http://my.webserver.example/api

 

 

 

반응형

 

Framework란 무엇인가?

Software의 설계와 구현을 재사용이 가능하도록 협업화된 형태로 Software PKG를 제공하는 것

 

 

JavaScript Client Side Framework

  • React.js
  • Angular.js
  • Vue.js

 

JavaScript Server Side Framework

  • Node.js의 Express

+ Recent posts