오픈소스(9)
-
eBPF를 이용한 네트워크 트래픽 모니터링
최근 네트워크 트래픽을 실시간으로 모니터링하고 분석하기 위해 eBPF(Extended Berkeley Packet Filter)를 활용하는 사례가 증가하고 있습니다. eBPF는 커널 레벨에서 네트워크 패킷을 효율적으로 분석할 수 있는 기능을 제공하며, 높은 성능과 유연성을 제공합니다. 이번 포스팅에서는 eBPF를 이용해 네트워크 트래픽을 모니터링하는 방법을 코드와 함께 설명드리겠습니다.eBPF란?eBPF는 리눅스 커널에서 실행되는 프로그램을 작성하고 실행할 수 있는 메커니즘입니다. eBPF 프로그램은 커널에서 특정 이벤트가 발생할 때 실행되며, 이를 통해 네트워크 패킷 분석, 성능 모니터링, 보안 등의 다양한 기능을 수행할 수 있습니다. eBPF의 가장 큰 장점은 커널에서 동작하기 때문에 오버헤드가 적고..
2024.10.31 -
# 오픈소스 OpenTracing - Zipkin
오늘은 OpenTracing 프로젝트 중 Zipkin에 대해서 알아보도록 하겠습니다. Zipkin은 Jaegertracing과 같이 MSA 구조에 특화된 서비스 트레이싱을 할수 있는 오픈소스 입니다. 오늘 다룰 얘기는 Zipkin에서는 기술적으로 어떻게 서비스 트레이싱을 하는지에 대해 알아보도록하겠습니다. OpenTracing이나, Jaeger에 대한 내용은 아래의 링크를 참고해주세요. https://bourbonkk.tistory.com/84 # 오픈소스 OpenTracing - Jaeger 안녕하세요. 해커의 개발일기 입니다. 오늘은 마이크로 서비스 아키텍처를 사용하여 구축된 응용 프로그램을 프로파일링하고 모니터링하는데 사용하는 Distributed Tracing 분산 추적 기술에 대해서 bourbo..
2022.03.20 -
# gRPC - gogoproto extension 사용하기
안녕하세요. 해커의 개발일기 입니다. 앞서 다뤘던 # gRPC 개요 및 proto 파일 정의 에 이어서 조금 심화된 이야기를 하고자 합니다. gRPC를 사용하면서 마음대로 데이터를 처리하고자 하지 못한 경우가 있었습니다. 이유는 protoc 컴파일을 통해 만들어진 go.pb 파일에 setter가 필요해서 수정해서 사용을 하다가, 지속적으로 필요한 부분을 추가로 코딩해서 사용하고 있었습니다.. 하지만 말씀드렸다시피 이렇게 사용하다보면 어느샌가 메시지 타입이 맞지 않는다는 에러가 발생하게되고 코드로 찾을 수 없는 혼돈의 카오스에 진입하게 되는데요 .. 이런 이슈를 겪고 나니 어떻게 내가 원하는 size, marshaler, getter, setter를 자동으로 만들어 줄 수 있을까? 라는 고민을 하게되었고 ..
2021.05.30 -
# gRPC 개요 및 proto 파일 정의
안녕하세요. 해커의 개발일기 입니다. 오늘은 MSA 구조에서 많이 쓰기고 있는 GRPC에 대해서 알아보도록 하겠습니다. 저도 회사에서 많이 사용하고 있기 때문에 처음에는 다른 사용법에 조금 헤멧지만 지금은 gRPC가 정말 편리하다는 것과 성능적으로 우월하는 점을 잘 알고 있기 때문에 초보적인 사용법과 더불어 심화된 내용 및 proto 파일 정의 내용도 다룰 예정입니다. gRPC와 proto 파일에 대해서 알아보겠습니다. gRPC는 구글에서 개발안 오픈소스 원격 프로시저 호출(RPC) 시스템이고 전송을 위해서 HTTP/2를 사용하고 인터페이스 정의 언어로는 포로토콜 버퍼(.proto 파일)을 사용하고 있습니다. 기본적으로 gRPC는 HTTP/2 베이스기 때문에 외부에서 노출되어야 하고 로드밸런서 적용이 필..
2021.05.30 -
# Jenkins 사용기
안녕하세요 해커의 개발일기 입니다. 오늘은 빌드 자동화 툴인 Jenkins에 대해서 소개해보려고 합니다. 빌드 자동화를 구축하지 않고 여러 사람이 개발을 하다보면 서로 다른 빌드환경을 갖게 되고 이렇게 되는 경우 .. 문제가 생기면 정말 찾기 힘든 경우가 발생하는데요 .. 이를테면 A 개발자는 java App 빌드를 할때 Xmx을 1G로 주고 B 개발자는 Xmx를 5G로 주고 빌드를 했습니다. A 개발자가 배포한 Java App의 메모리 사용량이 2G를 넘어서서 어플리케이션이 뻗게되면 B개발자는 Xmx 옵션 때문이라고 절때 생각하지 못하게 되는데요 이런 서로 다른 빌드 환경을 획일하고 편리하게 관리 배포하기 위해서 CI/CD라는 용어가 나왔습니다. 오늘은 CI 오픈소스 중 가장 유명한 Jenkins 사용..
2021.05.30 -
# Container Orchestration - 쿠버네티스(kubernetes - K8s)
안녕하세요 오늘은 정말 핫하고 또 핫한 Container Orchestration인 쿠버네티스(Kubernetes)를 소개하려고 합니다. 요즘 사람인 같은 이적 시장에 보면 심심치 않게 보이는게 바로 이 쿠버네티스 경력자인데요. docker를 사용하는 회사는 무조건 이 쿠버네티스를 검토까지는 하지 않았을까 생각이 듭니다. 하지만..! 관심이 없다면 아 뭐 또 새로운거 나왔다보다~ 하고 넘어가겠지만, 이 관리 시스템이 어떤일을 하는지 알게 된다면 그냥 넘어갈 수 없을 것 입니다. 그 만큼 매력적이기 때문이죠. 먼저 설명하기 앞서서, 두 가지만 알고 가겠습니다. 하나는 Docker 인데요. 지난번에 간략히 소개를 했었는데요. Docker가 뭔지 모르신다면 아래의 글을 참고해주시기를 바랍니다. # Docker..
2020.03.14