DevOps 실시간 시나리오 – 실시간 상황 파악



이 블로그는 DevOps의 실시간 시나리오에 대해 설명하여 실시간으로 직면 할 수있는 문제와이를 극복하는 방법을 이해하는 데 도움이됩니다.

많은 분들이 다음과 관련된 모든 이론을 알고 계실 것입니다. . 하지만 실생활에서 DevOps 원칙을 구현하는 방법을 알고 있습니까? 이 블로그에서는 실시간으로 작동하는 방식을 간략하게 이해하는 데 도움이되는 DevOps Real Time 시나리오에 대해 설명합니다.

여기서 다루게 될 지침은DevOps 실시간 시나리오 기사아르:





이제 첫 번째 주제부터 시작하겠습니다.

DevOps 란 무엇입니까?

devops-devops 실시간 시나리오 -EdurekaDevOps는 개발 수명주기 전체에 걸쳐 소프트웨어의 지속적인 개발, 지속적인 테스트, 지속적인 통합, 지속적인 배포 및 지속적인 모니터링을 포함하는 소프트웨어 개발 접근 방식입니다. 이러한 활동은 Agile 또는 Waterfall이 아닌 DevOps에서만 가능합니다. 이것이 바로 Facebook과 다른 최고 기업들이 비즈니스 목표를위한 방법으로 DevOps를 선택한 이유입니다.DevOps는 주로 더 짧은 개발 주기로 고품질 소프트웨어를 개발하여 고객 만족도를 높이는 데 선호됩니다.



이것의 다음 섹션에서DevOps Real Time Scenarios 기사에서는 DevOps로 해결 된 다양한 문제를 살펴볼 것입니다.

DevOps로 해결 된 문제

1. 고객에게 가치 제공

  • DevOps 시간을 최소화 고객에게 가치를 제공하는 데 필요합니다. 개발자의 스토리 / 작업 완료부터 생산까지의주기 시간이 크게 줄어들어 최대한 빨리 가치를 실현할 수 있습니다.
  • DevOps를 통해 실현되는 가장 중요한 가치는 IT 조직이 '핵심'비즈니스 활동에 집중 . 가치 흐름 내에서 제약을 제거하고 배포 파이프 라인을 자동화함으로써 팀은 활동에 집중할 수 있습니다. 이는 비트와 바이트를 이동하는 것보다 고객 가치를 창출하는 데 도움이됩니다. 이러한 활동은 회사의 지속 가능한 경쟁 우위를 높이고 더 나은 비즈니스 성과를 창출합니다.



2. 감소 된 사이클 시간

  • 내부적으로 DevOps는 인사이트와 함께 안전한 코드를 제공하는 민첩성을 달성하는 유일한 방법입니다. 게이트와 잘 만들어진 DevOps 프로세스를 갖는 것이 중요합니다. 새 버전을 제공 할 때 현재 버전과 나란히 실행할 수 있습니다. 또한 메트릭을 비교하여 애플리케이션 및 성능 메트릭으로 원하는 것을 달성 할 수 있습니다.

  • DevOps는 개발 팀을 지속적인 개선 및 더 빠른 릴리스주기 . 이 반복 프로세스를 잘 수행하면 시간이 지남에 따라 실제로 중요한 일에 더 집중할 수 있습니다. 사용자에게 훌륭한 경험을 제공하고 도구, 프로세스 및 기술 관리에 소요되는 시간을 줄이는 등.

3. 시장 출시 시간

해결되고있는 가장 중요한 문제는 프로세스의 복잡성 감소. 이를 통해 시장 출시 시간을 단축하고 기능에 대한 빠른 피드백을 제공하며 고객의 요구 사항에보다 신속하게 대응할 수있어 비즈니스 성공에 크게 기여합니다.

4. 문제 해결

  • 성공적인 DevOps 구현의 가장 큰 가치는 전달, 가시성 및 진행 상황에 대한 추적 가능성에 대한 신뢰도가 높아 문제를 더 빨리 해결할 수 있다는 것입니다.

  • DevOps의 또 다른 중요한 이점은 시간 낭비가 없다는 것입니다. 조직의 인력과 리소스를 조정하면 신속한 배포 및 업데이트가 가능합니다. 이를 통해 DevOps 프로그램은 문제가 재난으로 전환되기 전에 문제를 해결할 수 있습니다.DevOps는 개발, 운영 및 보안 팀 간의 집중과 협업을 촉진하는 투명성의 문화를 만듭니다.

CI (지속적 통합)DevOps 실시간 시나리오

