본문 바로가기

Personal/DevOps

90DaysOfDevOps 1일차 - 개요

데브옵스에 대한 기본적인 이해와 데브옵스적 사고방식을 돕는 도구에 대해서 학습

번역본 정리

데브옵스란?

- 소프트웨어 개발에서 좀 더 현명하게 일하는 방법

- 소프트웨어 개발과 운영의 통합

- 제품이 초기 아이디어 단계부터 최종 사용자, 내부 팀 또는 고객 등 모든 사용자에게 실제 운영 서비스로 전달되기까지의 시간을 단축하는 것.

 

애자일 방법론

- 애플리케이션을 지속적으로 전달(Continuous Delivery)하기 위해 데브옵스와 애자일은 주로 함께 다루어진다.

- 데브옵스적 사고방식이나 문화는 길고 몇 년이 걸릴 수 있는 소프트웨어 배포 프로세스를 더 작고, 자주 배포하는 방식으로 시간을 단축시키는 것

 

추가적인 내용

- 데브옵스의 관점에서 보면 개발, 테스트, 배포는 모두 데브옵스 팀과 함께해야 한다.

- 최종적으로 이런 것을 효과적이고 효율적으로 하기 위해서는 자동화를 최대한 활용해야 한다.

 

제시된 자료 정리

1.So You Want to Learn DevOps?

- 프로그래밍 언어를 배워라:Python, NodeJS, Ruby 중 하나

- 리눅스 기본을 알아봐라: 셸 명령, 디렉토리 구조, SSH 키 관리

- 네트워킹을 이해하라: DNS, 서브넷팅, 게이트웨이, DHCP, NAT, OSI 모델, 방화벽, 로드 밸런서, 프록시 서버 및 HTTP/HTTPS

- 하나의 CSP에 집중해서 익숙해져라: AWS에 익숙해지고, 그 기술을 Azure와 GCP로 가져가기

- Git을 효과적으로 사용해라: 브랜칭, 풀 리퀘스트, 코드 리포지토리의 개념

- 컨테이너 Docker로 시작해라: 컨테이너를 만들고, 실행하고, 다운로드하고, 변경하고, 검사, 네트워킹 스택, 스토리지 관리, Dockerfiles를 만드는 방법

- K8S로 오케스트레이션: 쿠버네티스는 여러 노드에서 많은 양의 컨테이너를 관리할 수 있다.

- IaC: Terraform

- 구성 관리 자동화: Ansible, Puppet 및 Chef

- CI/CD 파이프라인 생성: 지속적인 통합과 지속적인 배포/전달,  GitHub Actions, Jenkins, TravisCI, GitLab

- 모니터링, 로그 관리 및 데이터 시각화: Prometheus, Grafana, ELK 스택(Elasticsearch, Logstash, Kibana

- 데이터 저장 및 보호

출처: https://www.veeam.com/blog/learn-devops-comprehensive-beginner-guide.html

2. DevOps Roadmap

출처: https://roadmap.sh/devops