몇 년 전, - 아마도 2016년 - 마이크로서비스(Micro-services) 또는 마이크로서비스 아키텍처(MSA, Microservices Architecture)에 대해 회사 내부에서 세미나를 했었다. 세미나의 시작은 스핀에커(Spinnaker)를 소개하는 것이었지만, 스핀에커를 잘 소개하기 위해서는 많은 배경지식을 먼저 소개해야 했고 그래서 마이크로서비스, 이뮤터블 인프라스트럭처(Immutable Infrastructure), 지속적 전달(Continuous Delivery) 등의 개념과 특징, 장점, 사례 등을 설명하는 것이 필요했다. 그 중 중요한 한 가지 주제는 마이크로서비스였다. 마이크로서비스를 설명하면서, 청중의 이해를 돕기 위해 키보드를 예시로 들었다. 대부분의 사람들이 컴퓨터에는 익숙..
어제 회의 중, 피닉스 패턴(PhoenixServer)이라는 말을 들었다. 최신 유행이라고 하는 데 들어본 적이 없어서 궁금했다. 그래서 찾아봤는데, Martin Fowler의 말에 따르면, “A server should be like a phoenix, regularly rising out of the ashes." - 서버가 불사조처럼 다시 살아나는 것(살아나도록 만드는 것)을 말한다. 이것은 오래 전부터 내가 서버들을 관리하던 방식을 설명해 주고 있었다. 그 때는 클라우드 포메이션 (CloudFormation)과 셰프 (Chef), 오토스케일링 그룹 (EC2 Autoscaling Group)을 이용하여 새로운 인스턴스가 자동으로 생성되면 코드로 구현된 서버 설정이 자동으로 적용되도록 했었다. 지금은..
2018년 11월 기준으로 할야드(halyard)는 많이 안정화 되었다. AWS EKS 위에 스핀에커를 설치하는 동안 큰 문제는 없었다. 예전에 겪었던 보안인증(Credential)을 날려버리는 오류도 없어졌다.2018년 10월 Spinnaker Summit에 참석해서 넷플릭스(Netflix) 엔지니어에게 놀라운 이야기를 들었다. 자신들이 사용하는 스핀에커는 1개의 인스턴스에서 동작하고 있다고 한다. 아키텍처는 위의 그림처럼 마이크로 서비스지만 분산된 인스턴스에 나누어져 있지는 않다고 했다. 그리고 스핀에커 자체를 배포할 때도 레드/블랙 (Red/Black) 배포 방식을 사용한다고 한다.스핀에커(Spinnaker)는 여러 개의 마이크로서비스(Micro-services) 조합으로 이루어져 있다. 그래서 (..
AWS(Amazon Web Services)를 사용하다보면 몇가지 제약사항을 만나게 된다. 가장 먼저 만나게 되는 제약사항은 S3 버켓(Bucket) 이름이다. S3 버켓은 domain을 만드는 기준이 되기 때문에 세계에서 유일해야 한다. 이러한 제약사항을 미리 알고 있었으나, 클라우드 포메이션(CloudFormation)으로 S3의 버켓 이름을 자동으로 생성하면서 버켓이름이 충돌했던 경험이 있었다. Music Radio 를 설계하던 시절이었는데, 어플리케이션(Application) 배포를 위한 deploy, 그리고 로그 보관을 위한 log 버켓을 만들도록 클라우드 포메이션을 작성했었고, 처음에는 문제가 없었다. 그러나 곧 개발, 검증, 운영환경을 복사해서 만들다 보니 문제가 생겼다. 같은 이름으로 버켓..
클라우드 컴퓨팅 (Cloud Computing)은 이제 인터넷과 같이 우리의 일상 속에서 매우 자연스러운 현상이 되었다. 클라우드 컴퓨팅의 선두 주자인 AWS의 re:Invent 행사에서 New Normal이라는 표현으로 우리의 일상까지 스며든 클라우드 컴퓨팅에 대해 언급했다. 인터넷에서 물건을 샀다는 표현이 어색하지 않은 것처럼 클라우드에서 구현했다는 말도 이제 매우 흔하고 익숙해졌다. 클라우드 컴퓨팅에 대한 다양한 견해와 시각이 있겠지만, 몇 년간 클라우드 컴퓨팅 환경에서 서비스(Service/Application)를 경험해본 내용을 바탕으로 몇 가지 특징을 나름대로 정리해 보려고 한다. 클라우드 컴퓨팅에서 볼 수 있는 중요한 특징은 클러스터링(Clustering) 이라고 생각한다. 과거에는 특정분야..