Dev 84

리눅스 시스템 및 커널 전문가 스터디 시작

10월 12일자로 프로그래머스에서 약 5개월간 진행하는 에 참여하게 되었다. 목적 본 과정의 목적은 새로운 하드웨어에 리눅스 운영체제 기반 시스템을 설치하고, 서버를 작동시키고, 리눅스 운영체제 커널을 수정하여 새로운 기능을 추가하고, 성능을 최적화하고, 리눅스 기반 시스템의 오류를 찾고 디버깅할 수 있는 기술을 실습과 함께 5개월동안 학습하는 것이다. 목적이 거의 커리큘럼의 굵직한 주제들이 거의 나열해둔 것과 같아서, 내가 이해한 목적을 한 줄로 정리하자면, 리눅스 운영체제를 이해하고, 운영체제 커널의 기능 개발 및 성능 최적화, 트러블 슈팅을 실습을 통해 앞서 개념 이해 한 것을 적용할 수 있는 과정 이라고 생각한다. 커리큘럼 1. C/C++ 알고리즘 해결 2. 리눅스 시스템 설정 및 리눅스 명령어 ..

Windows 11 WSL2 및 Ubuntu 22.04에서 GPU 활용 Docker 실행 환경 세팅

찾아본 대부분의 자료와 공식 문서가 영어로 되어있었기도 했고, 스위스 엔지니어에게 해당 방법을 알려줘야 했기 때문에 정리해 본 것이라 중간 중간 영어로 적힌 부분이 있다. Environment Ubuntu 22-04 혹은 Window WSL(Windows Subsystems for Linux) wsl 설치 방법 $ wsl --list --online $ wsl --install -d Ubuntu-22.04 Prerequisite Check Hardware 아래의 모든 작업을 진행하기 전에 정말 기본적이지만 GPU 하드웨어가 있는지, 또한 사용가능한 형태로 설치되어있는지 확인해야 한다. 시스템에 어떤 그래픽 카드가 설치되어있는지 확인하려면 다음과 같은 명령어를 사용한다. $ sudo lshw -C disp..

Dev/DevOps, Infra 2023.10.26

[MSA, Logging] Nodejs 애플리케이션에서 request ID를 correlation ID로 사용하는 법

Background MSA에 대한 로깅과 모니터링은 큰 고민거리이다. 서로 다른 개별 마이크로서비스에서 발생하는 로그를 연결 지어 트랜잭션의 처음부터 끝까지 순서대로 추적해 내는 것은 매우 어렵다. MSA 환경에서 '의미 있는 로깅' 시스템을 구축하려면 어떻게 해야할까? 여기서 '의미 있는 로깅'이란 개발자뿐만 아니라 우리 서비스를 사용하는 관리자나, 사내 비개발직군의 다른 팀원들(가령 우리 서비스의 사용율과 에러율, 비용이 비싼 AI 분석 요청의 횟수.. 등의 데이터 분석이 필요한 사업개발팀) 모두가 쉽게 찾아볼 수 있고, 수집되고 가공시킨 로그 데이터를 이해하기 쉬운 로그를 말한다. What do you need to build a meaningful logging system in MSA? Note..

Dev/DevOps, Infra 2023.07.09

[Lecture] DDD 기반 MSA 모델링 - Intro, Strategic Design, Event Storming

Intro 5월 21일 부터 31일 까지 약 10일간 인프런의 강의를 들으며 도메인 주도 설계(Domain-Driven Design; DDD) 에 대해서 배웠다. 이를 하게 된 계기는 내가 근무하고 있는 의료 인공지능 회사인 Deep Bio는 ‘의료’, ‘AI’ 라는 복잡하고 전문적이 도메인의 비즈니스 문제를 의료 인공지능 소프트웨어로 해결하고자 한다. 따라서 도메인을 이해하는 것이 개발의 첫 걸음인 경우가 많다. 실제로 종종 사내 Medical Officer님께서 병리에 대한 생물학적 도메인 지식의 강의를 해주시기도 한다. 또한 AI ML 알고리즘을 구현하시는 연구팀, 실제 제품 개발을 담당하는 디자이너, 개발팀, 의료 도메인 전문가이신 Medical Officer, 의사분들, BD팀 등 많은 사람들의..

Dev/SW Engineering 2023.05.31

[AWS, Post-mortem] AWS SQS visibility timeout 에러와 이별한 방법 (feat. 장애 부검)

