LINE DEVELOPER DAY 2020에서 구상모 님이 발표하신 The CI/CD Automation make happiness from small pieces 세션 내용을 옮긴 글입니다. 안녕하세요. LINE Plus에서 Android 클라이언트 빌드 배포 시스템 관리 및 자동화 업무를 수행하고 있는 구상모입니다. 이번 글에서는 작은 것들을 모아 행복을 이뤄낸 CI/CD 자동화 사례를 공유하려고 합니다. 먼저 아래 짧은 LINE 메시지를 보시겠습니다. 이 메시지는 LINE 메신저 클라이언트를 사용자에게 배포할 때 실시간으로 공유되는 메시지입니다. 배포 진척 상황과 배포 완료 후 서드 마켓을 위한 추가 배포 상황까지 실시간으로 공유됩니다. 바로 이 단순한 메시지가 릴리스 담당자와 여러 유관 부서 동료들에게 행복을 가져다줄 수 있습니다.&nb
안녕하세요. LINE Ads에서 DSP(Demand Side Platform)를 개발하는 Demand Side Dev 3팀의 김남우입니다. Demand Side Dev 3팀은 일본과 태국, 대만 등 전 세계 LINE 사용자 및 LINE Ads 네트워크의 수많은 퍼블리셔들에게 광고를 송출하는 랭킹 서버를 개발하는 업무를 주로 맡고 있습니다. 광고 랭킹 서버에서는 광고주가 선택한 타깃에 맞는 사용자를 대상으로 사용자의 선호도, 주로 CTR(Click Through Rate, 클릭할 확률)을 예측하고 입찰한 가격을 기반으로 순위를 매겨 전달하는 것을 눈 깜빡하는 시간보다 빠른 100ms 이내에 전달하는 것을 목표로 하고 있습니다. 전 세계 사용자로부터 수신하는 대용량 데이터를 실시간으로 처리해 예측력을 높이면서, 타깃에 맞는 정확한 광고를 골라내고, 사용자 경험을 개선하기 위한 여러 로직을 짧은 시간 내에 수행하기 위해서는 정확한 구현과 지속적인 검증, 그리고 꾸준한 모니터링이
지난 1993년에 개봉했던 사랑의 블랙홀이라는 영화를 기억하시나요? 남자 주인공이 2월 2일 성촉절(Groundhog Day, 미국에서 마멋이 겨울잠에서 깨어난다고 여기는 날) 하루를 끊임없이 반복해서 살게 되면서, 사랑을 얻기 위해 매일매일 좀 더 완벽한 사람으로 변해가는 로맨틱 코미디 영화입니다. 빌 머레이(Bill Murray)가 연기한 극 중 필 코너스(Phil Connors)의 목표는 자기 자신을 개선하고 자신의 목표를 달성하는 방법을 단계별로 배우는 것이었습니다. 완벽한 하루를 살기 위한 필의 노력은 많은 변화를 만들어 냈고, 결국 목표에 도달하게 됩니다. 이 영화의 이야기는 지속적인 개선의 좋은 예입니다. 주인공 필은 매일매일을 반복하면서 지난 실수들을 지속적으로 고쳐 나가며 더 완벽한 하루를 만들어 나갔습니다. 마찬가지로 지속적인 개선은 현재 맡고 있는 일을 향상시키기 위해 일상의 노력을 반복적으로 수행하면서 개선해 나가는 것
SRE 엔지니어, JVM 성능 관리, AWX 운영
1부에 이어서 이번 글에서는 고급 사용자를 위한 내용을 소개하려고 합니다. 1부에서 기본 설치를 해보셨나요? 크게 어렵지 않게 설치할 수 있었을 거라고 생각합니다. 문제는 기업 환경에서 실제 운영하기 위해서는 장애 발생에 대한 대비와 대량의 작업을 수행하기 위한 클러스터링 환경 등을 제공해야 하는데 아시다시피 이러한 부분에 대해서는 정보가 많지 않습니다. 개인적으로 이해할 수 있는 부분은, Ansible Tower라는 상용 제품이 있는데 이 제품에 탑재된 모든 기능을 제공한다면 아무리 오픈소스라고 하더라도 상충되는 부분이 있지 않을까 생각합니다. 그렇다고 기능을 일부러 빼버리거나 사용할 수 없도록 막아놓은 것은 아니기 때문에 우리가 삽질(?)을 조금 더 하면 대부분의 기능을 사용할 수 있습니다. 본문에서 LINE의 AWX 운영 환경과 수정한 내용 중 일부를 소개하겠습니다. 좀 더 씹어보기 AWX의 고가용성(High Availability - HA) 구조 AWX_
이번 글에서 드리고 싶은 말씀 기업에서는 시스템을 운영하고 관리하기 위해 내부적으로 정의한 기술, 서비스 영역에 대해서 여러 정책과 기술 표준을 준비해 놓습니다. 이러한 정책을 인프라 환경(OS, 앱 설치, 튜닝 등)이나 개발 환경(코드 배포, 테스트 도구, 애플리케이션 설치 등)에 실질적으로 적용하기 위한 활동을 뭉뚱그려 프로비저닝(provisioning)이라고 표현하겠습니다. 프로비저닝을 실제로 구현하기 위해선 적 절한 솔루션과, 인프라와 언어 등 다방면에서 확장 가능한 구조를 가지고 있어야 합니다. CI/CD(Continuous Integration and Continuous Delivery)를 프로비저닝하기 위해 많이 사용하는 Jenkins를 예로 들어보면, 개발자에게 익숙한 Tomcat WAS(인프라)에서 Jenkins(플랫폼)와 다양한 플러그인(확장)을 제공합니다. 이때 영역에 따라 바라보는 시각이 조금 다릅니다.