1. 개인은 지속적인 통합이 비생산적 일 수 있음

개발 팀의 구성원은 역할, 책임 및 우선 순위가 다릅니다. 제품 관리자의 최우선 순위는 새로운 기능을 출시하는 것일 수 있으며 프로젝트 관리자는 팀이 기한을 준수하는지 확인해야합니다. 프로그래머는 사소한 버그가 발생할 때마다 수정을 중단하면 속도가 느려질 것이라고 생각할 수 있습니다. 그들은 빌드를 깨끗하게 유지하는 것이 그들에게 추가 부담이며 추가 노력에 대한 혜택을받지 못할 것이라고 생각할 수 있습니다. 이것은 잠재적으로 적응 과정을 위태롭게 할 수 있습니다.

이를 극복하려면 :

  • 첫째, 지속적인 통합을 채택하기 전에 전체 팀이 참여하고 있는지 확인하십시오.

  • CTO와 팀 리더는 팀 구성원이 지속적인 통합의 비용과 이점을 이해하도록 도와야합니다.

  • 좀 더 개방성과 유연성이 필요한 다른 작업 방법에 전념함으로써 코더가 언제 어떤 혜택을 받을지 강조하십시오.

2. 기존 개발 흐름에 CI 통합

CI를 채택하려면 필연적으로 개발 워크 플로의 일부를 근본적으로 변경해야합니다. 워크 플로가 손상되지 않은 경우 개발자가 워크 플로를 수정하지 못할 수도 있습니다. 이는 주로 팀이 현재 워크 플로를 실행하는 데 더 큰 루틴이있는 경우 가능합니다.

워크 플로를 변경하려면 매우주의하여 변경해야합니다. 그렇지 않으면 개발 팀의 생산성과 제품의 품질이 저하 될 수 있습니다. 리더십의 충분한 지원이 없으면 개발 팀은 그러한 위험이 관련된 작업을 수행하기를 약간 꺼릴 수 있습니다.

이를 극복하려면 :

  • 팀이 새로운 워크 플로를 개발할 수 있도록 충분한 시간을 제공해야합니다. 이는 새로운 워크 플로우를 지원할 수있는 유연한 지속적 통합 솔루션을 선택하기 위해 수행됩니다.

  • 또한 처음에는 일이 순조롭게 진행되지 않더라도 회사에 등을 돌립니다.

3. 이전 테스트 습관으로의 재발

지속적인 통합을 채택하면 즉각적인 효과는 팀이 더 자주 테스트하게된다는 것입니다. 따라서 더 많은 테스트에는 더 많은 테스트 케이스가 필요하며 테스트 케이스 작성에는 많은 시간이 소요될 수 있습니다. 따라서 개발자는 종종 버그 수정과 테스트 케이스 작성 사이에 시간을 나눠야합니다.

일시적으로 개발자는 수동으로 테스트하여 시간을 절약 할 수 있지만 장기적으로는 더 많은 피해를 입힐 수 있습니다. 테스트 케이스 작성을 미룰수록 개발 진행 상황을 따라 잡기가 더 어려워집니다. 최악의 시나리오에서는 팀이 이전 테스트 프로세스로 돌아갈 수 있습니다.

이를 극복하려면 :

  • 처음부터 테스트 케이스를 작성하면 팀의 시간을 많이 절약하고 제품의 높은 테스트 범위를 보장 할 수 있다는 점을 강조해야합니다.

  • 또한 테스트 케이스는 코드베이스 자체만큼이나 귀중한 자산이라는 아이디어를 회사 문화에 포함 시키십시오.

4. 오류 메시지를 무시하는 개발자

더 큰 팀이 함께 작업하면 CI 알림의 양이 압도적으로되고 개발자가이를 무시하고 음소거하기 시작하는 것은 일반적인 문제입니다. 따라서 관련 업데이트를 놓칠 수 있습니다.

코더가 손상된 빌드 및 오류 메시지에 대해 상대적인 내성을 개발하는 단계로 이어질 수 있습니다. 관련 알림을 오래 무시할수록 잘못된 방향으로 피드백없이 발전하는 시간이 길어집니다. 이는 잠재적으로 막대한 롤백, 비용, 자원 및 시간 낭비를 유발할 수 있습니다.

이를 극복하려면 :

  • 중요한 업데이트 만 보내야합니다.

  • 수정을 담당하는 각 개발자에게만 알림을 보냅니다.

    병합 정렬 C ++ 구현

