6개월 이내에 DevOps 엔지니어가 되는 방법

6개월 이내에 DevOps 엔지니어가 되는 방법

더 많은 DevOps 모델로 경력을 전환하고자 하는 개발자가 있습니까?

당신은 고전적인 훈련을 받은 Ops 사람이고 DevOps의 모든 것이 무엇인지 알고 싶습니까?

아니면, 어느 쪽도 아니고, 기술 관련 일을 하면서 시간을 보냈는데, 이제 단순히 직업 변화를 찾고 있는데 어디서부터 시작해야 할지 모르겠습니다.

그렇다면 계속 읽어 보십시오. 6개월 내에 중간 수준의 DevOps 엔지니어가 되는 방법을 알아보겠습니다.

마지막으로, 몇 년 동안 DevOps 작업을 수행해 왔다면, 여전히 이 작업이 우리가 어디에 있고 어디로 가고 있는지 검증하는 데 유용하다는 사실을 알게 될 것입니다.

이건 어떤 겁니까?

먼저 DevOps란 무엇입니까?

여러분은 그 정의를 구글에서 검색해서 그 모든 유행어들을 훑어볼 수 있지만, 대부분은 거대한 런온 문장으로 채워진 당혹스러울 정도로 긴 단어 샐러드라는 것을 알고 있다. 내가 뭘 했는지 알겠어?

자, 이제 클릭 수를 줄이고 증류해 보겠습니다.

DevOps는 고통과 책임을 공유하는 소프트웨어를 제공하는 방법입니다.

바로 그거다.

무슨 뜻이야?

이는 전통적으로 개발자(소프트웨어를 만드는 사람)가 운영(소프트웨어를 운영하는 사람)과는 크게 다른 인센티브를 가졌다는 것을 의미합니다.

예를 들어, 개발자로서 저는 가능한 한 빨리 새로운 기능을 만들고 싶습니다. 결국, 이것은 내 일이며 고객들이 요구하는 것이다!

그러나 제가 운영자라면 모든 새로운 기능은 변경 사항이고 변경은 위험하므로 가능한 한 적은 수의 새로운 기능을 원합니다.

이러한 인센티브의 잘못된 정렬의 결과로 DevOps가 탄생했습니다.

DevOps는 개발 및 운영(DevOps, get it?)을 하나의 그룹으로 통합하려고 시도합니다. 이제 한 그룹이 고객 대면 소프트웨어 생성, 배포 및 수익 창출의 고통과 책임(아마도 보상)을 모두 공유하게 될 것이라는 생각이다.

이제 순수주의자들은 여러분에게 “DevOps Engineer” 같은 것은 없다는 것을 알게 될 것입니다. “DevOps는 하나의 문화이지 역할이 아닙니다.”라고 그들은 여러분에게 말할 것입니다.

그래, 그래. 그것들은 기술적으로 정확하지만, 종종 일어나면서, 이 용어는 원래의 의미를 넘어서 변형되었다.

DevOps 엔지니어가 되는 것은 “Systems Engineer 2.0”과 같은 것입니다.

즉, 소프트웨어 개발 라이프사이클을 이해하고 소프트웨어 엔지니어링 도구와 프로세스를 가져와 고전적인 운영 과제를 해결하는 사람입니다.

DevOps는 궁극적으로 디지털 파이프라인을 구축하는 것을 의미하며, 개발자의 노트북에서 코드를 가져와 수익을 창출하는 것을 의미합니다.

바로 그거예요!

또한 직업 선택으로서, 거의 모든 회사가 “DevOps”를 하거나 그렇게 한다고 주장하는 등 전체 DevOps 공간이 높은 보상을 받고 있다는 점에 유의하십시오.

기업이 어디에 있든 간에 전반적인 DevOps 취업 기회는 풍부하여 앞으로 몇 년 동안 재미있고 의미 있는 일자리를 제공할 수 있다.

참고: 회사는 “DevOps 팀” 또는 “DevOps 부서”를 고용하는 것에 주의해야 합니다. 엄밀히 말하면, 궁극적으로 DevOps는 새로운 팀이나 직원을 배치할 부서가 아니라 소프트웨어를 제공하는 문화와 방법에 관한 것이기 때문에 그러한 것들이 존재해서는 안 된다.

면책 사항

이제 쿨에이드 잔은 잠시 접어두고 다음 사항을 고려해보자.

“하급 DevOps 엔지니어는 없다”는 옛말을 들어보셨습니까?

