일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- deep learning
- PCA
- supervised learning
- 분류
- LG
- 머신러닝
- LLM
- 티스토리챌린지
- AI
- OpenAI
- GPT-4
- 오블완
- 지도학습
- ChatGPT
- 회귀
- 해커톤
- LG Aimers
- Machine Learning
- Classification
- regression
- gpt
- 딥러닝
- LG Aimers 4th
- Today
- Total
SYDev
[마이크로서비스프로그래밍] Lecture03 - Infrastructure & Virtualization 본문
[마이크로서비스프로그래밍] Lecture03 - Infrastructure & Virtualization
시데브 2024. 9. 13. 17:38경희대학교 이성원 교수님의 마이크로서비스 프로그래밍 수업을 기반으로 정리한 글입니다.
Learning Objective
- On-premises vs Cloud Computing
- IT infrastructure
- How to make infrastructure
- Mutable and immutable infrastructure
On-Premises(On-prem)
- IT system과 Software를 자체적인 물리적인 공간에 직접 설치하고 운영하는 방식
- private cloud computing과 유사
-> hardware에 대한 지식 없이, 그저 서비스만 운영하고 싶다? -> cloud computing이 나을 수 있다.
-> 보안이나, 특정 hardware에 대한 관리를 직접 수행해야만 한다? -> on-premises
- Pet model -> on-premises
- Cattle -> cloud servers
Pets Model
- every server is given a nice name
- pets are unique, lovingly hand raised
- but, 서버의 양이 많아질수록 각 서버의 이름과 IP 주소 등을 외우기 상당히 불편해짐
Cattle Model
- servers are given names as incremental numbers ...
- server001, server002, ...
- 서버에 문제가 발생하면, 해당 서버를 새로운 것으로 교체 가능 -> 모두 같은 소모품으로 인식
Cloud Models
- SaaS -> 모든 것을 rent
- PaaS -> 개발 환경만 rent
- IaaS -> 가짜 infrastructure를 빌림
- On Premises -> 어떤 것도 빌리지 않고, 직접 구현
-> resources를 적게 빌릴수록 manageability가 늘어남
Infrastructure
- Hardware & Network
- Operating System(OS)
- Middleware -> OS 위에서 사용자가 만드는 application에 도움을 주는 역할, os와 application 사이에 위치
1. Hardware & Network
Server
- Central Processing Unit(CPU)
- Memory
- Storage
Web Server
- Client에 web pages를 저장, 처리, 전달한다.
- HTTP를 사용하여 server와 client 사이 통신
- 전달되는 pages는 대부분 HTML documents (이미지, style sheets & scripts를 포함)
Database Server
- database service를 제공하는 database application을 수용하는 server
- SQL Server
- data가 tables에 저장됨
- columns and rows로 구성
- ex) MySQL, Microsoft SQL server, ...
- NoSQL Server
- table 형태가 아닌 구조를 가짐 -> 비정형 데이터
2. Operating System
Linux
- microsoft를 제외한 거의 모든 data center의 OS
3. Middleware
- application이 필요로 하지만, os에서 제공하지 않는 기능들을 제공하는 computer software
- 개발할 때 사용하는 library, framework
Architecture
Deploying at Scale
- 관리 용이성, 신뢰성, 원격 서버의 powerful technology가 보장된다면(cloud computing), IT manager들이 수백, 수천 개의 machines를 배포할 수 있다.
- 그렇다면 이 모든 machines를 어떻게 관리하고 유지할 것인가?
- patches, updates, fix security gaps를 어떻게 수행할 것인가?
1. How to set up Infrastructure?
- Infrastructure를 구성하는 것은 매우 manual한 process이다
- physically rack and stack servers -> hardware 구성 manually -> hardware에 application 배포
2. Drawbacks to this Process
- 필요한 hardware를 offline으로 얻는 데에 많은 시간이 걸림 -> 특정 기능에 특화된 hardware를 얻기 위해서는, 몇 개월이 걸릴 수 있다.
- hardware에 맞춰 전문가를 고용해야 함 -> Network Engineers, Storage Engineers, ...
- hardware가 위치할 부동산이 필요함
- high traffic이 발생했을 때, 이에 맞춰 server의 scale을 늘리는 데에 많은 시간이 걸림
- 각 servers를 다른 사람들이 구성하기 때문에, setups가 일관적이지 않을 수 있음
Maintain Infrastructure in Cloud Computing
1. Infrastructure as Cods (IaC)
- Infrastructure as Code(IaC)는 Cloud, Microservices, Continuous Delivery의 시대에서 IT infrastructure를 관리하는 접근법이다.
- Infrastructure as Code: source code를 사용하여 IT infrastructure를 공급하고 관리하는 접근법
- servers, databases, networks 등을 software로서 취급
- Benefits
- Speed, Simplicity
- 지속성
- Risk의 최소화
- software 개발의 효율성 증가
- Cost savings
2. Mutable Infrastructure
Mutable Infrastructure
- 전달하는 목적의 요구에 맞도록, Infrastructure는 연속적으로 update, patch, tune된다.
- updates를 진행할수록 -> each server는 unique한 변화를 가짐. -> 다른 service들과 약간의 차이가 생김 >> configuration drift
- 이런 변화는 진단하거나, 재생성하기 매우 어려움
Configuration Drift: 시간이 흐르면서 system, application, server, infrastructure, hardware 등의 실제 구성이 의도하거나 원하는 구성과 달라지는 현상
출처: https://nauco.tistory.com/93 [UNDERSTANDING:티스토리]
Immutable Infrastructure
- IT resources를 배포하는 과정에서, components를 변경하기 보다는 교체하는 방식
- 변화가 발생 -> application or services는 효율적으로 재배포됨
-> Immutable Infrastructure 방식은 instance에 변화가 생기면, destroy 후에 새로 provision한다.
Benefits of Immutable Infrastructure
- IT complexity, Failures가 줄어듦
- Troubleshooting이 쉬워짐
- 변화를 tracking할 필요가 없어짐
참고자료
온프레미스(On-premises)란?
온프레미스(On-premises)란? 온프레미스(On-premises)는 IT 시스템과 소프트웨어를 자체적인 물리적인 공간에 직접 설치하고 운영하는 것을 의미합니다. 즉, 클라우드와 달리 자체적으로 보유한 서버에
tech1.tistory.com
'3학년 2학기 전공 > 마이크로서비스프로그래밍' 카테고리의 다른 글
[마이크로서비스프로그래밍] Lecture06 - Docker Overview (2) | 2024.09.17 |
---|---|
[마이크로서비스프로그래밍] Lecture05 - Docker Introduction (1) | 2024.09.17 |
[마이크로서비스프로그래밍] Lecture04 - Virtualization & Container Technology (0) | 2024.09.13 |
[마이크로서비스프로그래밍] Lecture02 - Cloud Computing & Infrastructure (7) | 2024.09.12 |
[마이크로서비스프로그래밍] Lecture01 - Overview (13) | 2024.09.11 |