Meet the Global LINERs


Engineering

Tanino Mitsuhiro / Cloud/Infra / LY Corporation

이번에 소개해 드리는 Tanino 님은 LINE의 사내 프라이빗 클라우드 플랫폼인 ‘베르다(Verda)’ 개발팀 소속입니다. 베르다 개발팀에는 다양한 국적의 일원들이 함께하는데요, Tanino 님이 개발자로서 LINE의 베르다 팀에서 일하기로 결심했던 이유와 LINE의 업무 환경에 대한 이야기를 지금부터 들어보실까요?

잠깐! 한 눈에 보는 세 줄 요약!

  • LINE은 소프트웨어 개발자로서의 커리어를 중요하게 생각하는 Tanino님에게 최적의 업무 환경을 제공합니다.
  • 사내 프라이빗 클라우드인 베르다 개발 업무를 통해 LINE 개발자이기에 가능한 특별한 경험을 하고 있습니다.
  • 소프트웨어 개발자의 삶을 즐기고 싶은 분이라면 LINE에 적극 환영합니다.

LINE에 관한 이야기

Q LINE에 합류하기 전에 어떤 일을 하셨나요?

LINE에 합류하기 전에는 일본의 일반 가전 제조업체에서 일했습니다. 그곳에서는 Linux 관련 업무를 담당해서 운영 체제로써 Linux의 성능을 평가하고, 소비자에게 지원 서비스를 제공하거나, 사전 설치된 운영 체제를 통해 회사의 서버를 고객에게 제공하는 부서에서 새로운 기능을 개발하기도 했습니다. 또한 Linux 커널 기능, OpenStack 스토리지 관리 기능, Kubernetes 스토리지 관리 기능 개발 등, Linux를 포함한 OSS(Open Source Software) 커뮤니티 활동에도 참여했습니다.

Q LINE에 합류하기로 한 이유는 무엇인가요?

먼저, OSS 관련 개발에 참여하고 싶었고 그다음으로는 앞으로 소프트웨어 개발자로서 더 발전할 수 있는 업무 환경이나 직무를 찾고 있었습니다. 그리고 LINE은 제가 원하던 이런 사항들을 모두 충족할 수 있는 곳이었고요. LINE은 제가 참여하곤 했던 OpenStack 기능의 개발과 개선, 운영에 초점을 맞추고 있고, 자체적인 대규모 쿠버네티스 기반 플랫폼을 통해 이러한 기능을 많은 사용자에게 제공하고 있습니다. 게다가 LINE은 글로벌 사용자에게 서비스를 제공하고 글로벌 팀 구조를 갖췄다는 점도 매력적이었습니다. 그리고 LINE에 오기로 결심했을 때 고려했던 가장 중요한 요소는 계속 소프트웨어 개발자로서 계속 성장하는 동시에 회사에도 기여할 수 있다는 점이었습니다. LINE 직원들은 관리자 역할을 맡는 방향 이외에도 다양한 커리어를 선택할 수 있고, 본인 선택에 따라 평가를 받는다는 점이 무척 중요한 요소였습니다. 지금 저는 제 분야의 테크 리드로서 기술적인 업무를 하는 한편, 팀원 몇 명과는 대형 프로젝트를 진행하고 있습니다.

Q LINE의 업무 환경은 어떤가요?

LINE에서는 일본, 중국, 한국, 인도, 대만 등 다양한 지역에서 온 여러 팀원이 함께 일하고 있습니다. 저희 팀은 특히 더 그렇고요. 업무 문화도 무척 모던하고, 일할 때 영어를 공용어로 사용하고 있습니다. 이런 업무 환경은 일본에서는 흔치 않은데 저는 지금 환경이 무척이나 마음에 듭니다. 또한 저는 오픈 소스 커뮤니티에도 참여하는데, LINE의 회사 분위기나 의사소통 방법이 오픈 소스 커뮤니티와 비슷하다고 생각합니다. 그리고 LINE에서 자기 재량대로 일하고 업무 시간을 자율적으로 사용할 수 있는데요. 지금은 COVID-19 팬데믹 때문에 법에 따라 의무적으로 집에서 일해야 하지만, 여전히 사무실에서 일하는 것처럼 원활하게 일할 수 있습니다. 직원들이 효율적으로 일할 수 있도록 독려하는 자유로운 업무 문화가 LINE의 업무 환경에 영향을 미쳤다고 생각합니다.