그렇지 않은 경우, Reddit 및 StackOverflow에서 많이 사용되는 트로프입니다. 하지만 그것은 무엇을 뜻하나요?

간단히 말해서, 도구에 대한 확실한 이해와 함께, 결국 진정으로 효과적인 시니어 DevOps 실무자가 되기 위해서는 수년간의 경험이 필요하다는 것을 의미합니다. 그리고 슬프게도, 경험을 위한 지름길은 없습니다.

따라서, 이것은 시스템을 속이려는 시도가 아닙니다. 저는 실제로 몇 달간의 경험을 가진 선임 DevOps 엔지니어인 척하는 것은 불가능하다고 생각합니다. 빠르게 변화하는 툴과 방법론에 대한 확실한 이해는 습득하는 데 수년이 걸리며 이를 회피할 수 없습니다.

하지만! 대부분의 회사에서 사용하는 도구와 개념의 대략적인 합의된 메뉴(트렌드라면)가 있으며, 이것이 바로 이 기사의 전부입니다!

툴은 스킬과 다르므로 툴을 배우는 동안 스킬(인터뷰, 네트워킹, 서면 커뮤니케이션, 문제 해결 등)을 소홀히 하지 않도록 하십시오.

가장 중요한 것은 아이디어를 가져다가 수익을 창출하는 코드 조각으로 바꾸는 완전히 자동화된 디지털 파이프라인을 구축하는 것입니다.

그것이 이 기사 전체에서 가장 중요한 단 하나의 테이크 아웃이다!

어디서부터 시작할까요?

다음은 로드맵입니다.

다음 사항을 숙지하면 안전하고 정직하게 DevOps 엔지니어라고 칭할 수 있습니다! 또는 “DevOps” 타이틀을 싫어한다면 클라우드 엔지니어.

아래 지도는 유능한 DevOps 엔지니어가 알아야 할 사항에 대한 저의 아이디어(아마도 이 분야에서 일하는 대부분의 사람들)를 나타낸 것입니다. 그렇긴 하지만, 그것은 단지 의견일 뿐이고 반대 의견도 분명히 있을 것이다. 그거 괜찮은데요. 우리는 여기서 완벽을 추구하는 것이 아니라, 기초를 튼튼히 다져야 한다.

다시, 모든 기둥의 첫 번째 층을 따라가세요. 그런 다음, 시간이 허락한다면, 두 번째 층을 따라가서 당신의 전문성에 깊이를 더하세요.

솔직히, 위의 기본 계층은 여러분이 배우는 것을 결코 멈출 수 없는 것입니다. 리눅스는 복잡하고 숙달되기까지 수년이 걸린다. 파이썬은 최신 상태를 유지하기 위해 지속적인 연습이 필요합니다. AWS는 매우 빠르게 진화하여 1년 후 전체 포트폴리오의 극히 일부에 불과합니다.

하지만 기초 계층을 합리적으로 파악한 후에는 실제 기술 집합으로 이동하십시오. 한 달에 하나씩 총 6개의 파란색 열이 있습니다.

6개 파트, 한 달에 한 파트씩 실제 기술 습득

참고: 위의 파이프라인에서 눈에 띄게 누락된 것은 테스트입니다. 이는 의도적인 것입니다. 단위 작성, 통합 및 승인 테스트는 쉽지 않으며 전통적으로 개발자의 어깨에 달려 있습니다. 이 로드맵의 목표는 새로운 기술과 도구를 신속하게 활용하는 것이기 때문에 “테스트” 단계를 생략하는 것은 의도적인 것입니다. 시험 전문성 부족은 저자에 의해 적절한 DevOps 고용에 대한 대수롭지 않은 장벽으로 판단된다.

또한, 기억해주세요, 우리는 여기서 많은 관련 없는 기술 이야기를 배운 후가 아닙니다. 우리는 함께 사용된 도구에 대한 확실한 이해를 추구합니다. 단 하나의 일관된 이야기를 들려줍니다.

이는 조립 라인처럼 비트를 움직이는 디지털 파이프라인인 엔드 투 엔드 프로세스 자동화입니다.

게다가, 여러분은 많은 도구들을 배우고 멈추고 싶지 않을 것입니다. 도구는 빠르게 변하지만 개념은 훨씬 더 많이 변합니다. 따라서 도구를 상위 개념의 학습 프록시로 사용할 수 있습니다.

