Table of Contents
긴 시스템의 가동 시간의 높은 비용
미국 달러 (USD) 유로 (EUR) 파운드 (GBP) 호주 달러 (AUD) 캐나다 달러 (CAD) 스위스 프랑 (CHF) 덴마크어 크로네 (DKK) 홍콩 달러 (HKD) 일본 엔 (JPY) 노르웨이 크로네 (NOK) 뉴질랜드 달러 (NZD) 스웨덴 크로나 (SEK) 싱가포르 달러 (SGD) 중국 위안 (CNY) 대한민국 원 (KRW) 터키 리라 (TRY) 우크라이나 흐리브냐 (UAH) 러시아 루블 (RUB) 남아프리카 공화국 랜드 (ZAR) 사우디아라비아 리얄 (SAR) Czech Republic, Koruna (CZK) Brazil, Real (BRL)
핵심 Refactoring 원리 최소화
미션 크리티컬 환경에서의 효과적인 재발견은 3개의 기둥에 휴식: behavior 보전], incremental 변경, defensive testing. Behavior 보전은 시스템의 관찰 가능한 출력을 동일하게 나타낸다. 이때는 각 반복성 검사의 제한이 없는 한 단계의 반복성에 따라, 이때는 이 단계가 발생하지 않는다.
안전 Refactoring를 위한 열쇠 전략
평행한 뛰기 및 그림자 형태
섀도 모드에서, 재발견된 구성 요소는 원래 시스템 옆에 실행, 동일한 입력을 처리하지만 침묵적으로 출력을 분리. 엔지니어는 라이브 작업에 영향을 미치지 않고 차이를 감지하는 결과를 비교합니다. 일단 신뢰가 높으면 그림자 구성 요소는 기본 상태에 홍보 될 수 있습니다. 이 기술은 특히 코어 알고리즘이나 데이터 처리 파이프라인에 유용합니다. 올바른 것은 퍼 마운트.
기능 토글
기능 toggles (또는 플래그) 구성 스위치 뒤에 다시 설정 코드를 감싸는 허용. 재구성 경로는 명시적으로 켜지 때까지 비활성 남아, 팀에게 문제를 발생하면 점차적으로 또는 롤백을 즉시 활성화 할 수있는 능력을 제공. 중요한 시스템에서, toggles는 실행 시간 변경에서 예상치 못한 행동을 방지하기 위해 동적보다 (배출 시간) 정적이어야한다.
수의사
이 웹 사이트는 귀하가 웹 사이트를 탐색하는 동안 귀하의 경험을 향상시키기 위해 쿠키를 사용합니다. 이 쿠키들 중에서 필요에 따라 분류 된 쿠키는 웹 사이트의 기본적인 기능을 수행하는 데 필수적이므로 브라우저에 저장됩니다. 또한이 웹 사이트의 사용 방식을 분석하고 이해하는 데 도움이되는 제 3 자 쿠키를 사용합니다. 이 쿠키는 귀하의 동의하에 만 브라우저에 저장됩니다. 이러한 쿠키를 거부 할 수도 있습니다. 이러한 쿠키 중 일부를 선택 해제하면 검색 환경에 영향을 미칠 수 있습니다.
블루그린 디플로이먼트
블루그린 배포는 두 가지 동일한 환경을 유지합니다: “블루” (현재 안정)과 “그린” (공장). 녹색 환경의 철저한 검증 후, 교통은 파란색에서 녹색으로 전환됩니다 단일 원자 작업. 문제가 나타나면, 파란색으로 전환은 신속하게 발생합니다. 이 전략은 무정한 응용 프로그램에 효과적이며 주의깊은 데이터 동기화와 함께 최첨단 시스템을 위해 적응할 수 있습니다.
계획된 정비 Windows
이 웹 사이트는 귀하가 웹 사이트를 탐색하는 동안 귀하의 경험을 향상시키기 위해 쿠키를 사용합니다. 이 쿠키들 중에서 필요에 따라 분류 된 쿠키는 웹 사이트의 기본적인 기능을 수행하는 데 필수적이므로 브라우저에 저장됩니다. 또한이 웹 사이트의 사용 방식을 분석하고 이해하는 데 도움이되는 제 3 자 쿠키를 사용합니다. 이 쿠키는 귀하의 동의하에 만 브라우저에 저장됩니다. 이러한 쿠키 중 일부를 선택 해제하면 검색 환경에 영향을 미칠 수 있습니다.
Robust 테스트 파이프 라인 구축
단위 및 통합 시험
테스트는 테스트가 매우 중요하지만, 테스트는 테스트가 매우 중요하지만, 테스트는 테스트가 매우 중요하기 때문에, 테스트가 시작될 수 있습니다. 테스트는 테스트가 시작될 때, 테스트가 시작될 때, 테스트가 시작될 수 있습니다. 테스트는 테스트가 시작될 때, 테스트가 시작될 때, 테스트가 시작될 때, 테스트가 시작될 수 있습니다. 테스트는 테스트가 완료될 수 있습니다. 테스트는 테스트가 완료되면, 테스트가 완료되면, 테스트가 완료될 수 있습니다. 테스트는 테스트가 완료되면, 테스트가 완료되면, 테스트가 완료되면, 테스트가 완료될 수 있습니다. 테스트가 완료되면, 테스트가 완료되면, 테스트가 완료될 수 있습니다.
Regression 테스트 및 연속 통합
자동 회귀 테스트는 모든 커밋 캐치 오류를 초기에 실행합니다. 연속 통합 (CI) 파이프라인은 분 내에 전체 회귀 스위트를 실행해야합니다. 중요한 시스템에 대해서는, 또한 성능 회귀 테스트]를 실행하여 다시 설정하는 것은 타이밍이나 리소스 사용이 아니지 않습니다. Regression test suite 유지 보수는 필수입니다. 버그를 수정하면, 다시 시도하기 전에 재해 테스트가 추가됩니다.
신뢰의 검증을 위한 Chaos Engineering
Chaos Engineering은 의도적으로 실패를 체계로 주사하여 스트레스에서 행동하는 방법을 관찰합니다. 재구성 된 구성 요소에 적용된, 재구성에 의해 도입 된 변경 또는 새로운 실패 모드가 발견 된 가정을 밝혀낼 수 있습니다. Chaos Engineering 같은 도구는 네트워크 파티션, 자원 배출, 또는 트래픽의 급격한 파열을 시뮬레이션 할 수 있습니다. 이 분야는 Netflix 및 Amazon과 같은 조직에 의해 채택되어 가동 중단 시스템에서 탄력을 보장 할 수 없습니다.
Critical Systems Refactoring의 구현 단계
평가 및 계획
시스템 아키텍처의 철저한 분석으로 시작하십시오. 잘 정의 된 모듈을 식별하고 높은 테스트 범위를 가지고 있으며 안전 크리티컬 경로에서 격리됩니다. ]dependency graphs]를 사용하여 영향을 이해하십시오. 위험과 비즈니스 가치를 통해 후보를 다시 작성하십시오. 하드웨어 제약, 운영 조건 및 규제 요구 사항을 아는 데있어 도메인 전문가 - 엔지니어가 계획을 검증합니다.
버전 제어 및 롤백
모든 재채팅 변경은 변환을 설명하는 명확한 커밋 메시지와 분리된 지점을 위해 최선을 다하고 있어야 합니다. 작업 시작 전에 안정적인 릴리스를 태그하십시오. 롤백 계획은 코드가 뒤지지 않아야하지만, undone이어야하는 데이터베이스 마이그레이션 또는 구성 변경 사항이 없습니다. 시효 환경에서 롤백 절차를 연습하기 때문에 사건 중 두 번째 성격이됩니다.
환경 정책
하드웨어, 네트워크 토폴로지 및 데이터 볼륨의 미러 생산이 안전 재발급에 필수적입니다. 전체 테스트 스위트 및 성능 벤치 마크를 여기에서 실행하십시오. 물리적 기계 (예 : 로봇 컨트롤러, 전력 그리드 모니터)와 인터페이스를 제공하는 소프트웨어에는 실제 입력 및 출력을 복제하는 시뮬레이션 루프가 포함되어야합니다. 시효 후 만 모든 표준은 생산으로 변경 이동해야합니다.
모니터링 및 관찰성
이 웹 사이트는 귀하가 웹 사이트를 탐색하는 동안 귀하의 경험을 향상시키기 위해 쿠키를 사용합니다. 이 쿠키들 중에서 필요에 따라 분류 된 쿠키는 웹 사이트의 기본적인 기능을 수행하는 데 필수적이므로 브라우저에 저장됩니다. 또한이 웹 사이트의 사용 방식을 분석하고 이해하는 데 도움이되는 제 3 자 쿠키를 사용합니다. 이 쿠키는 귀하의 동의하에 만 브라우저에 저장됩니다. 이러한 쿠키를 거부 할 수도 있습니다. 이러한 쿠키 중 일부를 선택 해제하면 검색 환경에 영향을 미칠 수 있습니다.
Critical Code에 대한 일반적인 Refactoring 기술
모든 재발생 기술은 똑같이 안전합니다. 기계적이고 역동적 인 사람들을 즐기십시오.
- Extract Method – readability을 개선하기 위한 새로운 방법으로 코드를 차단합니다. 추출된 방법을 확인하면 부작용을 추가하지 않습니다.
- 변환 또는 Function - 변경 실행 없이 선명도를 개선한다. 모든 참조를 잡기 위해 IDE-supported rename refactoring을 사용한다.
- Symbolic Constant를 사용한 Magic Number를 대체합니다. - 유지 보수 중에 혼란을 일으킬 수 있는 하드 코딩된 리터를 제거하십시오.
- 조건 표현] – 보안 항목이나 스위치 문으로 구분하는 경우 복잡한 디컴포지트, 하지만 모든 지점의 배출 테스트 후만.
- Introduce Parameter Object – 그룹 관련 매개변수는 단일 객체로 메소드 서명 복잡성을 줄이기 위한 것입니다.
각 기술은 고립, 시험되고, 그 후에의 앞에 투입되어야 합니다. ] 안전 크리티컬 체계 를 재공장에 소프트웨어 개선 그룹 백서는 높 신뢰성 환경을 위한 적당한 접근을 선정하는 실제적인 지도를 제공합니다.
위험 완화 및 거버넌스
코드 리뷰 및 쌍 프로그래밍
모든 재공장은 시스템에서 가장 가까운 두 명의 엔지니어가 검토해야합니다. 재공장 세션 중 페어 프로그래밍은 삼극 실수를 방지하고 지식 전송을 촉진 할 수 있습니다. 리뷰는 행동 보수, 테스트 적용 및 재공장 계획에 고착해야합니다.
Expert Validation(전문가)
SME는 물리적, 화학, 또는 소프트웨어 인코딩이 있는 조작 논리를 이해하는 데 필요한 주제 매트 전문가 (SMEs)를 포함합니다. SME는 현재 필드에서 널리 사용되는 약어와 충돌하는 이름이 바뀌거나 타이밍 감지 시퀀스에서 추출한 방법을 통합하는 데 필요한 명령 작업을 수행 할 수 있습니다.
자문위원회
더 큰 인증 시스템 (예 :, avionics, 핵 원자로 제어)의 일부 인 소프트웨어에 대해서는 변경 제어 보드에서 승인이 필요할 수 있습니다. 보드는 재공장 계획, 위험 평가, 롤백 전략 및 검증의 증거를 검토합니다. 산업 표준 (예 : DO-178C, IEC 61508) 준수 형식의 합리적인 및 테스트 결과를 문서화하십시오.
관련 기사
이 웹 사이트는 귀하가 웹 사이트를 탐색하는 동안 귀하의 경험을 향상시키기 위해 쿠키를 사용합니다. 이 쿠키들 중에서 필요에 따라 분류 된 쿠키는 웹 사이트의 기본적인 기능을 수행하는 데 필수적이므로 브라우저에 저장됩니다. 또한이 웹 사이트의 사용 방식을 분석하고 이해하는 데 도움이되는 제 3 자 쿠키를 사용합니다. 이 쿠키는 귀하의 동의하에 만 브라우저에 저장됩니다. 이러한 쿠키를 거부 할 수도 있습니다. 이러한 쿠키 중 일부를 선택 해제하면 검색 환경에 영향을 미칠 수 있습니다.