[Terraform] 데브옵스

박원균·2021년 10월 15일
0

Terraform

목록 보기
2/11

DevOps

Devops
운영팀(Ops)와 개발팀(Devs)의 합성어

이때까지 그랬왔고...

일반적인 개발팀은 애플리케이션을 만들어 운영팀으로 넘겨줍니다 그걸 전달 받은 운영팀은 애플리케이션을 배포,운영에 대한 방식을 결정해야합니다.

이러한 방식을 대개 수동으로 이루어진다고합니다. 서버를 랙에 설치하거나 네트웤 ㅡ케이블을 설정하는 등, 하드웨어를 물리적으로 설치하는 일은 특히나 수작업으로 할 수 밖에없다고 합니다. 하지만 의존성 관리나 소프트웨어 작업을 할 때 조차 서버에 수동으로 명령어를 실행하곤 했습니다.

수동으로 하는 작업은 어쩔수 없이 휴먼에러가 생기가 되고 사람이 컨트롤해야하는 서버가 늘어남에 따라 수동으로 과정을 진행하다보면 작업은 느려지도 이걸 반복하는 작업자도 고통이 동반됩니다.

작업자의 실수로 모든 서버가 똑같이 설정되지 않고 일부 설정이 미묘하게 다른 '구성 드리프트(Configuration drifit)'가 발생할 수도 있습니다.

우리가?

개발자 : 난 잘되는데? 왜 안된다고 해?

운영자 : 우리는 잘한것 같은데? 코드 문제 아냐?

이러한식으로 문제를 찾는데 의견다툼이 일어날 수 있고 시간이 걸리는 단점이 있습니다.

최악으로 간다면 출시 작업은 안정적으로 잘되지 않으며 배포를 미루거나 중단할 만한 심각한 문제가 생길수도 있습니다.

그래서 바뀐거지?

이러한 문제점들을 바꾸고자 조직들은 데이터 센터를 직접 운여하는 대신에 AWS,Azure,GCP 같은 클라우드 서비스를 사용하기 시작합니다. 수많은 운영팀들이 하드웨어에 많은 돈과 노력을 투자하는 대신 셰프(Chef),퍼핏(Puppet),테라폼(Terraform),도커(Docker) 같은 도구를 사용하여 소프트웨어 작업에 더 많은 시간을 들이고 있습니다.

시스템 관리자가 서버를 설치하고 네트워크 케이블 설치 작업을 하는 대신에 코드를 작성하는 것입니다.

니꺼 내꺼 우린... 깐부?

Devops는 소프트웨어를 효율적으로 전달하는 프로세스다.

이러해서 이제는 개발팀과 운영팀 모두 소프트웨어 작업에 대한 작업에 대부분의 시간을 소비하며 두 팀의 구분이 모호해지고 있습니다.

애플리케이션 코드를 담당하는 별도의 개발팀

운영 코드를 담당하는 운영팀

두 팀을 따로 두는 것이 나을 수 있지만 예전에 비해 개발팀과 운영팀이 보다 밀접하게 작업을 해가고있습니다.

출처

Terraform Up & Running 테라폼 Writing Infrastructure as code 업앤 러닝 - 예브게닝 브릭만

profile
함바라기

0개의 댓글