본문 바로가기
교육 및 컨퍼런스

지금은 Azure 시대! 도전 Dr. Azure (2019.08.29~30)

by TheWhisperOfLeaves 2019. 11. 7.

이틀간 진행되었던 Azure DevOps 교육이었다.

사실 이 교육을 듣기전까지만 해도 학생 시절 때 이후로 교육이나 세미나를 다니질 못했다.

그리고 이전에 다녔던 회사들이 작은 회사들이었고, 유지보수 위주와 스타트업이지만 본인이 아는 것만 답이라고 생각했던 개발 이사가 있던 곳이어서 개발 환경 같은거에 관심을 가지고 말해봤자 회사에선 받아들여지지 않아서 나도 크게 관심을 가지지 않았던 것 같다.

현재 회사에서도 이런 분위기였지만 최근 분위기가 바뀌어가며 큰 세미나는 거의 다 참석하고 있는 것 같다.

이 글에서 작성할 Azure DevOps와 얼마전 열렸던 AWS Dev Day, 그리고 어제 다녀온 Google Cloud Summit Seoul 2019

세미나를 갈 때마다 아..정말 IT의 발전은 빠르다고 느꼈다. 느낀 점에 대한건 이 글 뒤에 작성할 글에 추가로 작성하도록 하고 DevOps 교육 후기를 작성하겠다.

 

사실 이 교육은 실습 위주의 교육이라 글에 작성할 내용은 많지 않지만 교육을 들으면서 내가 느낀 DevOps를 도입해야하는 이유를 간략히 정리해보겠다.

 

우선 이날 타이틀은 Azure400이었다. 뒤에 숫자는 MS DevOps 시험 관련 번호라고 한다. 230, 300 등이 존재한다.

그리고 교육 전 클라우드에 대한 어느정도의 이해가 필요하다고 말하였다.

 

강사님의 질문! 왜 클라우드를 써야 하는가?

 

강사님은 두 가지 예를 들었는데, 첫 번째는 곧 서비스가 종료될 예정인 넥슨의 듀랑고를 예로 들었다.

나도 플레이 했었던 게임인데, 듀랑고는 정말 많은 유저들이 기대했고 오픈 당시 너무 많은 유저들이 몰려 서버가 터져버리고, 몇 일 내내 접속이 힘들어 점검의 땅 듀랑고, 인내의 땅 듀랑고 등등 많은 패러디를 낳은 게임이다.

강사님이 예로 설명한 부분은 듀랑고 오픈 당시 트랜잭션 이슈이다. 힘들게 계정을 생성했는데 접속 도중 튕겨버린 유저들 중 재접속을 하니 생성되지 않은 계정이라고 하여 재생성을 시도했으나 이미 생성된 계정이라고 하는 경우 (사실 8월에 들은거라 정확히 기억은 나지 않는다)

요점은 계정 생성 중 튕겨버린 유저들에 대한 롤백이 제대로 이루어지지 않고 어느 서버에선 생성된 계정이 존재하고 어느 서버에선 계정이 존재하지 않아 계정 생성 자체가 아예 불가능해져버린 경우가 있었다고 한다.

 

그리고 두 번째는 노벨상 사이트이다.

노벨상 사이트는 평소엔 트래픽이 거의 없다. 하지만 1년에 하루! 노벨상이 발표되는 날에는 전세계적으로 관심을 받는다.

자 그러면, 이 날 하루 트래픽 처리에 필요한 서버가 100대라고 가정하고 이 날 하루를 위해 1년 내내 100대의 서버를 운영할 필요가 있을까? 이건 엄청난 낭비이다.

 

클라우드를 사용하면 손쉽게 서버를 늘리고 줄일 수 있다. 평소엔 1대만 운영하다가 트래픽이 많이 발생하면 그 때 필요한 만큼 손쉽게 서버를 증설하면 된다. 그리고 후에 트래픽이 줄어든다면 증설한 서버를 손쉽게 삭제할 수 있다.

 

