PeterK
247
2018-07-18 23:16:15 작성 2018-07-19 13:45:06 수정됨
2
867

미래를 활성화하는 핵심 기술과 그 전략화 #1. Cloud Native Architecture


안녕하세요,

SAP에서 PM으로 근무중인 김영욱이라고 합니다.


OKKY는 처음이구요. 지인인 노상범 대표의 소개로 인사드리게 되었네요.

가끔 페이스북에 의견을 올리다가, 어제 올린 글에 별 도움 되는 내용도 없을 텐데, 노대표가 이곳에도 올려보면 좋겠다라고 조언을 해 주어 필력 없고 볼품 없지만, 글을 올려봅니다.

페이스북을 통해서는 5회에서 7회정도까지의 시리즈로 게재를 해볼까 생각중입니다.

물론 이곳에도 같은 내용을 포스팅하도록 하겠습니다. 자 그럼~



======================================



오래간만에 소프트웨어 엔지니어링 PM의 전문성을 살려보는 이야기.



한국에 계신 폐친분들이 소프트웨어 개발 배경을 가지신 분들이 많다보니 자연스럽게 최근의 제품/서비스이야기가 나오는데, 대부분이 개발에 관한 이야기이고, 제품/서비스 이야기도 일반 사용자가 목적인 경우가 대부분입니다.

기회가 될 때마다 훨씬 부가가치가 크고 오래갈 수 있는 엔터프라이즈용 소프트웨어/솔루션/서비스에 관심을 가져보자고 이야기를 해 보지만 사실 어디서 부터 어떻게 해야하는지 막막한 경우가 있을것입니다. 

대신 요즘같이 새로운 패러다임이 하루밤을 지새면 새로 나오는 상황에서 어떤 트렌드가 만들어 지고 있으며, 큰 기업들은 이 상황을 어떻게 준비하고 있는지를 알 수 있다면, 조금은 효과적으로 트렌드를 따라가면서 중복/과잉 투자를 막아보지 않을까 합니다.

왜냐하면 그 기업들의 고객은 실제 시장을 이끌어가는 마켓 리더들이고, 그 사용자 피드백이 바로 그 소프트웨어 기업에 혁신을 압박하고 있기 때문에 어차피 시장 흐름이 그렇게 형성되기 때문입니다.


오늘부터 약 5회 정도에 걸쳐서 어떤 화두들이 최근에 기업용 소프트웨어를 개발하는 회사의 엔지니어링 그룹에서 가장 활발하게 이야기가 되고 그것이 어떻게 전략화가 되고 있는지 이야기 해볼까 합니다.

물론 이런 주제는 특정 회사에만 해당되는것이 아닌 대부분의 기업용 소프트웨어를 개발하는 회사에 해당되는 이야기라 판단이 됩니다.



오늘의 주제는 “Cloud Native Architecture’입니다.


아마도 조금만 지나면 클라우드라는 말이 필요가 없이 모든 컴퓨팅 아키텍쳐는 클라우드가 기본이 될 것으로 생각합니다. Multi-cloud capabilities, agile, elastic, portable, resource optimized라는 말들이 빈번하게 쓰여지겠죠.

그러면 이러한 좀 더 효율적이고 확장 가능한 Cloud Native Architecture를 가능하게 만드는 기술들과 확인 사항은 어떤 것들일까요? 기업용 애플리케이션을 만드는 벤더들은 어떤 기술들에 방점을 갖고 집중을 할까요? 대략 다음과 같은 7가지 기술카테고리가 해당됩니다.


• Containerization 컨테이너화
Docker와 Kubernetes로 대표되는 기술이죠. 새로운 앱뿐만 아니라, 기존에 제공되었던 앱이나 서비스를 컨테이너화하고 그것을 클라우드 플랫폼에 올리는 일입니다. 이것을 위해서는 container clustering, 네트워킹, 보안뿐만 아니라, 인프라 스트럭쳐에 대한 abstraction 작업이 필요합니다.


• DevOps
Build and Run 프로세스는 더 이상 존재하지 않습니다. 대신 Agile 개발 프로세스, CI/CD (continuous integration/development), 개발/디플로이/operated가 기본 프로세스가 됩니다.


• API-First Architecture
기존의 앱이나 서비스 모두 decompose하여 micro-services로 만들고, 서로간에 API를 통하여 디플로이되고 통합되어야 합니다. 이것을 위해 코드 개발은 “API first, Implementation second, UI optional” 이란 개념으로 프로젝트를 진행합니다.


• 라이프 사이클을 고려한 Hybrid Cloud 디플로이 모델
고객의 대부분은 특정화된 서버에 인스톨이 되어있는 on-premise license 제품을 이미 보유하고 있으며, 새롭게 구입한 제품들은 클라우드 지원 제품/서비스를 구입하게 됩니다. 이미 구입한 제품과 새롭게 구입한 제품들은 서로 커뮤니케이션하며, 통합하여 사용하기를 고객은 당연히 원합니다.

새로운 제품을 잘 지원하는 것보다 기존의 제품이 현재의 클라우드 환경에서 어떻게 적응해 나갈 것인지에 대한 솔루션 제공을 위한 하이브리드 클라우드 모델을 제공해야 합니다.


• Support with key IaaS providers
아마존, 마이크로소프트, 구글이나 IBM같이 IaaS (Infrastructure as a Service)를 제공하는 업체들의 환경에서 고객의 데이터 자산과 API가 애플리케이션과 잘 동작하는지를 확인하고 통합화를 검증해야 합니다. 고객은 일반적으로 하나의 IaaS 벤더에 묶이고 싶지 않으며, 그 결정을 기업용 소프트웨어 솔루션을 제공하는 벤더들에게 맡기고 확인 받기를 원합니다.


• Combine open and closed source software
최근의 고객은 클라우드 상에서, 새로운 솔루션을 개발이나 구입을 할 때 오픈 소스를 사용하는 솔루션에 관심이 많습니다. 대부분은 사용이나 동작에 큰 문제는 없을 것이지만, 더욱 큰 문제는 기존의 closed in-house source나, 커스터마이즈된 소스 프로그램과 얼마나 잘 동작하고 통합되는지 전략이 필요합니다.


• Data와 Event driven applications
데이터와 이벤트에 기반한 애플리케이션은 디자인 단계부터 치열하게 고민되어야 하고, Pub/Sub 통합패턴, 이벤트버스 capabilities, serverless computing 같은 개념을 이용해야 합니다.



=================



부족한 내용을 읽어주셔서 감사하구요. 제가 지식이 많지 않아 틀린 점도 있고, 부족한 점도 많을 것입니다. 개발자의 관점이 아닌, 오늘의 기술 트렌드와 고객 요구사항을 productize하는 PM의 눈높이에서 봐 주셨으면 합니다. 





3
0
  • 댓글 2

  • Karen
    13k
    2018-07-19 11:14:21
    좋은 글 감사합니다! :)
    0
  • 로그인을 하시면 댓글을 등록할 수 있습니다.