최근 사내 블로그에 글을 썼다. 여기 그 링크를 첨부한다. #7. AI 분석 장애 부검 안녕하세요. Deep Bio Backend Engineer 정현정입니다.👩‍💻 medium.com 위 글과 연관된 블로그 글: 1 [AWS, Post-mortem] EC2 리소스 과다 사용으로 인한 인스턴스 상태 확인 실패 문제와 SQS dead-letter queues 2 [Dev Culture] 내가 경험하고 배운 Project Post-mortem 문화 3 [AWS] SQS event - Lambda - Slack 알람 - PostgresQL 쿼리 실행 1) Serverless framework를 사용해서 local에서 개발하고 cli로 쉽게 배포하기(aws-nodejs-typescript사용) 4 [AWS] S..

Dev/DevOps, Infra 2023.05.13

[MSA, Monitoring] Kubernetes Monitoring with Prometheus, Grafana

관련 코드는 https://github.com/Gracechung-sw/kubernetes-practice/tree/main/k8s-monitoring 에서 확인하실 수 있습니다. 1. Kubernetes monitoring 1) node - application 의 관계: 1:1 -> 1:N node와 application의 관계가 더이상 1:1 이 아니라 node에는 많은 application이 scheduling될 수 있다. 그래서 무엇을 모니터링 해야하는지 설정할 수 있어야 하고, 모니터링 시스템이 자동으로 감지하고 metric을 수집할 수 있도록 pull-based 모니터링이 사용되고 있다. 2) push-based monitoring vs pull-based monitoring Push-bas..

Dev/DevOps, Infra 2023.03.25

[Service Mesh] Service Mesh와 Envoy 찍먹해보기..(도 전일 수도 있음)

대표적으로 https://www.envoyproxy.io/ https://hackernoon.com/service-mesh-with-envoy-101-e6b2131ee30b https://www.suse.com/c/rancher_blog/stupid-simple-service-mesh-what-when-why/ 을 통해 envoy와 service mesh를 알아본 후 정리하여 작성한 글입니다. Goal 사이트 안정성 장애 발생에 대한 대응/분석/부검 용이 Remove cloud dependency (Ex. Cloudwatch, AWS auto-scaling service) Solves monitoring and logging problems efficiently and effectively and use..

Dev/DevOps, Infra 2022.06.12

[AWS] SQS event - Lambda - Slack 알람 - PostgresQL 쿼리 실행 2) AWS Lambda에서 slack alert 보내기

SQS(dead-letter queue) event 발생 시 Lambda를 사용해서 Slack alert를 보내고 PostgresQL에 쿼리를 실행하도록 설정하는 방법을 아래 3가지 순서로 기록해보고자 한다. AWS Lambda를 Serverless framework를 사용해서 local에서 개발하고 cli로 쉽게 배포하기 AWS Lambda에서 slack alert 보내기 AWS Lambda에서 PostgresDB로 쿼리 실행하기 완성 시 전체적인 구조는 다음과 같으며 aws credential은 미리 되어있다고 가정한다. 이번에는 에 대한 내용이다. 1. slack webhook 생성 우선 slack webhook을 생성하여 해당 slack url을 얻은 뒤 환경변수를 활용한다. 1) Slack에서 ..

Dev/DevOps, Infra 2022.05.07

[AWS] SQS event - Lambda - Slack 알람 - PostgresQL 쿼리 실행 1) Serverless framework를 사용해서 local에서 개발하고 cli로 쉽게 배포하기(aws-nodejs-typescript사용)

origin SQS로 들어온 task(message)를 정상적으로 처리하지 못할 경우 그 횟수가 maxReceiveCount를 초과하게 되면 Dead-letter queue로 옮겨진다. dead-letter queue로 옮겨진 메시지에 대해서는 slack 등 개발자가 상황을 바로 알 수 있도록 alert를 보내고, 또 유저에게도 해당 task의 처리가 실패하였을 때 나타나는 데이터를 보여주는 것이 필요할 때가 있다. 그래서 SQS(dead-letter queue) event 발생시 Lambda를 사용해서 Slack alert를 보내고 PostgresQL에 쿼리를 실행하도록 설정하는 방법을 아래 3가지 순서로 기록해보고자 한다. AWS Lambda를 Serverless framework를 사용해서 loca..

Dev/DevOps, Infra 2022.05.07