CT (연속 테스트) DevOps 실시간 시나리오

  1. 요구 사항 사양을 올바르게 얻기

    요구 사항을 제대로 충족하면 전투의 거의 절반이 승리합니다. 따라서 요구 사항을 매우 구체적이고 정확하게 이해하고 있다면 테스트 계획을 더 잘 설계하고 요구 사항을 잘 다룰 수 있습니다.

    그러나 많은 팀이 단순히 요구 사항을 명확히하는 데 많은 시간과 노력을 소비합니다. 이는 매우 일반적인 함정이며이를 방지하기 위해 팀은 모델 기반 테스트 및 동작 기반 개발 기술을 채택 할 수 있습니다. 이는 테스트 시나리오를 정확하고 적절하게 설계하는 데 도움이됩니다.

    이러한 관행은 분명히 격차를 더 빨리 해결하고 해결하는 데 도움이 될 것입니다. 또한 스프린트 초기 단계부터 자동으로 더 많은 테스트 케이스를 생성 할 수 있습니다.

  2. 파이프 라인 오케스트레이션

    지속적인 테스트 및 지속적 전달 파이프 라인 오케스트레이션과 밀접한 관련이 있습니다. 이는 작동 방식, 작동 이유, 결과 분석 방법, 확장 방법 및시기를 이해하는 것을 직접적으로 의미합니다. 모든 것이 파이프 라인에 따라 다르므로 파이프 라인을 자동화 제품군과 통합해야합니다.

    하지만 팀이 뒤죽박죽이되는 이유는 CD 파이프 라인을 구축하는 데 필요한 완전한 툴체인을 제공하는 단일 솔루션이 없기 때문입니다.

    팀은 일반적으로 자신에게 맞는 퍼즐 조각을 찾아야합니다. 다른 여러 도구와 함께 통합을 제공하는 완벽한 도구는 없으며 일반적으로 동급 최고의 도구 만 있습니다. 물론 쉽게 통합 할 수있는 API도 있습니다.

    요컨대 표준화되고 자동화 된 파이프 라인의 속도와 신뢰성 없이는 지속적인 테스트를 구현할 수 없습니다.

  3. 확장 및 복잡성 관리

    또 다른 중요한 시나리오는 지속적인 테스트가 프로덕션 환경으로 이동함에 따라 더욱 복잡 해지는 것입니다. 코드가 성숙 해지고 환경이 더욱 복잡 해짐에 따라 테스트의 수가 증가하고 복잡성도 증가합니다.

    다른 단계와 자동화 된 스크립트를 업데이트 할 때마다 테스트를 업데이트해야합니다. 결과적으로 테스트를 실행하는 데 걸리는 전체 시간도 릴리스가 진행 될수록 증가하는 경향이 있습니다.

    이에 대한 해결책은 더 짧은 스프린트 주기로 적절한 양의 테스트 범위를 제공하고 팀이 자신있게 전달할 수 있도록하는 개선 된 테스트 오케스트레이션에 있습니다. 이상적으로는 다양한 단계에서 수행되는 CT로 전체 프로세스를 자동화해야합니다. 이는 코드가 프로덕션으로 푸시 될 때까지 정책 게이트와 수동 개입을 사용하여 수행됩니다.

  4. 피드백 루프 생성

    개발주기의 모든 단계에서 빈번한 피드백 루프가 없으면 지속적인 테스트가 불가능합니다. 이것이 부분적으로 CT를 구현하기 어려운 이유입니다. 자동화 된 테스트뿐만 아니라 테스트 결과 및 실행에 대한 가시성도 필요합니다.

    로깅 도구, 코드 프로파일 러 및 성능 모니터링 도구와 같은 기존 피드백 루프는 더 이상 효과적이지 않습니다. 함께 작동하지도 않고 문제를 해결하는 데 필요한 깊이있는 통찰력을 제공하지도 않습니다. 보고서를 자동으로 생성하고 전체 SDLC에서 실행 가능한 피드백을 제공하는 실시간 대시 보드는 결함을 줄이면서 소프트웨어를 더 빨리 프로덕션에 출시하는 데 도움이됩니다. 대시 보드에 대한 실시간 액세스 및 모든 팀 구성원의 액세스는 지속적인 피드백 메커니즘에 도움이됩니다.

  5. 환경 부족

    연속 테스트는 단순히 더 자주 테스트하는 것을 의미하며이를 위해서는 여러 환경을 더 자주 방문해야합니다. 필요한 시점에 해당 환경을 사용할 수없는 경우 병목 현상이 발생합니다. 일부 환경은 API를 통해 사용할 수 있고 일부는 다양한 인터페이스를 통해 사용할 수 있습니다. 이러한 환경 중 일부는 모 놀리 식 레거시 클라이언트 / 서버 또는 메인 프레임 시스템을 사용하여 최신 아키텍처를 사용하여 구축 할 수 있습니다.

    그러나 여기서 질문은 다양한 환경 소유자를 통해 테스트를 어떻게 조정합니까? 또한 항상 환경을 유지하고 실행하지 못할 수도 있습니다. 이 모든 것에 대한 답은 가상화 . 환경을 가상화하면 변경되지 않는 영역에 대해 너무 걱정하지 않고 코드를 테스트 할 수 있습니다.가상화를 통해 온 디맨드 방식으로 환경에 액세스하고 사용할 수있게하면 파이프 라인에서 심각한 병목 현상을 제거하는 데 도움이됩니다.

