속도, 보안 및 확장성 :: 모든걸 가질 순 없다. 중요한 두 가지는?
속도, 보안 및 확장성: 2개만 선택하십시오!
엔지니어링 조직의 효율성을 어떻게 측정합니까?

이 기사에서는 이 질문을 속도, 보안 및 확장성(3S라고 함)의 세 가지 속성으로 분류합니다. 먼저, 엔지니어링 팀이 3S에서 동시에 훌륭해지려고 할 때 직면하는 몇 가지 문제에 대해 설명합니다. 다음으로 모든 규모의 기업이 비즈니스 요구 사항에 맞게 전략을 변경할 수 있는 방법을 검토할 것입니다. 마지막으로 일부 엔지니어링 팀의 여정에 도움이 될 수 있는 몇 가지 흥미로운 트렌드를 살펴보겠습니다.
3S란?
속도: 아이디어가 시장에 나오기까지 걸리는 시간
메트릭: 출시 시간, 출시된 기능 수. 관찰된 특성:
- 개별 기여자는 많은 자율성을 가지며 빠르게 이동할 수 있습니다.
- 변경 시 프로세스 및 확인 횟수 감소
- 혁신은 차별화 요소입니다.
- 기능 크리프 및 기술 부채로 이어질 수 있습니다.
보안: T보안 통제를 정보 시스템에 통합하는 프로세스
메트릭: 심각도에 따라 가중치가 부여된 보안 사고 수, 규정 준수 달성. 관찰된 특성:
- 개별 기여자는 소유권을 공유하고 서로 책임을 집니다.
- 변경 시 많은 프로세스 및 확인
- 혁신을 위험으로 볼 수 있음
- 규정 준수 및 보안 요구 사항이 주요 프로젝트가 되며 때때로 제품 로드맵을 인수합니다.
확장성: 시스템이 크기나 부피를 변경할 수 있는 능력
메트릭: 성능 및 가동 시간 메트릭 관찰된 특성:
- 개별 기여자는 도구와 자동화에 의존합니다. 이 자동화를 설정하는 것은 초기 단계에서 복잡하고 시간이 많이 소요될 수 있습니다.
- 자동화 증가
- 코드로서의 인프라
- 다중 지역, 다중 클라우드
- 기술 부채는 확장성을 손상시킬 수 있습니다.
3S에서 탁월하려고 하는 것이 역효과를 낼 수 있는 이유는 무엇입니까?
이 세 가지 속성은 좋은 의도를 가지고 있지만 때로는 반대 세력으로 작용할 수도 있습니다. 몇 가지 예를 들어보겠습니다. 보안에 대한 작업 속도: 개발자가 차단되는 것을 방지하기 위해 일부 시스템에 대한 전체 액세스 권한을 부여할 수 있습니다. 그러나 이는 보안 요구 사항에도 위배됩니다. 속도 대비 확장성: 한 가지 확장성 목표는 여러 지역(가능한 다중 클라우드 제공업체)을 사용하는 것일 수 있습니다. 그러나 이는 개발자에게 릴리스 및 배포 프로세스를 훨씬 더 복잡하게 만들 것입니다. 이것은 또한 새로운 문제를 야기합니다. 애플리케이션 데이터는 이제 여러 곳에 저장됩니다. 확장성에 대한 보안: 보안을 개선하기 위해 모든 새 시스템이나 라이브러리는 사용하기 전에 승인 프로세스가 필요할 수 있습니다. 그러나 이는 확장성을 개선하기 위한 새로운 도구나 기술(예: Kubernetes)을 도입하는 것이 더 느릴 수 있음을 의미할 수 있습니다. 또한 최악의 경우 혁신이 위험인 교착 상태를 만들 수 있습니다. 커서를 어디에 둘 것인지에 대해 더 많은 논거를 제공하고 이러한 모든 예에 대해 감정적 토론으로 이어질 수 있습니다. 답은 회사마다 다를 수 있습니다. 그러나 요점은 이것이 반대 세력이 될 수 있다는 것입니다. 기업에 제한된 리소스가 있는 경우 이러한 마찰 지점을 줄이기 위해 초점을 어디에 둘 것인지에 대해 교육받은 결정을 내리기를 원할 수 있습니다. 비즈니스에 필요하지 않을 때 불필요한 복잡성을 도입하면 해가 될 수 있습니다. 현재 팀에 필요한 모든 기술이 없을 수도 있으므로 인력을 늘려야 합니다. 시장 진출이 느려질 수 있습니다. 일부 팀은 필요하지 않은 것으로 판명된 일부 프로젝트에서 작업했습니다. 반대 세력이 있으면 열띤 토론이 일어나고 결정이 지연될 수 있습니다. 궁극적으로 사기에 부정적인 영향을 미치고 소모로 이어질 수 있습니다. 우리는 CAP 정리와 병행할 수 있으며 엔지니어링 팀이 속도, 확장성 및 보안에서 동시에 탁월하여 이를 더욱 발전시킬 수는 없다고 말할 수 있습니다.
그만큼 캡 정리에 따르면 분산 시스템은 동시에 씨끈질긴, ㅏ사용 가능하고 피관절 내성.
큰 면책 조항: 하나의 속성을 삭제하는 것이 아니라 현재 단계에서 초점이 두 개의 다른 속성에 있어야 한다는 점을 받아들이는 것입니다. 엔지니어링 팀은 현재 회사에 필요한 것이 무엇인지 명확하게 설명하고 허용되는 절충안을 전달함으로써 더욱 집중할 것입니다. 훌륭한 리더는 메시지에서 한 단계 더 나아가 미래에 오늘날의 절충안을 해결하는 방법을 설명할 것입니다. 그리고 때가 되면 그에 맞게 준비하십시오.
어떤 3S를 고를까?