업무에 관한 이야기

Q 소속된 팀에 대해 소개 부탁 드립니다.

우리 팀은 LINE의 인프라에 대한 포괄적 서비스를 제공하는 ‘IT 서비스 센터’에 속해 있습니다. ‘IT 서비스 센터’는 LINE 앱을 비롯해 다양한 서비스를 제공하는 데 필수적인 물리적 서버나 클라우드 서버, 네트워크, 스토리지, 그리고 이들을 제어하는 소프트웨어 그룹의 개발과 관리, 운영을 책임집니다. IT 서비스 센터에 속해 있는 베르다 부서는 베르다 프라이빗 클라우드 플랫폼을 제공합니다. 베르다는 주요 소프트웨어 플랫폼인 OpenStack을 통해 제공되는 가상 서비스 외에도 프라이빗 클라우드 플랫폼을 제공하고, 소프트웨어 로드 밸런서, 스토리지 플랫폼, 컨테이너 기반 PaaS와 DB 같은 서비스를 관리합니다. 이 모든 분야는 베르다 플랫폼들로 집합적으로 취급됩니다. 우리 팀은 베르다 부서에서 OpenStack을 사용하는 플랫폼 개발에 전념하고, 저는 LINE에서 제공하는 물리적 서버를 위한 시스템 관리 책임을 지고 있습니다.

Q 하루 업무에 대해 소개해 주세요.

베르다 프라이빗 클라우드를 관리하는 기능은 두 가지가 있는데, 하나는 가상 머신을 제공하기 위한 것이고 다른 하나는 물리적 서버를 제공하기 위한 것입니다. 우리는 회사 소프트웨어 개발자에게 제공되는 물리적 서버를 관리하기 위한 사내 소프트웨어를 개발하는 한편, OpenStack 기능을 이용해서 가상 서버를 관리합니다. 저는 물리적 서버의 관리 기능을 유지하는 일과, 이를 사용하는 직원들 요청에 대응하기 위해 새로운 기능을 추가하는 일을 담당하고 있습니다. 저에게 있어 프라이빗 클라우드를 개발하고 운영할 수 있다는 건 굉장한 기회이고, 또 개발자로서 경험과 지식을 활용해 새로운 것에 도전할 수 있어 저는 LINE의 업무 환경에 만족하고 있습니다. 다양한 분야의 전문가인 여러 동료가 있어서 직장에서 저의 역량을 더욱 키울 기회가 많다고 생각합니다.

Q 담당하신 직무를 수행할 때 어떤 점이 중요한가요?

우리 팀은 항상 동시다발적으로 발생하는 다양한 문제를 해결해야 합니다. 저는 제 업무에만 집중하는 경향이 있지만 팀의 목표에 초점을 맞춰 넓은 시각에서 우선순위에 따라 일하는 것이 중요하다고 생각합니다. 또한, 문서와 코드도 검토하면서 상황에 따라 즉각적으로 최대한 팀원들을 지원합니다. 그리고 전 일할 때 팀원들과 정보를 공유해서 제 업무 퀄리티를 유지하는 걸 중요하게 생각합니다. 예를 들어 새로운 기능을 개발할 때 다음 단계로 이동하기 전, 품질 검사를 위해 다른 팀원들과 공유하기 위해 설계 문서와 스펙을 만듭니다. 이 과정을 촉진하기 위해 더 적은 인력으로 소프트웨어 제품의 높은 품질을 유지하는 자동 테스트 시스템을 개발했습니다.

실패와 성장의 경험

Q 현재 해결하고자 하는 과제는 무엇인가요?

