본문 바로가기

전체 글60

마이크로서비스 아키텍쳐 장단점은 마이크로 서비스는 대형 소프트웨어 프로젝트의 기능들을 작고 독립적이며 느슨하게 결합 된 모듈로 분해하여 서비스를 제공하는 아키텍처. SOA와는 조금 다른 개념 모두 하나에 들어가있는 개념은 모널리틱 아키텍처. 1. IDE 과부하, 개발자의 생산성을 저하. 2. 하나의 war or ear에 모든 것을 넣었기에 기술 스택을 변경하는거에 주저하게 된다. 때문에 리펙토링도 힘들다. 3. 어플리케이션 특정 오류가 전체에 영향을 끼친다. 특정 함수의 영향이 어플리케이션 전체에 피해 4. 스케일아웃 시에 모든 리소스를 배포해야한다. 5. 어플리케이션이 커질 수록 작은 단위로 작업 축소 불가.독립적으로 배포할 수 없다. 마이크로 서비스 아키텍처의 중요 포인트는 바로 확장성이다. 어플리케이션 이 수평적이라 스케일하는데 .. 2022. 3. 5.
CD / CI란 지속적 통합, 지속적 제공 ( 딜리버리 ) - > 지속적인 배포 버그 테스트를 거쳐 레포지터리등에 자동으로 업로드되고, 운영팀은 실시간으로 배포가 가능해야한다. 파이프라인은 실제 프로세스를 의미하고, 독립적으로 개발하는것은 언젠가 소스코드간의 충돌을 야기한다. 그래서 계속적으로 통합해야한다. 공통 변경 사항을 공유 브런치나 트렁크에 공유하고, 각기 다른 레벨의 자동화 테스트 실행한다. 지속적 제공은, 유효한 레포지터리를 자동으로 릴리지를 한다. 그러기위핸 CI가 먼저 구축어있어야한다. 마지막으로 지속적으로 지속적 배포는, 빌드를 자동으로 릴리즈하는것이다. 제대로 구현하기 위해서는 자동화 테스트가 설계되어있어야한다. 단위 테스트 자동화란, 테스트 툴을 사용해도 되고, 직접 스크립트를 작성해도 된다. 성능 .. 2022. 3. 5.
확장 가능한 분산 시스템이란 확장성 있는 웹 사이트나 애플리케이션을 만들고 관리한다는것은 무엇일까? 자원이나 자원에 대한 접근 권한을 여러개의 서버에 분산되어 있을때를 말한다. 이제 막 비즈니스를 시작하려는 소규모의 웹 사이트를 만들때에도 설계 시 고려 사항에 대해 생각한다면 좀 더 현명한 결정을 내릴 수 있을 것이다. 주요 고려 사항은 아래와 같다. 가용성 : 항상 가용적이고 장애에 유연한 아키텍처를 가지는 것이 기본적인 비즈니스 요구사항이다. 분산 시스템에서 높은 가용성을 얻기 위해, 중요한 컴포넌트의 이중화가 실패가 발생했을 경우에 빠른 복구 방법, 문제가 발생할때 일부만으로 동작할 수 있게, 하는 구성에 대한 고려가 필요하다. 성능 : 웹 사이트의 속도는 사용성, 만족성 뿐 아니라 수익과 유지에 연관이 있다. 빠른 응답 시간.. 2022. 3. 5.
쿠버네티스, 컨테이너 오케스트레이션란 컨테이너를 관리하기 위한, 컨테이너 오케스트레이션이 부상하게 되었다. 프로비저닝, 중복성, 상태 모니터링, 리소스 항당, 스케일링 및 로드 밸런싱, 물리적 호스트 간의 이동, 등 분산 시스템을 탄력적으로 실행하기 위한 프레임 워크 제공, 1. 서비스 디스커버리와 로드 밸런싱 : DNS 이름을 사용하거나 자체 IP 주소를 사용하여 컨테이너를 노출 가능, 2. 스토리지 오케스트레이션 : 로컬, 공용 클라우드 등 원하는 저장소 시스템을 탑재 가능 3. 자동화된 롤아웃과 롤백 : 쿠버네티스를 사용하여 배포된 컨테이너의 원하는 상태를 서술 할 수 있다. 현재 상태를 원하는 상태로 설정한 속도에 따라 변경 할 수 있다. 현재 상태를 원하는 상태로 설정한 속도에 따라 변경 가능, 예를 들어 쿠버네스스를 자동화하여 배.. 2022. 3. 5.