설계 11

아키텍쳐 문서화는 어떤 도구를 사용하는게 좋을까?

아키텍쳐 문서화는 어떤 도구를 사용하는게 좋을까?조대협(http://bcho.tistory.com) 제 현재 본업은 아키텍트 입니다. 주로 시스템을 설계하는 역할을 하는데, 이 아키텍쳐 문서를 주로 PPT를 사용합니다. 문서는 워드로 만드는게 좋을 수 도 있고, EA나 StarUML등등 많은 툴이 있는데, 굳이 PPT를 사용하는 이유를 적어놓고자 합니다.사실 예전에는 MS WORD로 설계문서를 만들었습니다. 만들어 놓으면 멋도 있고, 자세한 내용 표현이 가능해서 탐독하면서 이해하기도 좋습니다. 그런데, 고객사의 요구 때문에, PPT로 바꾼후, 거의 습관처럼 PPT로 아키텍쳐 문서를 만들다 보니, 몇가지 장점이 있습니다. 1. PPT 는 표현에 제약이 없다.아키텍쳐 디자인은 특성상 많은 다이어그램과 노트등..

MSA 아키텍쳐 구현을 위한 API 게이트웨이의 이해 (API GATEWAY)

MSA 아키텍쳐 구현을 위한 API 게이트웨이의 이해 #1조대협 (http://bcho.tistory.com) MSA(마이크로 서비스 아키텍쳐, 이하 MSA)와 함께 근래에 떠오르고 있는것이 API 게이트 웨이이다. API 게이트웨이는 API서버 앞단에서 모든 API 서버들의 엔드포인트를 단일화하여 묶어주고 API에 대한 인증과 인가 기능에서 부터 메세지에 따라서 여러 서버로 라우팅 하는 고급기능 까지 많은 기능을 담당할 수 있다.API 게이트웨이의 시작은 MSA가 SOA(서비스 지향 아키텍쳐)에서 시작한것 처럼 ESB (Enterprise Service Bus)에서 부터 시작 되었다. 그래서 ESB의 대부분의 컨셉을 많이 승계했는데, ESB의 실패와 단점을 보완해서 만들어진 사상이 API 게이트웨이이다..

REST API의 이해와 설계-#1 개념 소개

REST API의 이해와 설계#1-개념 소개 REST는 웹의 창시자(HTTP) 중의 한 사람인 Roy Fielding의 2000년 논문에 의해서 소개되었다. 현재의 아키텍쳐가 웹의 본래 설계의 우수성을 많이 사용하지 못하고 있다고 판단했기 때문에, 웹의 장점을 최대한 활용할 수 있는 네트워크 기반의 아키텍쳐를 소개했는데 그것이 바로 Representational safe transfer (REST)이다. REST의 기본REST는 요소로는 크게 리소스,메서드,메세지 3가지 요소로 구성된다.예를 들어서 “이름이 Terry인 사용자를 생성한다” 라는 호출이 있을 때“사용자”는 생성되는 리소스 , “생성한다” 라는 행위는 메서드 그리고 ‘이름이 Terry인 사용자’는 메시지가 된다이를 REST 형태로 표현해보면..

대용량 웹서비스를 위한 마이크로 서비스 아키텍쳐의 이해

마이크로 서비스 아키텍쳐 (MSA의 이해)조대협(http://bcho.tistory.com) 배경 마이크로 서비스 아키텍쳐(이하 MSA)는 근래의 웹기반의 분산 시스템의 디자인에 많이 반영되고 있는 아키텍쳐 스타일로, 특정 사람이 정의한 아키텍쳐가 아니라, 분산 웹 시스템의 구조가 유사한 구조로 설계 되면서, 개념적으로만 존재하던 개념이다.얼마전 마틴파울러(Martin folwer)가 이에 대한 MSA에 대한 개념을 글로 정리하여, 개념을 정립 시키는데 일조를 하였다.이 글에서는 대규모 분산 웹시스템의 아키텍쳐 스타일로 주목 받고 있는 MSA에 대한 개념에 대해서 알아보도록 한다. 모노리틱 아키텍쳐(Monolithic Architecture) 마이크로 서비스 아키텍쳐를 이해하려면 먼저 모노리틱 아키텍쳐 ..

REST API에 대한 보안

REST API 보안조대협REST API에 대한 보안에 대해서 알아보자. API 에 대한 보안은 인증, 메세지 암호화, 무결성 크게 3가지 관점에서 고민해볼 수 있다. 1) 인증인증은, REST API를 호출한 사람(클라이언트)가 적절한 사용자 인가를 판단해주는 것이다. 아무나 API를 호출하는 것이 아니라 인증을 받은 사람많이 API를 호출해주게 하는 것인데, 쉽게 생각하면 사용자의 id,passwd로 서비스에 로그인을 하는 개념을 생각할 수 있다.API Key 방식API에 대한 인증 방법은 몇가지가 있는데, 그 중에서 가장 기초적인 방법은 API Key를 이용하는 방법이다. API Key란, 특정 사용자만 알 수 있는 일종의 문자열이다. 현재 Amazon이 이 방식을 사용하고 있는데 API를 사용하고..

MongoDB의 Physical 데이타 저장 구조

MongoDB를 구성할때 보면, 가장 많이 권장 받는 부분 중의 하나가, 메모리량과 디스크 성능이다.메모리 크기가 아주 sensitive한 요인이 되는데, 어떤 부분이 문제가 되는지 내부 저장 구조를 살펴 봄으로써 이해를 돕고자 한다. 저장 구조mongodb는 기본적으로 memory mapped file (OS에서 제공되는 mmap을 사용) 을 사용한다. mongodb는 데이타를 write할때, 논리적으로 memory 공간에 write하고, 일정 주기에 따라서, 이 메모리 block들을 주기적으로 disk로 write하는데, 이 디스크 writing 작업은 OS에 의해서 이루어 진다. OS에 의해서 제공되는 Virtual Memory를 사용하게 되는데, Pysical Memory 양이 작더라도 Virtu..

아키텍쳐 설계 프로세스

아키텍쳐 아키텍쳐란 무엇일까? 소프트웨어 시스템에 대해서 이야기 하다보면, “아키텍쳐가 어떻다”. “최신 아키텍쳐를 적용했다.” 등 아키텍쳐에 대한 언급이 많다. 그렇다면, 소프트웨어 아키텍쳐에 대한 정의는 무엇일까? http://www.sei.cmu.edu/architecture/start/glossary/community.cfm 를 보면, 수많은 아키텍쳐에 대한 정의가 있다. 지금부터 설명하고자 하는 아키텍쳐에 대한 정의는 다음과 같다. “아키텍쳐는 비지니스 요구 사항을 만족하는 시스템을 구축하기 위해서 전체 시스템에 대한 구조를 정의한 문서로, 시스템을 구성하는 컴포넌트와, 그 컴포넌트간의 관계, 그리고, 컴포넌트가 다루는 정보(데이타)를 정의한다.” 또한 소프트웨어 아키텍쳐는 현재의 요구사항뿐 아..

아키텍쳐 2012.09.04

클라우드에서 MPLS에 대한 고려

MPLS는 MultiProtocol Label Switching의 약자로 Layer 3에서 IP를 보고 라우팅을 하는 것이 아니라 패킷에 라벨을 붙여서 라벨을 기반으로 라우팅을 하는 기법으로 Layer 2 기반으로 라우팅을 수행한다. 그래서 IP 프로토콜뿐만 아니라, ATM이나 Frame Relay와 같이 프로토콜 종류에 상관 없이 라우팅이 가능하고, 무엇 보다 빠르다. 단 MPLS를 지원하는 라우터가 비싸다. MPLS는 VPN등에 사용되는데.. IaaS 클라우드 구성에서, Server Rack간의 고속 라우팅을 하는데 사용하면 좋을 것 같다는.. 돈이 문제지만

클라우드 노드 설계

비용 대비해서, 클라우드의 물리 노드를 어떻게 설계할까가 고민이었는데... 오늘 이런 저런 이야기를 들어보고 사례를 보니.. 결론 은 생각보다 간단하다. 1. 블레이드 사용 공간이나, 전력면에서 블레이드가 유리하기 때문에 블레이드 사용 2. 10G NIC * 2 LAN으로 나가는 것은 10G 를 사용하되 Redundancy 구성을 위해서 2개 사용 VNIC는 관리,클러스터링,Fail Over(Live Migration),ISCSI,그리고 VM용으로 가상으로 나눠서 구성 3. FC * 2 Storage는 모라고 해도.. 결국 FC가 안정적. Redundancy 구성을 위해서 두개 사용 LAN과 SAN은 각각 2개 이상의 스위치로 이중화 비용 절감 방법은 1. Bulk Buy (Rack 단위)를 하는 방법 ..