큰 목표를 달성하는 것은 두려울 수 있지만 모든 다른 단계를 시각화하는 것은 그 자체로 어려운 일입니다. 여기 있다면 DevOps 로드맵에 대한 설명, 즉 DevOps 엔지니어가 되는 방법을 찾고 있을 것입니다.
DevOps 수명 주기 전반에 걸쳐 작업하는 데 필요한 배경 지식은 방대하고 복잡합니다. 따라서 DevOps 로드맵은 작업의 요구 사항을 이해하고 DevOps 엔지니어 역할 을 시작하기 위한 궤도를 유지하는 데 훨씬 더 중요합니다 .
그렇다면 어떻게 DevOps 엔지니어가 됩니까? 먼저 DevOps 경력 로드맵을 살펴보겠습니다.
DevOps 로드맵
계속하기 전에 잠시 시간을 내어 아래 DevOps 로드맵을 살펴보겠습니다.
DevOps 로드맵은 소프트웨어 개발 내에서 많은 개념을 다루고 있습니다. DevOps는 전체 기술 스택을 포괄하는 개발에서 운영에 이르는 전체 소프트웨어 생성 및 유지 관리 프로세스를 다루기 때문입니다. 이 로드맵에는 많은 세부 사항이 포함되어 있지만 함께 코스를 구성할 때 주요 경로에 초점을 맞추고 각 단계에 대해 자세히 논의할 것입니다.
DevOps 경력 로드맵 단계
- 프로그래밍 언어를 배웁니다.
- 운영 체제를 연구합니다.
- 네트워킹 보안 및 프로토콜을 검토합니다.
- 코드로서의 인프라를 이해합니다.
- 지속적 통합/지속적 배포 도구를 채택합니다.
- 애플리케이션 및 인프라 모니터링에 투자하십시오.
- Study cloud providers.
- Learn cloud design patterns.
이 로드맵의 각 주요 단계를 분석해 보겠습니다.
1. 프로그래밍 언어를 배웁니다.
DevOps 엔지니어는 일반적으로 소스 코드를 작성하지 않지만 데이터베이스를 통합하고 개발 팀의 코드를 디버그하고 프로세스를 자동화합니다. 자동화는 DevOps 수명 주기의 속도를 높이는 데 중요한 부분이며 DevOps 엔지니어는 DevOps 자동화 전략 을 구현하는 데 중요한 역할을 합니다 .
또한 DevOps 엔지니어는 팀이 기존 코드를 이해하고, 새 코드를 검토하고, 디버깅을 지원하기 위해 사용하는 언어에 대한 실무 지식이 있어야 합니다.
배울 프로그래밍 언어는 다음과 같습니다.
2. 운영 체제를 연구합니다.
운영 체제(OS)는 DevOps 팀이 기능하는 데 필요한 기술 스택의 중요한 부분입니다. OS는 팀이 작업을 통신하고 완료하는 데 사용하는 로컬 시스템에 전원을 공급할 뿐만 아니라 팀이 배포한 애플리케이션을 호스팅하는 서버도 실행합니다.
따라서 서버를 구성하기 위해 GUI(그래픽 사용자 인터페이스)에 의존하지 않도록 명령줄 터미널을 배워야 합니다. 명령줄은 GUI에서 여러 번 클릭해야 하는 작업을 단순화하고 일부 명령은 터미널을 통해서만 실행할 수 있습니다. 모든 OS가 다르기 때문에 하나 이상을 배우는 것이 좋습니다.
배울 수 있는 인기 있는 OS는 다음과 같습니다.
- 리눅스(권장)
- 유닉스
- Windows
또한 OS를 구축하고 실행하는 방법을 제어하는 더 큰 전략과 규칙을 배우고 싶을 것입니다. DevOps 엔지니어로서 기술 지식과 개념 지식은 똑같이 중요합니다.
배울 OS 개념은 다음과 같습니다.
- Process Management
- Sockets
- Threads and Concurrency
3. 네트워킹 보안 및 프로토콜을 검토합니다.
모든 웹 기반 응용 프로그램은 프로토콜을 사용하여 사용자로부터 정보를 전송하고 받습니다. 이는 프로토콜이 다양한 요청 유형을 지원하는 방법을 이해해야 함을 의미합니다.
마찬가지로 중요한 것은 이러한 전송 방법의 위험과 악의적인 행위자가 데이터를 가로채거나 애플리케이션에 침투하지 못하도록 보호하는 방법을 알아야 한다는 것입니다. Cybersecurity은 DevOps 수명 주기 내에서 귀하의 역할에 관계없이 중요한 기술입니다.
학습할 네트워킹 프로토콜은 다음과 같습니다.
- HTTP
- HTTPS
- SSL
- SSH
4. 코드로서의 인프라를 이해하십시오.
IaC(Infrastructure as Code)는 애플리케이션 배포를 지원하기 위해 인프라 프로비저닝을 간소화하기 위한 방법입니다. 네트워크, 서버 및 기타 인프라는 템플릿 파일을 사용하여 구성 및 관리되어 애플리케이션의 정확한 요구 사항에 맞는 환경을 생성합니다. IaC를 사용하면 더 빠른 배포 및 업데이트를 위해 이 프로세스를 자동화할 수 있습니다.
학습할 IaC 전략은 다음과 같습니다.
- Containers
- Configuration Management
- Container Orchestration
- Infrastructure Provisioning
5. 지속적 통합/지속적 배포 도구를 채택하십시오.
CI/CD(지속적 통합 및 지속적 배포)는 DevOps의 기반이 되는 핵심 원칙입니다. 개발 및 운영 통합과 지속적인 반복입니다. 이 철학을 달성하기 위해 대부분의 DevOps 팀은 DevOps 수명 주기를 지원하도록 구축된 도구를 사용합니다. CI/CD 도구 는 파이프라인의 여러 단계를 지원하고 프로세스 및 핸드오프를 자동화하여 팀원을 확보합니다.
학습할 CI/CD 도구는 다음과 같습니다.
- 깃허브
- GitLab
- Bamboo
- 젠킨스
6. 애플리케이션 및 인프라 모니터링에 투자합니다.
모니터링은 애플리케이션과 기본 인프라에서 문제의 징후를 관찰하여 운영 팀이 문제가 중단되기 전에 수정할 수 있도록 하는 관행입니다. 이 관행은 애플리케이션과 인프라의 두 부분으로 나뉩니다.
애플리케이션 모니터링
For example, a lower-than-normal conversion rate on a form may be a sign that the form itself is malfunctioning when users try to sign up. Ideally, your monitoring tools would flag errors generated within the code when the signup request is sent as well as the conversion rate so you have multiple ways to identify issues.
학습할 애플리케이션 모니터링 도구는 다음과 같습니다.
- 프로메테우스(권장)
- Nagios
- 데이터독
인프라 모니터링
종종 애플리케이션의 지원 인프라 내의 문제는 애플리케이션 자체보다 크지는 않더라도 동등한 영향을 미칠 수 있습니다.
예를 들어 웹 응용 프로그램의 클라우드 호스팅 문제로 인해 사용자가 액세스를 시도할 때 중단될 수 있습니다. 모니터링 도구는 애플리케이션 스택 내에서 생성된 오류와 성능 지표를 분석하여 오류에 조기에 플래그를 지정합니다. 팀이 더 빨리 대응할 수 있을수록 이러한 문제가 사용자 경험에 미치는 영향이 줄어듭니다.
학습할 인프라 모니터링 도구는 다음과 같습니다.
- New Relic (recommended)
- Jaeger
- AppDynamics
7. 클라우드 제공업체를 연구합니다.
전부는 아니지만 대부분의 최신 애플리케이션은 클라우드에서 호스팅됩니다 . 클라우드 서비스는 더 이상 애플리케이션을 위한 자체 서버를 호스팅할 필요가 없을 때 발생하는 비용 절감 및 확장성을 포함하여 많은 이점을 제공합니다. 당연히 사용 가능한 다양한 클라우드 서비스와 고유한 비용 및 이점을 이해하여 완성된 애플리케이션에 가장 적합한 호스팅 제공업체를 선택하는 것이 중요합니다.
배울 클라우드 제공업체는 다음과 같습니다.
- AWS (recommended)
- Azure
- Google Cloud
- Heroku
8. 클라우드 디자인 패턴을 배우십시오.
클라우드 디자인 패턴은 클라우드 애플리케이션의 확장성, 안정성 및 보안을 생성하는 철학입니다. 클라우드 제공업체를 이해하는 것만큼 중요하지만 이러한 패턴도 이해해야 합니다.
클라우드에서 호스팅되는 애플리케이션과 배포 전에 개발 접근 방식에 적용할 수 있는 클라우드 모범 사례(예: 높은 대기 시간)에서 배울 수 있는 많은 교훈이 있습니다 . 예를 들어, 로컬 저장소를 사용할 수 없는 경우 액세스 권한을 잃지 않도록 클라우드 지원 리포지토리에 소스 코드를 백업합니다.
배울 클라우드 디자인 패턴은 다음과 같습니다.
- Availability
- Data Management
- Design and Implementation
우리가 다룬 모든 내용은 효과적인 DevOps 엔지니어가 되는 데 필요한 전체 지식을 나타내지는 않지만, 세부 사항에 초점을 맞추기 전에 알아야 할 핵심 지식을 다룹니다. 연구 과정을 안내할 이러한 배경 지식이 있으면 학습이 훨씬 더 쉽다는 것을 알게 될 것입니다.
이 게시물을 마무리하기 위해 DevOps 로드맵의 여러 단계를 기반으로 몇 가지 핵심 사항을 살펴보겠습니다.
DevOps 로드맵의 요점
1. 이전의 기술 경험을 활용하십시오.
웹 개발 부트 캠프 예제로 돌아가서 저는 운이 좋게도 이미 HTML, CSS 및 JavaScript를 배웠습니다. 이 배경은 내가 다루는 다른 기술을 이해하는 데 도움이 되었습니다. 나는 또한 모바일 응답성이 문제인 기업 웹사이트에서 일했기 때문에 부트 캠프의 해당 측면에 더 많은 관심을 기울일 수 있었습니다.
DevOps 엔지니어는 전체 소프트웨어 개발 수명 주기를 다루므로 이 분야에서 경험이 있으면 다양한 DevOps 단계를 더 잘 조정하고 팀원과 협업할 수 있습니다. 또한 파이프라인을 최적화하기 위해 작업할 때 권장 사항에 대해 더 자신감을 갖는 데 도움이 됩니다.
2. 도구뿐만 아니라 개념에 우선순위를 둡니다.
기술적인 지식도 중요하지만 특정 접근 방식을 사용하는 이유를 이해하지 못하면 나머지 팀에게 이를 음성으로 전달할 수 없습니다. DevOps 엔지니어는 팀 내에서 수행하는 다른 모든 작업 외에도 DevOps 방법을 옹호하므로 기술 이면의 개념을 이해하는 것이 중요합니다. 개념적 이해는 또한 관련 기술 지식을 더 많이 습득하는 데 앞장서게 해줍니다.
3. 전문가가 아닌 제너럴리스트가 되십시오.
DevOps 엔지니어는 전체 DevOps 수명 주기를 다루기 때문에 일부 영역에서만 강해지는 것보다 모든 것을 조금 아는 것이 좋습니다. 팀의 개별 기여자는 특정 영역(개발, 네트워킹, 모니터링 등)을 전문으로 합니다. 귀하는 각 기여자 간에 제품을 이동할 책임이 있습니다.
전체 프로세스를 잘 이해하고 있고 더 많은 것을 배우고 싶다면 자신을 제한하지 마십시오. 학습에 대한 열정이 있는 사람들은 DevOps 엔지니어로서 탁월할 것입니다. 더 큰 그림에도 초점을 맞추고 있는지 확인하십시오. DevOps와 같이 성장하는 분야에는 책과 같이 소비할 지식이 항상 있습니다.
4. 항상 새로운 학습 기회를 찾으십시오.
이 8단계는 시작에 불과합니다. DevOps 엔지니어가 된다는 것은 성장하는 트렌드를 파악하고 새로운 학습 기회를 계속 찾는 것을 의미합니다. 로드맵을 마스터했다면 이 대화형 로드맵을 확인하십시오.
이 훌륭한 리소스를 만들고 GitHub 저장소 를 통해 사용할 수 있도록 해준 Kamran Ahmed에게 특별한 감사를 전합니다 .
DevOps 로드맵 시작하기
DevOps 로드맵은 탐색할 다양한 기술과 개념으로 가득합니다. 학습에 대한 추진력과 열정이 있다면 이 로드맵은 전문성 구축을 시작할 때 귀중한 지침이 될 것입니다. 개별 단계에 집중하면 곧 DevOps 엔지니어로 경력을 시작하는 데 필요한 기술을 갖추게 될 것입니다.
편집자 주: 이 게시물은 원래 2021년 11월에 게시되었으며 포괄성을 위해 업데이트되었습니다.
'DevOps' 카테고리의 다른 글
DevOps 인터뷰 질문 - 작성 (0) | 2023.06.19 |
---|---|
DevOps 인터뷰 질문 (0) | 2023.06.19 |
CI/CD 파이프라인이란? (0) | 2022.06.18 |
[번역] DevOps 엔지니어가 되는 방법: 2022년에 따라야 할 8가지 주목할만한 팁 (0) | 2022.05.10 |
[번역] DevOps 엔지니어 되기 - 종합가이드(2021년판) (0) | 2022.05.10 |