초기 스타트업 가치 속도 다른 것보다 먼저. 그들은 새로운 제품 기능을 빠른 속도로 출시하여 시장을 찾고 고객을 만족시키기를 원합니다. 금융 또는 의료와 같은 일부 산업은 다음을 지시할 수 있습니다. 보안 나란히 속도 초점을 맞출 최상위 속성입니다. 고성장을 경험하는 더 유명한 신생 기업은 일반적으로 선호합니다. 확장성과 속도. 승자 독식 시장에서 경쟁하는 경우 해당 전략을 통해 제품 로드맵을 실행하고 새로운 시장에 더 빨리 접근할 수 있습니다. IPO를 준비하거나 전 세계적으로 확장하는 경우 규정 준수 요구 사항으로 인해 보안 및 확장성. 마지막으로, 다년간의 경험을 가진 대형 테크 기업들은 스스로 많은 단계를 배우고 경험하는 시간을 가졌습니다. 결과적으로 그들은 최고의 엔지니어링 팀 중 일부를 보유하고 있습니다. 그들은 3S에서 뛰어납니다. 이는 대기업이 고유한 프로젝트를 독립적인 독립체로 스핀업하여 더 빠르게 진행할 수 있도록 하는 경우도 있으며, 이를 내부 스타트업이라고도 합니다.
3S의 다음은 무엇입니까?
아무도 미래를 예측할 수 없지만 시장의 몇 가지 추세를 관찰하고 사용자로부터 들은 피드백 중 일부를 보고할 수 있습니다.
속도: 고용이 병목 현상이며, 새로운 스타트업이 유입되고 있습니다.
초기 단계의 자금 조달은 사상 최고 수준이며, 이러한 신생 기업이 시장을 찾기 위한 경쟁입니다. 오늘날 속도를 내는 데 있어 가장 큰 장애가 되는 것은 기술 채용인 것 같습니다. 채용이 느리기 때문에 더 적은 인원으로 더 많은 일을 하고 싶어 합니다. PaaS 및 소프트웨어의 새로운 물결은 일상적인 엔지니어링 작업을 단순화합니다. 클라우드 컴퓨팅을 단순화하는 것이 Opta에 대한 우리의 사명이지만 개발자를 돕는 것을 목표로 하는 다른 많은 신생 기업이 있습니다. 사용자들 사이에 몇 가지 흥미로운 예가 있습니다. 비기술 팀에 SQL을 제공하는 Canvas와 기계 학습을 단순화하는 Union.ai가 있습니다.
확장성: Kubernetes 채택, 다중 클라우드 및 독창적인 프레임워크에 대한 수요
Kubernetes로 이동하려는 업계의 큰 추세가 있습니다. 그러나 몇 가지 문제와 빈번한 업그레이드가 수반됩니다(모두 이전 버전과 호환되는 것은 아님). Kubernetes를 사용하는 것은 목적지가 아니라 여정입니다. 이러한 복잡성은 때때로 잘못 이해되고 엔지니어링 리소스를 보유함으로써 제품 로드맵에 부정적인 영향을 미칠 수 있습니다. 최신 HashiCorp State of Cloud 설문조사에서는 이제 멀티 클라우드가 새로운 표준이라고 보고했습니다. 클라우드 제공업체는 매우 다르며 많은 제공업체를 지원하면 엔지니어링 팀이 훨씬 더 많은 작업을 수행할 수 있습니다. 고객은 클라우드 제공업체에서 Kubernetes를 원하지만 구성 방법에 대해 확고한 의견을 갖고 있지는 않습니다. 그들은 애플리케이션 모니터링 및 코드로서의 인프라와 같은 모범 사례를 원합니다.
보안: Kubernetes 네트워킹 및 IAM에 필요한 도움
여기서 다시 Kubernetes로 이동하면 더 복잡해집니다. 대부분의 클라우드 공급자는 클러스터를 실행하는 서비스를 제공하지만 클러스터에 대한 네트워크(수신, 서비스 메시) 및 IAM을 설정하는 것은 사용자에게 달려 있습니다. 일부 회사는 Kubernetes로 시작합니다. 그들은 빈 상태에서 시작하기를 원하지 않습니다. 그들은 Load Balancer에서 클러스터에서 실행되는 애플리케이션 포드에 이르기까지 네트워킹 스택을 구성하는 독창적인 방법을 제공할 수 있는 제품을 사용하는 것을 높이 평가합니다.
우리가 본 것
이 기사에서는 3S: 속도, 보안 및 확장성을 고려하여 엔지니어링 효율성을 살펴보았습니다. 많은 회사에서 모든 3S에서 너무 일찍 탁월해지려고 하면 불필요한 복잡성이 발생하여 기술 부채가 증가할 수 있습니다. 이는 궁극적으로 엔지니어링 팀에 좌절감을 주고 소모로 이어질 수 있습니다. 비즈니스가 운영되는 단계와 시장에 따라 하나 또는 두 개의 속성에 동시에 초점을 맞추는 것이 합리적일 수 있습니다. 현재 전략과 장단점에 대해 명확하게 의사 소통하면 엔지니어링 팀이 계속 집중하는 데 도움이 됩니다. 기술 고용 위기 및 Kubernetes의 인기와 같은 최신 트렌드로 인해 일부 회사는 엔지니어링 작업을 단순화하여 더 적은 수의 고용으로 로드맵을 실행할 수 있는 신제품으로 눈을 돌렸습니다.
팀 인프라를 쉽게 관리하는 방법
무료 오픈 소스 도구인 Opta는 팀을 위한 클라우드 인프라 및 파이프라인의 복잡성을 대부분 줄여줍니다. Terraform을 기반으로 구축된 코드로서의 인프라 프레임워크로 높은 수준의 구성으로 작업하여 맞춤형 클라우드 인프라를 빠르게 설정할 수 있습니다.
Want to Connect?
If you run into any issues in the installation stage, you can reach out to the contributors in our slack channel here
속도, 보안 및 확장성: 2개만 선택하십시오! 원래 Better Programming on Medium에 게시되었으며, 사람들은 이 이야기를 강조 표시하고 응답하여 대화를 계속하고 있습니다.
from NFT레볼루션 https://ift.tt/oyGLjJC