CD (지속적 배송) DevOps 실시간 시나리오

  1. 너무 오래 걸리는 배포

    분산 응용 프로그램은 일반적으로 서버에 파일을 '복사하여 붙여 넣기'이상으로 요구합니다. 서버 팜이있는 경우 복잡성이 증가하는 경향이 있습니다. 배포 할 대상, 위치 및 방법에 대한 불확실성은 매우 일반적인 일입니다. 결과? 모든 것을 지연시키고, 테스트하고, TTL (Time to Live)하는 등의 경로의 다음 환경으로 아티팩트를 가져 오기위한 긴 대기 시간.

    DevOps는 무엇을 제공합니까? 개발 및 IT 운영 팀은 완벽한 협업 세션에서 배포 프로세스를 정의합니다. 먼저, 무엇이 효과가 있는지 확인한 다음 자동화를 통해 다음 단계로 이동하여 지속적인 배포를 촉진합니다. 이를 통해 배포 시간을 대폭 단축하고 더 자주 배포 할 수있는 길을 열어줍니다.

  2. 아티팩트, 스크립트 및 기타 종속성 누락

    작동중인 소프트웨어의 새 버전을 배포 한 후 오류가 자주 발생합니다. 이는 종종 누락 된 라이브러리 또는 업데이트되지 않는 데이터베이스 스크립트로 인해 발생합니다. 이는 일반적으로 배포 할 종속성과 해당 위치에 대한 명확성이 부족하기 때문에 발생합니다. 개발과 운영 간의 협업을 장려하면 대부분의 경우 이러한 종류의 문제를 해결하는 데 도움이 될 수 있습니다.

    자동화와 관련하여 배포 속도를 높이는 데 많은 도움이되는 종속성을 정의 할 수 있습니다. 다음과 같은 구성 관리 도구 인형 또는 주요한 추가 수준의 종속성 정의에 기여합니다. 애플리케이션 내에서 종속성뿐만 아니라 인프라 및 서버 구성 수준에서도 종속성을 정의 할 수 있습니다. 예를 들어 테스트 용 가상 머신을 만들고 설치 / 구성 할 수 있습니다. 수코양이 우리의 유물이 출판되기 전에.

  3. 비효율적 인 생산 모니터링

프로덕션에서 관련없는 많은 데이터를 생성하는 방식으로 모니터링 도구를 구성하는 경우도 있지만, 다른 경우에는 충분히 생성하지 않거나 전혀 생성하지 않는 경우도 있습니다. 관리해야 할 사항과 메트릭이 무엇인지에 대한 정의가 없습니다.

모니터링 할 항목과 생성 할 정보에 동의 한 다음 제어를 적용해야합니다. 애플리케이션 성능 관리 도구는 조직에서 AppDynamics, New Relic 및 AWS X-Ray를 살펴볼 여유가 있다면 큰 도움이됩니다.

DevOps 데이터 시나리오

DevOps는 새로운 소프트웨어 개발과 관련된 위험을 제거하는 것입니다. 데이터 분석은 이러한 위험을 식별합니다. DevOps 프로세스를 지속적으로 측정하고 개선하려면 분석이 전체 파이프 라인에 걸쳐 있어야합니다. 이는 소프트웨어 개발 라이프 사이클의 모든 단계에서 관리에 대한 귀중한 통찰력을 제공합니다.

1. 데이터 분석 시간 단축

주어진 시간에 생성되는 모든 데이터로 인해 조직은 모든 ​​데이터를 분석 할 수 없다는 사실을 받아 들여야합니다. 하루에 시간이 충분하지 않습니다. 안타깝게도 로봇은 아직 우리를 위해 모든 작업을 수행 할만큼 정교하지 않습니다.

