filebeat 설치하기
To add the Beats repository for YUM:
To add the Beats repository for YUM:
참조 Kafka Producer JMX exporter 사용하기
Collecting metrics is critical for understanding the health and performance of your Kafka deployment. By monitoring metrics, you can actively identify issues...
참조 Apache Kafka Monitoring with Elasticsearch, Beats, and Kibana
카프드롭은 카프카 토픽을 보고 소비자 그룹을 검색할 수 있는 웹 UI입니다. 이 도구는 브로커, 토픽, 파티션, 소비자 등의 정보를 표시하고 메시지를 볼 수 있도록 해줍니다.
아키텍처 개요 자세히 알아보기 전에 Kafka 배포의 일반적인 아키텍처를 이해하는 것이 중요합니다. 모든 배포는 아래 그림과 같은 구성 요소로 이루어져 있습니다:
bitnami/kafka 28.1.1
# compose.yaml services: influxdb2: image: influxdb:2 ports: - 8086:8086 environment: DOCKER_INFLUXDB_INIT_MODE: setup DOCKER...
카프카 모니터링은 카프카 배포의 최적화를 위해 사용되는 중요하고 광범위한 작업입니다. 이 프로세스는 직접 구축하는 대신 기존 모니터링 솔루션 중 하나를 적용하면 원활하고 효율적으로 수행할 수 있습니다. 프로젝트 클러스터에서 메시지 전송 및 처리를 위해 Apache Kafka와 함께...
Configuring JMX Access for Kafka
3rd party GUI tools for Apache Kafka
참고 Architecture and Monitoring Apache ActiveMQ with Grafana
Grafana 설치 Grafana OSS v9.5.0 버전을 download 받습니다.
Kafka Troubeshooting에 대한 참고 자 링크입니다.
Telegraf는 인플럭스데이터(InfluxData)에서 개발한 서버 및 애플리케이션 성능 모니터링용 에이전트로, 주로 시계열 데이터를 수집하여 다양한 모니터링 시스템에 전송하는 역할을 합니다. Telegraf는 다양한 입력 플러그인(input plugin)을 통해 여러 시스템의 ...
Under Replicated Partitions란?
Preferred Replicas % Preferred Replicas %는 Kafka 클러스터에서 선호 리더 복제본(Preferred Leader Replica)이 실제로 리더 역할을 하고 있는 파티션의 비율을 나타냅니다.
주요 기능 Kafka 토픽 목록 조회
Skewed Skewed라는 용어는 불균형이나 치우친 상태를 의미합니다. Kafka에서 Skewed 상태는 특정 브로커에 데이터나 파티션이 지나치게 많이 몰려 있는 상태를 설명할 때 자주 사용됩니다. 이것은 리소스 사용량에 불균형을 초래할 수 있으며, 다음과 같은 요소에서 문제가 ...
Burrow는 LinkedIn에서 개발한 Kafka 모니터링 도구로, 특히 Kafka 소비자 그룹(consumer groups)의 상태를 모니터링하는 데 중점을 둔 도구입니다. Burrow는 Kafka의 컨슈머 그룹 오프셋과 지연(latency)을 모니터링하고, 각 컨슈머 그룹이 ...
kafka server 시작할 때 로그로 출력되는 Kafka Parameter입니다.
zookeeper.properties 의 설정정보입니다.
log.retention.ms, log.retention.minutes, log.retention.hours 기본값: log.retention.hours: 168시간 (즉, 7일)
authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer super.users=User:admin;User:kafka allow.everyone.if.no.acl.found=false security.inter.broker.pr...
Kafka Producer의 설정값에 대한 설명입니다.
fetch.min.bytes fetch.min.bytes는 소비자가 서버에서 데이터를 가져올 때 한 번에 수신하려는 최소 데이터 크기(바이트 단위)를 정의하는 설정입니다. 즉, 이 값보다 적은 데이터를 서버로부터 받지 않겠다는 의미입니다. Kafka는 소비자가 요청한 최소 데이터 ...
Kafka는 데이터 무결성을 보장하기 위해 다양한 메커니즘을 사용합니다. 아래는 그 주요 방안들입니다.
아래의 링크에 따라 kafka를 설치합니다.
kafka node #1,2,3 별로 아래의 링크에 따라 kafka를 설치합니다.
export CLIPASS=clientpass # Copy CA public key keytool -keystore kafka.client.truststore.jks -alias CARoot -import -file ca-cert -storepass $CLIPASS -keypass...
vi config/zookeeper.properties
kerberos error
CA 인증서 생성 private key와 public key를 생성합니다. openssl req -new -newkey rsa:4096 -days 365 -x509 -subj "/CN=Kafka-Security-CA" -keyout ca-key -out ca-cert -nodes
prometheus로 zookeeper를 모니터링하기 위한 설정을 합니다.
kafka documentation for monitoring
mkdir jolokia wget https://search.maven.org/remotecontent?filepath=org/jolokia/jolokia-agent-jvm/2.1.1/jolokia-agent-jvm-2.1.1-javaagent.jar
get https://dl.grafana.com/oss/release/grafana-9.5.0.linux-amd64.tar.gz tar xvzf grafana-9.5.0.linux-amd64.tar.gz mv grafana-9.5.0.linux-amd64 grafana cp -rp...
kafka 모니터링을 위해 grafana/prometheus를 설치 및 구성합니다.
LinkedIn에서 제공하는 kafka-monitor를 설치하여 구성하여 kafka를 모니터링하는 것입니다. 고급 사용자는 ./bin/xinfra-monitor-start.sh config/xinfra-monitor.properties를 사용하여 Xinfra 모니터를 실행하는 ...
```ini [Unit] Description=Kafka Topic UI docker container After=docker.service Requires=docker.service kafka.service
go lang과 burrow를 설치합니다.
kafka 의 topic을 생성하기 위해 topic명이 first_topic이고, partition이 3인 topic을 생성합니다.
kafka cluster를 구성하기 전에 kafka를 운영하면서 가장흔한 실수로 파일 open 개수 한계에 도달하여 kafka가 중단되는 장애가 발생합니다. 우선 파일 처리 한계를 증가시킵니다. kafka는 많은 파일을 열기 때문에 파일 처리 한계를 다음과 같이 증가하도록 설정합니...
kafka를 설치 후 default server.properties 입니다.
kafka를 시작할 때 server.properties에 대해 설명합니다.
kafka 설치 apache kafka를 다음의 링크에서 2.8.2버전을 다운로드 받습니다.
zookeeper의 zoonavigator의 설치합니다. ```bash version: ‘2’
Lua를 이용하여 Redis에 있는 데이터를 월별 합계를 계산하거나, from ~ to 기간을 입력받아 합계를 계산할 수 도 있습니다.
Redis에서 Pub/Sub을 지원합니다. 특정 topic에 메시지를 전송하는 것을 Springboot을 이용하여 구현하는 것을 알아봅니다.
LUA 스크립팅의 효율적인 방법으로 수행 할 수 있는 사례에 사용될 수 사례를 살펴봅니다. 여기에는 Redis zset에 유지되는 리더 보드가 있으며, 현재 사용 사례를 위해 주어진 사용자의 경우 해당 사용자의 순위와 리더 보드에서 사용자의 주변의 rank를 얻을 수도 있습니다.
양상추를 사용하여 redis에 대해 루아 스크립트를 실행하는 것을 우리는 매번 인수와 함께 전체 스크립트 redis가 원자 적으로 실행될 것를 보냈습니다. 매우 작은 스크립트의 경우 문제가 될 것 같지 않지만 EVALSHA를 사용하여이를 수행하는 더 효율적인 방법이 있습니다 .
스크립팅을 사용하면 Redis 내에서 복잡한 작업을 실행할 수 있습니다. Redis 스크립트를 사용하면 제어 구조와 같은 프로그래밍 도구를 사용할 수 있으며 거의 모든 Redis 명령에 액세스 할 수 있습니다.
Springboot Lettuce기반 Lua를 호출하여 결과값을 List 받는 방법을 공유합니다. Lua를 를 이용해서 Boolean, Long 타입은 별다른 어려움없이 응답을 받을 수 있습니다. 그러나 String이나 List같은 경우는 RedisTemplate 기본 설정으로는 ...
redis와 Memcached를 비교합니다.
lua Lua는 달을 뜻하는 포르투갈어이며 1993년 브라질에서 처음 개발되었으며, light-weight하며 이식성이 좋은 스크립트 언어입니다.
RediSearch 소개 Redis는 다음과 같이 key/value 형식으로 조회가 가능합니다. set user1 value1 GET user1 HSET user1 name jaeguk HGETALL user1 name
Redis Use Cases
Redis replication Redis가 복제를 통해 고가용성 및 장애 조치를 지원하는 방법 Redis 복제의 기반(Redis Cluster 또는 Redis Sentinel에서 추가 계층으로 제공하는 고가용성 기능 제외)에는 사용 및 구성이 간편한 리더 팔로워(마스터-복제본)...
Redis 관리 Tips 프로덕션에서 Redis를 구성하고 관리할때 아래의 사항들을 고려하십시요.
redis.conf 파일 모든 버전과 함께 제공되는 자체 문서화 된 redis.conf 파일
Redis Sentinel을 통한 고가용성 클러스터되지 않은 Redis의 고가용성 Redis Sentinel은 Redis Cluster를 사용하지 않을 때 Redis에 대한 고가용성을 제공합니다. Redis Sentinel은 모니터링, 알림과 같은 기타 부수적인 작업도 제공하고 클...
Sentinel 구성 이제 Sentinel에 대한 기본 정보를 알았으므로 Sentinel 프로세스를 어디에 배치해야 하는지, 얼마나 많은 Sentinel 프로세스가 필요한지 등이 궁금할 수 있습니다. 이 섹션에서는 몇 가지 배포 예를 보여 줍니다. 그래픽 형식의 구성 예를 보여주기...
Redis Functions Redis 버전 7.0에 추가된 가장 영향력 있는 기능은 모듈성, 재사용성 및 전반적인 개발자 환경 개선을 통해 스크립트를 개선하는 새로운 프로그래밍 옵션 인 Redis Functions입니다.
Redis 7.0 New Feature Functions
Redis Sentinel 을 docker 를 사용하여 구성 - 사전준비 Redis Sentinel과 Cluster를 redis-stat로 모니터링하는 것을 docker 기반으로 구성합니다. myIP는 자신의 환경에 맞는 VM Server의 IP를 설정합니다.
Redis Sentinel 을 docker 를 사용하여 구성 - 사전준비 Redis Sentinel 을 docker기반으로 구성하기 위해서는 docker, docker-compose를 설치하여야 합니다.
redis.conf 편집
Redis Cluster Configuration 설정 Redis Cluster를 구성하고 failover 하기 위해서는 application config 이외에 추가적으로 Redis cluster Confugration이 필요합니다. Redis Cluster를 구성하고 Mast...
Redis Cluster 환경구성 다음은 Redis Cluster 의 일반적인 구성입니다. 아래 구성은 Primary 3개, Replica3개로 Cluster를 구성합니다. 본 예제는 primary 3개, replica 3로 구성합니다.
Redis 서버의 메모리 사용량을 모니터링하고자 하는 경우 오픈소스 Redis Stat를 사용할 수 있습니다.
Redis Sentinel을 구성하고, slave의 loadbalance를 위해 haproxy를 구성합니다. haproxy의 UI화면에서 redis의 master/slave의 active/deactive를 상태를 한눈에 파악하기 쉽습니다.
Redis Sentinel 소개 Redis Sentinel은 Redis의 고가용성 구성을 위한 아키텍처입니다. Sentinel은 Redis를 모니터링하고 master node가 장애가 발생시 알리고 자동으로 장애 조치할 수 있는 여러 Redis 인스턴스를 관리하기 위한 redis ...
Redis 란 무엇인가? Image from https://architecturenotes.co/redis/
Redis 설치 준비 Redis를 다음의 절차로 설치합니다. OS 업데이트 Development Tools 설치 redis download redis build redis install
Strings Redis 문자열 유형은 Redis 키와 연결할 수 있는 가장 간단한 값 유형입니다. Memcached의 유일한 데이터 유형이므로 신규 사용자가 Redis에서 사용하는 것도 매우 자연스러운 일입니다. Redis 키는 문자열이므로 문자열 유형도 값으로 사용할 때 문자열...
List List 데이터 유형을 설명하려면 List라는 용어가 정보 기술 담당자에 의해 부적절한 방식으로 자주 사용되기 때문에 약간의 이론으로 시작하는 것이 좋습니다. 예를 들어 “파이썬 목록”은 이름이 암시하는 것 (연결 목록)이 아니라 배열 (실제로 Ruby에서는 동일한 데이...
Hashes Redis 해시는 필드-값 쌍을 사용하여 “해시”가 어떻게 보이는지 정확히 보여줍니다.: > hset user:1000 username antirez birthyear 1977 verified 1 (integer) 3 > hget user:1000 usern...
Sets Redis 집합은 순서가 지정되지 않은 문자열 컬렉션입니다. SADD 명령은 세트에 새 요소를 추가합니다. 주어진 요소가 이미 존재하는지 테스트, 여러 집합 간의 교차, 합집합 또는 차이 수행 등과 같은 집합에 대해 여러 가지 다른 작업을 수행 할 수도 있습니다. >...
Sorted Sets 정렬된 집합은 Set과 해시 간의 혼합과 유사한 데이터 유형입니다. 집합과 마찬가지로 정렬된 집합은 반복되지 않는 고유한 문자열 요소로 구성되므로 어떤 의미에서는 정렬된 집합도 집합입니다. 그러나 집합 내의 요소는 정렬되지 않지만 정렬 된 집합의 모든 요소는 ...
Bitmaps 비트맵은 실제 데이터 형식이 아니라 String 형식에 정의된 비트 지향 작업 집합입니다. 문자열은 이진 안전 Blob이고 최대 길이는 512MB이므로 최대 2^32비트를 설정하는 데 적합합니다. 비트 연산은 두 그룹으로 나뉩니다: 비트를 1 또는 0으로 설정하거나 ...
Redis는 일반 키-값 저장소가 아니라 실제로 다른 종류의 값을 지원하는 데이터 구조 서버입니다. 기존 키-값 저장소에서는 문자열 키를 문자열 값에 연결했지만 Redis에서는 값이 단순한 문자열로 제한되지 않고 더 복잡한 데이터 구조를 지원할 수 있습니다. 다음은 Redis에서 ...
Redis persistence Redis가 디스크에 데이터를 쓰는 방법 지속성은 SSD(반도체 디스크)와 같은 내구성 있는 스토리지에 데이터를 쓰는 것을 말합니다. Redis는 다양한 지속성 옵션을 제공합니다. 여기에는 다음이 포함됩니다.
기본 Redis 데이터 형식 및 사용 방법 다음은 Redis CLI를 사용하여 핵심 Redis 데이터 유형을 학습하는 실습 자습서입니다. 데이터 형식에 대한 일반적인 개요는 데이터 형식 소개를 참조하세요. Keys Redis 키는 바이너리로부터 안전하므로 “foo”와 같은 문자열...
Jupyter Notebook을 이용하여 Redis를 실습할 수 있는 환경을 구성합니다.
Jupyter Notebook을 환경에서 Python을 이용하여 Redis를 알아봅니다. redis-py를 이용하여 redis를 연결하고, 다음과 같이 데이터를 set/get을 수행하여 결과를 확인합니다. Connect ```python import redis
윈도우에서 자동완성 단축키는 Ctrl + Space 입니다. 하지만 맥북환경에서는 Ctrl + Space로 기본으로 설정되어 있습니다. 그래서 자동완성 단축키를 Shift + Space로 변경해서 사용합니다.
맥북 개발자가 springboot기반으로 개발환경을 사용할 때 자동 import 를 하거나 사용하지 않는 Class가 import되어 있는 것이 있을 때 이를 단축키로 자동으로 제거하는 명렁어는 Shift + alt(option) + o 를 동시에 누르면 Never used 로 되...
jdk1.8 에서 jdk11로 전환하여 개발을 하는 경우 jdk는 11로 변경되었지만 maven은 여전히 jdk1.8로 빌드를 하는 경우 다음과 같이 추가합니다. ```bash vi $HOME/.mavenrc
@Transactional Springboot 기반 Redis를 사용할 때 @Tranactional 사용하여 commit 과 rollback 을 처리할 수 있습니다. rollback 은 exception을 throw하면 redis cache에 데이터가 저장되지 않습니다. Platf...
@Inject vs @Autowired @Inject 및 @Autowired 두 주석은 응용 프로그램에서 자동 의존성주입에 사용됩니다. @Inject 어노테이션은 Java 6에 도입 된 Java CDI의 일부인 반면 @Autowire 어노테이션은 스프링프레임워크의 일부. 두 어노테...
DTO에서 null인 항목은 json에서 제거 ```java @ToString @Getter @Setter public class CodeDto { private int code;
ResponseBodyAdvice Http Response를 제어 또는 가공(Decrpt)할 수 있는 또 하나의 영역중 하나가 바로를 ReponseBodyAdvice 입니다. ReturnValueHandler는 RestController에는 적용할 수 없습니다. RequestB...
화 RequestBodyAdvice Http Request를 제어 또는 가공(Decrpt)할 수 있는 또 하나의 영역중 하나가 바로 RequestBodyAdvice 입니다. ArgumentRoslver는 RestController에는 약간의 제약사항이 있으나 RequestBod...
ArgumentResolver Http Request를 제어 또는 가공(Decrpt)할 수 있는 또 하나의 영역중 하나가 바로 ArgumentResolver 입니다. ArgumentRoslver는 Request 데이터를 가공하여 Constroller에 전달하고 싶을 때 사용합니...
인터셉터의 이해 인터셉터는 “무엇인가를 가로챈다”라는 의미입니다. Filter가 실행된 이후 인터셉터는 Controller가 호출 전/후에 무엇인가 제어 하고자할 때 사용합니다. 그리고 Filter가 WebContainer에서 동작하는 반면에 인터셉터는 Spring Containe...
인터셉터의 사용예시 HandlerInterceptor를 구현한 MyHandler 입니다. ```java @Component @Slf4j public class MyHandler implements HandlerInterceptor { public static final Strin...
spring을 사용한 Filter Springboot를 이용한 filter를 사용하는 방법입니다. 이전에 GlobalLoggingFilter에서 @Component를 제거하여 이중으로 Bean이 등록되는 것을 피하고, Springboot에서 제공하는 FilterRegistratio...
AOP vs Interceptor vs Filter AOP 를 내용을 살펴보면 Interceptor 와 Filter에 대해 궁금해질 것입니다. AOP와 Interceptor, Filter의 역할에 대해 간략하게 알아보기 위해 아래의 그램으로 표현하였습니다.
PointCut 의 이해 어느 시점(Operation or method)에 AOP 모듈을 trigger할지 정의하는 JoinPoint의 상세 스펙 또는 표현식(Expression) 으로 설명하였습니다. 아래 그림으로 표현하다면 주황색의 내용으로 이해하면 좋을 것 같습니다. 주...
PointCut 의 표현식 리턴타입 패키지경로 클래스지정 메소드지정
AOP 구성요소 특정지정에 제어하고 싶은 대상에 제어하고자 하는 기능을 구현하는 AOP에 대해 알아보았습ㄴ다. 이번에는 좀더 용어에 대해 상세하게 알아보겠습니다. AOP의 구성요소는 Aspect Advice PointCut JoinPoint
Mybatis 한번에 여러건 Insert or Update Mybatis에서 한번에 여러건의 데이터를 insert 또는 update하기 기능을 Mybatis는 이를 지원하고 있다. 이 기능을 이용하여 약간의 성능에 도움을 받을 수 있습니다.
load-on-startup Springboot 시작시 첫 호출이 느린 경우 application.yml에 해당 내용 추가 합니다.
cacheManager 의존성 추가 Springboot 에서 data를 Cache를 하고자 하는 경우 Solution을 시용하는 경우 Redis를 고려합니다. 그러나 Redis 를 사용할 정도의 애플리케이션 아닌 경우 Local Cache만으로 충분한 경우 Singleton 패턴으...
open jdk mac에서 open jdk를 설치합니다
배너 파일 Springboot의 왼쪽 하단에 있는 dashboard tab에서 springboot를 시작하면 console 로그에 자신만의 로고를 출력하고 싶을 때가 있습니다. 이때 베너를 추가하는 방법에 설명합니다.
centos os에서 openjdk 설치 버전 목록
jennkins를 윈도우에 설치합니다.
GoCD는 Jenkins Master/Agent와 비슷하게 GoCD Server와 1개 이상의 GoCD Agent로 구성됩니다.
podman 실행시 다음의 에러 해결
Jenkins를 Nginx Reverse Proxy를 설정하여 접근하는 것을 설명합니다.
Jenkins 와 Prometheus/Grafana 여녜
Jenkins Pipeline 이란 Jenkins Pipeline이란 Jenkins를 사용하여 CD 파이프라인울 구현하고 통합하는 것을 지원하는 플러그인의 집합입니다. Jenkins에 의해 정의된 모든 표준 Job을 하나의 script 작성되며 git 과 같은 repository ...
Jenkins 설치
Jenkins Kubernetes Plugin 설치 Jenkins Agent로 Kubernetes에 실행하기 위해 Kubernetes Plugin을 Jenkins에 설치하여 환경을 구성합니다.
Jenkins Port 확인 및 복사 Jenkins 를 재시작하는 방법은 3가지 있습니다. systemctl 사용 browser에서 restart browser에서 safeRestart
Grafana 로그인 Grafana에 로그인하고, 비밀번호를 변경합니다.
Jenkins Port 확인 및 복사 Jenkins Default Port를 확인하기 위해 아래와 같이 명령어를 실행합니다. systemctl edit jenkins --full JENKINS_PORT를 검색해서 아래의 내용을 clipboard에 복사합니다. Environmen...
Start-up Jenkins Jenkins server에 접속하기 brower에서 해당 서버의 http://localhost:8080 포트 접속합니다.
Jenkins Pipeline 이란? Jenkins Pipeline은 지속적인 업데이트 파이프라인을 구현하고 Jenkins에 통합하는 것을 지원하는 플러그인의 집합이다. 이 과정에서 소프트웨어를 빌드하고 여러 단계의 테스트, 배포를 진행한다. Pipeline은 Pipeline D...
Tekton 설치 Tekton pipeline을 Kubernetes에 설치합니다.
Nexus를 docker container repository로 사용하기 Nexus를 docker container image의 repository로 사용하는 위한 설정입니다. Harbor 같은 전용 Docker container Registry로 사용하는 Open Source 솔...
Gitlab-CE 설치하기 git repository로 public 으로 사용할 수 있는 대표적인 것 중 하나가 github와 gitlab입니다.
Tekton 개요 Tekton은 CI/CD(지속적 통합 및 지속적 전달) 시스템을 만들기 위한 Kubernetes 네이티브 오픈 소스 프레임워크입니다. 여러 클라우드 공급자 또는 하이브리드 환경에서 애플리케이션을 구축, 테스트 및 배포하는 데 최적화되어 있습니다. Tekton은 C...
Getting start tekton API에서 Task Kubernetes resource type이 Task로 표현되는 Task는 작업에 필요한 로직을 수행하기 위해 순차적으로 실행되는 일련의 Step을 정의합니다. 모든 Task는 Kubernetes 클러스터에서 포드로 실행되...
First Pipeline 작성 Tekton을 이용하여 Pipeline을 작성하는 것을 실습합니다.
Cloud-Native CI/CD 이해 클라우드 네이티브 소프트웨어 개발이 무엇을 의미하는지 더 잘 이해 했으므로 CI/CD 파이프 라인의 맥락에서 그것이 무엇을 의미하는지 살펴 보겠습니다.
```yaml version: “3.1”
ssh-keygen 명령을 사용하여 서버의 호스트 이름 또는 IP 주소를 지정하여 호스트 키 항목을 삭제할 수 있습니다. 다음은 이를 수행하는 명령어입니다: ssh-keygen -R 192.168.1.100
kafka cluster에서 topic을 편리하게 조호할 수 있는 kafka topic ui 입니다. ```yaml version: ‘2’
kafka-manager를 github에서 git clone 하여 build하여 실행하는 방법이 있으며, docker를 기반으로 실행할 수 있습니다.
kafka를 모니터링하는 burrow를 docker 기반으로 실행합니다.
minio standard docker-compose version: '3' services: minio: image: minio/minio command: server /data --console-address ":9001" container_name: ...
1 방법 1: netstat
카프카 브로커 1개, 주키퍼 1로 구성된 confluent사의 docker 이미지를 기반으로 실행하는 docker-compose 파일입니다. ``` version: ‘2’
Run Jupyter using docker
jdk 11 or 8 switch
Redis docker-compose 파일
PostgresSQL docker-compose 파일 새로운 응용 프로그램을 만들 때 PostgreSQL을 데이터베이스 엔진으로 자주 사용합니다. 빠르고 사용하기 쉬우 며 인터넷상의 거의 모든 프로그래밍 언어 및 플랫폼과 매우 잘 통합됩니다. Windows 시스템을 실행하지 않고 ...
mysql docker-compose 파일
Harbor 로 Docker Private Registry 구축하기
리모트 서버에서 Harbor 서버에 docker login
Sonartype Nexus on Docker Centos7 기반 Docker Engine을 설치합니다. 성 Step 1: docker-compose 파일 작성 nexus container 의 데이터를 저장할 폴더를 생성합니다. mkdir ./nexus-data
JFrog on Docker Docker 기반 JFrog를 설치합니다.
JFrog on Docker Centos7 기반 Docker Engine을 설치합니다.
Jira on Docker Docker 기반 Jira 입니다.
Bitbucket on Docker Docker 기반 Bitbucket 입니다.
Setup Apache Airflow on Docker Apache Airflow를 실습하기 위해서 개발환경을 구성하기 위해 docker를 이용합니다.
Airflow Hooks - MySQL
Airflow TaskGroup 작업 그룹은 그래프 보기에서 작업을 계층적 그룹으로 구성하는 데 사용할 수 있습니다. 반복되는 패턴을 만들고 시각적 혼란을 줄이는 데 유용합니다..
Airflow Sensor 센서는 정확히 한 가지 일을 하도록 설계된 특별한 유형의 오퍼레이터입니다 - 무언가가 발생할 때까지 기다립니다. 시간 기반이거나 파일 또는 외부 이벤트를 기다리는 것일 수 있지만 어떤 일이 발생할 때까지 기다렸다가 해당조건을 만족하면 다운스트림 작업(...
Airflow Operator DAG을 구성하는 작업을 Task라고 하며, DAG이 수행할 작업을 의미합니다. 한개 이상의 Task를 pipeline으로 연결해서 하나의 DAG을 완성해야 합니다. Task에는
Airflow Hooks Hook은 DB나 서비스 같은 외부 시스템(Database, Storage)과 통신하기 위한 인터페이스를 제공하여 연결상태를 유지하여 작업을 처리하기 위해 사용합니다.
Airflow Trigger rules 일반적으로 Task는 이전 Task들이 성공할 때만 실행됩니다. trigger rule이 default로 all_success이기 때문입니다. 기본적으로 모든 상위 작업이 성공하면 작업이 실행됩니다. 이 action은 일반적으로 기대하는 것...
My First DAG 개발 Apache Airflow Dag 개발 절차는 다음의 7단계 절차로 구현합니다.
DAG에서 default_args 설정 모든 작업에 설정, 인수 또는 정보를 적용해야 하는 경우 DAG의 일부가 아닌 최상위 코드를 사용하지 않고 default_args 설정하는 것이 가장 좋습니다. 다음과 같이 모든 인수가 있는 default_args dictionary 만들 ...
좀더 낳은 DAG 작성 DAG는 데이터 파이프라인에 해당합니다. DAG는 매일 사용되므로 모범 사례를 따르는 것이 중요합니다. 최적화되고, 이해하기 쉽고, 문서화되고, 잘 조직되어야 합니다. 수백 개의 DAG로 빠르게 끝날 수 있으므로이 부분을 과소 평가하지 마십시오. 그것은...
Airflow XCom Airflow 작업(Task) 간에 데이터를 전달하는 첫 번째 방법은 작업 데이터를 공유하기 위한 주요 Airflow 기능인 XCom을 사용하는 것입니다. XCom은 task간 데이터를 공유가 필요할 때, 데이터를 공유하기 위해 push, pull 을 사용...
Airflow Task Task는 airflow의 기본 실행단위로 한개 이상의 Task를 이용해서 하나의 DAG을 정의합니다. Task간 순서를 표현하기 위해 작업간 «(스트림업), »(스트림다운) 종속성을 설정하여 합니다. Task는
Install local-storage-class to kubernetes Apache Airflow에서 DAG을 선언하는 다음과 같이 3가 유형이 있습니다.
Airflow 구조 Airflow는 다음과 같은 구조를 가지고 있습니다. Scheduler : Airflow의 DAG와 작업들을 모니터링하고 실행순서와 상태관리 Worker : Airflow의 작업을 실행하는 공간 Metadata database : Airflow에서 ...
Airflow는 2014년 10월 Airbnb의 Maxime Beauchemin에 의해 시작되었다. 첫 번째 커밋부터 오픈 소스였으며 공식적으로 Airbnb GitHub에 포함되었으며 2015년 6월에 발표되었습니다. 이 프로젝트는 2016년 3월 Apache Software ...
DAG (Directed Acyclic Graph) DAG(Directed Acyclic Graph)는 Airflow에서 실행할 작업들을 순서에 맞게 구성한 워크플로를 의미합니다. DAG을 구성하는 태스크(Task)라고 하며, 화살표 방향으로 순차, 병렬 실행합니다. DAG은 Py...
kubernetes pod에서 legacy ip를 hostname으로 alias로 지정하기 위한 설정입니다.
minikube에서 각 namespace에 배포되어 있는 서비스를 테스트하는 방법입니다.
Argo Rollouts에서 X-Canary는 카나리 배포(Canary Deployment) 시 카나리 트래픽을 구분하고 제어하기 위해 사용되는 HTTP 헤더입니다. 이를 통해 카나리 버전의 애플리케이션으로 트래픽을 보낼지, 안정적인 버전(Stable Version)으로 보낼지 결...
Kubernetes의 Deployment에서 strategy가 RollingUpdate일 때, 애플리케이션을 중단 없이 점진적으로 업데이트하는 방식으로 Pod를 교체합니다. 이때 업데이트 과정을 세밀하게 제어하는 두 가지 중요한 속성이 있습니다: maxUnavailable과 max...
“nc”라고도 하는 Netcat은 네트워크를 통해 TCP 및 UDP 연결을 설정하고 상호 작용할 수 있는 간단한 방법을 제공하는 명령줄 도구입니다. 넷캣은 클라이언트와 서버 역할을 모두 수행할 수 있으며 네트워크를 통해 데이터를 주고받는 데 사용할 수 있습니다.
helm chart를 설치하기 위해 helm tool을 설치합니다. helm
minikube 를 아래의 link
minikube를 다음의 링크windows에 설치합니다.
Helm CLI를 설치 Helm Chart를 설치하기 위해 Helm CLI를 설치합니다. curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 chmod 700 g...
Dashboard 설치 kind를 사용하여 Kubernetes cluster를 구성하고 dashboard를 구성합니다. dashboard는 다음과 같이 remote에 있는 yaml을 직접적용합니다. kubectl apply -f kubectl apply -f https://raw....
사전설치환경 구성 kind를 구성하기 위해 docker를 설치합니다. docker engine 설치 blog posting을 확인하세요.
Pre-requisites : Install docker engine docker engine 설치는 docker engine 설치 글을 참조해 주세요.
Setup Minikube on minikube server
Pre-requisites - Install Docker
kubernetes 에서 storage class가 없는 경우 실습을 목적으로 local-storage를 설치하여 실습을 목적으로 하는 경우 사용해 볼 수 있는 provisioner 입니다로 Install local-storage-class to kubernetes Kuberne...
MYSQL YAML 파일 Kubernetes에 테스트용으로 Stand-alone으로 배포하여 테스트하기 위한 YAML 파일입니다.
Apache Iceberg는 대규모(페타바이트) 분석 데이터 세트를 위한 오픈 테이블 형식(데이터 파일을 구성하는 방법)입니다. 넷플릭스에서 만들었으며 ASF에서 오픈 소스화되었습니다. Netflix, Apple 및 기타 여러 회사에서 광범위하게 사용되고 있습니다. Tabular....
iceberg apache iceberg는 데이터 세계를 강타한 것 같습니다. 처음에 Ryan Blue가 Netflix에서 인큐베이팅한 이 프로젝트는 결국 아파치 소프트웨어 재단으로 옮겨져 현재에 이르고 있습니다. 그 핵심은 대규모 분석 데이터 세트(수백 TB에서 수백 PB에 이르...
LLM이 필요한 이유 언어의 진화는 오늘날까지 인간을 엄청나게 발전시켰습니다. 덕분에 오늘날 우리가 알고 있는 형태로 지식을 효율적으로 공유하고 협업할 수 있게 되었습니다. 그 결과, 우리의 집단 지식은 대부분 정리되지 않은 서면 텍스트를 통해 계속 보존되고 전달되고 있습니다.
IBM 왓슨 어시스턴트로 챗봇을 구축하는 방법 이 글에서는 IBM 왓슨 어시스턴트를 사용하여 작동하는 챗봇을 구축하는 방법에 대해 알아보겠습니다. 왓슨 어시스턴트는 IBM 클라우드에서 호스팅되는 챗봇 구축용 서비스로, 별도의 프로그래밍 없이도 챗봇을 구축할 수 있습니다.
istio를 체험해 볼 수 있는 Bookinfo를 설치합니다.
istio command cli 다운로드 Download the Istio release
Istio는 쿠버네티스 게이트웨이 API를 지원하며 향후 트래픽 관리를 위한 기본 API로 만들 계획입니다. 게이트웨이 API를 사용하는 경우, 이 문서에 설명된 대로 게이트웨이 배포를 설치 및 관리할 필요가 없습니다. 기본적으로 게이트웨이 배포 및 서비스는 게이트웨이 구성에 따라...
argo rollouts에 대한 demo 입니다.
Kubernetes에서 프로덕션 환경으로 배포하는 것은 상당히 스트레스가 될 수 있습니다. 의미 있고 신뢰할 수 있는 자동화된 테스트를 성공적으로 통과한 후에도 최종 버튼을 누를 때 문제가 발생하여 끔찍한 사고가 발생할 여지가 여전히 존재합니다.
How to get java path in CentOS?
dnf -y install python3.11 python3.11-pip python3.11 -V ln -s /usr/bin/python3.11 /usr/bin/python3 pip3.11 -V ln -s /usr/bin/pip3.11 /usr/bin/pip pip install ...