클라우드와 개발자

The Great Gatsjy·2021년 2월 10일
0

문득 궁금해졌다. 언텍트로 인해 온 디멘드의 요구사항이 많아졌다. 그렇게 되면서 클라우드 기술에 대한 관심도도 높아졌다. 유동적으로 변화되는 환경에 대응하기 위해서 그에 따른 유동적인 전산 자산의 변동이 있어야했고, 그에 따른 해결책으로 클라우드 기술이 떠올랐다. 하지만 개발자로 살아가는 나에게 있어서 한가지 의문이 드는 것은 어쩔 수 없었다.
"그래 클라우드가 중요한지는 뭐 대충 알겠어.. 그렇다면 근데 클라우드는 엔지니어의 분야 아니야?? 개발자도 클라우드에 대해서 공부해야 할까..?" 그에 대한 해결책을 찾기 위해서 떠나는 여행이다.

인프라란 무엇인가?

  • '사회적 생산기반. 하부구조.' IT영역에서는 인프라란 기본적으로 개발이나 서비스를 하기 위해 물리적으로 구성된 네트워크, db, 서버 등을 의미한다. 즉 데이터를 주고 받기 위한 물리적 장비를 의미한다.

인프라 엔지니어?

  • 인프라 엔지니어는 개발자들이 원활하게 사용할 수 있는 개발 환경을 마련하고 고객을 위해 안정적인 운영환경을 구성하고 프로젝트 종료시 서피스를 폐쇄하는 일가지 한다.

클라우드랑 인프라랑 무슨 상관이지?

  • 클라우드 인프라는 가상화되어 인터넷을 통해 서비스로 제공되어 사용된다는 점을 제외하고 일반적인 데이터 센터 인프라와 다르지 않다. 서버, 스토리지, 컴퓨팅 리소스, 보안은 모두 클라우드 인프라의 핵심구성요소이다. 즉, 눈에 보이는 장비들을 외부의 가상화된 장비들로 옮겨간 것이 클라우드 이다. 즉, 기존의 인프라가 클라우드로 옮겨간 것이라고 할 수 있다.

왜? 클라우드 인프라인가?

  • 클라우드 인프라는 애플리케이션 지원을 위해 개별 서버, 스토리지, 컴퓨팅, 네트워킹 구성요소를 구매하고 조립해야 하는 기존의 물리적 인프라보다 훨씬 효율적으로 관리할 수 있다.

전산실에서 서버 담당자라 생각해보자..

  • ex) 내가 서버를 증설하고 싶다고 해보자. 나는 서버를 판매하는 업체에 연락해서 서버를 발주하고 그 큰 서버를 둘 장소를 모색하고 서버를 들여와야 한다. 적어도 몇주가 걸리는 일이라고 한다. 하지만 AWS를 사용하면? 콘솔을 통해서 멀~리 떨어진 AWS의 가상화된 서버를 빌려서 내것처럼 사용한다. 그대신 AWS에 사용료를 지불한다.
  • 그렇다면 무슨 장점이 있을까? 서버에 들어가는 유지비용(습도를 관리하거나 온도를 관리하거나 하다 못해 서버를 둘 공간이나 그 서버를 관리할 용역들...)을 절감할 여지가 생길 것이다. 다니는 병원의 서버실에 온습도 체크하러 들어가보면 늘상 적당한 온도와 적당한 습도로 유지되는 것을 볼 수 있다. 그리고 많은 인력들이 그 서버를 관리하려 하루에도 몇번씩 둘러보고 간다.
  • 다시 본론으로 돌아가서, 왜? 클라우드 인프라가 요새 나오는가? 그것은 바로 코로나로 인한 언택트인한 전산 사용의 증가라고 생각된다.

MS 최고경영자 사티아 나델리..