따라서 가장 중요한 데이터 세트를 결정하는 것이 중요합니다. 대부분의 경우 이는 조직마다 다를 것입니다. 따라서 시작하기 전에 주요 비즈니스 목표와 목표를 결정하십시오. 일반적으로 이러한 목표는 주로 최종 사용자에게 가장 중요한 가장 중요한 기능인 고객 요구를 중심으로합니다. 예를 들어 소매 업체의 경우 트래픽이 사이트의 결제 페이지와 상호 작용하는 방식을 분석하고 백엔드에서 작동하는 방식을 테스트하는 것이 목록의 맨 위에 있습니다.

분석에 가장 중요한 데이터를 식별하기위한 몇 가지 빠른 팁 :

  • 차트 작성 : 중단이 비즈니스에 미칠 영향을 결정하고 다음과 같은 질문을합니다. X 휴식 , 다른 기능에 어떤 영향을 미칠까요? '

  • 이전 데이터보기 : 과거에 문제가 발생한 위치를 식별하고 테스트 데이터를 계속 분석하고 다시 발생하지 않도록 구축합니다.

2. 어려운 의사 소통

오늘날 대부분의 조직은 여전히 ​​자신의 목표를 식별하고 자체 도구와 기술을 활용하는 다른 팀 및 페르소나와 함께 운영됩니다. 각 팀은 독립적으로 활동하고 파이프 라인에서 분리되며 통합 단계에서만 다른 팀과 회의를합니다.

더 큰 그림을보고 무엇이 효과가 있는지 파악할 때 조직은 하나의 솔루션을 찾기 위해 고군분투합니다. 대부분 모든 사람이 전체 데이터를 공유하지 않아 분석이 불가능하기 때문입니다.

이 문제를 극복하려면 커뮤니케이션 흐름을 점검하여 모든 사람이 통합 프로세스뿐만 아니라 SDLC 전체에서 협업 할 수 있도록합니다.

  • 먼저, 처음부터 DevOps 지표에 대한 강력한 동기화가 있는지 확인하십시오. 각 팀의 진행 상황은 동일한 KPI (핵심 성과 지표)를 활용하여 하나의 대시 보드에 표시되어 관리가 전체 프로세스에 대한 가시성을 제공해야합니다. 이는 그들이 무엇이 잘못되었는지 (또는 무엇이 성공했는지) 분석하는 데 필요한 모든 데이터를 수집 할 수 있도록 수행됩니다.

  • 초기 메트릭 대화 외에도 팀 회의 또는 Slack과 같은 디지털 채널을 통한 지속적인 커뮤니케이션이 있어야합니다.

3. 인력 부족

직원이 부족한 경우 딥 러닝을 활용하여 수집하는 데이터에 슬롯을두고 신속하게 의사 결정을 내리는 더 스마트 한 도구가 필요합니다. 결국, 모든 단일 테스트 실행을 볼 시간이 없습니다 (일부 대규모 조직의 경우 하루에 약 75,000 개가있을 수 있음). 요령은 소음을 제거하고 집중할 올바른 것을 찾는 것입니다.

인공 지능과 기계 학습이 도움이 될 수 있습니다. 오늘날 시장에 나와있는 많은 도구는 AI와 ML을 사용하여 다음과 같은 작업을 수행합니다.

  • 다양한 데이터를 이동하고 검증하기위한 스크립트 및 테스트 개발

  • 이전에 학습 한 행동을 기반으로 품질보고

  • 실시간 변화에 대응하여 작업합니다.

이것으로 DevOps Real Time Scenarios에 대한이 기사의 끝까지 왔습니다.

이제 DevOps Real Time Scenarios가 무엇인지 이해 했으므로 다음을 확인하십시오. 전 세계에 걸쳐 250,000 명 이상의 만족 한 학습자 네트워크를 보유한 신뢰할 수있는 온라인 학습 회사 인 Edureka에서 작성했습니다. Edureka DevOps 인증 교육 과정은 학습자가 DevOps가 무엇인지 이해하고 Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack 및 GIT와 같은 다양한 DevOps 프로세스 및 도구에 대한 전문 지식을 습득하여 SDLC의 여러 단계를 자동화하는 데 도움이됩니다.

이 키워드를 사용하는 6 가지 방법은 무엇입니까?

질문이 있으십니까? 이 댓글 섹션에서 언급하십시오DevOps 실시간 시나리오 기사다시 연락 드리겠습니다.