바이트 수준 관리
메모
현재이 저장소에는 14 개의 GitHub 조치 워크 플로가 있습니다.
총 제어를 통해 제로 문제로 사는 방법.
- 서비스 제공 업체를 선택하기 전에 서비스 제공 업체를 분석하십시오
- 서비스 제공 업체를 모니터링하십시오
- 서비스 제공 업체와 긴밀히 협력하십시오
- 서버와 저자의 모든 소프트웨어를 알고 있습니다. 필요하지 않은 것을 제거하십시오
- 핑뿐만 아니라 기능 테스트로 서버의 모든 프로세스 모니터링
- git 저장소의 모든 바이트에서 QA 도구를 실행하십시오.
- 의존성 (패키지)과 저자를 알고 있습니다
- 자동으로 100% 배포하십시오
- 인간의 개입없이 생산 환경을 운영합니다
- 업그레이드 할 때 소프트웨어 버전으로 보수적입니다
웹 애플리케이션에 대한 특별 인프라를 참조하십시오
내 작품을 지원하십시오
이 지식의 혜택을 받으면 내 작업을 지원하는 것을 고려하십시오.
감사합니다!
CI
지속적인 통합을 설계하고 구현하는 방법.
이 저장소에서 완전한 CI 워크 플로를 찾을 수 있습니다.
- 미리 메이드 컨테이너로 실행하거나 OS 패키지를 설치하십시오
- 환경 정보를 표시합니다
- 액세스 자격 증명을 설정합니다
- 버전 제어
- git committer
- 커밋 메시지
- PR 제목
- 캐시 OS 및 프로그래밍 언어 라이브러리 패키지
- 프로그래밍 언어 및 프레임 워크 버전 호환성을 확인하십시오
- 패키지 관리 구성 확인 (유효성 및 정규화)
- 구식 패키지 및 알려진 보안 취약점을 확인하십시오
- 빌드 코드
- 응용 프로그램을 구성하십시오
- 0️. 바이트 레벨
- 파일 모드 비트를 확인하십시오
- 비 ASCII 문자를 찾으십시오 (영어가 아닌 알파벳, 공백 문자, 제어 문자)
- 1️ors 구문 오류
- 구문 오류에 대한 소스 코드를 확인하십시오
- 구문 오류에 대한 템플릿 파일을 확인하십시오
- 2️al 실행 장치 및 기능 테스트
- 3️⃣ 정적 분석
- 정적 분석 실행 : Phpstan
- 매직 번호 탐지기
- 복사-페이스트 감지기
- 4️. 코딩 표준
- 코딩 스타일을 확인하십시오
- EditorConfig를 준수하십시오
- 코드 적용 범위를 측정하십시오
- 경로 방법 확인 (경로 컨트롤러)
- 분산 된 파일의 목록을 확인하십시오
- 철자 확인 : 오타
- 맞춤형 수표 및 경고
- CI 출력으로 로그 표시 또는 아티팩트로 로그를 업로드합니다.
- SSH-ing에 의해 CD를 시작하여 서버 (sshd.conf의
restrict,command and DenyUsers ) - 민감한 데이터를 닦습니다
CD
지속적인 전달을 설계하고 구현하는 방법.
- 가능한 제약 :
- 성공적인 테스트
- PR-S에서 실행하지 마십시오
- 우리의 레포
- 특정 지점
- 커밋 메시지 태그
[deploy:prod] - 배포 헤드 커밋 만
- 선택적 매뉴얼 시작 (gitlab 매뉴얼 액션)
- 루트 사용자로 실행하지 마십시오
- 파일에 구성을 배포하십시오
- 모든 출력을 파일에 로그인하고 Syslog에 로그를 시작하고 마무리하십시오.
- 시간 소비 단계의 실행 시간 제한 (시간 초과)
- 배포를 시작하기 전에 선택적으로 프로젝트 파일을 백업합니다
- SSH 키 (
@companybot )로 GIT 액세스를 위해 서버에서 봇 사용자를 만듭니다. - 현재 프로젝트 파일의 변경 사항
- 유지 보수 모드 확인, 유지 보수 모드 켜기
php artisan down 정적 리소스, 페이지, AJAX 및 API 요청을 포함합니다. - 클리어 캐시 (구성, 경로, 응용 프로그램, 템플릿 등)
- 캐시를 청소 한 후 CRON 작업 및 백그라운드 작업자를 마무리하고 비활성화하기 위해 기다리십시오 (프로그램에 파이프를 넣은 이메일)
- git 저장소 및 분기를 식별하십시오
- Commit Hash의 결제 (Branch Head가 아님)
- 최소한 소스 코드를 보풀
- 테스트 패키지를 배포하지 마십시오
- 패키지 관리자에서 생산 최적화를 활성화합니다
- 빌드 코드
- 데이터베이스 마이그레이션을 실행합니다
- 유지 관리 모드를 끕니다
- 캐시 인구 (응용 프로그램, opcache,
wp rewrite flush ) - 최소 1 개의 기본 기능 또는 단위 테스트를 실행합니다 (예 : 로그인 또는 디스플레이 대시 보드)
- HTML 출력을 확인하십시오
- PHP-FPM 또는 CACHETOOL을 다시로드하기위한 특수 SUDO 구성
- 실패에 대한 경고
- "x 초 동안 다운되었습니다"
- 이메일, 슬랙, Trello 또는 Google 행 아웃 알림을 보내십시오
Phpstan을 사용한 정적 분석
- 확장
-
phpstan/phpstan-strict-rules -
phpstan/phpstan-deprecation-rules -
dave-liddament/sarb -
ekino/phpstan-banned-code -
tomasvotruba/type-coverage -
pepakriz/phpstan-exception-rules -
canvural/larastan-strict-rules -
schlndh/maria-stan - 별표 리포지토리