좋아, 좀 더 깊이 들어가 보자!

기초 지식

“Foundation”이라는 제목의 맨 위에 모든 DevOps 엔지니어가 습득해야 하는 스킬이 표시됩니다.

여기에서는 운영 체제, 프로그래밍 언어, 퍼블릭 클라우드라는 세 가지 업계를 지배하는 기둥을 볼 수 있습니다. 이런 것들은 여러분이 정말 빨리 배울 수 있는 것이 아니라, 목록에서 그것들을 확인하고 넘어갈 수 있습니다. 이러한 스킬은 지속적으로 습득하고 날카롭게 유지해야 하며, 관련성을 유지하고 현재 진행 상황을 최신 상태로 유지해야 합니다.

한 명씩 살펴보도록 하겠습니다.

Linux: 모든 것이 실행되는 곳. 이제, 여러분은 훌륭한 DevOps 실무자가 되어 완전히 Microsoft 에코시스템 안에 있을 수 있을까요? 물론 할 수 있죠. 모든 것에 리눅스를 의무화하는 법은 없습니다.

하지만! Windows에서 모든 DevOps-y 작업을 수행할 수 있지만 훨씬 더 고통스럽고 일자리도 훨씬 적다는 점을 알아두시기 바랍니다. 현재로서는 Linux를 모르면 진정한 DevOps 전문가가 될 수 없다고 봐도 무방하다. 그러므로 리눅스는 여러분이 배우고 계속 배워야 하는 것입니다.

솔직히 집에 리눅스(페도라나 우분투)를 설치해서 최대한 활용하는 게 가장 좋은 방법이다. 여러분은 부서지고, 막히고, 그리고 나서 모든 것을 고쳐야 할 것이고, 그 과정에서 여러분은 리눅스를 배우게 될 것입니다!

참고로 북미에서는 레드햇 변종이 더 보편적이다. 따라서 Fedora 또는 CentOS로 시작하는 것이 타당합니다. KDE 에디션과 Gnome 에디션 중 어느 것을 사야 할지 고민하고 있다면 KDE를 받으세요. 그게 라이너스 토발즈가 쓰는 거야 :)

Python: 요즘 지배적인 백엔드 언어입니다. 사용하기 쉽고 널리 사용됩니다. 보너스: Python은 AI/머신 러닝 분야에서 매우 널리 사용되고 있으므로, 다른 핫한 분야로 전환하고자 한다면 모든 준비가 다 될 것입니다!

아마존 웹 서비스: 다시 한 번 말하지만, 퍼블릭 클라우드의 작동 방식에 대한 확실한 이해 없이는 숙련된 DevOps 전문가가 될 수 없습니다. 클라우드에 대한 지식이 필요한 경우, 아마존 웹 서비스가 이 분야에서 가장 중요한 역할을 하며, 가장 풍부한 도구 세트를 제공합니다.

대신 구글 클라우드나 Azure로 시작할 수 있나요? 당연하지! 하지만 우리는 여기서 가장 큰 수익을 노리고 있습니다. 그래서 AWS는 적어도 2018년에 만들기에 가장 안전한 게임입니다.

AWS에서 계정을 등록하면 무료 티어를 사용할 수 있으므로, 여기서부터 시작하는 것이 좋습니다.

이제 AWS 콘솔에 로그인하면 간단하고 이해하기 쉬운 선택 메뉴가 나타납니다.

그건 비꼬는 소리였어. 좋은 소식은, 여러분이 모든 아마존 기술을 알 필요는 없다는 것입니다.

VPC, EC2, IAM, S3, CloudWatch, ELB(EC2 산하) 및 Security Group으로 시작하십시오. 이러한 툴은 시작하기에 충분하며, 모든 최신 클라우드 지원 기업은 이러한 툴을 매우 많이 사용하게 될 것입니다.

AWS의 자체 교육 웹사이트는 시작하기에 좋은 곳이다.

Python, Linux, AWS를 매일 20~30분씩 연습하는 것이 좋습니다.

참고: 이것은 여러분이 배워야 할 다른 것들 외에도 있을 것입니다. 전체적으로, 저는 매일 한 시간, 일주일에 다섯 번을 보내는 것으로 6개월 이내에 DevOps 공간에서 무슨 일이 일어나고 있는지 확실히 이해하기에 충분하다고 생각합니다.

마찬가지로, 총 6개의 주요 기둥이 있으며, 각 기둥은 학습 한 달에 해당합니다.