데이터센터를 많이 갖고 있는 회사? 텔레콤회사(sk,kt,lg) + 삼성sds 등 it자회사
데이터센터는 다양한 네트워크 형식의 컴퓨팅 및 스토리지 인프라를 수용하는데 사용하는 물리적 인프라를 말한다.
대부분의 데이터센터가 수도권에 집중되어 있음 → 대부분의 회사가 수도권에 집중되어 있기 때문에
요즘 강원지역에 데이터센터를 많이 짓고 있음
데이터센터 등급 분류
- 1~4티어 등급이 높을수록 데이터센터의 신뢰도가 높음 → 연간 다운타임에 따라 구분
- Five Nine 99.999% == 다운타임이 5.256분 ⇒ 적어도 Four Nine 정도 되면 서비스가 안정적
LG U+ 평촌 메가센터의 경우
aws > Azure > Google Cloud > Alibaba Cloud > IBM Cloud > salesforce > Tencent Cloud > Oracle
구글 클라우드 vs 구글 데이터센터 → 서로 다른 법인
Region vs AZ (가용영역 Availability Zone)
AWS리전은 더 높은 가용성, 확장성, 내결함성을 위해 다중의 가용영역으로 구성
가용영역(AZ)을 4개 이상 구성하도록 함 → 침수될 수 있기 때문에
EC2 - 외부 스토리지를 가져와 사용
아마존 EC2 인스턴스 표기법 M5d.xlarge
vpc로 네트워크를 연결
인스턴트 크기
서울 리전 최소 4개의 AZ가 있다. 하나의 가용영역이 사용 불가하게 됐을 때 대비하기 위함
리전은 전 세계에서 데이터 센터를 클러스터링하는 물리적 위치이다.
리전의 중복 전력, 네트워킹 및 연결이 제공되는 하나 이상의 개별 데이터 센터로 구성된다.
On-Prem온프레미스 - 자사의 것들을(어플리케이션과 데이터) 클라우드로 올려보내고 있음
워크로드=데이터센터
pay as you go 사용한 만큼 지불하라
5년 감가상한 ⇒ 5년 동안 사용할 서버를 사놓음 But 클라우드는 필요한 만큼 사용 및 사용한 만큼 비용 지불
클라우드Cloud vs 온프렘On-Prem ⇒ 신규, 도전적인 서비스의 경우 클라우드 사용, 서비스 안정화되면 온프렘 사용
CNCF 란? 클라우드향으로 만드는 거에 대한 기준점을 제시하는 단체
CNCF Cloud Landscape → 서로
예로 자바에서는 하나의 패키지에 모든 기능이 포함되어 있다면 마이크로 서비스란 기능들을 분리시켜 별개의 컨테이너로 만듬 → 장애가 일어나더라도 부분적으로만 이슈가 있음
Hardware Operating System App App
Hardware Operating System Hypervisor(=virture box와 비슷) VM1-OS-Bin/Lib-App , VM2-OS-Bin/Lib-App
격리제공
게스트OS 단점
→ 이를 해결하기 위한 Container
Hardware Operating System Container1-Bin/Lib-App, Container2-Bin/Lib-App
대표적인 컨테이너 런타임 ⇒ 도커 Docker
💡 **Serverless** 개발자가 서버를 관리할 필요 없이 애플리케이션을 빌드하고 실행할 수 있도록 하는 클라우드 네이티브 개발 모델식당에 가면 종업원을 부르기 위한 벨이 있고, 종업원은 벨을 누른 테이블에 서비스를 제공한다.
종업원은 항상 우리 테이블만 쳐다보며 기다리지 않는다. 서버리스는 벨을 눌러 종업원을 부르는 시스템에 가깝다. 이는 서버리스의 기본적인 개념의 이해를 돕기 위한 비유로 사용자가 가상 머신이나 서버를 소유하고 있는 것이 아니라, 필요에 따라 서비스를 프로비저닝한다는 것을 의미한다.
쿠버네티스Kubernetes란?
소프트웨어 개발 방법론 - 우리 이렇게 개발을 해보자! 와 같은 철학에 가까움
기존 방법-폭포수 방법론 ⇒ 이전 단계가 끝날 때까지 다음 단계를 실행하지 않고 대기함
피드백을 받아 유동적으로 개발하는 방법들이 왜 필요하게 됐을까?
스크럼 프레임워크 Scrum Framework
백로그에 대해 모델링을 하고 설계와 개발을 함께 진행
몇 가지 큰 기능 또는 작은 기능을 개발하게 된다면 기능주도 방법론이 좋음
혼자개발하는 것보다 둘이 개발하는게 낫다 ⇒ 둘이 같이 개발하면 코드 퀄리티가 무너지지 않을 가능성이 있다.
테스트 종류
1. Unit test - 각각의 메소드가 정상적으로 동작하는지 확인
2. Acceptance test - 각각의 메소드가 서로 연결되어 동작되는지 확인
3. Integration test - 통합테스트
피쳐 테스트,컴포넌트 테스트(개발팀 내에서) → 인테그레이션 테스트(QA팀에서)
PO가 여러 요구사항의 우선순위 설정 → Product Backlog 작성 → Sprint Planning Meeting 어떻게 Sprint할 건지?
1️⃣ 스프린트가 끝났다고 개발이 끝난게 아니다.
2️⃣ 개발하는데 오래 걸리는 기능은 스프린트를 여러 차수로 나눠도 된다.
3️⃣ 스프린트 기간은 약간의 변동성을 가질 수 있다.
Product Backlog 요구사항 목록(추상적) ⇒ Sprint Backlog 실질적으로 해야하는 일 목록
Scrum Team 구성
스크럼 마스터(Scrum Master)의 역할
스탠드업 미팅 = 데일리 스크럼 미팅
스프린트 일정은 어떻게 잡는가? 보통 2주 동안 개발→배포 3-4일 ⇒ 총 3주
💡 스프린트 일정은 보수적으로 잡는다.데브옵스(DevOps)
스프린트가 끝나면? 스프린트 리뷰와 스프린트 회고가 남아있다.
리뷰는 개선사항이나 요구사항이 나온 경우 → Product Backlog를 다시 쌓아 우선순위 재설정
회고는 행동, 문화적인 부분을 개선하는 경우 - 잘하고 있는 부분과 못하고 있는 부분에 대해서 짚는다. → 앞으로 우린 무엇을 해야할까? 에 대해 반드시 작성한다.
💡 Tools
스프린트, 백로그를 쌓는다→ 스프린트 끝나면 스프린트 회고랑 리뷰 → 매일매일 데일리 스크럼 미팅을 한다.