목록2022/06/15 (4)
devops
서버리스 의미 서버리스는 서버가 없다는 뜻이 아닌, 개발자가 서버를 관리할 필요없이 Application을 빌드하고 실행할 수 있도록 하는 Cloud native 개발 모델이다. 서버가 존재하지만, 직접적인 관리가 필요하지 않기 때문에 추상화되었다고도 볼 수 있다. 마이크로서비스와 서버리스의 관계 마이크로서비스는 독립적인 작은 서비스 단위로 배포와 업데이트가 가능하며, API 게이트웨이가 사용자 또는 마이크로 서비스간 API 통신을 지원하는 것이 특징이다. 서버리스는 별도의 서버 구축필요 없이 어플리케이션 개발과 배포를 지원하는 클라우드 컴퓨팅 서비스다. 서버리스는 마이크로서비스 구조의 개발을 위해서 아주 적합한 형태의 컴퓨팅 서비스다. 여러 Function을 구성하고 이들을 독립적인 API로 구성해서 ..
도메인(Domain) 도메인 지식이란 어떤 산업과 분야를 이해하기 위해 필요한 지식을 의미한다. 여기서 도메인은 지식, 영향력, 활동 영역으로 개발에서는 S/W로 해결하려는 문제 영역을 말한다. 도메인 주도 설계(DDD) 하나의 도메인 모델에 대한 이해관계가 각자 다름을 인정하고, 각팀에 적합한 하위 도메인을 설정. 해당 하위 도메인에 대한 맥락을 알고 있는 사람이 따라야할 비즈니스 규칙에 대한 경계를 설정하는 설계방식이다. 도메인 자체와 도메인 로직에 초점을 두고, 데이터 중심의 접근법에서 벗어난다. 보편적 언어를 사용한다. 도메인 전문가와 소프트웨어 개발자 간의 커뮤니케이션 문제를 없애고 상호가 이해가능한 문서와 코드로 구축하는 과정이다. 이로써 통일된 방식으로 소통이 가능해진다. 소프트웨어 엔티티와..
서버리스(Serverless) 서버리스는 적은 예산으로, 빠르고, 쉽게 확장할 수 있으며 관리와 운영을 혼자서도 충분히 할 수 있게 해준다. 서버리스가 단순히 서버가 없는 것이 아닌, 서버에 대한 고민을 안할 수 있게 해주는 것이다. 컴퓨팅 진화 과정 이전에는 어플리케이션을 배포하기 위해서 직접 로컬 서버를 구매해서 구성해야 했다. 그래서 개발자 혹은 기업은 하드웨어와 소프트웨어 모두 구축하고 관리해야하는 불편함이 있었다. 하드웨어를 직접 관리하는 것도 나름의 장점이 있으나, 많은 비용과 부품 관리를 위한 전문지식도 필요했다. 이런 관리의 어려움을 해결해 준 것은 AWS의 EC2 서비스다. EC2로 인해서 하드웨어 관리의 불편함을 해소할 수 있게되었지만, EC2로 구성한 서버의 소프트웨어도 보안과 백업,..
마이크로 서비스 아키텍처란? 유지보수에 유리하고 테스트가 가능해야한다. 느슨하게 결합되어야 한다. 독립적으로 배포할 수 있어야한다. 비즈니스 역량을 중심으로 구성해야 한다. 작은 팀 단위로 소유되어야 한다. 서비스의 컴포넌트화 컴포넌트는 독립적으로 대체하거나 업그레이드가 가능한 S/W 단위다. 여기서 컴포넌트화는 시스템을 구성 요소별로 나누고 이를 연결해서 구축하는 것을 말한다. 쉽게말해서 S/W를 여러 서비스로 분리하는 것이다. 모놀리식 vs 모듈식(Microservice)의 팀 분류 기존에는 UI팀, 미들웨어 팀, DB팀으로 나누어서 구성하기 때문에 S/W의 단순한 변경이 필요한 경우 팀 간의 협업 비용과 시간이 증가한다. 그러나 비즈니스 수행 능력(업무 도메인)에 따른 팀분류의 경우, 팀이 하는 일..