일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Java
- 허브
- 캐시서버
- 방화벽
- mybatis
- Linux
- Pipeline
- gradle
- sonarQube
- DevOps
- ansible
- container
- 소켓
- STREAM
- Collection
- docker
- LAN어댑터
- cloud
- IntelliJ
- Spring
- AOP
- map
- Set
- 라우터
- jdk
- Jenkins
- post
- JPA
- 액세스회선
- tomcat
- Today
- Total
목록CI&CD/Cloud Native Architecture (16)
거북이-https://velog.io/@violet_evgadn 이전완료
드디어 Cloud Native Architecture를 배울 차례이다. 이걸 배우기 위해 지난 시간 총 14개의 Section을 통해 개념을 공부한 것이다.(진짜 포기하고 싶었다.... 공부할 거 너무 많고) 그렇다면 지금부터 이번 카테고리의 핵심, Cloud Native Architecture에 대해 자세히 알아보도록 하자. Cloud Native Architecture ◎ Cloud Native Architecture란? Cloud Native Architecture를 직역하자면 "본질적인 클라우드 아키텍처"정도가 될 것이다. 말 그대로 Cloud 컴퓨팅 모델을 최대한 활용함으로써 클라우드 컴퓨팅 시스템의 장점을 100% 활용할 수 있게 하는 Architecture(개발 방식)이라고 할 수 있을 것이..
CI & CD ◎ CI란? CI는 Continuous Integeration(지속적인 통합)의 약자이다. 지속적인 통합이라는 게 무슨 의미일까? CI를 간단히 표현하자면 "빌드 및 테스트 자동화"라고 할 수 있다. CI는 새롭게 만들거나 수정을 가한 Service를 빌드하고 테스트하여 서비스가 제대로 작동하는지 확인하는 과정을 자동으로 수행해주는 것이다. CI는 계속해서 자동화된 빌드와 테스트를 제공하기 때문에 코드의 지속적인 품질 유지 및 상승을 가능하게 한다. CI는 버전 관리 시스템(ex. Git)에 대한 변경 사항을 정기적으로 커밋하여 모든 사람이 동일한 작업을 수행할 수 있도록 도와주기도 한다. 따라서 CI를 성공적으로 구현한 경우 협업하는 모든 개발자가 충돌 없이 애플리케이션을 개발할 수 있게..
Cloud 제공 형태 ◎ Public Cloud(퍼블릭 클라우드) 특정 기업이나 사용자를 위한 서비스가 아닌 인터넷에 접속 가능한 모든 사용자를 위한 Cloud Service Model이다. 클라우드 서비스 제공자(Cloud Service Provider;CSP)가 HW와 SW를 관리한다. 우리가 일반적으로 알고 있는 HW와 SW 전체를 클라우드 업체에서 빌려오는 클라우드 형태를 Public Cloud라고 이해하면 편할 것이다. Public Cloud는 사용자가 직접 HW와 SW를 설치할 필요가 없으므로 비용적인 면에서 효율적인 솔루션이다. 또한 사용양에 따른 종량적 결제가 가능하기 때문에 필요한 리소스에 대해서만 비용을 지불할 수 있다는 장점을 가진다. 퍼블릭 클라우드의 가장 큰 장점은 뛰어난 확장성 ..
Cloud ◎ Cloud란? Cloud Computing은 인터넷 기반의 컴퓨팅으로써 인터넷을 통해 돈을 지불하여 필요한 만큼의 IT 자원을 제공받는 것을 말한다. Cloud를 직역하면 "구름"이라는 의미를 가지는데, 마치 구름에 가린 것처럼 실제로는 보이지 않는 컴퓨팅 자원(CPU, 메모리, 디스크 등)이지만 구름 너머에는 실제로 존재하기 때문에 필요할 때마다 가져다 쓸 수 있는 서비스라는 의미를 가진다. 1965년 미국의 컴퓨터학자 존 맥카시가 "미래의 컴퓨팅 환경은 공공시설을 사용하는 것과도 같을 것"이라는 말을 했었는데, 이 말에서 공공시설(IT 자원)을 활용하는 것이 바로 Cloud Computing이라고 이해하면 될 것이다. Cloud Computing을 활용할 경우 물리적 Data Cente..
Application Infrastructure Physical Server, Virtual Server 및 Container는 배포한 파일을 Server에서 어떻게 관리하는지에 대한 방법론이었다. 그렇다면 여기서 Server를 물리적으로 어떻게 형성하여 배포된 Application을 관리하는지도 궁금해진다. Application Infrastructure는 우리가 흔히 말하는 "인프라"와 동일한 의미로써 어떤 방식으로 Server를 구성할 것인지에 대한 방법론, 즉 "Server 그 자체"를 형성하는 방법에 중점을 둔 개념들이라고 말할 수 있겠다. Data Cente ◎ Data Center란? 기업 컴퓨터, Network, Storage나 기타 IT 장비가 위치하는 중앙집중식 물리적 시설이다. 이전에..
Container Container는 응용 프로그램과 프로그램을 실행하는데 필요한 모든 것을 단일 단위로 포장함으로써 Process를 표준화하는 Deplyoment 방식을 의미한다. 기존 VM이나 Physical Server에서 Application을 배포시킬 때는 오로지 Application을 패키징하고 배포시켜야 했기 때문에 Local 컴퓨터와의 환경이 달라 동일한 동작 방식이 보장되지 않는다는 단점이 존재하였는데 Container는 프로그램 실행에 필요한 모든 것을 포함하여 포장하기 때문에 Local 컴퓨터와 동일하게 동작하는 것을 어느 정도 보장할 수 있게 된 것이다. 위 사진에서 볼 수 있듯 Conatiner는 VM과 유사한 형태를 가졌으나 Guest OS가 없다는 특징을 가지고 있다. 따라서 ..
Virtual Server ◎ Virtual Server란? Virtual Server, Virtual Machine(VM)이라고도 불리는 가상 서버를 말한다. 기존 Physcial Server에서는 Resource의 경계를 한정 지을 수 없어 Resource 할당에 대한 단점이 존재하였다. 이런 문제점을 해결하기 위해 "1대의 물리적 서버가 있더라도 마치 여러 개의 물리적 서버가 있는 것처럼 설정하면 되지 않을까?"라는 생각으로 나온 해결책이 바로 Virtual Server이다. VM에서는 1개의 Physical Server 위에 여러 개의 Virtual Layer를 두어 실제로는 1개의 HW만 존재하지만 마치 Virtual Layer 개수만큼의 컴퓨터가 존재하는 것처럼 활용할 수 있게 하는 방식이다...
Deployment Deployment란 Build 된 파일을 WAS 등의 Application을 제공할 Server에 올려 사용자들이 실제로 이용할 수 있도록 하는 것이다. 여기서 Build란 Application의 소스코드를 실제로 활용할 수 있는 실행 파일로 변환하는 과정을 말한다. Packaging Build 과정이 Application의 소스코드를 실제로 활용할 수 있는 실행 파일로 변환하는 과정을 말한다고 위에서 언급했다. 그리고 이 Build 과정에서 Build Tool이라는 것이 활용되는데 이 Build Tool이 하는 역할 중 하나가 패키징이다. Build 과정은 아래와 같은 단계로 이뤄진다. 먼저 설정했던 Dependency들을 다운로드한다. 이후 Source Code를 Binary C..
Microservice Architecture ◎ Microservice Architecture(MSA)란? MSA란 작은 애플리케이션들을 합쳐 큰 애플리케이션을 만드는 Application Architecture를 말한다. MSA는 대형 프로젝트가 힘들다는 Monolithic Architecture 문제점을 해결하기 위해 나온 Architecture로써 SOA(서비스 지향 아키텍처)에서 발전된 형태를 가진다. MSA의 가장 기본적인 철학은 "한 가지만 잘 처리하자"이다. MSA에서는 단일 책임 원칙(SRP)을 중시하여 큰 문제를 최대한 독립성 있는 작은 문제로 분해한다. 이렇게 분해된 문제들을 Component를 통해 해결하고, 개발된 Component 간 REST API를 통해 데이터를 주고받음으로써..
3-tier Architecture, 4-tier Architecture 구조 N-tier Architecture를 이해하기 전 3-tier, 4-tier Architecture에 대해 이해할 필요성이 있다. 3-tier, 4-tier 뿐만이 아닌 2-tier Architecture도 존재하긴 하지만, 2-tier Architecture는 Monolithic Architecture와 차이점이 거의 없기 때문에 이번 Section에서는 3-tier, 4-tier Architecture만 관찰해보자 ◎ Presentation Layer(프리젠테이션 레이어; 표현 계층) 사용자와 직접 상호작용하는 UI(User Interface)를 의미한다. MVC Pattern와 비교해 봤을 떄 View Layer에 해당하..