Cloud Native Computing

지난 주말 인터넷 서핑을 하다가 Cloud Native Computing Foundation(클라우드 네이티브 컴퓨팅 재단, https://www.cncf.io/) 홈페이지를 방문하였다. 이전에 제품 기획을 하다가 Cloud Native Application 이란 컨셉을 접한 적이 있었는데, 당시 이 재단에 대해 언급한 글이 생각나서 이것 저것 훑어 보니 “어?” 라는 소리가 나올 정도로 빠르게 성장하고 있었다.

클라우드에 종사하는 사람들 조차 클라우드 네이티브라는 용어가 생소 할 만큼 이 재단의 역사는 그리 오래되지 않았다. 2015년 7월에 설립되고 구글을 비롯한 다수의 오픈소스 맴버들이 자신의 오픈 소스를 이곳 프로젝트로 등록하여 클라우드 네이티브 컴퓨팅이라는 비젼하에 시스템에 필요한 스택을 제공하여 운영되고 있는데 현재 88개 업체가 맴버로 등록 될 만큼 규모가 커졌다. 우리나라에서는 삼성SDS와 NCSOFT가 참여 하고 있다.

[클라우드 네이티브 컴퓨팅 재단의 Platinum 맴버]

이 재단은 기존 다른 오픈소스 재단과는 다른 면을 가지고 있다. 이 재단에서 프로젝트로 진행되는 오픈소스는 이전에는 맴버사가 개별로 운영하던 것이었다. 이것을 클라우드 네이티브라는 컨셉을 시스템화 하는 스택으로 통합하여 제공한다는 것이다. 즉 개별 프로젝트 보다 상생과 시너지를 더하는 모습니다.

[현재 재단에서 운영하는 프로젝트]

[Cloud Native system 참조 아키텍처]

재단에서 이야기하는 클라우드 네이티브라는 컨셉은 어플리케이션에 무게를 두고 있다.쉽게 이야기 하면 클라우드상에서는 클라우드에 최적화된 어플리케이션을 구축하고 운영해야 한다는 것이다. PC의 경우 웹브라우져를 통해 사용하는 Web App과 OS 라이브러리 기반의 네이티브 App과 차이를 생각하면 된다. 성능과 OS의 자원을 충분히 사용한다는 점에서 웹앱 보다는 네이티브 앱이 가지는 장점이 있다. 클라우드 네이티브도 클라우드의 자원과 특성, 장점등을 충분히 활용하는 시스템과 어플리케이션을 구축, 운영한다는 점에서 PC의 경우와 유사하다.

클라우드 네이티브 시스템은 다음과 같은 특성을 가진다

  • Container packaged
  • Dynamically managed
  • Micro service oriented

Container packaged란 어플리케이션을 컨테이너로 패지징하고 배포/실행 한다는 것이다. 컨테이너는 리눅스로 부터 시작된 기술로 어플리케이션에 필요한 모든 컴포넌트가 단일 이미지로(파일) 패키징되고 실행시 격리된 독립 공간에 필요한 CPU, 메모리, 네트워크등의 자원을 할당하여 실행됨으로 배포가 용이하고 인프라 자원의 이용률을 최적화 할 수 있는 장점이 있다. 나도 많이 경험 하였지만 아무리 잘 개발된 어플리케이션도 실행 시 서버의 CPU자원을 100%로 사용하지는 못한다. 컨테이너로 패키징 하여 배포하면 하나의 서버에서도 같은 또는 다른 여러 어플리케이션을 필요한 만큼 자원을 할당하여 실행 할 수 있기 때문에 유휴 자원을 활용할 수 있고 클라우드 인프라 비용을 효율화 할수 있다.

Dynamically managed는 컨테이너를 다수의 컴퓨팅 노드(서버,VM,인스턴스 등)의 자원을 분석하여 배치하고(Scheduling) 다중화, 스케일링, 노드 오류 시 재배치, 무중단 업데이트(롤링 업데이트)등의 작업을 동적으로 자동화 하는 개념이다. 이를 컨테이너 오케스트레이션(Orchestration)이라 하는데 어플리케이션 운영 작업을 자동화 할 수 있어 기존 보다 업무 효율과 어플리케이션의 가용성, 확장성을 획기적으로 높일 수 있다. 오케스트레이션은 구글이 자체 클라우드에서 적용하고 관련 기술을 오픈 소스로 공개 하여 알려 졌는데 현재는 많은 기업에서 활용 할 만큼 효과가 입증 되어 있다.

Micro service oriented는 기존 모노리틱(Monolitic)한 어플리케이션을 작은 단위의 서비스로 분리, 경량화 하고 API를 통해 재사용 할 수 있도록 만드는 아키텍처로 서비스의 배포/업데이트가 민첩해지고 레고 블럭과 같이 기존 서비스와 신규 서비스를 재구성하여 빠르게 비즈니스 요구에 대응 할 수 있는 장점이 있다. 우리나라도 마찬가지이지만 기존 어플리케이션 아키텍처를 전환하는 부담으로 아직은 널리 사용되고 있지는 않지만 최근 신규 개발 서비스를 중심으로 확산 추세에 있다.

기술적인 이해를 접어두더라도 재단에서 이야기하는 클라우드 네이티브 컨셉은 기존 클라우드 기반 어플리케이션을 변화 시키기 충분하다. 클라우드 네이티브 컴퓨팅 재단은 앞서 이야기 했듯이 이 컨셉을 구현하기 위한 전체 오픈소스 스택을 제공하고 있으며 각 오픈소스 프로젝트의 로드맵도 상호운영을 기저에 둔 형태로 운영되고 있다.

클라우드 업종에 종사하는 터라 자의 반 타의 반으로 이 재단에 관심을 두고 있지만 어찌보면 곧 다가올 클라우드 트랜드로 생각 되어 현재 재단의 빠른 성장과 확장이 당연한 듯 느껴진다.

클라우드를 도입하는 경우 기존 어플리케이션의 이전 또는 전환이 필요한데 이때 클라우드 네이티브를 적용 하는 사례가 많아지게 되지 않을까…

Advertisements
Cloud Native Computing

내 Evernote에 Inbox가 있는 이유

Evernote(에버노트)를 쓴지 3년정도 되어가는 군요. 처음에는 건망증 때문에 보조기억장치로 사용하다가 지금은 내가 하는 대부분의 일에 활용하고 있습니다. 뭐 특별히 에버노트 파워 유저는 아니지만 언제 어디서든지 스마트폰이건 태블릿이건 노트북이건 가리지 않고 기록하고 검색할수 있다는 점이 자꾸 에버노트를 사용하게 만드는 것 같습니다.

에버노트를 사용할 때 저만의 방법이 하나 있습니다. 바로 Inbox 노트북을 만들고 무엇이든 기록할때 먼저 이 노트북에 기록하는 것인데요. 이렇게 사용한지는 한 1년 전부터 입니다.

Inbox라는 이름은 메일에서 따온것은 아니고 GTD(Getting Things Done)이라는 할일 관리 방법론에서 가져 왔습니다.

GTD에서는 자신의 머리속에 있는 모든 할일에 대한 생각을 Inbox에 적거나 모아 놓고 바로 할수 있는 것은 즉시 처리하고, 일의 중요도에 따라 다음(Next), SomeDay와 같은 분류로 나누어 처리하는 방법을 제안 합니다. 더 많은 방법이 GTD에 있지만 가장 중요한 “우선 모으고 처리한다”라는 개념만 가져온 것 입니다.

한가지 예를 들어 보겠습니다. 인터넷을 서핑하다가 괜찮은 맥용 유틸리티 발견하였습니다. 침대에 누워 자기전 아이패드를 사용하고 있어 바로 다운로드를 할 수 도 없고 졸린지라 나중에 받기로 결정 합니다. 이때 이 유틸리티의 소개 블로그 주소를 에버노트 Inbox에 스크랩 해 둡니다. 조금만 더 서핑을 즐기다 읽을 만한 영문 블로그 포스트를 발견합니다. 해석하는 데도 시간이 걸리고 집중해서 봐야 하는거라 이것도 Inbox에 스크랩합니다. 그리고 브라우져를 닫을 즈음 다음주에 작성해야 할 보고서의 내용에 대한 아이디어가 갑자기 떠올라 이것도 까먹지 않도록 Inbox에 노트를 만들어 메모 해 둡니다. 그리고 잠에 바로 빠집니다.

다음날 아침 회사에 조금 일찍 출근 한 저는 가장 먼저 Inbox 노트북을 엽니다. 유틸리티를 다운 받아 설치하고 해당 노트는 지웁니다. 보고서 아이디어는 목차와 내용을 정리해둔 해당 노트북으로 옮겨 놓고 내용에 반영 합니다. 마지막으로 커피 한잔을 탄 후 영문 블로그를 천천히 읽고 내용을 스크랩 노트에 요약 하고 스크랩 노트북으로 옮겨 놓습니다.

이렇게 저는 모든 것을 우선 Inbox노트북에 기록 합니다. 고민 없이 말이죠. 그러면 Inbox에 있는 노트는 해야 할일과도 같습니다. 해치워야 할 것들이죠. 그래서 그런지 Inbox에 노트 하나라도 있으면 무언가 개운치 않고 다 비워지면 해우소에 온듯한 시원함과 뿌듯한 기분이 듭니다.

그리고 Inbox노트북은 필터 역할도 합니다. 스크랩, 아이디어등을 여러 노트북에 나누어 기록하면 이후에 잘 열어보지 않고 왜 스크랩했는지, 아이디어를 어떻게 생각 했는지 기억 할수 없을 때도 많습니다.하지만 Inbox 한 노트북에 일단 스크랩 한 후, 틈틈히 리뷰하고 지울건 지우고 내용을 보충할 건 하고 보관하기 때문에 좀더 가치 있는 기록을 만들고 활용 할 수 있습니다.

결국 Inbox 노트북은 저에게는 할일 도구이자 임시 보관소인 것입니다.

이것이 제 에버노트에 Inbox가 있는 이유 입니다.

내 Evernote에 Inbox가 있는 이유

에버노트로 WordPress 블로그에 포스팅 하기

에버노트(http://www.evernote.com/)는 내가 가장 많이 사용하는 도구 중 하나이다.

내가 에버노트를 사용하는 곳을 몇 가지 살펴보면 다음과 같다

  • 생각의 정리(아이디어)
  • 웹에서의 정보수집(스크랩)
  • 문서만들기(조각조각 적어 놓았다가 나중에 문서로 편집)
  • 보조기억장치(까먹지 말아야 할 것을 적어 놓음)
  • 프로젝트 관련 기록(회의록, 아이디어, 할일, 이슈 등)

이것 말고도 여러 방면에서 활용하고 있으나, 그동안 가장 아쉬웠던 것은 바로 블로그 포스팅이었다.

에버노트는 다양한 디바이스를 지원하기 때문에 집 과 회사 노트북 간, 이동중 모바일 기기에서 짬날 때마다 생각난 것을 기록하거나 틈틈히 글을 작성할 수 있는 장점이 있다. 하지만 작성한글을 내가 사용하는 블로그인 WordPress에 올리려 하면 Copy & Paste하고 이미지의 경우 별도로 업로드 해야 하는 불편함이 있었다. 때문에 작성과는 별도로 블로그에 올리는 작업은 매우 귀찮은 작업 중 하나였다.

하지만 오늘 무심코 구글링을 하다가 이를 해결할 수 있는 방법을 찾았다.

방법은 바로 “이메일을 이용한 블로그 포스팅”이었다.

방법은 의외로 간단하다

  1. 먼저 워드프레스의 Dashboard의 내블로그(My Blogs)메뉴를 선택한다
  2. 블로그 리스트의 컬럼 중 “Post by Email”의 Enable 버튼을 클릭한다
  3. 버튼을 클릭하면 포스팅을 할 이메일 주소가 나오는데 이를 주소록에 등록하거나 잘 기억해둔다
  4. 에버노트로 글을 작성한 후 공유메뉴의 “이메일로 보내기…”를 눌러 포스틍 이메일주소를 넣고 발송한다.
  5. 블로그에 들어가 확인해 보면 등록이 된 것을 확인 할 수 있다.

시험삼아 나도 글을 에버노트로 작성한 후 이메일로 등록 해 보았다. 잘되었다. 더군다나 이미지의 경우 자동으로 미디어라이브러리로 업로드되어 화면에 나타났다.(조금 놀랐음)

하지만 주의할 점이 있다. 이미지를 여러개 글에 넣으면 워드프레스는 자동으로 하나만 본문에 넣고, 나머지는 갤러리 방식으로 문서 끝에 넣는데 이것을 막을려면 문서 내에 라는 Shortcode를 넣으면 된다. Shortcode는 이메일을 보낼 때 본문에 추가시켜 포스팅의 설정을 할수 있는 것으로 문서내(보통은 맨 앞 부분에 []를 넣어 사용한다. ShortCode의 종류는 다음과 같다. 자세한 내용은 http://en.support.wordpress.com/post-by-email/를 참조하라(Shortcode가 적용되어 이미지를 캡처해서 올렸다)

그리고 몇가지 더 알아둘점

  • 포스팅 된 글에는 From EverNote라는 링크가 삽입된다. 아마도 에버노트에서 자동 삽입되는 것 같은데 지울수 있는 방법은 글을 status 의 pending Shortcode로 올리고, 워드프레스에 가서 올라온 글을 편집하여 지우면 된다.(어차피 제대로 올라 갔는지 확인은 한번 하지 않는가?)
  • 그리고 만약 잘못 올려서 지우고 다시 올릴경우 글 내에 이미지는 중복되어 계속 업로드 된다. 이경우 워드프레스의 미디어 메뉴에서 찾아 지우면 된다.

에버노트로 블로그 글 까지 작성하고 포스팅을 할 수 있게 된 것도 흥미 있는 일이지만

하나의 도구가 이렇게 까지 활용도가 높다는 것이 더더욱 흥미롭다

시간이 나면 내가 사용하는 에버노트 활용법을 정리하여 포스팅 하겠다.

에버노트로 WordPress 블로그에 포스팅 하기