ARGOS 필요성에 대한 고찰

by Jerry Chae

4차 산업혁명의 의미

사고의 흐름을 따라가는 4차 산업혁명의 의미‘ (Korean) 에서도 나타나듯이 1차 산업혁명의 키워드는 증기, 2차 산업혁명의 키워드는 전기, 3차 산업혁명의 키워드는 통신이었고 4차 산업혁명의 키워드는 무인입니다. 무인이라는 것은 자동화를 의미하고 이는 제조업과 같은 곳에서의 로봇을 통한 무인화의 의미도 있지만 소트트웨어에서의 무인화도 그것 이상으로 중요합니다. 하드웨어의 경우 이미 아디다스 주문 생산 시스템에서는 십 여명이 수 십만 켤레 이상의 주문 생산을 자동화하여 생산하고 있습니다. 결국 3차 산업을 거쳐 4차 산업을 가면서 주도권을 잡는 것은 하드웨어 보다는 소프트웨어라 할 수 있습니다.

 

  • GE도 2017년 소프트웨어 회사로 변환하겠다고 선언
  • IBM도 이미 2000년대부터 하드웨어 회사에서 소프트웨어, 서비스 회사로 변환

 

그런데 아이러니컬 하게도 현재까지 하드웨어와 소프트웨어 중 더 무인화가 되어 있지 않은 곳은 소프트웨어 부분입니다. 아직도 어떤 소프트웨어를 개발하기 위하여 개발자가 개입되어야만 하며 그 결과물을 테스트하고 릴리즈(release), 배포(deployment), 운영(operation) 등에 사람이 개입되어야만 합니다.

 

그러면 이런 상황에서 최대의 경쟁력은 무인화라는 완전 자동화가 아니더라도 최소한의 인원으로 최대의 시스템을 개발하고 운영하는 것이야 말로 4차 산업혁명에서의 최대 경쟁력이라 할 수 있습니다.

 

  • Today’s demands are simply not met by yesterday’s software architectures. from https://www.reactivemanifesto.org
  • 모바일 시대의 사용자의 변화는 기존의 온라인에서와 다른 개발 방법, 아키텍쳐 등을 요구하게 됩니다.
1784187019692020
산업혁명1차2차3차4차
에너지석탄석유전기재생에너지
소통전신전화인터넷사물인터넷
운송철도자동차스마트운송replicator (로컬생산)
영향력소비재와 경공업전기화학, 중화학공업ITEvery industry
패러다임기계대량생산디지털인공지능
값어치codevoiceinformationData
생산방법증기기관으로 인한
공장의 기계화
작업 표준화와
분업 대량생산 시대
산업용 로봇의
자동화 생산성 혁명
AI 자동화
다품중 소량생산

이러한 패러다임은 기존의 전통적인 방식의 제조 방법에서부터 결국 자동화를 통한 소량 다품종 생산으로 고객의 다양한 요구를 만족시키는 기업만이 살아남을 것을 강요합니다. 10년전인 2007년에 글로벌 시가 총액 5대기업이 2017년 현재 어떻게 변화했는가가 이를 대변합니다.

 Rank20072017
1PetroChinaApple
2ExxonMobilGoogle Alphabet
3GEMS
4China MobileAmazon
5ICBC
(Industrial and Commercial Bank of China)
Facebook

 

또한 하드웨어 기반의 회사가 쇄퇴하고 소프트웨어 중심의 회사가 선두에 나서고 있음을 알 수 있습니다. 오히려 소프트웨어 회사가 하드웨어 회사를 인수합병하는 현상이 많이 일어나고 있는 현실입니다. 결국 위와 같이 변화하는 패러다임을 맞추기 위하여 디지털 트랜스포메이션을 하지 않는 기업은 사라지고 있고 사라지게 될 것입니다.

DevOps의 필요성

위에서 처럼 소프트웨어 기반의 디지털 트렌스포메이션 중에서 가장 중요한 부분 중의 하나인 DevOps에 관하여 살펴보겠습니다.

우선 DevOps는 개발(Development)과 운영(Operation)을 최대한 자동화하고 끊김없이 개발과 운영을 반복하여 고객의 다양한 요구에 빠르게 대응하도록 하는 일련의 방법론을 의미합니다.

가장 앞서가고 있는 기업 (Unicorn Company)의 DevOps 관련 내용을 먼저 살펴보도록 하겠습니다.

 

