[OutSystems] 기능 구조(Feature toggles)를 시도해 보십시오.

4대규모 시스템의 개발과 배송 문서에서 설명한 기능 구조(Feature toggles)의 설치 방법.

기능 각도


상기 "대규모 시스템의 개발과 배송"
기능 각도는 응용 프로그램에 기반한 발표 방법이다.공식 코드를 디버깅하지 않은 상태에서 전환 기능의 유효/무효를 설정하고 시스템 동작을 변경하는 메커니즘을 설정합니다.
이렇게 쓰여 있다.실현 방법은 다음과 같다.
일반적으로 기능 구조는 응용 프로그램 논리와 UI 요소를 조건문으로 둘러싸고 저장된 설정 설정에 따라 기능을 사용하거나 사용하지 않습니다.
OutSystems가 이를 실현하는 방법에 대해 토론을 시도해 봅시다.

환경을 확인하다


Personal Environment(Version 11.12.0 (Build 30002))
Service Studio (Version 11.11.9)
Reactive Web Appliance 확인 작업을 만듭니다.

설치 중인 기능이 포함된 상태에서 게시할 수 있습니다


OutSystems의 코드 관리에는 분기 기능이 없고 환경마다 Trunk가 하나씩 있습니다.
이미 발표된 앱을 추가 개발하는 과정에서 악명 높은 방식 등을 통해 발표하면 악명 높은 기능이 개발되고 있다는 것이다.
이럴 때는 상위 환경에서 직접 수정(=몸풀기)한 뒤 이를 수정해 눈앞 환경에 반영하는 방법이 있다.
이외에도 개발 중인 기능의 유효성을 판단할 수 있는 로고를 준비해 개발 환경에서만 열어 대응할 수 있다.이것은 기능 미끄럼틀이다.

태그는 사이트 등록 정보에 의해 관리됩니다.


환경마다 하나의 표지만 있기 때문에 사이트 속성에 저장하는 것이 가장 좋다.
Boolean형으로 IsFeatureEnabled라는 사이트 속성을 제작했습니다.Default Value는 본 공연에서 실수로 효력이 발생하지 않도록 가짜로 설정되어 있습니다.

기능 레이아웃이 활성화된 경우에만 표시되는 UI


Screen Template "Admin Dashboard"를 제작하여 동작 확인용 화면을 준비합니다.

여기서는 기능 각도를 사용하여 특정 환경에만 표시되는 UI를 만듭니다.
배치된 곳은 제목 옆(위의 캡처가 노란색으로 칠된 부분)이다.

Data Action을 통한 사이트 속성 얻기


사이트 속성이 서버 쪽에 있으므로 Data Action을 정의하면 화면에서 닿는 곳으로 가져옵니다.
화면을 마우스 오른쪽 버튼으로 클릭→Fetch Data from Other Source를 선택합니다.
아래와 같이 실시한다.Data Action의 Output Parameter에 사이트 속성을 편집하기만 하면 됩니다.

Data Action 출력 변수를 사용하여 표시된 UI 전환


Condition에서 데이터 Action의 출력 변수를 설정하는 If Widget을 구성합니다(웹 사이트 속성 값 편집).이렇게 하면 True 분기의 UI는 사이트 속성 IsFeatureEnnabled가 True인 환경에서만 표시됩니다.

개발 담당자가 로고를 설정하다


이 경우 개발 중인 환경에서만 사이트 속성의 로고를 열 수 있습니다.개발 환경이기 때문에 일은 개발 책임자다.
개발 환경의 서비스 센터에서 사이트 속성을 정의하는 모듈의 편집 화면을 엽니다.
Site Properties 탭을 열고 Is Feature Enabled 링크를 클릭하여 값을 True로 설정하고 Apply 단추를 클릭합니다.

개발 이외의 QA와 정식 공연은 미리 묵인하는 휴가다.

특정 사용자에게만 기능 제공


위와 다른 패턴의 기능 구조로 특정 그룹의 사용자에게만 새로운 기능을 제공하고, 문제가 없음을 확인한 뒤 서서히 제공하는 사용자(카나리아 발표)를 늘린다.
예를 들어, REST API에서 제공하는 서비스를 다른 서비스로 전환하는 것이 좋습니다.같은 프로그램 라이브러리를 직접 사용하지만 요청한 사용자가 특정 사용자라면 요청자를 다른 서비스로 전환합니다.

아키텍처


이 경우 OutSystems에서 권장하는 스키마 모델이 있습니다.
3합작 모델그럼에도 불구하고 응용 프로그램에서 외부 서비스의 모듈을 직접 호출하지 말고 중간에 추상화된 모듈을 설치해야 한다는 것이다.

위 그림의 항목은 다음과 같습니다.
- 구형 서비스: 이전, 현재 사용 중인 서비스
- Integration Service 1: 이전 서비스를 관리하는 모듈
- 신규 서비스: 전환 후 신규 서비스
- Integration Service 2: 새 서비스를 관리하는 모듈(신설)
-ColService: 사용자 애플리케이션에서 직접 호출되는 모듈입니다.이전 조건이 나오기 전부터 수강생에게 이 층을 씹게 하기 때문에 이번 요건이 생겼을 때도 이용자 앱 시행에 지장을 주지 않고 변경된다.

Core Service에 추가된 변경 사항


Core Service 내 Public = Yes 의 Action 시작 부분에서 If 를 구성합니다.
If의 Condition을 통해 문제의 특정 사용자에 적합한지 판단하고, 적합할 경우 이전처럼 새로운 서비스 방면의 모듈(Integration Service 2)을 실행하고, 그렇지 않으면 이전처럼 낡은 서비스 방면의 모듈을 실행한다.
특정 사용자의 판단에는 몇 가지 방법이 있다.
- Role: Check Action을 통해 모듈 내에서 제작된 Role 판정 가능
- Group: Users 응용 프로그램 정의의 특정 Group에 속하는지 여부에 따라 결정됩니다.(System)의 그룹User Enity 사용 가능
- 관리용 Enity: 관리 대상 사용자를 위한 전용 Enity를 만드는 방법

공식 문서


Feature toggle in OutSystems
2021/7/24까지 일본어 번역이 없는 것 같아요.

좋은 웹페이지 즐겨찾기