컨테이너 생성 시간 vs VM 생성 시간 컨테이너는 VM보다 경량적인 isolation 기술로써, VM보다 이미지 크기가 작고 빠르게 프로비저닝되는 장점을 가지고 있습니다. 이는 분산 시스템 형태에서 수평적 확장을 수행하는 클라우드 환경에서 더욱 부각됩니다. 때문에 일반적으로 클라우드 환경에서는 클라우드 업체에서 제공해주는 VM 위에서 경량의 컨테...
Kubernetes - Pod 불균형 없애고 가용성 높이기
Pod 불균형 파드를 생성할 때에 스케줄링에 아무런 제약을 주지 않으면 리소스 공간이 있는 노드에 무분별하게 스케줄링된다. 이러한 스케줄링 방식은 시스템 가용성의 허점을 줄 수 있다. 아래를 살펴보자. 서비스가 현재 트래픽을 견디기 위해서 4.0 CPU Core를 필요로 하고, 이를 위해서 2.0 CPU Core 를 가지는 파드를 4대 운영하고 있...
컨테이너 기술 이해하기
Overview 이전 글에서 MSA(Micro Service Architecture) 를 이해하였습니다. 컨테이너는 MSA의 시대가 열리면서 굉장히 주목받게된 기술 중에 하나이기 때문에 연관지어 이해할 필요가 있습니다. MSA 에서는 하나의 큰 어플리케이션이 작은 단위의 서비스 여러개로 나뉘고, 각 서비스는 서로에게 영향을 주지않고 운영되어야 하기...
Kubernetes - Healthcheck (liveness-probe, startup-probe, readiness-probe)
Overview Kubernetes에서는 pod 의 상태를 확인하기 위해서 liveness-probe, startup-probe, readiness-probe가 사용됩니다. 각각을 살펴보면서 어떻게 활용할지에 대한 고민을 해봅니다. (HTTP, TCP, Exec 3가지 타입의 probe가 존재하지만, 가장 많이 사용되는 HTTP probe 타입으로 ...
마이크로서비스 아키텍처 이해하기
Overview 이번 글에서는 MSA가 무엇인지를 이해하고, 특징이 무엇인지, 어떤 활용 가치를 가지는 지에 대해서 이야기 해보겠습니다. MSA를 이해하기에 앞서서 MSA가 등장하고 주목받게된 이유에 대해서 설명하기 위해 기존에 사용되던 형태인 Monolithic Architecture에 대해서 살펴보겠습니다. Monolithic Architec...
Python - 임시 파일 다루기 (tempfile)
Overview 저는 아래와 같은 과정(*경험)을 겪으면서 임시파일을 다루는 것에 대한 필요성을 느꼈습니다. Python 기반의 Flask 어플리케이션을 개발하면서… 로컬에서 Unit Test를 진행하고자 했습니다. → 어플리케이션에는 사용자 데이터를 데이터베이스에 저장하는 로직이 포함되어 있었기 때문에 이를 테스트 하기 위해서 테스트용 데이터베이...
Pyhton - TypeError 줄이기 (Function Annotation, MyPy)
Overview 파이썬을 다루다가 보면 실행 중에 갑작스런 TypeError를 접했던 경험이 종종 있었습니다. 이를 몇 번 접하고 나서 Type에 대해 정확하게 이해하고 이러한 오류를 줄일 수 있는 방법을 찾아본 내용을 공유합니다. 데이터 타입 데이터 타입은 프로그래밍 언어에서 데이터의 형태를 의미합니다. (int, float, string, l...
Python - OOP 정보은닉에 대한 고민 (Name Mangling, Property)
Overview 파이썬을 OOP 방식으로 사용하려고 살펴보다가 문득 “파이썬은 접근제어자가 없는 데 어떤 방식으로 정보은닉을 만족시킬 수 있을까??” 라는 고민을 시작하게 되었습니다. 이번 글에서는 위 질문에 대답하기 위해 찾아본 내용을 공유하려 합니다. 우선 정보은닉이 무엇인지 이해할 필요가 있습니다. OOP에서는 연관 있는 데이터와 함수를 클래...
블로그 Google Analytics 연동하여 사용자 수 파악하기
Overview GA(Google Analytics) 는 웹 페이지 또는 모바일 어플리케이션 사용자의 접근 기록이나, 행동 데이터들을 수집하고 분석하는 툴입니다. 실적을 계산하거나 웹 사이트/모바일 어플리케이션을 개선시키는 등의 다양한 용도로 활용되지만 저는 단순히 제 블로그의 접근하는 분들이 얼마나 될까? 라는 궁금증을 해결하기위해서 활용해보았습니...
블로그 댓글 기능 추가하기 with Disqus
Overview Jekyll 로 만든 “정적”웹페이지는 댓글 추가/삭제/수정과 같은 동적인 작업을 수행하지 못합니다. 때문에 댓글 서비스를 별도로 구축해야하는 데, 직접 구축하기 보다는 완성된 서비스를 제공해주는 Disqus를 활용하는 것이 간편합니다. 이번 글에서는 제 블로그에 Disqus를 적용했던 내용을 적으려 합니다. Jekyll + Gi...