Unicorn Company and DevOps

 

Facebook

  • 끊임없는 개선과 이터레이션(Iteration) 방식. 빠른 출시와 작은 이터레이션을 통해서 배움으로써 장기적으로 최고의 서비스를 만들려고 노력…
  • 완성이 완벽보다 낫다. (Done is better than perfect.)
  • 코드가 논쟁보다 낫다. (Code wins arguments.)
  • 최고의 아이디어와 최고의 구현이 늘 이겨야 한다.

 

Google : Ten Things we know To Be True in Google

  • Focus on the user and all else will follow
  • It’s best to do one thing really, really well.
  • Fast is better than slow.
  • Democracy on the web works.
  • You don’t need to be on your desk to need an answer.
  • You can make money without doing evil.
  • There is always more information out there.
  • The need for information crosses all border.
  • You can be serious without a suit.
  • Great just isn’t good enough.

 

Amazon Leadership Principles

  • Moving Fast

 

Netflix

  • High Availability, but move fast.
  • Tools encourage best practice, but freedom to do the right thing.

 

So, Big unicorn’s common goal,

  • Moving Fast
  • Focus on customer

Goal of DevOps

DevOps is not about a technology, DevOps is about a business problem.

 

위와 같이 유니콘 기업들은 빠르게 변화하는 비즈니스 환경과 문제에 대하여 DevOps를 통해 빠르게 고객의 요구에 대응하고 있다는 것을 알 수 있습니다.

 

Steps of DevOps

앞서 설명한 개발과 운영을 좀 더 자세히 세분화 하여 단계별로 살펴보겠습니다.

첫번째로 개발에는 다음과 같은 단계가 있습니다.

순번

단계

내용

자동화 여부

방법

1Plan어떤 문제를 어떻게 해결할 것인가 계획No사람에 의해 계획. 다만 도와주는 도구 존재
2Code1단계의 계획된 것을 소프트웨어로 코딩No사람에 의해 코딩, 생산성에 크게 좌우됨
3Build2단계의 코딩을 실행가능한 구현체로 완성Yes대부분 CI/CD 툴을 이용하여 자동화
4Test3단계의 완성된 구현체가 계획된 대로 구동하는지 테스트No
(일부 Yes)
단위 테스트, API 테스트, UI 테스트 중 일부 자동화 가능

그리고 운영에는 다음과 같은 단계가 있습니다.

단계

내용

자동화 여부

방법

5Release4단계의 테스트 완료된 구현체를 해당 릴리즈로 고정Yes대부분 버전관리 시스템 등과 연동하여 릴리즈 생성 및 배포준비
6Deploy5단계의 준비된 릴리즈를 특정 운영환경으로 배포 및 서비스 준비Yes컨테이너나 오케스트레이션 툴을 이용하여 자동화
7Operate6단계의 배포된 서비스를 실제 운영Yes/No최대한 운영자의 개입 없이 많은 고객을 서비스하는 것이 목표
8Monitor7단계의 서비스를 운영하면서 여러 상태를 모니터링No
(일부 Yes)
주로 로그나 이벤트 모니터링을 통한 사람에 의한 직관 또는 분석으로 운영중인 시스템의 이상 부분 파악

더 중요한 것은 여기에서 개발과 운영이 끝나는 것이 아니라 DevOps의 연결고리가 생긴다는 것입니다.

모든 시스템은 7,8 단계에서 발생한 운영상의 문제점 또는 운영상 고객의 요구사항이 발생하기 마련입니다. 이런 요구사항이나 개선 사항은 바로 개발의 1단계로 적용됨으로써 고객의 요구사항을 최단 시간에 다시 반영하는 것이 바로 DevOps의 최대 장점이라 하겠습니다.

 

Measuring DevOps and IT Performances

  • Deploy frequency (Note: NOT delivery)
  • Mean Time to Recover (MTTR)
  • Lead Time for Changes

 

company

Deploy Frequency

Deploy Lead Time

Reliability

Customer Responsiveness

Amazon23,000 / dayMinutesHighHigh
Google5,500 / dayMinutesHighHigh
Netflix500 / dayMinutesHighHigh
Facebook1 / dayHoursHighHigh
Twitter3 / weekHoursHighHigh
Typical enterpriseOnce every 9 monthsMonths or quartersLow / MediumLow / Medium

From a book, The Phoenix Project (2013)

 

