KCD2020 중 '업무 자동화를 통해 사내 업무 환경을 개선한 사례에 대해 발표한 김태우님의 발표영상을 정리했습니다.
주제 : 내가 태국에서 일하는 방법
부제 : 자동화(Automation)와 원격근무(Remote)를 통하여 적은 인원으로 효율적으로 일하는 방법 및 AWS내의 인프라 운영비용 절감 팁 등을 공유합니다.
발표자 : 김태우(5zzang@gmail.com)
발표자는?
- 14년차 자바 개발자
- 6년차 DevOps 엔지니어
- 6년차 외국인 노동자
- 리눅스 유저
회사에 자바 개발자로 입사하여 CTO 권유로 DevOps 엔지니어로 전향.
리눅스를 주로 사용하고 업무에 필요한 스크립트 정도는 직접 만들어서 사용함.
회사는 어떤 일을 할까?
- 싱가포르 소재 PG(Payment Gateway)
- 말레이시아, 태국, 인도네시아 등지에 지사 운영
- 본사 및 지사에 현재 약 50여명이 근무중
- 기술(Technology)부서가 본사 및 지사에 산재되어 있음
- 모든 솔루션이 AWS으로 운영 됨
본사와 지사 사무실이 있지만 원격으로 근무하고 있다.
원격근무를 하다보니 온라인, 클라우드 서비스를 업무에 적극활용하게 됐다.
원격 근무를 하다보니...
- 대화 및 회의 : 메신저, 화상회의
- 문서 보관 및 작성 : 오피스365(클라우드 문서 서비스)
- 원격 근무를 위한 사내 인프라 및 VPN 구축하여 사용
PC 뿐 아니라 스마트폰으로도 업무를 처리한다.
트렐로(Trello), 지메일(G-mail), 구글 챗(Google Chat) 등 업무에 필요한 앱들을 사용하고 있다.
출근 중 시스템에 문제가 생겨서 해당 시스템을 종료해야 하는 경우 스마트폰으로 업무를 처리할 수 있다.
스마트폰에 설치된 VPN 앱으로 회사 VPN에 접속한다. 터미널 앱으로 해당 서비스로 접속해서 해당 서비스를 재부팅 할 수 있게 해놨다.
입사했을때 부터 일일 인수인계 일지를 작성했다.
2주가량 장기휴가를 간 상황에서 서비스가 문제가 생겼다. 하지만 일일 인수인계 일지를 작성했었기 때문에 동료가 해당 문서를 참고하여 서비스를 정상화 시킬 수 있었다.
회사가 어려워졌다. 그리고 회사 내 인력이 줄었다.
130명이던 근무자가 50명 정도로 줄었다. 내가 속해있던 팀은 30명에서 10명으로 줄어들었다. 하지만 일은 줄어들지 않았다.
DevOps팀, QA팀, 모니터링팀 등 합해서 15명이 있었지만 현재는 DevOps팀만 남았으며 기존 다른팀의 업무를 포함해서 모든 업무를 2-3명이 처리하고 있다.
회사 내 근무자가 줄고난 후
- 24시간 서비스를 모니터링해주던 모니터링팀이 사라졌다
- 회사 내부/외부의 요청들을 처리해주던 DevOps팀이 사라졌다.
- 보안 관련 문제를 혼자서 감당하기엔 힘들어졌다.
- 회사 운영진은 비용 절감을 줄이라고 했다.
회사가 어려워졌고, 근무자는 줄었다. 이런 상황에서 내가 무엇을, 어떻게 할 수 있을까?
- 나는 코딩을 할 수 있다.
- 리눅스를 항상 사용하기 떄문에 각종 리눅스 명령을 스크립트로 작성할 수 있다.
- 반복적인 업무를 자동화하는 것을 좋아한다.
내가 할 수 있는걸로 문제를 해결하자
1. ChatOps
슬랙을 이용하여 나를 대신할 수 있는 봇을 만들었다.
- 회사DB에서 특정 데이터를 추출해주는 업무, 개발팀에서 새로운 프로젝트 생성시 젠킨스(Jenkins) 파이프라인(Pipeline)을 생성해주는 것을 봇을 통해 자동화했다.
- 내가 반복적으로 해야 했던 것을 봇에 등록해 자동화했다.
2. Automatic Recovery System
서비스 로그를 분석하여 특정 에러 발생시 자동으로 복구가 가능하도록 만들었다.
3. Monitoring Together
회사 규모가 작아지면서 모니터링 해주는 팀이 없어졌다.
모니터링팀의 업무가 DevOps팀에 넘어왔지만 DevOps 팀만 모니터링하는 것이 아니라 회사 구성원 모두가 서비스 상태를 알 수 있게 했다. 서비스 상태를 확인할 수 있는 그 누구라도 문제가 발생했을 때 내게 알려줄 수 있게 만들었다.
4. 비용절감
모든 인프라가 AWS에서 돌아가고 있다
- Reserved instance - 365일 돌아가야 하는 서비스를 Reserved instance로 실행했다.
- Spot instance - 개발/테스트 환경처럼 단시간 쓰는 것은 테라폼(Terraform)을 활용해서 Spot instance로 실행했다.
- Serverless - 서버가 필요없는 배치 같은건 AWS의 람다(lambda)를 활용했다.
- Auto start & stop - Spot instance를 사용하더라도 모두가 잠자는 시간에는 돌아가지 않도록 설정했다.
위에서 설명했던 것들이 실행 가능했던 이유는?
- 평소에 문서작업(=일일 인수인계 일지)을 통해서 모든 사람들이 원하는 작업을 할 수 있게 했다.
- 문서 분류작업을 통해 새로운 사람이 들어오더라도 관련 문서를 쉽게 찾을 수 있게 했다.
- 표준화 작업을 통해 로그패턴, IT관련 요청들을 요청작업을 처리하는데 소모되는 에너지를 줄였다.
- 인프라를 코드화작업(IaC) 새로운 AWS계정/환경에서도 명령어 하나만으로 쉽게 환경 구축이 가능하도록 만들었다.
결과
- 개인능력 향상 : 80명 하던 업무를 10명이서 처리할 수 있게 됐다.
- 업무효율 향상 : 나에게 온 요청이 처리될 때 대기 시간이 필요하던 업무를 봇이 처리해서 시간 낭비가 사라졌다.
- 안전성 향상 : 인프라 담당자가 수동으로 처리하며 발생하던 실수가 발생하는 상황이 줄었다.
- 운영비 절감 : 자동화를 통해 서버 가동 시간이 줄어들어 월 4000달러이상의 비용이 2500달러 미만으로 줄었다.
DevOps를 도입하면 개발/운영이 편리해진다고 하지만 '왜 DevOps가 필요하지?'라는 물음에 답하기 애매한 경우가 있다. 서비스가 일정 규모 이상 커지기 전엔 DevOps를 도입해서 자동화하는 비용보다 담당자가 직접 처리하는 비용이 더 저렴하기 때문이다. 무조건 DevOps를 도입하는 것이 정답은 아니라는 거다.
이번 발표사례처럼 업무가 밀려들지만 처리할 담당자가 부족한 경우엔 DevOps를 적용할 때 까지의 비용이 도입이후 더 큰 가치를 낸다.
회사 사정이 안좋아져서 팀원이 줄었고, 여러 업무를 처리해야 하는 상황임에도 문제 상황을 해결하기 위해 노력했던 이야기가 녹아있는 발표여서 좋았다.
원본 영상 : https://www.youtube.com/watch?v=ecKmIWov96A
'외부 세미나 & 특강 > 개발' 카테고리의 다른 글
180324 책프협의 책노리 (0) | 2021.02.18 |
---|---|
180421 ‘김포프’의 Hello Coding 프로그래밍 토크쇼 (2) | 2021.02.18 |
[데이터야놀자 2020] 오픈소스기여:코드로 세상에 기여하는 또다른 방법 (0) | 2020.12.10 |
NAVER 핀포인트(Pinpoint) cloud로 시작하는 애플리케이션 성능 모니터링 (0) | 2020.12.08 |
170701_오픈소스 개발자의 공부방법_강대명 (0) | 2020.12.07 |