Infrastructure (251) 썸네일형 리스트형 [MSA] DOMA 개념 DOMA - 이론 이번 장에서는 Uber(이하 우버)의 DOMA(Domain-Oriented Microservice Architecture, 도메인 지향 마이크로서비스 아키텍처)에 대해서 알아보도록 한다. 2010년대에 들어서 독립 배포의 형태의 유연성, 명확한 소유권, 시스템 안정성 개선등 과 같은 MSA(Microservice Architecture)의 장점 때문에 수많은 기업들이 MSA(Microservice Architecture)를 도입하기 시작하였다. 하지만 얼마 지나지 않아 서비스의 복잡도가 증가하여 오히려 사소한 기능도 개발하기 힘들어진다는 등 여러 MSA의 단점을 가지고 비판하기 시작하였다. 우버는 이러한 MSA의 형태를 유지하면서 단점인 복잡성을 줄이기 위해서 새로운 개념인 DOMA를 .. [MSA] Communication Communication MSA(Micro Service Architecture)에서 서비스와 프로세스 간 커뮤니케이션 방법에 대해서 알아본다. 전통적인 SOA(Service Oriented Architecture)에서 서비스 간 커뮤니케이션은 ESB(Enterprise Service Bus)로 알려져 있는 센트럴 런타임를 통해 구현되었으며 통신을 위한 로직이 비즈니스 로직의 중간 레이어에 존재한다. 반면 MSA는 ESB(중앙 메시지 버스)를 제거하고 다른 서비스를 호출하기 위해 필요한 비즈니스 로직 및 네트워크 통신 로직은 마이크로서비스의 일부분으로써 실행된다. 서비스 간 통신 MSA는 서비스 간 통신을 위해서 크게 액티브 컴포지션과 리액트 컴포지션 스타일이 있으며 둘을 혼합하여 사용하는 하이브리드 컴.. [DevOps] GitOps란 GitOps 이번 장에서는 DevOps(이하 데브옵스)에 이어서 요즘 자주 등장하기 시작하는 GitOps(이하 깃옵스)가 무엇인지에 대해서 알아보도록 한다. 깃옵스란? 깃옵스라는 용어는 위브웍스(Weaveworks Inc.)에서 처음으로 사용한 용어로 Git을 사용해 인프라 및 애플리케이션 구성을 관리하기 위한 일련의 방법으로 지속적 배포(Continuous Deployment)에 초점을 두고 있다. 깃옵스를 완전히 새로운 개념이라고 생각할 수 있지만 데브옵스 업무를 이전부터 진행했던 엔지니어라면 아마 한번쯤은 깃옵스라는 방법을 사용해 봤을 것이다. 깃옵스는 선언형 모델(Declarative Model)을 지원하는 클라우드 네이티브에 중점을 두고 있다. 이름에서 알 수 있듯이 깃을 통해서 애플리케이션의 .. [DevOps] DevOps란 DevOps 이번 장에서는 DevOps란 무엇이며 어떠한 업무를 담당하는지에 대해서 알아보도록 한다. 이전 회사에 백엔드 개발자로 입사하여 근무하던 도중 DevOps팀의 팀장님이 인수인계를 받을 새로운 담당자가 오기 전에 퇴사를 하는 상황이 발생하였다. 결국 인프라 운영 경험이 있던 내가 해당 업무를 인수인계 받으면서 DevOps 업무를 진행하게 되었다. 정확히는 AWS 클라우드를 운영하는 업무를 담당하게 되었다. 이러한 경험을 바탕으로 최근 DevOps 엔지니어로 새로운 회사에 입사하게 되었는데… 주변에서 “DevOps 엔지니어가 뭐 하는 사람인데?” 라는 질문을 받을 때 마다 답변을 하기가 힘들었다. 곰곰히 생각해보니 필자는 DevOps를 단순하게 “인프라 운영과 개발을 동시에 하는 사람”으로 정의하.. [Docker] Container Orchestration Container Orchestration Tool 이번 장에서는 Container Orchestration 환경을 운영하기 위한 Container Orchestration Tool에 대해서 알아본다. 많은 Cloud Hosting 업체가 있지만 가장 많이 사용되는 AWS를 기준으로 알아보도록 한다. Container Tool 이란? 요즘 많은 애플리케이션이 컨테이너 환경 특히 도커 환경에서 운영되고 있다. 컨테이너와 함께 MSA(Micro Service Architecture)가 떠오르면서 DevOps 엔지니어들은 컨테이너를 관리하기 위한 도구가 필요하게 되었고 Kubernetes(쿠버네티스, 이하 K8S)와 같은 툴들이 등장하기 시작하였다. 이러한 컨테이너 관리 툴들은 아래와 같은 기능을 제공한다. .. [Docker] Docker Desktop 유료화 Docker Desktop 유료화 2021.08.31에 Docker(이하 도커) 공식 홈페이지에 올라온 글에 따르면 소규모 비지니스가 아니라면 Docker Desktop을 사용하기 위해 유료 플랜을 사용해야 한다고 적혀있다. 도커는 직원이 250명 미만이며 매출이 $1,000 미만인 비지니스를 소규모 비지니스로 분류하고 있으며 해당 기준을 초과하는 기업은 Docker Desktop을 사용하기 위해서 유료 플랜을 구매해야 한다고 적혀있다. 물론 소규모 비지니스로 분류된다면 Free 플랜에서 이름이 변경된 Personal 플랜를 사용하면 된다. 소규모 비지니스가 아니며 지속적으로 성장하는 회사에 다니고 있다면 이 글을 읽고 도커 유료화에 적절한 대처를 하길 바란다. Docker Desktop이란? 도커를 사.. [Git] Git Repository Git Repository 코드를 관리하기 위한 깃 리포지토리 서비스를 알아본다. 대표적으로 사용되는 서비스는 GitHub, GitLab이 있으며 AWS에게 완전관리를 받는 CodeCommit까지 알아보도록 한다. 깃(Git) 깃은 소스 코드의 변경사항을 추적하고 여러 명의 사용자들 간에 해당 파일들의 작업을 조율하기 위한 분산 버전 관리 시스템이다. 결국 여러 명의 사용자의 코드를 관리하기 위해서는 깃 리포지토리라고 하는 원격 저장소 서비스가 필요하다. 우리는 이번 장에서 깃 리포지토리에 대해서 알아보고 우리의 서비스에 맞는 서비스를 선정해보도록 한다. 개인 프로젝트를 진행하거나 깃 리포지토리의 종류가 크게 중요하지 않다면 고민없이 압도적으로 많은 사용자들이 사용하는 GitHub을 사용하는 것을 추천한.. [Network] CORS 해결 예제 이전 장(링크) 에서는 CORS란 무엇인지에 대해서 알아보았다. 이번 장에서는 실제로 현업에서 만날수 있는 상황을 예로 들어 해결하는 방법에 대해서 알아본다. 개발 환경 OS: CentOS: 7 Docker: 20.10.17 Docker-compose: 1.27.4 Spring Boot: 2.7.0 Nginx: 1.21.6 상황 필자가 자주 경험한 두 상황을 예로 들어 해결하는 방법을 알아보려 한다. 상황 1 개발자가 자신의 PC에서 프론트엔드 코드를 직접 빌드하여 서버에 있는 API 서버에게 요청을 보내는 상황이다. 개발자 PC의 브라우저에 http://localhost:3000으로 접속한다. Origin은 http://localhost:3000이 된다. 브라우저의 요청을 받은 Reverse Proxy.. 이전 1 ··· 24 25 26 27 28 29 30 ··· 32 다음