목록분류 전체보기 (7)
Jason's Blog
이번 포스트에서는 Docker에 대해 알아보겠다. 먼저 Docker는 이전 Linux의 chroot에서 부터 시작된 리눅스 커널 격리 기술의 ‘LXC(리눅스 컨테이너)’에 근간이 있다. 그래서 먼저 리눅스 컨테이너에 대해 간단한 설명으로 시작하겠다. 해당 자료는 Red Hat Pinkcoding Fest 행사시 발표했던 내용을 기반으로 작성하였다. 리눅스 컨테이너 리눅스 컨테이너는 간단히 말해 리눅스의 CGroups, Namespaces를 통해 커널을 격리시키는 기술이다. 커널을 격리함으로써 기존의 서로 다른 플랫폼에 대한 제약을 해소할 수 있으며, 리소스를 보다 더 효율적으로 사용할 수 있다. 기존의 Virtual Machine, 즉 가상화 기술과 비교하자면 VM은 하드웨어 자원(Host OS)을 가상..
본 포스팅에선 ISTIO를 Openshift 환경(Kubernetes + Docker)에서 설치하고 예제(BookInfo)를 이용하여 설치하고, ISTIO가 어떻게 동작하며 MSA를 어떻게 구성하는지, DevOps를 어떤 형식으로 구현해 내는지에 대한 이야기를 해볼것이다. 동작 방식을 효율적으로 보여주기 위해 다음과 같은 추가 툴을 사용할 것이다. Prometheus - System 모니터링 및 Alert을 위한 툴킷으로, CNCF(Cloud Native Computing Foundation)의 2번째 호스팅 프로젝트로 선정될 정도로 활발한 오픈소스 모니터링 프로젝트이다.(1번째는 Kubernetes) Grafana - 등록되어있는 서비스(Application)과 상호작용하는 쿼리, 통신, 상태 등을 시..
Service Mesh란 무엇일까? - Service mesh 개요 Service mesh라는 용어는 microservice를 구현할 때 service에 해당되는 application에 대한 구조, 그들간의 네트워크를 이야기할 때 항상 등장한다. 이 Service mesh는 각 커뮤니티에서 원하는 요구에 따라 정의가 바뀌는데, 이 모든 이야기 중의 공통점은 서비스의 크기와 복잡성이 올라감에 따라 관리가 어려워 진다는 것이다. Service mesh를 이루는 요소로는 service discovery, load balancing, failure recovery, metrics, monitoring 등의 도구와 좀 더 복잡해진 운영 프로세스인 A/B testing, canary releases, rate li..
Monolithic Architecture에서 Microservice Architecture로의 Migration 나는 Kubernetes와 Container, 그리고 Middleware에 관련된 일을 한다. 일을 하면서 최근에 나에게 질문하는 키워드 중 가장 많은 비율을 차지하는 것이 바로 'MSA(Microservice Architecture)'이다. 특히 한국 환경에서 MSA를 어떻게 적용하고, 기존 아키텍처에서 어떤 방법으로 변환할 수 있는 지에 대한 조언을 구하는 내용이 많았다. 그래서 이번 기회에 Monolithic to Microservice Architecture에 대한 내용을 간단히 이야기 해보겠다. 본 내용은 Microservice Architecture의 개념은 이해하고 있는 사람에게..
최근에 기술적으로 논의를 하는 자리에서 꼭 나오는 단어가 있다. 바로 "DevOps"이다. 이 단어의 개념를 논하는 대상이 인프라팀이나, 개발팀이냐에 따라 성격이 조금은 다르다. 그들과 탁자에 앉아서 대화할 때 DevOps에 대한 방향성은 항상 옳고 재미있는 길이라고 판단한다. 하지만 때로는 DevOps라는 단어 자체가 불편하게 느껴질 때도 있다. 우리나라 환경에서 개발팀과 인프라팀은 항상 Communication에 있어서 대립하며 그들간의 체계적인 R&R 정의가 매우 힘들다. 예를 들어 배포에 대한 Best practices, hot deployments, rollback 등에 대한 이야기를 팀과 이야기하고 있었는데 blue-green 배포에 대한 이야기를 꺼냈을때, 그들의 뜨거웠던 공기가 차갑게 식는..
1. Vert.X의 개념 Vert.X란 무엇일까. 검색을 해보면 다음과 같은 영문으로 설명이 되어 있는 것을 발견할 수 있다."Vert.X is a polyglot, non-blocking, event-driven Application Platform that Runs on the JVM."이 것을 다르게 해석해보면 "쉽게 확장 가능하고 비동기식 병렬 어플리케이션을 위한 프레임워크"라고도 볼 수 있다. JVM에서 동작하며 고성능을 지닌 이벤트 기반 어플리케이션 프레임워크이며, 비슷한 다른 플랫폼과는 다르게 Ruby, Java, Groovy, JavaScript 그리고 Python에 대한 API를 제공한다. 이 중 아무 런타임이나 골라서 쓰기만 하면 된다. 또한 공식 사이트에 Scala와 Clojure 지..
Microservices는 요즘 개발자, 엔지니어 사이에서 가장 유행하는 단어 중 하나이다. 나는 설계, 개발을 할 때, agile을 기반한 좀 더 flexible하고 선택지가 많은 아키텍쳐 개념을 찾아 다녔다. 그래서 SOA, ESB를 거쳐 그들의 장점을 모방한 MSA개념을 살펴보게 되었다. 과거에, 복잡해진 업무 프로세스들의 연결을 위해 '스파게티'같은 강하게 연결된 아키텍쳐가 구성되었다. 그 연결하의 업무 로직의 반복을 피하기 위해, 공통 모듈을 만들고 Library를 통합하였다. 그 변화 과정에서 나온 방법이 바로 Service-Oriented Architecture(SOA)이다. 서비스를 모듈화하여 다른 시스템과 공유하고, 통신 방식, 데이터 라우팅을 구성한다. ESB는 그것의 구현 중 하나이다..