IT 인프라란 ?

사람들이 살아가는데 기반이 되는 생활 인프라에는 가스, 수도, 전기 설비를 떠올릴 수 있습니다. 이러한 설비들은 내부적인 작동 과정을 자세하게 이해하지 않아도 손쉽게 이용가능합니다. IT 인프라도 마찬가지입니다. IT 서비스를 운영하는데 기반이 되는 설비이며, 서비스 사용자 그리고 어플리케이션 개발자들은 내부 작동방식을 자세히 알지 못해도 누구든지 편하게 이용할 수 있습니다.

IT 인프라를 누구나 손쉽게 사용할 수 있도록 제공하고, 항상 안정적으로 제공하기 위해서 노력하는 사람들을 인프라 엔지니어라고 할 수 있을 것 같습니다. 여기서 각 인프라 엔지니어가 중점적으로 운영하는 기술 및 레이어에 따라 System Engineer, DevOps Engineer, System Reliability Engineer 등의 직무로 세세하게 나눌 수 있습니다. 운영하는 기술이나 고민하는 포인트는 많이 다르겠지만, 기반이 되는 지식들과 본질은 크게 다르지않다고 생각합니다. Docker, Kubernetes, Cloud 기술이 실제 데이터센터의 물리적인 IT 인프라 구조를 소프트웨어적으로 가상화한 것 처럼, IT 인프라의 기본 구조는 동일하다고 볼 수 있습니다. 즉, IT 인프라의 본질을 미리 알아두면 다른 기술을 이해하고 활용하기 쉬워진다고 할 수 있습니다. (각 기술들이 IT 인프라 구조와 어떤 부분이 동일하고, 어떤 부분이 다른지, 그것을 컴퓨터 공학적으로 어떻게 구현했는지, 어떤 trade-off가 있는지에 대해서는 다른 포스팅에서 다루겠습니다.)

검색해볼만한 키워드
  • SRE
  • 가상화
  • Trade-Off

뛰어난 IT 인프라 엔지니어 ?

“뛰어난 IT 인프라 엔지니어”가 뭐라고 생각하세요?” 물었을때 단순히 “Cloud, Docker, k8s… “와 같은 최신 기술 스택들을 잘 활용하고, 트러블슈팅을 잘 해낼 수 있는 사람들을 떠올리는 개발자들이 많아졌다고 느낍니다. 그것도 분명히 맞는 말이겠지만, 인프라 직무를 수행하면서 어떤 사람이 뛰어난 인프라 엔지니어인지, 어떻게 하면 뛰어난 인프라 엔지니어가 될 수 있을지에 대해서 고민해보았습니다.

  1. 인프라 백그라운드(CS 지식, 실무 인프라 지식)에 대한 경험과 지식이 풍부하여 새로운 기술을 빠르게 이해하고, 트러블슈팅을 잘할 수 있다.
  2. 각 기술의 Trade Off(장단점)을 빠르게 파악할 수 있어야 한다.
  3. 우리의 시스템의 현황을 파악하고, 지금의 시스템에 도입하는 것이 적절한지 판단할 수 있어야 한다.
  4. 기술의 안정적인 운영을 위한 정책과 표준을 설계할 수 있어야 한다.
  5. 이후에 안정적인 운영을 위한 개선과, 비용효율적인 인프라 운영을 고민할 수 있어야 한다.

그래서 필자는 IT 인프라가 실제로 어떻게 구성돼있고, 과거에는 어떤 문제를 해결하려고 어떤 기술들이 등장했으며, 각 기술들은 어떤 장단점을 갖고 있는지, 그 기술의 기반에는 어떤 CS 지식이 숨어있는지, 어떤 시스템에서 활용하면 좋을지를 엮어서 제대로 정리하고자 합니다. 이러한 기초 지식은 이후에 어떠한 새로운 기술이 나와도 빠르게 이해하고, 서비스의 특성에 맞는 기술을 도입할 수 있는 역량을 기를 수 있을 것이라고 확신합니다.

초등학생도 이해하는 IT 인프라구조

“초등학생도 이해하는 IT 인프라구조” 시리즈는 제가 “AI SRE”라는 커리어맵을 그리면서 IT 인프라에 대해서 학습한 내용(서적, 기술블로그 등)과, 컴퓨터공학을 전공하며 공부했던 CS 지식, 직무를 수행하며 알게된 점을 초등학생도 이해할 수 있게 쉽게 설명하고, 더 깊게 찾아보면 좋을만한 키워드들을 숙제로 쥐어주는 글이 될 것 같습니다. 이러한 기본 지식을 바탕으로, 나중에는 다양한 기술(OS, MW, DB, 가상화, 컨테이너, Cloud, Kubernetes, Appl) 속의 CS 지식을 살펴보고, 각 기술의 구조와 코드를 뜯어보며 개선점, 각 기술의 Trade Off에 대해서 깊게 연구하는 포스팅을 추가하고자 합니다.

성장하며 새롭게 알게 되는 내용이 있다면 지속적으로 추가하며 개선할 예정입니다. 언제든지 자유로운 의견 및 첨언 부탁드리며, 실제의 IT 인프라에 대해서 알고싶어하는, 많은 개발자분들들에게 깊은 지식을 전달할 수 있는 글이 됐으면 좋겠습니다.

이 시리즈는 다음과 같은 순서로 진행됩니다. 각 글에 대한 링크로 걸어두겠습니다.

순서
제목
설명
1 인프라 기본구조 이해 IT 인프라 기본 구조는 크게 변하지 않았습니다. 서버, 아키텍처 등 크게보면 모두 비슷한 모습을 하고있습니다.
기술 발전에 따라 인프라 구조(시스템 아키텍처)가 어떻게 변해왔으며,
기존의 어떤 문제점을 해결하려했는지 이해합니다.
2 인프라 IT 기초 이론 & 기술 IT 인프라에는 다양한 기술이 적용 돼있습니다.
다양한 IT 기술에 적용된 컴퓨터 공학적인 지식(네트워크, 알고리즘, 자료구조, 논리설계, … 등 )을
간단하게 알아봅니다.
3 인프라 네트워크 시스템 인프라에서 가장 기본이 되는 기반은 네트워크입니다.
데이터센터 내에 새로운 서버를 구축하고, 서비스를 구성하려고할때 기본적으로 고려해야할 사항이며,
장애 시의 영향도가 막대하므로 IT 인프라에서 네트워크가 어떻게 구축돼있는지 간단하게 알아봅니다.
4 무정지 인프라운영 인프라의 가장 중요한 가치는, 첫째로, 안정적인 서비스 운영 및 가용성 확보.
그리고 두 번째로 비용 효율성(FinOps)입니다. 안정적인 서비스를 운영하기 위한 IT 인프라 구조와
기술에는 무엇이 있는지 알아보고, 서비스 가용성을 확보하기 위해서는 기술마다
어떤 비용적인 문제점이 있을지 알아봅니다.
5 성능향상을 위한 인프라 구조 사용하기 불편하고, 느린 서비스는 사용자에게 선택받지 못하기 마련입니다.
서비스의 성능(응답속도, 처리량) 등을 확보하기 위해서 어떤 기술을 도입하면 좋을지 알아봅니다.