최근 제가 운영하는 SRETalk 공식 계정에도 운영 및 유지보수 직위 유지 여부에 대한 문제를 논의하는 기사가 많이 올라왔습니다. 업계의 많은 분들과도 이야기를 나눴고, CTO/CIO들이 참고할 수 있도록 소소한 생각을 적어보았습니다. 혼란스럽다면 이 글도 꼭 읽어보시길 권합니다. .
깊은 생각이고, 지루할 수도 있지만 진로선택과 팀빌딩에 도움이 될 것 같아요. 이 기사는 근거가 충분한 토론을 환영하지만 오만함을 환영하지는 않습니다. 또한 기사의 내용이 여러분에게 영감을 주고 CXO의 의사 결정에 새로운 사고를 가져올 수 있다면 좋습니다.
이 외에도 SRETalk 운영 및 유지 관리 책임자와의 인터뷰는 계속될 것이며, 참고용으로 더 다양한 의견이 나올 것입니다.
먼저 "운영 및 유지 관리/SRE 역량 구축 방법"이라는 제목에 대해 말씀드리겠습니다. 여기서는 팀 구축이 아니라 역량 구축에 관해 글을 쓰고 있습니다. 목표를 달성하려면 반드시 자체 팀 구성이 필요한 것은 아닙니다. 비용과 결과의 관점에서 볼 때 예측 가능성과 유지 관리에 대한 장기적인 투자의 관점에서 보면 결정이 잘못되면 신중한 의사 결정이 필요합니다. 이것은 나중에 논의될 것입니다.
한 가지 더 분명히 해야 할 점은 기사에 언급된 운영 및 유지보수/SRE팀은 모두 비즈니스를 담당하는 팀이며, 비즈니스의 성공이 최우선입니다. 일부 운영 및 유지 관리 팀에서는 일부 제품을 만들어 외부 상용화를 위해 수출했는데, 이는 그 자체로 사업이 되었습니다. 게다가 제가 예전 직장에서 경험한 바에 따르면 운영 및 유지 관리/SRE 팀의 접근 방식(외부)도 마찬가지입니다. 상용화 출력)은 바람직하지 않습니다. 특히 ToB 유전자가 없고 해당 ToB 조직 구성이 없는 회사에서는 더욱 그렇습니다.
모든 것은 사업성공을 위한 것이기에(사업과 상관없이 승진이 가능한지, 상사를 속일 수 있는지는 별개의 문제) 운영과 유지관리가 무엇인지에 집중해보자 비즈니스에 필요한 기능(자세한 내용은 나중에 설명), 이러한 운영 및 유지 관리 기능을 어디서 획득해야 합니까? 일반적인 획득 방법에는 세 가지가 있습니다.
첫 번째는 자체 구성 팀을 통해 관련 기능을 제공하는 것입니다. 이 방법은 일반적으로 모든 사람에게 가장 친숙합니다. 제품 + 서비스. 먼저 제품에 대해 이야기해 보겠습니다.
서비스의 핵심은 사람에 대한 의존입니다(물론 모범 사례를 제품으로 확고히 할 수 있다면 좋습니다). 관리자로서 이 팀이 좋은 서비스를 제공하려면 많은 사람의 문제를 고려해야 합니다. 예를 들어, 관련 인재를 채용할 수 있는지, 관련 인재를 유지할 수 있는지(개발 공간, 급여 등), 자체 구축된 팀의 각 방향에서 최소 2명이 서로 보완할 수 있는지, 비용이 여유가 있다.
제3자 공급업체를 통해 운영 및 유지 관리 역량을 확보하는 것도 또 다른 방법입니다. 공급업체의 결과물에는 분명히 제품 + 서비스라는 두 부분이 포함됩니다. 제품은 오픈 소스와 폐쇄 소스의 두 가지 유형으로 구분됩니다.
두 번째는 서비스입니다. 공급업체는 일반적으로 자체 구축한 팀보다 이점이 있습니다. 그 이유는 다음과 같습니다.
또한 비용 문제에 대해 이야기해 보겠습니다. 공급업체의 비용은 인력을 직접 채용하는 것보다 비용 효율적일 가능성이 높습니다(적절한 인력을 채용하는 경우). 그렇지 않으면 비즈니스 논리가 유지되지 않습니다. 이 원칙은 명백하므로 다시는 반복하지 않을 것입니다.
제3자 공급업체로부터 운영 및 유지 관리 역량을 확보하는 것은 자체 구성 팀에게는 압도적인 것 같습니다. 그럼에도 불구하고 다음 기사를 읽어야 합니까? 사실 반드시 그런 것은 아닙니다. 특정 운영 및 유지 관리 능력에 있어서 더 중요한 것은 제품 능력이나 서비스 능력입니다. 가장 필요한 것은 제품 능력이나 서비스 능력입니다. 나중에 사업적인 측면에서 살펴보도록 하겠습니다.
운영 및 유지 관리는 본질적으로 일종의 기술 지원 기능으로 인프라 팀과 매우 유사하며 일부는 운영 및 유지 관리 팀에 배치될 수 있습니다. 인프라팀에 넣는 것은 큰 문제가 되지 않습니다. 심지어 회사에서 직접 비즈니스 R&D 팀에 넣는 경우도 있습니다. 필요합니다.
이 사진은 실제로 문제를 매우 잘 설명합니다. 조금 더 자세히 설명하겠습니다.
위에 언급된 네 가지 능력은 어떻게 획득해야 합니까? 이제 그것을 분해하고 분해하여 이야기합시다.
우선 기본 하드웨어 환경에 대해 이야기해 보겠습니다. 물론 클라우드와 자체 구축이라는 두 가지 옵션이 있습니다. 정책에 따라 직접 수행해야 하는 경우에는 방법이 없습니다. 정책이 우선합니다. 스스로 선택할 수 있다면 이 시대에는 클라우드로 가는 것이 가장 적합할 것입니다. 회사가 매우 크고 머신이 많지 않은 이상 직접 구축하는 것이 유리할 수 있습니다. 참고로 여기서 말하는 내용은 가능입니다. 비용을 계산할 때 하드웨어 비용뿐만 아니라 인건비도 포함해야 한다는 점을 기억하세요.
직업 선택에 관하여: 시스템 운영 및 유지 관리 엔지니어와 네트워크 운영 및 유지 관리 엔지니어에게는 실제로 그러한 직위의 자리를 차지할 방법이 없습니다. 시대의 수레바퀴가 굴러가는군요 여러분 모두 역사의 먼지입니다.
MySQL, Redis, MongoDB, Kafka, ElasticSearch, Nginx, Kubernetes 등과 같은 구성 요소에 대해 이야기해 보겠습니다. 분명히 세 가지 옵션이 있습니다. 클라우드 PaaS 제품을 사용하거나 직접 수행하거나 자체 하드웨어를 제공하고 공급업체에서 제공 솔루션과 서비스. 각 선택에 대해 각각 검토합니다.
직업 선택에 대해 : 다양한 부품 분야의 선배 전문가의 경우 첫 번째 선택은 클라우드 제조업체에서 일하거나 경험을 수출하기 위해 사업을 시작하는 것이고, 두 번째 선택은 자체 부품을 만드는 대형 공장에 가는 것입니다. . 일반 중소 공장에서는 높은 급여를 받기가 어렵습니다. 결국 제3자 전문 서비스는 매우 비용 효율적입니다.
비즈니스 R&D에서 가장 흔히 발생하는 변경은 바이너리 및 구성 변경이며, 물론 기본 환경 및 구성 요소의 변경도 있습니다.
먼저 바이너리 및 구성 변경에 대해 이야기해 보겠습니다. 어떻게 빠르고 안전하게 반복할 수 있나요? 단계적으로 수행할 수 있습니다. 회사가 아직 비교적 작은 경우에는 도구 구성에 너무 많은 관심을 기울일 필요가 없습니다. 사양과 프로세스만 설정하면 됩니다. 어떤 계정이 배포되는지, 어떤 디렉터리에, 로그를 넣는 방법, 프로세스를 호스팅하는 방법, 모든 변경 사항이 롤링 가능해야 하는 등의 표준 측면. 프로세스 측면에서: 변경 알림 메커니즘, 온라인 다중 모듈 협업 메커니즘 및 비롤백 승인 메커니즘 등이 필요합니다.
그러면 지난 분기에 특정 팀이 변경한 횟수, 롤백 비율은 얼마인지, 실패율은 얼마인지 등 과거 변경 사항에 대한 정량적 데이터가 필요합니다. 잘하지 않으면 다음 분기에는 실패할 것입니다.
회사가 지속적으로 성장하면 변화 플랫폼을 구축하고 플랫폼에 표준화된 시스템을 구현하고 정량적 데이터를 생산하는 데 인력을 투자할 수 있습니다. 전통적인 물리적 머신과 가상 머신의 시대에는 회사마다 상황이 다르기 때문입니다. 거의 볼 수 없는 상업적 변화 시스템을 갖춤. 물론, 쿠버네티스가 등장한 이후에는 근본적인 차이점 중 상당수가 숨겨졌습니다. 쿠버네티스를 기반으로 변경을 수행하는 플랫폼은 훨씬 더 다양해졌고 관련 제품도 나오기 시작했습니다.
프로덕션 환경의 변경은 테스트 환경 및 공동 디버깅 환경의 변경과 동일하지 않습니다. 프로덕션 환경의 안정성 요구 사항은 더 엄격한 반면, 테스트 환경 및 공동 디버깅 환경의 요구 사항은 상대적으로 낮습니다. 소위 CI/CD 시스템은 대부분 테스트 환경과 공동 디버깅 환경을 위해 설계되었습니다. 프로덕션 환경에 CD를 구현할 수 있는 회사는 소수에 불과합니다.
Focus: 테스트 및 공동 디버깅 환경을 위한 CI/CD 시스템은 R&D 효율성을 높이는 데 더 중점을 두고 있습니다. 생산 환경을 위한 변경 시스템은 안정성을 보장하고 표준화된 시스템을 구현하는 데 더 중점을 둡니다. 초기 단계에서는 회사가 작기 때문에 규칙과 규정에 의존하는 것만으로도 충분합니다. 나중에는 함께 작동하려면 규칙과 규정 + 변화 플랫폼이 필요합니다.
사양의 공식화는 실제로 초기 단계입니다. 운영 및 유지 관리 팀이 존재하기 전에 사양이 개발되었을 수 있으므로 CTO 및 하위 Core 팀이 공식화할 가능성이 높습니다. 아직 공식화되지 않았다면 운영 및 유지관리 책임자(운영 및 유지보수 책임자가 있습니다)가 주도적으로 공식화할 수 있으며, CTO 산하 Core팀이 이를 검토하고(모두 참여), 마지막으로 CTO가 하향식으로 결정을 내리고 모두가 실행합니다.
운영 및 유지 관리팀에서 개발하는 변경 플랫폼 개발이 더 적합합니다. 나중에 다른 플랫폼을 도입하고 전담 운영 및 유지 관리 팀을 구성할 예정입니다. (운영 및 유지 관리에는 차이가 없습니다.) 여기서 얘기하는 것이 SRE인데 관리도 가능합니다.) 이 팀은 SRE팀이라고 부르는 것이 적절합니다. 플랫폼을 바꾸려면 회사의 사양을 구현해야 하기 때문에 아웃소싱하는 경우가 상대적으로 적습니다. 회사가 일정 규모에 도달한 후에는 오픈 소스 기반의 자체 연구 및 축적이 가능성이 높은 선택입니다.
직업 선택 정보: 변화 관리는 기업의 중요한 부분이며 안정성 시스템에도 도움이 됩니다. 이는 전형적인 DevOps 입장이며, 상한선은 아마도 P7+ 수준일 것입니다(순전히 개인적인 의견이며 참고용으로만 사용함).
다른 하나는 일반적으로 MySQL 테이블 구조, Nginx 구성, DNS, VIP 등과 같은 기본 구성 요소 및 환경에 대한 변경입니다. 이러한 변경 사항은 구성 요소 관리 및 제어 플랫폼에 내부화될 수 있으므로 구성 요소 기능 공급자가 변경을 제공할 수 있습니다. 진입점과 관리 및 제어 기능.
이 능력은 매우 중요합니다. SRE는 Site Reliability Engineering의 약자로, Site Reliability Engineering입니다. CTO 입장에서는 소프트웨어를 프로덕션 환경에 배포할 때 향후 다양한 문제가 발생할 수 있으므로 신뢰성을 보장할 수 있는 엔지니어링 시스템을 갖추기를 바랍니다. 이는 매우 큰 주제이므로 이 기사에서는 자세히 설명하지 않고 해당 내용과 책임이 누구에게 있는지만 명확히 설명합니다.
소위 신뢰성은 실패에 맞서 싸우는 과정입니다. 따라서 우리는 여전히 실패의 수명주기를 살펴보고 수명주기의 각 링크에서 시작하여 실패를 물리치거나 심지어 요람에서 목을 조르기도 합니다.
미리 예방하고 위험을 관리하는 데 많은 노력이 필요합니다. 예를 들어, 경보 완전성 기준을 수립하고 각 사업 부문에 대한 정량적 평가를 실시하며, 결함 등급 및 책임에 대한 기준을 수립하고 각 사업의 핵심 기능과 서비스 모듈 간의 대응 관계를 사전에 정리하고 수립합니다. 글로벌 안정성 보기 또는 워룸은 오류가 있는 모듈이나 인터페이스를 신속하게 식별하는 데 사용됩니다. 오류 계획을 분류하고 정기적인 훈련을 수행하여 혼란스러운 엔지니어링을 수행합니다.
여기에는 아키텍처 최적화 등 비즈니스 R&D가 해결해야 할 문제가 있습니다. 나머지에 대해서는 다음과 같이 제안합니다. 운영 및 유지 관리 팀이 주도하고 R&D가 협력하도록 하세요. 예를 들어 CTO 산하 핵심팀은 각 사업별로 운영 및 유지보수 직위와 기술직을 모두 맡을 가능성이 높다. 명목상 CTO는 운영 및 유지보수 직위를 주도적으로 승인하고 결정을 내릴 것이다. 각 사업별 R&D 직위는 물론, 실제 운영에 있어서는 운영 및 유지보수 1위 자리에서 향후 실제 운영을 할 수 있는 능력 있는 사람을 찾을 수도 있고, 각 사업 부문에도 의지할 수 있는 사람이 있을 수도 있다. 인터페이스 지원을 제공하는 기술 1위 위치에 있습니다.
아키텍처 최적화를 제외하고 이러한 다른 것들은 모두 수평적인 문제입니다. 모든 사람을 하나로 모으고 이러한 방법론과 모범 사례를 공유하는 데 도움이 되는 몇 가지 방법론과 모범 사례가 있을 수 있습니다. 물론 이런 안정적인 가상조직을 만들어 공동으로 추진할 수 있는 R&D팀을 직접 찾아볼 수 있느냐는 질문을 하는 분들도 계실 겁니다. 실제로 시도해 볼 수 있습니다. 하지만 몇 가지 문제가 있습니다:
초점: 사전 예방 및 위험 관리, CXO에게 운영 및 유지 관리 책임자에게 문의하십시오. 큰 협력을 주고 위에서 아래로 밀어내십시오. 이 문제를 해결하기 위한 SRE 엔지니어 역할에는 매우 전문적인 고급 인력이 필요한 것으로 보입니다. 아마도 경력이 있는 R&D 팀에서 SRE를 채용하는 경우에는 5년 이내에 인지 능력이 따라가지 못할 가능성이 높습니다. CXO는 좋은 선택입니다.
실패가 발생하면 우리의 주요 목표는 영향을 줄이는 것입니다. 관련 팀들이 즉각적으로 협업해 직접적인 원인을 신속하게 찾아내고, 손실을 신속하게 중단한 뒤, 이후 천천히 근본 원인을 조사했습니다. 여기에는 다음과 같은 작업 내용이 포함됩니다.
좋아요, 위의 내용은 열정이 가득합니다. 하지만 다시 질문으로 돌아가서, 이 작업에 대해 CTO는 누구에게 결과를 요청해야 할까요? 제가 제안하는 것은 SRE 팀입니다(운영 및 유지 관리와 SRE라는 단어는 이 문서에 여러 번 등장하며 기본적으로 이 문서에서 같은 의미입니다. 여기서 운영 및 유지 관리는 단순한 운영이 아닙니다). 분명히 SRE가 모든 결함을 해결할 수는 없습니다. 대부분의 결함은 다른 팀의 사람들에게 의존해야 하지만 CTO가 항상 A팀과 B팀에 갈 수는 없습니다. 따라서 SRE는 CTO의 Shang Fang을 들고 전반적인 안정성 구축을 주도해야 합니다. 각 비즈니스는 수출 인터페이스의 최선의 협력이 필요합니다. 소위 안정성 구축에는 사전 예방적 위험 관리, 사고 발생 시 전반적인 조정이 포함됩니다. , 사후 회복 또한 SRE의 가장 큰 가치입니다.
어떤 모델 패키지가 더 적합한지, 어떤 네트워킹 방식이 더 적합한지, 회사가 어떤 구성 요소를 더 잘 제어하고 더 나은 지원을 받을 수 있는지 등의 내용이 많이 있습니다(내부든 팀 또는 타사 공급업체), 회사에서 권장하거나 요구하는 프로그래밍 언어 및 프레임워크는 무엇이며, 업계에서 권장하는 액세스 레이어 솔루션은 무엇입니까? 변화 계획은 무엇입니까? 관찰 가능성을 어떻게 수행합니까? 기타 등등
훌륭한 비즈니스 R&D 팀의 이러한 실용적인 방법이 잘 이해되고 있다는 것은 부인할 수 없지만, 비즈니스 라인이 더 많아지면 수준이 혼합되고 수준이 낮은 팀에는 필연적으로 코칭 역할을 하는 사람이 필요하다는 것도 부인할 수 없습니다. , 아무 일도 일어나지 않을 것입니다. 수평적 기술 팀으로서 SRE 팀은 이 문제를 담당하는 데 특히 적합합니다. 하지만 분명히 이것은 신규 이민자가 채울 수 없는 고급 직위입니다. 비즈니스를 수행할 고위 인력을 모집하는 것은 CTO가 이 출발점을 사용하지 않는다면 BP는 기술 스택의 통합을 촉진하는 효과적인 수단입니다. 글쎄요, 기술 시스템이 번창할 것입니다. 그 뒤에는 다양한 거버넌스 딜레마가 있습니다.
위 4가지 지원 역량, 사업측에서는 이를 어떻게 확보해야 하는지, CTO는 어떻게 조율해야 하는지, 다양한 팀은 어떻게 협력해야 하는지, 그게 전부입니다. 아래에 두 가지 요약을 더 만들어 보겠습니다.
물론 CTO가 모든 일을 직접 할 필요는 없지만, CTO는 정책을 발표하고 전체 군대의 총사령관이 되어야 합니다. 수평적인 업무는 SRE팀에 맡기고, 각 팀의 인터페이스 담당자들이 열심히 협력하는 것이 모범사례일 가능성이 높습니다. 수평적 업무 목표가 비즈니스 팀의 자체 폐쇄 루프로 완전히 분산되면 수평 팀이 가져오는 경험 전파 능력을 누릴 수 없게 됩니다. 게다가 엉덩이가 머리를 결정하는데, 올바른 위치에 있지 않으면 원하는 것을 할 수 없게 됩니다. 이 단어를 너무 강하게 사용해서 죄송합니다. 의도는 좋으니 직접 경험해 보시기 바랍니다.
그리고 FinOps라는 주제에 대해 조금 덧붙이고 싶습니다. FinOps도 수평적 역량에 맡겨야 할까요? 반드시 그런 것은 아닙니다. 비즈니스 자체가 이익과 손실을 책임지게 하는 것이 좋다고 생각합니다. IT 지출은 지출의 대부분을 차지하므로 CEO는 수익 및 순과 관련된 KPI를 매우 중요하게 생각해야 합니다. 비즈니스 GM에게 이익을 줍니다. 비즈니스 GM은 할 수 있습니다. 자체 폐쇄 루프는 타협입니다.
직급과 급여 기대치가 너무 높지 않다면 비교적 기본적인 오퍼레이션 작업을 수행할 수 있습니다. 10 년. 직위와 연봉에 대한 기대치가 높다면 먼저 특정 틈새 시장을 깊이 파고들어 업계 전문가가 되는 것이 효과적인 길이다. 그 후에는 여러 기술 방향을 통합하고 폭넓게 발전하는 데 중점을 둘 것입니다. 그 후에는 사업을 시작하거나 고위 임원이 됩니다.
Qin Xiaohui, Open-Falcon 및 Nightingale의 기업 R&D, Geek Time의 "운영 및 유지 관리 모니터링 시스템 실용 노트" 작성자, 공개 계정 SRETalk 관리자, Kuaimao의 기업 파트너 네뷸라, 창업의 방향은 안정성을 확보하는 것입니다. 필요하신 사항이 있으시면 언제든지 연락주세요.
위 내용은 CTO 관점에서: 운영 및 유지 관리/SRE 역량을 구축하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!