위에서 살펴볼 수 있듯이 이미 2013년 위와 같은 기업들은 DevOps의 순환고리를 적어도 하루에 한번 이상 돌고 있다는 것을 알 수 있으며 더 많이 돌 수록 더 경쟁력이 있다 할 수 있습니다.

 

자동화 또는 무인화

 

자동화의 필요성

이미 위에서 이야기 했듯이 개발과 운영이라는 순환고리를 빨리 돌 수록 더 경쟁력을 갖춘 회사라 할 수 있습니다.

그러면 어떻게 하면 더 빠른 고리를 돌 수 있을까요? 바로 무인화 또는 자동화라 할 수 있겠습니다.

 

자동화의 어려움

만약 이전에 설명한 개발 4단계 및 운영 4단계 모두에서 사람의 개입이 하나도 없이 모두 자동화가 된다면 가장 빠른 순환고리를 돌 수 있지만 문제는 사람이 개입될 수 밖에 없는 단계가 있어, 이를 사람이 최소 개입하거나 또는 최대한 자동화를 할 수록 더 낫다는 것을 확인할 수 있습니다.

순번그룹단계내용자동화 여부자동화 실현
1개발Plan어떤 문제를 어떻게 해결할 것인가 계획No인공지능 등을 통하여 문제의 자동 해결 방법 비율 높임
2개발Code1단계의 계획된 것을 소프트웨어로 코딩No아직까지 자동화된 코딩은 없으나 인공지능 등의 분야에서 논의되고 있음
3개발Build2단계의 코딩을 실행가능한 구현체로 완성Yes 
4개발Test3단계의 완성된 구현체가 계획된 대로 구동하는지 테스트No(일부 Yes)개발된 구현이 이상 없는가?
5운영Release4단계의 테스트 완료된 구현체를 해당 릴리즈로 고정Yes 
6운영Deploy5단계의 준비된 릴리즈를 특정 운영환경으로 배포 및 서비스 준비Yes 
7운영Operate6단계의 배포된 서비스를 실제 운영Yes/No현재 서비스가 정상 동작하고 있는가?
8운영Monitor7단계의 서비스를 운영하면서 여러 상태를 모니터링No(일부 Yes)네트워크, 시스템, 자원 등 모든 부분에 문제 없는가?

결국 위와 같은 8단계에서 당장 자동화를 실현하기 어려운 1단계 Plan 및 2단계 Code를 제외하고 나머지 세 단계인 Test, Operate, Monitor 를 어떻게 하면 최대한 자동화할 것인가가 실제 경쟁력의 핵심이라 할 수 있습니다.

 

What ARGOS can do!

 

위의 8단계에서 ARGOS가 할 수 있는 부분입니다.

 

순번그룹단계내용자동화 여부What ARGOS can do
1개발Plan어떤 문제를 어떻게 해결할 것인가 계획No 
2개발Code1단계의 계획된 것을 소프트웨어로 코딩No 
3개발Build2단계의 코딩을 실행가능한 구현체로 완성Yes 
4개발Test3단계의 완성된 구현체가 계획된 대로 구동하는지 테스트No(일부 Yes)**제일 자동화 하기 어려운 사용자 UI를 시나리오화 하여 정상/비정상 동작하는 것을 자동화하고 그 결과를 리포트**
5운영Release4단계의 테스트 완료된 구현체를 해당 릴리즈로 고정Yes 
6운영Deploy5단계의 준비된 릴리즈를 특정 운영환경으로 배포 및 서비스 준비Yes 
7운영Operate6단계의 배포된 서비스를 실제 운영Yes/No특정 웹서비스 또는 앱에 대하여 사용자 입장에서 서비스를 동작해보고 정상/비정상을 탐지. 또한 세부적으로 네트워크, 백엔드 서비스, 렌더링 등의 비정상 구간 탐지 및 리포트
8운영Monitor7단계의 서비스를 운영하면서 여러 상태를 모니터링No(일부 Yes)기존 GA와 같은 APM 영역은 주로 이 모니터링 영역을 커버하지만 ARGOS는 실제 운영 상태를 사용자의 입장에서 파악하므로 다른 영역으로 인지하여야 함!

 

위와 같이 ARGOS를 통하여 4단계 Test 및 7단계 Operate를 자동화하고 그 부분에서 해결해야 하는 사이클이나 시간을 최소화 함으로써 전체 순환고리 사이클을 빨리 할 수 있습니다.