들어가기 전에
방향성의 중요성
올바른 개념과 많이 사용되는 기술들을 배우는 게 중요!
DevOps 엔지니어란?
- 올바른 DevOps 문화를 위해 서비스 혹은 S/W LifeCycle에서 반복적인 일들을 자동화하고 기술적 문제 혹인 팀의 차이를 기술을 이용해 예방하고 해소시키는 사람
요구 스킬
- Soft Skill
- 사람들과 잘 지내고, 사람들을 잘 다루고 정확히 이해하는 능력
- 문제 인식
- 문제를 알아야 그에 맞는 해결책 구현 가능
- 다양한 관점에서 문제를 찾고 이해,가설 세우며 검증
- 선택과 집중
- 결정
- 기반 자료를 기준으로 추측이 아닌 예측 관점에서 확신을 가진 결정 내리기
- 업의 속성
- 사용자
- 사용자에 대한 이해와 요구 사항에 대한 빠른 피드백, 빠른 적용의 반복
- Technical Skill
- 특정 일을 수행하기 위한 지식과 능력
- 예 : 프로그래밍 언어 작성 능력, 서버 관리 능력, S/W 디자인 등
- 프로그래밍
- Go, Python이 가장 인기 있고 대표적인 언어 (bc. 배우기 쉽고 빠른 구현 및 관련 자료 다수)
- 운영체제
- Linux 필수! 시스템 모니터링을 하는 방법 ~ Shell 다루기 (생활화)
- 예 : Shell, OS metrics, File System, 7 Layer 등
- 서버 관리
- 다수의 서버 효율적인 관리 기술과 운영 지식을 통해 신뢰할 수 있는 서비스 구축
- 예 : IaC, CI/CD 파이프라인, API, 고가용성 설계, 어플리케이션 성능 모니터링 등
- 오픈소스
- S/W들에 대한 동작 원리 및 실질적인 사용법 및 사상에 대한 이해
- 어떤 문제 발생 → 어떤 S/W 도구들 사용해서 빠르게 해결 가능한지
- 예 : nginx, Tomcat, MySQL, Redis, Ansible, Terraform 등
- 클라우드
- DevOps 철학의 진보 및 유행의 장본인
- 퍼블릭 클라우드를 능숙하게 다루고, 직접 구축 및 설계 가능
- 예 : AWS, Azure, GCP, Alibaba 등
Infrastructure as Code(IaC)
- 코드로써의 인프라
- 인프라를 이루는 서버, 미들웨어, 서비스 등을 코드를 통해 구축
- 코드로써의 장점 ⭕
- 현재 가장 많이 사용되는 IaC 도구
- 배우기 쉽고, 참고 가능한 샘플 코드 많이 존재
- AWS, Azure, GCP 등 퍼블릭 클라우드뿐만 아니라 지원하는 Provider 많이 존재
출처 : 처음 시작하는 Infrastructure as Code: AWS & 테라폼