저는 현재 물리적 서버의 관리 기능을 OpenStack 플랫폼에 통합시키기 위한 프로젝트를 진행하고 있습니다. 몇 년 전, 이러한 물리적 서버를 관리하기 위해 LINE의 사내 소프트웨어를 개발했습니다. 하지만, OpenStack을 사용하여 가상 서버 관리를 하기 시작했으므로 가상 서버와 물리적 서버를 관리하기 위해서는 개별 소프트웨어 스택을 운영해야 합니다. 사용자들이 동일한 수준의 기능을 제공받을 수 있게 하기 위해서는 같은 기능(features)을 OpenStack과 사내 소프트웨어에 모두 적용해야 하기 때문에 개발 공수와 운영 공수가 모두 높아질 수 밖에 없었습니다. 이러한 문제를 개선하고 또 단순화하기 위해서 사내 소프트웨어를 포기하고 OpenStack으로 마이그레이션하는 것으로 결정을 했습니다. OpenStack에는 Ironic이라는 물리적 서버 관리 기능이 있지만 LINE의 개발환경에 적합하지 않기 때문에 서버를 효율적으로 관리하기 위해서는 Nova라는 새로운 드라이버를 개발해야 했습니다. 그리고 물리적 서버 관리를 위해 Kubernetes를 기본 환경으로 선택하여 control plane을 좀 더 분산되고 탄력적으로 만들 수 있었습니다.

Q LINE에서 일하면서 실수를 하신 적이 있으신가요?

우리 팀이 거대한 프라이빗 클라우드 환경을 운영하기 때문에 종종 대규모 시스템 중단으로 인해 사용자가 Verda 환경을 완전히 사용할 수 없게 되는 경우가 있습니다. 가장 최근 있었던 사례는 OpenStack Keystone이 다운되면서 발생하였었는데요. OpenStack 및 Verda Kubernetes 서비스(일명 KVS)와 같은 Verda의 다른 서비스에서는 사용자 인증을 위해 Keystone이라는 서비스에 의존하고 있습니다. 따라서 이런 상황에서 다음과 같은 사항들을 고려해야 합니다. (1) 문제를 일으키는 서비스를 종료한다, (2) 관련 없는 다른 서비스들은 복구한다, (3) 문제를 다시 유발할 수 있는 서비스를 활성화하는 해결방법을 개발하여 전체 서비스의 가동 중지 시간을 최소화한다. 문제의 원인이 되는 근본이 무엇인지 찾아야 했기 때문에 작동이 중단되었을 때 Keystone을 복구하는 데 오랜 시간이 걸렸습니다. 돌이켜보면, 이러한 상황에 대처하기 위해 (1) 사용자에게 끼치는 영향을 최소화하고, (2) 근본 원인 해결이라는 두 가지 방향을 항상 고려하고 있어야 한다는 것을 배웠던 것 같습니다. Verda에서는 모든 중단 케이스에 대한 회고를 하는 미팅을 갖고 개선을 위한 목표를 설정합니다. 그리고 이러한 긍정적인 루프가 우리의 플랫폼을 더 강력하게 만듭니다.

마무리하며

Q 앞으로 LINE에서 달성하고 싶은 향후 커리어 목표는 무엇인가요?

기본적으로 개발자로서 계속 발전하고 싶고, 중장기적으로는 능력 있는 개발자들과 일하면서 테크 리드로서 다양한 임무를 완료하기를 희망합니다. LINE에서 일하면 재미있는 도전과제가 많기 때문에, 앞으로 흥미로운 경험을 많이 할 수 있을 것 같습니다.

Q 마지막으로, 어떤 분에게 LINE을 추천하시겠어요?

IT 업계에서는 새로운 소프트웨어 기능과 트렌드 등 새로운 것들이 매일 등장합니다. 이러한 새로운 것들로부터 영감을 받거나, 새로운 것을 만들어내고 그런 것들을 살펴보고 개발하는 데 흥미가 있는 사람들, 다시 말해서 소프트웨어 개발자의 삶을 즐기고 싶은 사람들에게 LINE에 오시는 걸 추천합니다. 물론, 현재 자기 일을 진심으로 즐기며 목표 달성을 위해 분투하는 분이라면 우리 팀에 잘 맞으실 것 같습니다.