본문 바로가기

전체 글

29. 예거를 사용한 분산추적 21. 예거를 사용한 분산추적 예전 글에서는 이스티오에 대해서 언급하였고, 이번 글에서는 분산추적에 대해서 자세히 알아본다. 향후에는 마이크로서비스 레퍼런스와 복잡한 어플리케이션에 대해서 자세히 설명할 예정이다. 마이크로서비스는 다양한 운영 기술을 필요로 한다 로깅: 엘라스틱서치 메트릭: 프로메테우스 서비스 메시: 이스티오 분산추적: 예거 위의 프로세스는 하나의 예이다. 업무를 진행하는 절차는 조직과 요구사항에 적합하게 구성할 수 있다. 몇 가지 사례를 소개하고자 한다. 각종 행사, 뉴스, 기술 블로그 등에서 지난 몇 년간 어플리케이션 모니터링 및 성능 관리 분야에 관심을 가지고 지켜봤다면 메트릭과 로그, 분산 추적을 일컬어 ‘관찰성의 세 가지 구성 요소’라는 용어로 칭하는 것을 들어봤을 것이다. 이 세.. 더보기
28. 이스티오를 사용한 서비스 메시 본격적으로 마이크로서비스 운영에 들어가기에 앞서, 서비스 메시와 분산 추적에 대해서 설명하고자 한다. 로깅과 메트릭에 대해서는 이미 많은 자료가 공유되고 있고, 개념을 이해하고 있다고 생각한다. 로깅과 메트릭은 마이크로서비스 이전에도 광범위하게 사용하고 있는 기능이다. 비록 관찰 가능성이라는 개념과 함께 재정의되고 있지만 기본 개념은 변하지 않았다. 하지만 서비스 메시와 분산 추적은 새로운 개념이고 복잡하기 이해하기 어렵다. 사실 EAI, SOA 에서도 유사한 개념이 많이 소개되었지만 적용사례는 많지 않다. 마이크로서비스와 함께 운영과 관리측면에서 서비스 메시와 분산 추적의 도입을 검토하고 있는 추세이다. 20. 이스티오를 사용한 서비스 메시 서비스 메시에 대한 상세 설명 이전에 기본적인 아키텍처는 아래.. 더보기
27. 쿠버네티스 어플리케이션 개발 IT는 문제 해결의 연속적인 과정이다. 사람들이 해결하기 원하는 문제가 있다. 개발자는 문제를 해결하기 위해서 툴을 선택한다. 툴의 종류는 다양하다. 예를 들어 SQL, 업무규칙, API개발, 소스코딩, 머신러닝 알고리즘 등을 사용한다 툴과 다양한 방법으로 문제를 분석하고 해결한다. 구성원이 이해하고, 결과를 공유한다. 너무 간단하게 요약한 것 같은데, 결국에는 문제해결 과정이 아닐까 생각해 본다. 어떤 툴을 사용하건 어떤 기술을 사용하건 중요하지 않다고 생각한다. 정해진 기간과 비용 내 합당한 결과물을 만들어 내는 게 의무이고 나의 일이라고 생각한다. 글을 읽는 입장에서 너무 복잡하지 않게 생각했으면 좋겠다 18. 쿠버네티스 프로그래밍 쿠버네티스는 Go로 개발되었고, 오퍼레이터와 프로메테우스 등을 개발.. 더보기
26. 몽고를 사용한 서비스의 지표 관리 프레스토 연합쿼리 기능을 확장해서, 데브옵스와 인프라 운영에 적용한 사례를 소개한다. 주로 데브옵스 엔지니어는 어플리케이션을 개발하는 역할이 아니고, 운영환경을 자동화 및 최적화하고, 메트릭을 수집하고 모니터링을 하는 것이 주 역할이다. 관찰 가능성에 해당하는 엘라스틱서치 로깅과 예거를 사용한 분산추적은 데브옵스의 영역이다. 하지만 빅데이터급에 해당하는 대용량 데이터를 수집하고 관리하므로, 데이터 엔지니어의 능력이 필요하다. 데브옵스의 서비스 지표를 관리하기 위해서는 어떠한 역량이 필요한지 고민해 보면, 이것도 데이터를 제외하고 설명이 되지 않는다. 예전에 설명한 프레스토 연합쿼리를 확장해서, 어떻게 데브옵스 서비스 지표 관리 시스템을 구축하는지 설명해 보도록 한다. 프레스토의 구성은 아래와 같다. 프로.. 더보기
25. 클라우드 거버넌스 14. 거버넌스에 대해서 피터 드러커 ‘측정할 수 없다면 관리할 수 없고, 관리할 수 없으면 개선시킬 수도 없다.’ 거버넌스의 목표는 측정 가능한 플랫폼을 만드는 것이다. 수집 후 측정 그리고 지속적인 개선을 구현한다. 거버넌스 플랫폼은 인프라, 어플리케이션, 데이터를 관리하고, 예제를 제공한다. 예를 들어 IaC를 사용해서 인프라 구성을 자동화하고, 마이크로서비스를 빌드 배포 운영하기 위한 기술과 프로세스를제공한다. 마지막으로 어플리케이션에서 생성된 데이터의 수집과 분석 기능을 제공한다. 아래의 그림에서 언급이 안되었지만, 세일즈포스 서비스나우 SAP 등과 연계해서 후속작업을 처리하거나, 프로세스 관점에서 긴밀하게 통합되어서 처리되는 모습이 좋다고 생각된다. 8개 마이크로서비스를 사용해서 온라인 스토어.. 더보기
24. 핀옵스를 사용한 클라우드 비용관리 22. 핀옵스를 사용한 클라우드 비용관리 핀옵스의 정의 핀옵스는 분산된 여러 팀이 속도 비용 품질 간에 비즈니스 균형을 이룰 수 있도록 가변적 지출 클라우드 모델에 재정적 책임을 부여하는 방식이다. O’Reilly 한빛미디어 클라우드 핀옵스, 오성근 옮김을 인용하였다 중요한 것은 핀옵스는 문화를 만든다. 핀옵스는 클라우드 비용을 관리하는 방법 중 효율적인 방법으로 모든 사람이 중앙의 모범 사례 그룹에서 지원하는 클라우드 사용량에 대한 소유권을 갖게 한다. 여러 부서에서는 빠른 소통을 위해 동시에 협력하며 더 많은 재무와 운영 제어 권한을 가지게 된다. 이제는 독립적인 조달팀이 비용을 파악하고 승인하지 않는다. 그 대신 핀옵스팀이 일련의 완벽한 조달 모법 사례를 채택하여 클라우드 공급 업체 관리, 요금, .. 더보기
23. 테라폼과 앤서블을 사용한 데브옵스 17. 테라폼과 앤서블을 사용한 데브옵스 이번 글에서 다루는 주제는 아래와 같다 호주 IBM 근무 당시 젠킨스와 ANT, SVN를 사용해서 프로젝트를 구현한 경험이 있다. 그 당시에는 데브옵스라는 개념도 없었고 낯설고, 복잡한 구성으로 인해서 프로젝트를 제때 오픈하지 못한 경험이 있다. 기술적인 복잡성을 떠나서 각 개발자들이 데브옵스에 관심이 없었고 적극적으로 학습하고 주도적으로 도입하려는 의지가 약했기 때문에 프로젝트가 실패했다고 생각한다. 즉 데브옵스 성공을 위해서는 기술보다 문화와 개인의 의지가 더 중요하다고 생각한다. 성공적인 데브옵스 적용을 위한 가이드라인은 아래와 같다 Top Down 방식의 접근보다는 현장 주도로 결정하는 Bottom Up 방식에 의한 변혁이 요구된다. 우선 자신이 DevOp.. 더보기
22. 쿠버네티스 기반의 데브옵스 쿠버네티스 기반의 데브옵스와 깃옵스 CI/CD 프로세스를 설계함에 있어서 정답은 없지만, 모범적인 베스트 프랙티스는 존재한다. 근래 들어 더욱 배포 절차가 복잡해지고, 더 고도화되고 있다 . 이유는 아래와 같다. 빌드 배포 프로세스가 이전과는 많이 다르다. 서버는 자바 J2EE 클라이언트는 자바스크립트로 획일화된 환경이 아니고, 다양한 언어와 런타임 환경이 소개되고 있으며 점점 더 복잡해지고 있는 것이 현재의 추세이다. 조금 더 상세히 알아보자. K8s가 복잡하다. 빌드보다는 배포가 어려워지고 있는데, 이유는 K8s이다. GitOps에 대한 표준화가 안 되었다 마이크로서비스 및 클라우드 개발환경에서는 표준을 선정하기가 어렵다. 다양한 개발언어와 오픈소스들은 개발자를 혼란스럽게 하는 것도 사실이다. 개발자.. 더보기