자 그럼 이제 DevOps는 무엇인가?

개발(Development)와 운영(Operations)의 합성어이다. 그리고 DevOps는 개발 툴이나 도구를 얘기하는 것이 아니라, 소프트웨어 개발자와 정보기술 전문가 간의 소통, 협업 및 통합을 강조하는 개발 환경이나 문화를 말한다.

 

https://marketplace.atlassian.com/categories/devops

위 그림을 보면 정말 많은 툴들이 보이고, 중간에 무한 고리 형태로 뭔가가 계속 돌게끔 그러져있다.

개발과 운영의 프로세스를 생각해보자. 계획을 짜고 개발을 해서 빌드를 하고 관련 소스들을 통합하고 배포, 그리고 서비스를 운영하고 고객들에게 피드백을 받는다. 이걸로 끝이 아니라 피드백에 대해 또 계획을 짜고 코딩하고...이러한 과정들이 계속 반복된다.

이 과정에서 개발자와 영업, 운영자들 사이에서 피드백이나 개발 수정 내용들 등을 전달하거나, 아니면 각 부서 내부에서 내용들을 공유할 때 그냥 말로도 할 수 있다. 하지만 말로 하면 까먹는 경우도 있고 나중에 책임전가를 하거나 요청 사항들이 갑자기 담당자가 정해지지 않았었다고 그냥 붕 떠버리는 경우도 있다. 그래서 계획한 내용을 플랜 관리 도구들을 사용해 문서로 기록하고 내용을 공유하는 등등 이러한 문화를 만들어 가는 것이다.

개발자를 예로 들어보면, 형상관리툴을 사용해 소스를 버전별로 관리하거나 아니면 협업 도구로 사용할 수 있고, 귀찮은 테스트들을 자동화 시켜 소스에 수정사항이 생기면 자동으로 빌드를 하고 단위 테스트를 자동화 하는 등 편리하게 사용할 수 있다.

이렇게 개발과 운영을 하는데 유용한 툴들을 사용하여 개발자와 영업, 운영자들이 조금 더 신속하고 편리하게 일을 해나갈 수 있는 문화가 있으면 좋지 않겠는가?

 

Azure DevOps는 DevOps 문화에 필요한 프로세스들을 손쉽게 사용할 수 있었고, 클릭 몇 번을 통해 CI/CD를 구현할 수 있었으며, 또한 기본적으로 제공하는 툴 외에도 커스터마이징을 통해 연동이 가능하였다. 또한 손쉽게 클라우드 인스턴스를 생성할 수 있었다.

나는 개인적으로 Trello를 사용하여 플랜을 작성하고 git과 github를 통해 소스를 관리한다. 그리고 아직까지 개인적으로 큰 사이트를 운영하거나 하지 않아서 CI/CD는 사용하지 않지만, 현재 회사에서 하고 있는 프로젝트는 CI/CD가 필요하여 DevOps 문화에서 최소 4개의 부분 정도는 만들지 않을까 계획하고 있다.

 

글을 마치며..

DevOps는 무조건 도입해야하는가?

아니다. 필요하다면 필요한만큼만 문화를 만들어도 된다고 생각한다. 그리고 개인적으로 간단히 구축한다면 대충하면 되겠지만 제대로 할려면 초기 비용에 대한 것도 고려해봐야한다. DevOps는 DevOps 엔지니어가 따로 있을 정도로 작은 문화가 아니다. 위에 손쉽게 설치하고 이런 식으로 써서 쉽게 생각할 수 있겠지만, 제대로 하려면 정말 작은 것까지 어떤식으로 사용해나갈지도 생각하면서 진행하여야한다. 그리고 사용하려는 사람들이 DevOps 문화와 사용할 도구들에 대해 충분히 이해하는 것도 필요하다.

'교육 및 컨퍼런스' 카테고리의 다른 글

Google Cloud Summit Seoul 2019 (2019.11.06)  (0) 2019.11.14
AWS Dev Day Seoul (2019.09.26)  (0) 2019.11.14

댓글