IT인프라(Infrastructure)는 특정한 어플리케이션을 활용한 서비스를 운영하기 위해 필요한 다양한 하드웨어나 운영체제, 미들웨어, 네트워크 등 시스템 기반을 총칭한다. 개발 직군의 경우에는 다양한 프로그래밍 언어를 활용하여 사용자가 원하는 요구사항을 정확히 반영하여 서비스를 설계하고 이를 구현하는 역할을 수행한다. 보통 해당 직무보다 개발직군에 대한 정보나 자료가 많은데 이는 개발직군이 더 익숙하고 상대적으로 개발직군에서 근무하는 분들이 더 많아서일 것이다. 하지만 어느 직군이든 그 직군과 관계없이 IT는 사용자에게 특별한 서비스를 제공하기 위해서 존재하고 이는 하드웨어, 인프라, 설계, 개발, 운영 등 어느 하나를 제외할 수 없다.

 

서버인프라 직군과 개발직군 간에 이해가 필요하다.

IT 서버 인프라 직무에 종사하는 엔지니어는 개발자의 업무를 알아야 하고, 개발자들도 반대로 서버 인프라에 대한 직무를 알아야한다. 하나의 서비스 단위로 바라보면 각 영역을 명확히 구분할 수 없으며, 상호간에 개념과 기술적인 동작원리를 이해해야만 더 좋은 성능과 효율적인 IT서비스 개발 운영을 할 수 있다. 또한 문제가 발생한 경우라면 트러블슈팅을 위해 나무가 아니라 숲을 볼줄 아는 능력이 필수적이다.

 

 

예를 들어 웹서비스를 개발하는 개발자가 WAS의 구조와 방화벽에 대해서 이해하지 못하면 많은 사용자를 포괄하고, 질 높은 보안수준을 보장하는 서비스를 제작할 수 없다. 반대로 Java의 컴파일과 실행에 대한 기초적인 개념을 이해하지 못한상태에서 OS의 버전을 선정하고, WAS를 운영할 수 없다.

 


 

실무에서 상호 담당자간에 커뮤니케이션은 자주 이루어지곤 한다. 서비스의 개발을 위해 서버가 필요한 개발자는 담당 인프라팀에 요구사항을 전달하여 가상서버를 접속 주소를 전달받거나 특정 서버의 메모리 점유율이 지속하여 높은 수치를 기록할때 프로그래밍 이슈를 묻기 위해 연락을 하기도 한다.

 

이러한 관계는 서로간에 호흡과 커뮤니케이션이 공통의 서비스를 성공적으로 운영하기 위해 필수적임을 보여준다. 반면에 서비스의 운영중 장애가 발생하거나 특별한 문제가 발생하여 해결을 하고자 할때에는 상호간에 이해가 없는 경우에는 커뮤니케이션 조차 민감해지는 경우가 발생한다. 어떠한 서비스 사용자가 특정 서비스에 대한 응답을 받지 못한다고 하였을 때, 이 문제점이 프로그램에 대한 로직이 잘못된 것인지 서버 내 다른 설정 등의 이유로 생긴 것인지 확인이 필요하다.

 

 

문제의 원인을 찾기위해 트랜잭션의 흐름을 시작으로 하나씩 하나씩 점검 해나가야 한다. 그 과정중 서버담당자 영역과 개발자 영역간에 효율적인 의사소통이 필요하고 본인 프로그램 구현 내용에 대한 구체적인 설명과 더불어 서버 구성과 환경에 대한 구체적인 설명 그리고 이해 등이 중요하다. 문제가 장기적으로 해결돼지 않는 경우에는 보통 자신의 담당 영역에서만 이슈를 점검하고 본인의 담당영역에서는 문제가 없으니 살펴보라는 무책임한 답변을 하는 경우도 많다.


위에서 계속 설명한 서버인프라 직무와 개발 직무간에 격차와 비효율적인 의사소통의 관계로 인해 등장한 것이 DevOps 모델이다. 서버인프라 직무와 개발 직무간의 관계를 통합 및 병합하여 언제니어가 하나의 서비스의 운영을 위해 개발에서 테스트, 배포, 운영 등에 이르기까지 광범위한 영역을 담당하는 개념이다. 전체 애플리케이션 수명주기에 걸쳐 작업하고 단일 기능에 한정되지 않아 개발 속도 향상과 문제 발생시 빠른 트러블 슈팅 등을 기대할 수 있다.

 

이러한 모델링으로 업무를 수행하기 위해선 사실 조직 차원의 개혁이 필요하다. 또한 DevOps 환경을 원활히 구축할 수 없는 이유중 하나는 보안과 권한문제이다. 보통 서비스의 운영을 위해 각 개발자, DBA, 서버담당자 등을 구분해 둔 이유는 전문성을 이유로 개발 및 운영을 성공을 기대하기 위함이기도 하다. 하지만 권한을 분리하여 특정인이 다른 영역의 모든 의사결정을 결정할 수 없도록한 이유도 있다. 개인에게 권한이 집중되면 시스템은 개인의 편의를 위해 구축되고 변형해 나갈 것이다. 그렇다면 이는 조직의 운영차원에서도 문제가 발생할 수 있고 지속된다면 원하는 서비스를 성공적으로 운영할 수 없을 것이다.

 

 

내용 요약

 

  • IT 서버 인프라 직군과 개발 직군 간에 상호 기술에 대한 이해와 효율적인 커뮤니케이션이 필수적이다.
  • 상호간에 기술 이해를 통해 문제 발생시 영역 구분없이 적극적으로 트러블슈팅하는 자세가 필요하다.
  • 상호간에 격차와 비효율성으로 DevOps 모델이 등장하였다.
  • DevOps는 효율적일 수 있지만 조직의 색깔 또는 너무 많은 권한 부여에 대한 우려 등에 따라 적합하지 않을 수 있다.

+ Recent posts