SRE 엔지니어, JVM 성능 관리, AWX 운영
메신저 서비스 회사의 새해 준비 안녕하세요. 저는 LINE Plus 서비스 엔지니어링 팀의 권용찬이라고 합니다. 올해로 LINE에 입사한 지 4년 차입니다. 모르는 것도 없지만 다 알지도 못하는 애매한 연차라고 할 수 있겠습니다. 글의 시작을 세기말 자기소개서처럼 시작하는 이유는 제가 IT 인력치고 노령(?)인 탓도 있겠지만... 사람을 만나면 처음 하는 것이 인사일 것이고 인사를 할 때는 예의를 갖춰 간단한 자기소개로 시작하는 것이 일반적인 것 아닌가 생각하기 때문입니다. 회사에서 운영하는 기술 블로그라 개인 블로그처럼 블링 블링한 스티커를 쓰기는 어렵지만 그래도 나름대로 글을 쓰면서 상상으로나마 하트도 넣고 LINE 캐릭터 스티커도 넣어보고 있습니다. :) (하... 하얀 화면에 글만 쓰자니 왠지 바삭바삭하다...) 누구나 인사를 한다 과거 얼굴 보고 하는 인사가 최고였고(덕분에 12월은 형님들 따라다니면서 인사하느라&nb
1부에 이어서 이번 글에서는 고급 사용자를 위한 내용을 소개하려고 합니다. 1부에서 기본 설치를 해보셨나요? 크게 어렵지 않게 설치할 수 있었을 거라고 생각합니다. 문제는 기업 환경에서 실제 운영하기 위해서는 장애 발생에 대한 대비와 대량의 작업을 수행하기 위한 클러스터링 환경 등을 제공해야 하는데 아시다시피 이러한 부분에 대해서는 정보가 많지 않습니다. 개인적으로 이해할 수 있는 부분은, Ansible Tower라는 상용 제품이 있는데 이 제품에 탑재된 모든 기능을 제공한다면 아무리 오픈소스라고 하더라도 상충되는 부분이 있지 않을까 생각합니다. 그렇다고 기능을 일부러 빼버리거나 사용할 수 없도록 막아놓은 것은 아니기 때문에 우리가 삽질(?)을 조금 더 하면 대부분의 기능을 사용할 수 있습니다. 본문에서 LINE의 AWX 운영 환경과 수정한 내용 중 일부를 소개하겠습니다. 좀 더 씹어보기 AWX의 고가용성(High Availability - HA) 구조 AWX_
이번 글에서 드리고 싶은 말씀 기업에서는 시스템을 운영하고 관리하기 위해 내부적으로 정의한 기술, 서비스 영역에 대해서 여러 정책과 기술 표준을 준비해 놓습니다. 이러한 정책을 인프라 환경(OS, 앱 설치, 튜닝 등)이나 개발 환경(코드 배포, 테스트 도구, 애플리케이션 설치 등)에 실질적으로 적용하기 위한 활동을 뭉뚱그려 프로비저닝(provisioning)이라고 표현하겠습니다. 프로비저닝을 실제로 구현하기 위해선 적절한 솔루션과, 인프라와 언어 등 다방면에서 확장 가능한 구조를 가지고 있어야 합니다. CI/CD(Continuous Integration and Continuous Delivery)를 프로비저닝하기 위해 많이 사용하는 Jenkins를 예로 들어보면, 개발자에게 익숙한 Tomcat WAS(인프라)에서 Jenkins(플랫폼)와 다양한 플러그인(확장)을 제공합니다. 이때 영역에 따라 바라보는 시각이 조금 다릅니다.
2018년 오라클의 라이선스 체계가 변경되면서 2019년 1월 이후 더 이상 무료로 Oracle JDK를 사용할 수 없게 되었습니다. 이에 LINE 내부에서는 사전에 OpenJDK를 적용하기 위해 필요한 사항이나 검토 항목을 정리하기 위하여 TF(task force)를 구성하였고, 진행된 내용과 사용된 기술적인 사항들을 정리하고자 이 글을 작성하게 되었습니다. 시작하기 전에 본격적인 이야기를 시작하기 전에 OpenJDK를 검토하면서 느낀 부분이 있어 옛날 옛적 이야기를 적어봅니다. 2000년 초반만 해도 OSS(Open Source Software)의 신뢰도에 대한 평가는 극과 극이었고, 공공 기관이나 큰 규모의 사업장에서 실제 OSS를 적용하기에는 쉽지 않은 시기였습니다. 예를 들어 Apache HTTPD Server(이하 Apache 웹 서버)의 Prefork MPM(Multi-Processing Modules)의 메모리 누수 문제와 당시 신형