효율적이고 안전하게 개발
이러한 모범 사례를 사용하여 개발 프로세스가 효율적이고 안전성을 보장합니다.
엄격한 환경 및 소스 코드 제어 사용
명확하고 안전한 개발 프로세스에는 별도의 환경과 소스 코드 제어를 적절하게 사용해야 합니다.
많은 고객이 최소 두 개 이상의 별도 환경을 사용하는 경우가 많습니다. 일반적인 개발, 테스트, 스테이지 및 운용 환경입니다. 환경에서 환경으로 이관에 대해 엄격한 제어를 사용합니다.
소스 제어 시스템에서 아티팩트의 일관성을 보장해야 합니다.
- 테이블 생성을 위한 메타데이터
- 샘플 및 소스 데이터
- ETL 코드
- PaaS 버전 및 패치 레벨
메타데이터 변경을 제어하는 "메타데이터 관리인" 을 고려하고 모든 개발자가 동일한 정의를 사용할 수 있도록 합니다. 또한 아티팩트를 개발 환경 이외의 다른 환경으로 가져올 시기를 제어하는 "릴리스 관리자" 를 지정하고 어떤 환경에서 어떤 환경을 사용하는지에 관계없이 항상 알 수 있는 사용자를 지정합니다.
전용 환경에는 여러 가지 이점이 있습니다. 운용 환경 이외에도 dev, test 및 performance 환경을 고려합니다. 필요에 따라 이러한 환경을 확장할 수 있습니다.
Dev 환경에서:
- 코딩에 대한 모든 변경사항(사소한 것라도) 이 개발되었습니다.
- 단위 테스트(샘플 데이터 사용 – 더 빠른 실행을 위해 실제 데이터의 하위 세트 사용) 가 수행됩니다.
- 판촉할 준비가 완료된 코드는 다음과 같이 식별되어야 합니다. 코드를 검토하고 테스트 또는 프로덕션 환경으로 자동 이관하는 프로세스를 구현할 수 있습니다.
QA 환경에서:
- Dev에서 수행한 변경사항의 통합입니다(판촉에 대해 검증된 변경사항만 해당).
- 동일한 메타데이터, 일관성 있는 조정 등을 사용하고 해당 코드가 제대로 실행되는지 검증하는 것입니다.
- 코드 변경이 허용되지 않습니다.
성능 테스트에 사용되는 추가 환경은 이점이 있습니다. 성능 환경에서:
- 코드 성능에 대한 기준 요소 설정
- 성과 팀에서만 허용되는 코드 변경을 제한하여 성과 향상을 검증합니다.
- 개발 과정에서 구현할 수 있도록 병목을 식별하고 조사하며 필요한 변경 사항을 보고합니다.
- QA 팀에서 인증한 모든 코드로 성능을 계속 모니터링하여 성과 편차 및 주소 문제를 식별합니다.
운용 환경에서 계속 성능을 모니터하는 것이 중요합니다. 환경 저하를 경고하는 경우가 있습니다. 특히, Oracle은 SPM(SQL 계획 관리) 을 사용하여 실행 계획을 제어할 것을 권장합니다. 운용 환경의 실행 계획 변경으로 인해 오류가 발생할 수 있으며, 테이블 로드로 인해 실행 계획 변경 위험이 발생할 수 있습니다.
관리 태스크 자동화
수동 관리 작업은 시간이 걸리고 위험을 추가합니다.
- 환경을 수동으로 재설정하여 로드를 재시도합니다(코드 오류, 제품 버그, 코드 변경 등으로 인해). 는 SQL 문을 수동으로 실행하는 개발자에 의존합니다.
- 수동 프로세스가 오류 발생이며 추가 오류가 다음 시도를 지연할 수 있습니다.
- 수동 프로세스 속도가 느림: 개발자가 수행 중인 작업을 주의해서 주의해야 하며, 많은 시간을 두 번 확인하여 올바른 작업을 마쳤는지 확인해야 합니다.
- 오류는 비용이 많이 듭니다. 오류(잠재적으로 지워진 데이터를 다시 로드해야 함) 가 개발 작업을 지연시킬 수 있습니다.
- 새 개발자의 온보딩은 더 느리며, 수동 프로세스를 따르기 위해 교육을 받아야 하므로 문제가 발생할 수 있습니다.
관리자가 몇 개의 매개변수를 설정하고 이미 검증된 작업을 실행하여 매번 올바른 태스크를 수행할 수 있도록 관리 태스크를 완전히 자동화해야 합니다.
다음 작업 자동화.
- 환경 데이터, 변수 및 매개변수를 재설정하여 로드 재시도를 허용합니다.
- 환경 재구축: 필요한 경우 PaaS 툴 및 패치, 메타 데이터, PaaS 코드 여기에는 대상 환경의 초기 로드를 실행하는 기능이 포함되어야 합니다.
- Oracle Data Integrator 로그 및 시나리오 보고서 비우기(성능 향상): 패키지에서 사용 가능한
OdiPurgeLog
툴을 사용하여 전용 시나리오를 생성하고 일정을 잡을 수 있습니다. - 성공한 로드에 사용된 스테이지 테이블을 비웁니다.
- 성공적으로 로드된 파일을 비우거나 다시 찾습니다.
- 패치를 적용할 때 자동 설치(개발 환경에서 패치 작업 프로세스를 기록한 다음 다른 환경에서 재생) 를 사용합니다.
패치 작업 관리
패치 작업은 최신 보안 및 버그 수정으로 시스템 업데이트를 유지하는 것이 중요하지만 유지 관리되는 패치 적용 레지스트리가 취약성을 생성하고 예상치 않은 작동 중지 시간 이벤트를 유발할 수 있습니다.
Oracle 권장 사항:
- 조직 내 사용자가 패치 작업을 위해 Oracle에서 경보를 수신하고 이에 응답합니다.
- 모든 환경의 패치 적용 레벨을 문서화합니다. 일부 서비스는 Oracle에 의해 자동으로 패치되어 업그레이드되지만 고유하지 않은 서비스 및 특히 모든 온-프레미스 인스턴스에 수동으로 패치를 적용해야 할 수도 있습니다.
- 패치 작업 창 정의 수동 패치 적용의 경우, 사용자에 대한 중단이 가장 적은 시간 창을 식별합니다.
사용자 계정 모범 사례 따르기
사용자 계정에 대한 모범 사례를 따르면 데이터, 환경 및 통합의 보안이 보장됩니다.
각 개발자에게 감독자 권한이 부여된 경우에도 고유한 Oracle Data Integrator 사용자 계정이 있어야 합니다. 계정을 공유하지 않습니다. 분리된 사용자 계정은 통신을 개선하고 다음을 가능하게 합니다.
- 잠긴 객체는 객체를 편집 중인 사용자를 표시합니다.
- 최종 업데이트에는 객체 최종 수정자 및 시간이 표시됩니다.
Oracle Data Integrator가 데이터베이스에 액세스해야 하는 경우:
- 특별히 Oracle Data Integrator에 대한 전용 데이터베이스 사용자를 생성합니다. 개별 사용자의 계정 또는 다른 서비스에서 사용되는 계정을 재사용하지 마십시오.
- Oracle Data Integrator 사용자는 스테이지 스키마의 소유자여야 합니다(생성, 삭제, 삽입, 업데이트 및 삭제 작업을 수행하는 데 사용됨).
- Oracle Data Integrator 사용자는 다른 스키마(선택, 삽입, 갱신 및 삭제) 에 대해 실제 사용으로 제한된 권한을 가져야 합니다.
검증된 유틸리티 사용
일부 도구는 다른 사용자가 환경에서 작동하도록 입증된 항목을 파악하고, 새 팀 멤버가 사용할 항목을 인식하도록 표준을 문서화하는 등 더 좋습니다.
예를 들어, 다음과 같습니다.
- 키 생성: 키에 대한 형식이 여러 개 있습니다. 개발자가 사용해야 하는 올바른 키 형식을 문서화해야 합니다. 예를 들어, RSA 형식을 사용해야 하며 OpenSSH 형식을 금지할 수 있습니다.
- ZIP 유틸리티: 일부 콘텐츠가 다른 유틸리티와 동일한 방식으로 압축되지 않았습니다. 파일을 압축하는 데 사용되는 압축 알고리즘을 제어할 수 있는지 확인합니다. Oracle은 7Zip을 사용할 것을 권장합니다.