"2년 걸릴 디지털 전환, 2개월만에 이뤄졌다" - MS 최고경영자 사티아 나델라
사티아 나델라 마이크로소프트 최고경영자(CEO)는 개발자 컨퍼런스 '빌드2020'에서 "개발자들의 역할이 그 어느때보다 중요한 시기로 2년이 걸릴 디지털 트랜스포메이션(전환)이 지난 2개월 만에 이뤄졌다"고 말했다.

  • 신종 코로나바이러스 감염증(코로나19) 확산에 기업 업무 방식과 학교 수업, 의료 등 각 영역에 변화를 촉진시켰다. 모든 조직은 모든 것을 원격으로 전환하는 능력을 요구 받게 되었다.
  • ex) 내가 대학교에서 수업을 담당하는 조교로 있다고 생각해보자. 원래 우리 학교의 이러닝 시스템은 최대 200명 밖에 수용하지 못한다. (자원은 무한정 하지 않기 때문에 아마 가장 최적의 수용인원을 계산해서 그에 따른 설비를 갖췄을 것이다.) 그러던 어느날.. 코로나라는 국제적 판데믹 사건이 발생했고, 당장 돌아오는 다음 달 부터 모든 수업을 온라인 원격수업으로 바꾼다고 한다.. 큰일이다.. 듣는 인원을 계산해보니 동시접속자 1000명이 예상된다. 현재 200명의 5배이다.. 이러한 문제 상황을 어떻게 해결해 나갈 것인가??
  • 위의 대답에 많은 기업은 '클라우드'로 답하고 있다.

개발자와 클라우드

  • 그렇다면 개발자와 클라우드는 어떻게 이어지는 것일까? 클라우드를 사용하게 되면서 인프라에 접근성이 높아진 덕분에 많은 개발자들이 인프라에 관여하기 시작했다. 클라우드 이전에는 프로젝트 규모를 산정하고 시스템의 요건을 정의할 때, 인프라스트럭처 비용이 워낙 컸고 변경이 불가능 했기 때문에 경험이 많은 인프라 엔지니어가 안정적인 시스템을 선정하고 구성해야만 했다. 하지만 클라우드의 인프라 구조는 언제든 변경이 가능하기 때문에 개발과정에서 인프라 구조를 개선하고 완성해 나갈 수 있다.
  • "개발과정에서 인프라 구조를 개선하고 완성해 나갈 수 있다."

개발자와 시스템 운용

  • 애플리케이션과 연계 분석. 애플리케이션 연계 분석에 있어서도 개발자의 참여는 더욱 가속화 되고 있다. 특히 인프라 설계 및 구축 과정에서 개발자가 참여하면서 시스템의 운용과 애플리케이션과의 연계 분석에서도 개발자의 참여는 더욱 중요해지고 있다.

끝으로?

  • 현시대의 성장에 발맞추기 위해서는 개발자도 클라우드 지식이 필요하다. 기존에 사용했던 설정을 클라우드 서비스에서 복제하기란 매우 어렵다. 비클라우드 개발에 익숙한 개발자들은 클라우드에서 웹 어플리케이션을 구축할 때 난관에 부딪힐 수 있다. 상대적으로 새로운 환경에서의 클라우드 개발은 클라우드의 장점을 끌어올리지 못하고 개발에만 급급한 실정을 불러올 수 있다. 즉, 학습러닝 커브가 높다는 말이다. 하지만, 잠재적으로 극복해야 할 도전이 있기는 하지만, 많은 기업들에 있어 전통적인 방식에 집착하기보다는 클라우드를 이용해 개발을 진행하는 것이 나을 수 있다. 클라우드 컴퓨팅이 갖는 일반적인 장점인 비용의 탄력적인 활용, 운영상의 복잡성을 제거 할 수 있고 이 둘다 개발 주기를 단축시키는 효과를 가져온다. 이러한 매력적인 옵션을 포기하기는 힘들것으로 예상된다.

출처

profile
Overcome and move on to the next stage.

0개의 댓글