DevOps 란?
DevOps는 더 빠르고 더 나은 애플리케이션을 개발하고 신규 또는 개정된 소프트웨어 기능이나 제품을 고객에게 더 빠르게 릴리스하도록 지원하는 진보적 철학 및 프레임워크이다.
설명하기에 앞서 최근 2024년 7월 19일 오후 3시 30분경, 미국 마이크로소프트(MS)의 클라우드 서비스 ‘Azure’에 생긴 장애로 전 세계 곳곳의 IT 시스템이 멈추는 사고가 발생했다.
다들 IT에 관심있다면 알 정도로 유명한 사건인데 이 사건으로 인해 세계의 각 유명 공항들은 이륙을 중단하고 항공편과 배송등 다양한 지연 문제가 생겼다.
이 사건으로 인해 MS사의 Azure를 쓰는 테슬라 또한 가동이 중단되었으며 생산라인과 거래시스템이 멈춰 주가에도 큰 영향을 받았었다.
원인은 백신 프로그램으로 미국의 사이버 보안업체 크라우드스트라이크의 보안 프로그램 '팔콘'의 업데이트 과정에서 파일 일부가 MS 운영체제 윈도우와 충돌하여 일어난 사건으로 알려져 있다.
자 이런 이야기를 왜 서론에 풀었다면, 현대 사회에서 클라우드 서비스의 중요성과 그에 따른 잠재적 위험성을 잘 알고 시작하기 위해서이다.
서비스 개발
많은 IT기업들의 서비스 개발에는 크게 클라우드 서비스와 On-Premise로 나뉜다.
On-Premise (온프레미스) 란?
시스템의 하드웨어 및 소프트웨어 인프라를 조직 내의 물리적 데이터 센터 또는 서버에 직접 설치하여 운영 및 관리하는 방식을 의미하며 클라우드 기반 서비스와 대조적으로, 모든 데이터와 애플리케이션이 조직 내부에서 호스팅 된다.
이는 조직 내부의 인프라 센터 (서버실)이나 IDC (Internet Data Center)로 연결하여 구성한다. 이는 국가에서 법으로 제정하여 관리조건을 한 만큼 중요한 시설이다.
그렇다면 데이터센터는 무엇을 하는 곳일까?
데이터 센터(Data Center, DataCenter로 붙여쓰기도 한다)는 Server Farm이나 Server Hotel이라 부르기도 하는데, 주로 기업의 서버와 스토리지를 설치하고 운영하는 장소를 말한다.
서버와 스토리지 같은 하드웨어들을 효과적이면서도 안정적으로 운영하기 위해 고도화된 전원 관리 시스템이나 고대역 네트워크 환경은 물론 백업 시스템, 보안 시스템, 공조 시스템을 비롯해 화재는 물론 폭우나 태풍 같은 환경 재해를 극복할 수 있는 시설을 갖추고 있다.
그렇다면 IDC (Internet Data Center) 주요 구성 요소에 대해 알아보자.
IDC (Internet Data Center) 주요 구성 요소
1. 서버룸(Server Room)이란 여러 대의 서버가 랙(Rack)에 설치되어 운영되는 공간이며 냉각 시스템과 방진/방습 환경 제공 한다.
2. 네트워크 인프라는 고속 스위치, 라우터, 방화벽 등이 포함되며 대규모 데이터 트래픽을 처리할 수 있는 백본 네트워크 구성되어 있다.
3. 전원 및 냉각 시스템 - UPS(Uninterruptible Power Supply)이란 정전 시 전원 공급 지속하기 위한 시스템으로 발전기를 통해 장기적인 전원 공급 문제 대비하고 냉각 시스템으로 장비 과열 방지를 위한 공조 장치 운영한다.
4. 보안 시스템은 물리적 보안(출입 통제, CCTV, 생체 인식 등)과 논리적 보안(방화벽, 침입 탐지 시스템(IDS), 암호화 기술)으로 구분되어 있으며,
5. 운영 및 관리 도구란 시스템 성능 및 장애를 모니터링하기 위한 소프트웨어로 데이터 백업 및 복구 설루션을 제공한다.
자 다음은 클라우드 컴퓨팅이다.
IaaS (Infrastructure as a Service)
IaaS는 클라우드 컴퓨팅의 서비스 모델 중 하나로, IT 인프라(서버, 스토리지, 네트워크, 가상화 환경)를 인터넷을 통해 서비스 형태로 제공하는 방식이다. 사용자는 물리적 하드웨어를 직접 관리할 필요 없이 필요한 리소스를 임대하여 사용하고 필요에 따라 확장하거나 축소할 수 있다.
대표적인 IaaS 서비스가 바로 추후 포스팅할 AWS (Amazon Web Services)이며 Amazon EC2(가상 서버), Amazon EBS(스토리지), VPC(네트워크)등의 서비스를 통해 가장 널리 사용되고 다양한 기능 제공한다.
현재 점유율 2위를 달리고 있는 서비스는 처음 소개한 Microsoft Azure이다.
AWS와 비슷하게 Azure Virtual Machines, Azure Blob Storage, Azure Virtual Network 등의 서비스를 제공하며 Microsoft 제품과의 높은 호환성이 장점으로 부각되지만 특정 서비스나 프로그램에서 문제가 발생하면 전체 시스템에 큰 영향을 미칠 수 있다.
다음은 Google Cloud Platform (GCP)이다. 구글도 클라우드 서비스를 했었나?라고 하지만 구글 클라우드 서비스를 이용한 서비스가 바로 Colab(코랩)이다. 다른 기업과 비슷하게 Compute Engine(가상 서버), Cloud Storage, Cloud VPC 등을 지원하며 강력한 데이터 분석 및 머신러닝 도구와 연계 가능하다.
그렇다면 이제 다음을 알아보자.
PaaS (Platform as a Service)
PaaS는 클라우드 컴퓨팅의 서비스 모델 중 하나로, 애플리케이션 개발 및 배포를 위한 플랫폼을 제공하는 서비스로 개발자는 애플리케이션 개발에 필요한 운영체제, 데이터베이스, 미들웨어, 런타임 환경 등을 제공받아, 인프라 관리 없이 개발 및 운영에 집중할 수 있다.
대표적인 서비스가 바로 AWS Elastic Beanstalk이며 AWS에서 웹 애플리케이션을 자동으로 배포와 관리를 돕는 서비스이다. Java,. NET, PHP, Node.js, Python, Ruby 등 다양한 언어 지원하고 강력한 만큼 가장 많은 사용자와 정보가 있다.
다음은 Red Hat OpenShift이다. Red Hat을 처음 알게 된 건 OpenJDK를 설치할 때 가입했던 기업이었다. OpenShift는 컨테이너 기반 애플리케이션을 배포, 관리, 확장할 수 있는 플랫폼으로 Kubernetes를 기반으로 하며 DevOps 친화적인 환경을 제공한다.
마지막으로 Google App Engine이다. 위에 설명한 Google Cloud Platform(GCP)에서 제공하며, 완전 관리형 애플리케이션 환경이다. 이 서비스 또한 Python, Java, Go, PHP 등 여러 언어를 지원한다.
SaaS (Software as a Service)
뭔 이름이 이렇게 다 헷갈리게 생겼나 싶겠지만 다행히도 마지막으로 설명할 서비스이다.
SaaS는 대부분의 IT 관리 및 유지보수를 클라우드 제공자가 맡으며, 사용자는 소프트웨어 기능만을 이용한다. 사용자는 소프트웨어를 설치하거나 유지보수 할 필요 없이 인터넷을 통해 애플리케이션에 접근/사용할 수 있는 서비스이다.
이건 그래도 흔하게 사용되는 서비스인데 바로 Microsoft 365(클라우드)와 Google Workspace, Zoom 등이 대표적인 SaaS이다.
총 3개의 클라우드 서비스와 On-Premise를 각각 비교한 이미지를 보며 넘어가겠다.
결론
On-Premise는 보안과 맞춤형 구성이 필요한 기업에 적합하지만, 비용과 관리 부담이 크다.
IaaS는 유연성과 확장성이 필요하지만 서버 관리를 직접 해야 하는 기업에 적합하다.
PaaS는 빠른 개발과 배포가 필요한 스타트업이나 개발팀에 효율적이며,
SaaS는 사용 편의성과 비용 효율성을 중시하는 개인 및 기업에 적합하다.
'SK 루키즈 > Cloud' 카테고리의 다른 글
[Rookies 개발 2기] 스프링부트 + GitAction + CI/CD (1) (3) | 2025.01.16 |
---|---|
[Rookies 개발 2기] AWS에 Java Spring 프로젝트를 올려보자 (2) (0) | 2025.01.16 |
[Rookies 개발 2기] AWS에 Java Spring 프로젝트를 올려보자 (1) (3) | 2025.01.16 |
[Rookies 개발 2기] DevOps 개념과 도구 (3) (2) | 2025.01.16 |
[Rookies 개발 2기] DevOps 개념과 도구 (2) (1) | 2025.01.16 |