KR102045136B1 - 애플리케이션 배포를 위한 맞춤 통신 채널들 - Google Patents

애플리케이션 배포를 위한 맞춤 통신 채널들 Download PDF

Info

Publication number
KR102045136B1
KR102045136B1 KR1020177035635A KR20177035635A KR102045136B1 KR 102045136 B1 KR102045136 B1 KR 102045136B1 KR 1020177035635 A KR1020177035635 A KR 1020177035635A KR 20177035635 A KR20177035635 A KR 20177035635A KR 102045136 B1 KR102045136 B1 KR 102045136B1
Authority
KR
South Korea
Prior art keywords
application
deployment
message
endpoint
communication channel
Prior art date
Application number
KR1020177035635A
Other languages
English (en)
Other versions
KR20180004802A (ko
Inventor
단비 하르샤 카필라
Original Assignee
아마존 테크놀로지스, 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 아마존 테크놀로지스, 인크. filed Critical 아마존 테크놀로지스, 인크.
Publication of KR20180004802A publication Critical patent/KR20180004802A/ko
Application granted granted Critical
Publication of KR102045136B1 publication Critical patent/KR102045136B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0869Network architectures or network communication protocols for network security for authentication of entities for achieving mutual authentication

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Stored Programmes (AREA)

Abstract

애플리케이션 배포 서비스(ADS) 구성요소는 애플리케이션과 연관된 배포 아티팩트들을 제출하기 위해 클라이언트들을 위한 통신 채널을 수립하기 위한 요청을 수신한다. 엔드포인트들의 세트는 채널에 대해 생성된다. 엔드포인트들 중 하나를 통해 메시지를 수신하는 것에 응답하여, ADS는 메시지에 표시된 배포 태스크가 수행될 수 있기 전에 부가적인 보안 검증 동작들이 수행될 것을 결정한다. 보안 검증 동작들이 완료된 후, 태스크가 구현된다.

Description

애플리케이션 배포를 위한 맞춤 통신 채널들
많은 회사들 및 다른 조직들은 같은 장소에 배치되거나(예로서, 로컬 네트워크의 부분으로서) 또는 대신에 다수의 개별적인 지리적 위치들에 위치되는(예로서, 하나 이상의 사설 또는 공중 중간 네트워크들을 통해 연결되는) 컴퓨팅 시스템들과 함께와 같은, 그것들의 동작을 지원하기 위해 다수의 컴퓨팅 시스템들을 상호 연결하는 컴퓨터 네트워크들을 동작시킨다. 예를 들면, 단일 조직에 의해 및 그것을 대표하여 동작되는 사설 데이터 센터들, 및 고객들에게 컴퓨팅 리소스들을 제공하기 위해 비즈니스들과 같은 엔티티들에 의해 동작되는 공중 데이터 센터들과 같은, 상당한 수들의 상호 연결된 컴퓨팅 시스템들을 하우징한 데이터 센터들은 흔히 있는 일이 되어가고 있다. 몇몇 공중 데이터 센터 조작자들은 다양한 고객들에 의해 소유된 하드웨어를 위한 네트워크 액세스, 전력, 및 안전한 설치 설비들을 제공하지만, 다른 공중 데이터 센터 조작자들은 또한 그것들의 고객들에 의한 사용을 위해 이용 가능해진 하드웨어 리소스들을 포함하는 "전체 서비스" 설비들을 제공한다.
몇몇 큰 클라우드-기반 제공자 네트워크들은, 다양한 애플리케이션들을 구현하기 위해 사용될 수 있는 가상 컴퓨팅 서비스들을 포함한, 다수의 네트워크-액세스 가능한 서비스들을 구현한다. 예를 들면, 가상 컴퓨팅 서비스의 고객은 특정된 성능 용량들을 가진 약간의 수의 게스트 가상 기계들(또한 계산 인스턴스(instance)들로서 알려진)의 할당을 요청하며, 다중-티어 웹-기반 애플리케이션을 셋업하도록 웹 서버들, 애플리케이션 서버들, 데이터베이스 서버들 등과 같은 게스트 가상 기계들을 구성할 수 있다. 데이터베이스 서비스들, 저장 서비스들 등과 같은, 제공자 네트워크의 다수의 부가적인 서비스들은 복잡한 애플리케이션들의 다양한 구성요소들을 위해 이용될 수 있다.
제공자 네트워크의 몇몇 서비스들은 태스크들의 흔히-사용된 패턴들 또는 시퀀스들을 성취하기 위해 다른 서비스들의 구성요소들을 이용할 수 있다. 예를 들면, 특정한 유형들의 애플리케이션들에 대해(Ruby, PHP, 또는 Java™과 같은 일반적인 언어들로 작성된 웹-기반 애플리케이션들과 같은), 애플리케이션 배포 작업 흐름들은 제공자 네트워크의 배포 서비스를 사용하여 대체로 또는 완전히 자동화될 수 있다. 배포 서비스의 고객이 충분한 구성 메타데이터 및 소스 또는 실행 가능 파일들의 모음을 제공한다면, 배포 서비스는 애플리케이션을 온라인으로 가져오기 위해 요구된 컴퓨팅, 저장 및 네트워킹 서비스들의 적절한 리소스들을 할당 및 구성할 수 있을 것이다. 몇몇 경우들에서, 서비스는 또한 애플리케이션의 성능을 모니터링하며 작업 부하 변화들에 기초하여 요구에 따라 리소스들을 부가하거나 또는 제거할 수 있을 것이다. 그러나, 애플리케이션 개발자들의 관점으로부터, 통상적으로 애플리케이션 배포 서비스와 통신하기 위해 이용 가능한 메커니즘들 중 일부는 다소 다루기 힘들 수 있다. 특히 빠른 코드 개발 속도들 및 다수의 개발자들을 가진 애자일(agile) 소프트웨어 개발 조직들에서, 배포 서비스의 통신 메커니즘들은 때때로 생산성을 제한할 수 있다.
도 1은 적어도 몇몇 실시예들에 따른, 맞춤화된 통신 채널들이 애플리케이션 배포 서비스를 위해 요구 시 수립될 수 있는 예시적인 시스템 환경을 예시한다.
도 2는 적어도 몇몇 실시예들에 따른, 애플리케이션 배포 서비스의 제어 평면 구성요소들 및 클라이언트들 사이에서의 예시적인 상호 작용들을 예시한다.
도 3은 적어도 몇몇 실시예들에 따른, 애플리케이션 배포 서비스의 맞춤 통신 채널들을 위해 저장될 수 있는 예시적인 메타데이터 요소들을 예시한다.
도 4a 내지 도 4e는 적어도 몇몇 실시예들에 따른, 애플리케이션 배포 서비스의 맞춤 통신 채널 엔드포인트(endpoint)를 통해 제출될 수 있는 요청들의 예들을 총괄하여 예시한다.
도 5는 적어도 몇몇 실시예들에 따른, 애플리케이션 배포 작업 흐름들을 구현하기 위해 사용될 수 있는 제공자 네트워크 서비스들의 예들을 예시한다.
도 6은 적어도 몇몇 실시예들에 따른, 배포-관련 아티팩트(artifact)들을 송신하기 위해 맞춤 통신 채널들을 구성 및 사용하기 위해 수행될 수 있는 동작들의 양상들을 예시한 흐름도이다.
도 7은 적어도 몇몇 실시예들에서 사용될 수 있는 예시적인 컴퓨팅 디바이스를 예시한 블록도이다.
실시예들이 여러 개의 실시예들 및 예시적인 도면들에 대해 예로서 여기에서 설명되지만, 이 기술분야의 숙련자들은 실시예들이 설명된 실시예들 또는 도면들에 제한되지 않는다는 것을 인식할 것이다. 도면들 및 그것에 대한 상세한 설명은 개시된 특정한 형태로 실시예들을 제한하도록 의도되지 않으며, 반대로, 의도는 첨부된 청구항들에 의해 정의된 바와 같이 사상 및 범위 내에 있는 모든 수정들, 등가물들 및 대안들을 커버하는 것임이 이해되어야 한다. 여기에서 사용된 주제들은 단지 조직 목적들을 위한 것이며 설명 또는 청구항들의 범위를 제한하기 위해 사용되도록 의도되지 않는다. 본 출원 전체에 걸쳐 사용된 바와 같이, 단어("~일 수 있다")는 의무적인 의미(즉, ~해야 한다를 의미하는)보다는, 허용적 의미(즉, ~할 가능성을 갖는을 의미하는)에서 사용된다. 유사하게, 단어들("포함하다", "포함하는", 및 "포함시키다")은, 이에 제한되지 않지만, ~을 포함하는을 의미한다.
클라이언트들 및 제공자 네트워크의 애플리케이션 배포 서비스 사이에서의 통신들을 위한 맞춤화된 보안 통신 채널들을 지원하기 위한 방법들 및 장치의 다양한 실시예들이 설명된다. 분산된 세트의 클라이언트들 또는 고객들에게 인터넷 및/또는 다른 네트워크들을 통해 액세스 가능한 하나 이상의 서비스들(다양한 유형들의 다중-테넌트(tenant) 및/또는 단일-테넌트 클라우드-기반 컴퓨팅 또는 저장 서비스들과 같은)을 제공하기 위해 회사 또는 공공 섹터 조직과 같은 엔티티에 의해 셋업된 네트워크들은 본 문서에서 제공자 네트워크들로 불리울 수 있다. 제공자 네트워크들은 또한 "공공 클라우드" 환경들로서 불리울 수 있다. 제공자 네트워크의 서비스들 중 적어도 일부(및 그러므로, 애플리케이션 배포 및 배포를 위해 사용된 리소스들 중 일부)는 몇몇 실시예들에서 가상화를 필요로 할 수 있으며 - 예로서 가상 기계들은 컴퓨팅 서비스의 클라이언트들로 할당된 컴퓨팅의 유닛들로서 사용될 수 있으며, 가상화된 저장 디바이스들은 저장 서비스의 클라이언트들에게 제공될 수 있다. 제공자 네트워크의 몇몇 서비스들은 다른 서비스들의 구성요소들을 사용하여 구축될 수 있으며 - 예로서, 데이터베이스 서비스는 기본 프로세싱 엔진들로서 가상 컴퓨팅 서비스의 가상 기계들을 사용하며, 하나 이상의 저장-관련 서비스들의 저장 디바이스들에서 데이터베이스 콘텐트들을 저장할 수 있다.
적어도 몇몇 실시예들에 따르면, 제공자 네트워크는 특정한 유형들의 애플리케이션들의 배포 태스크들의 다수의 상이한 카테고리들을 단순화하며 자동화하도록 의도된 애플리케이션 배포 서비스(application deployment service; ADS)를 포함할 수 있다. ADS의 클라이언트들은, 예를 들면, 특정된 규칙들에 따라 주어진 애플리케이션의 실행 가능 버전을 업로드할 수 있으며, ADS는 그 후, 클라이언트들이 사용되는 리소스들의 세부사항들에 관련될 필요 없이, 용량 프로비저닝(provisioning), 로드 밸런싱(load balancing), 스케일링(scaling), 애플리케이션 건강 모니터링 등의 세부사항들을 다룰 수 있다. 몇몇 실시예들에서, ADS는 예를 들면, 가상 컴퓨팅 서비스, 하나 이상의 저장 서비스들, 하나 이상의 데이터베이스 서비스들, 통지 서비스, 건강 모니터링 서비스, 로드 밸런싱 서비스, 자동-스케일링 서비스, 및 하나 이상의 데이터 캐싱 서비스들을 포함하여, 제공자 네트워크의 다수의 다른 서비스들을 사용할 수 있다. 적어도 몇몇 실시예들에서, ADS는 애플리케이션 개발자들 또는 매니저들이 배포를 위한 사전-패키징된 애플리케이션들(예로서, Java™-기반 애플리케이션들을 위한 .jar 파일들 또는 .war 파일들의 형태로)을 업로딩할 수 있는 디폴트 메커니즘들로서, 웹-기반 콘솔과 같은, 하나 이상의 프로그래매틱(programmatic) 인터페이스들을 구현하거나 또는 지원할 수 있다.
다양한 실시예들에서, ADS는 또한 개발자들 또는 애플리케이션 관리자들의 선택된 그룹들이 ADS로 배포 아티팩트들을 제출할 수 있게 하는 이-메일 채널들 또는 메시징 애플리케이션 채널들과 같은 맞춤(예로서, 애플리케이션-특정 또는 고객-특정) 보안 통신 채널들의 생성을 지원할 수 있다. 주어진 맞춤 채널에 대한 요청된 속성들에 의존하여, 채널은 개개의 소스 코드 파일들, 컴파일링된 실행 가능 파일들, 해석 가능한 스크립트 파일들, 애플리케이션들의 패키징된 버전들, 또는 구성 파일들과 같은, 배포 아티팩트들의 하나 이상의 카테고리들을 송신하기 위해 사용될 수 있다. 적어도 몇몇 실시예들에서, ADS는 클라이언트들이 맞춤화된 통신 채널들을 생성하기 위한 요청들을 제출할 수 있게 하는 프로그래매틱 인터페이스를 제공할 수 있다. 예를 들면, 소프트웨어 개발 팀의 매니저들 또는 관리자들과 같은 허가받은 당사자(party)들에 의해 제출될 수 있는 요청들은 이하에서 추가로 상세히 설명되는 바와 같이 요청된 통신의 유형(예로서, 이-메일, FTP(File Transfer Protocol; 파일 전송 프로토콜)의 하나 이상의 변형들) 또는 유사한 데이터 전송 애플리케이션들, SMS(Short Message Service; 단문 메시지 서비스) 또는 다른 메시징 애플리케이션들), 채널들을 사용하도록 허용될 클라이언트-측 엔티티들 또는 디바이스들의 세트, 보안 세부사항들, 및 채널들의 다양한 다른 특성들을 표시할 수 있다.
애플리케이션을 위한 맞춤 채널을 셋업하기 위한 요청을 수신하는 것에 응답하여, ADS의 구성요소는, 예로서 고객 데이터베이스에서 요청자의 기록들을 찾아봄으로써, 먼저 요청이 허가된 당사자로부터 온 것임을 검증할 수 있으며 이행되어야 한다. 요청이 수용 가능하다면, ADS는 요청된 채널을 위한 통신 엔드포인트들의 세트를 셋업하기 위해, 이-메일 서비스, 메시징 서비스 또는 파일 전송 서비스와 같은 하나 이상의 다른 서비스들과, 및/또는 외부 통신 서비스들과 제공자 네트워크 내에서 내부적으로 통신할 수 있다. 예를 들면, 이-메일 통신이 요청되는 일 실시예에서, 이-메일 어드레스들의 세트는 구체적으로 애플리케이션을 위한 엔드포인트들로서 수립될 수 있지만, SMS가 선호된 통신 메커니즘인 시나리오에서, SMS 목적지 번호들의 세트가 엔드포인트들로서 생성될 수 있다. 엔드포인트들의 리스트는, 예로서, 엔드포인트들을 사용하도록 허용될 소프트웨어 개발자들 또는 다른 클라이언트들의 그룹 간의 분배를 위해, 맞춤 채널의 요청자로 제공될 수 있다. 몇몇 실시예들에서, ADS 또는 요청자는, 엔드포인트들의 세트를, 예로서, 소스 코드 파일 제출을 위해 사용될 하나의 서브-그룹, 구성 변화 제출들을 위한 또 다른 서브-그룹, 및 실행 가능 파일 제출들을 위한 제 3 서브-그룹을 갖는, 서브-그룹들로 분할할 수 있다. 적어도 일 구현에서, 상이한 엔드포인트들은 - 예로서, 아티팩트들이 허가된 제출자들에 의해 송신되었고, 다-단계 및/또는 다중-당사자 인증 프로토콜이 사용될 수 있거나, 또는 제출자의 아이덴티티의 몇몇 다른 증거가 요구될 수 있음을 보장하기 위해, 셋업된 부가적인 보안 검증 요건들의 각각의 세트들을 가질 수 있다. 다-단계 인증 프로토콜에서, ADS는 하나 이상의 부가적인 검증 메시지들이 수신될 때까지(예로서, ADS로부터의 도전에 응답하여 제출자로부터) 특정한 세트의 수신된 아티팩트들에 기초하여 애플리케이션 배포에 대한 임의의 변경들을 구현하지 않을 수 있다. 다-단계 다중-당사자 인증 프로토콜에서, 아티팩트들의 전송자가 적어도 맞춤 채널을 사용하여 수신된 메시지의 유형을 제출하도록 허가받았다는 확인은, 예로서, ADS에 의해 전송된 검증 질의에 응답하여, 몇몇 다른 신뢰된 당사자로부터의 ADS에서 획득되어야 할 수 있다. 몇몇 실시예들에서, 사전-승인된 전송자 엔드포인트들(및/또는 수신인 엔드포인트들)의 각각의 "화이트 리스트들(white lists)"은 ADS에 의해 유지될 수 있으며, 배포 아티팩트를 포함한 주어진 메시지가 화이트-리스트 전송자 엔드포인트들 중 하나로부터 수신됨을 검증하는 것은 보안 검증에 충분할 수 있다. 일 실시예에서, 신뢰된 제 3 자들의 화이트-리스트는 또한 또는 대신에 다중-당사자 인증 목적들을 위해 ADS에서 유지될 수 있다(또는 다른 곳에 저장되며 ADS로부터 액세스된다).
엔드포인트 정보가 ADS의 개발자들 및/또는 다른 클라이언트들로 전파된 후, 클라이언트들은 그것들의 아티팩트들을 제출하기 시작할 수 있다. 메시지가 주어진 애플리케이션을 위해 셋업된 맞춤 채널 엔드포인트들 중 하나에서 수신될 때, ADS의 구성요소는 메시지의 콘텐트들을 파싱하며 배포-관련 페이로드(payload)를 추출할 수 있다. 페이로드에 포함된 아티팩트들의 특징에, 및/또는 채널 또는 엔드포인트에 대해 이전 셋업된 보안 규칙들에 의존하여, ADS는 먼저 하나 이상의 부가적인 보안 검증 동작들을 수행해야 할 것이다. 임의의 이러한 부가적인 검증들이 요구되며, 대응하는 동작들이 성공적으로 완료되었다면, ADS는 아티팩트들을 사용하여 하나 이상의 배포 태스크들을 구현할 수 있다. 예를 들면, 아티팩트가 실행 가능 패키지이면, 패키지는 적절한 세트의 실행 플랫폼들로 송신되고 사용되는 프로그래밍 환경의 규칙들에 따라 배포될 수 있으며 - 예를 들면, 애플리케이션 서버 프로세스 또는 웹 서버 프로세스는 몇몇 경우들에서 재시작될 수 있다. 아티팩트가 소스 코드 파일 또는 소스 코드 파일들의 세트이면, 몇몇 실시예에서 ADS는 애플리케이션의 소스 코드 계층에서 어디에 소스 코드가 위치되는지를 정확하게 결정하고, 수신된 소스 코드를 사용하여 애플리케이션의 새로운 버전을 컴파일링하며, 애플리케이션의 새로운 버전을 배포할 수 있다. 아티팩트가 구성 변화들을 포함하면, 몇몇 실시예들에서 ADS는 변화들이 어떻게 적용될지를 결정하며 그 후, 예를 들면, 하나의 구성 파일을 또 다른 것으로 대체함으로써, 애플리케이션의 배포 타겟 플릿(fleet)의 부분으로서 부가적인 리소스들을 획득함으로써, 플릿으로부터 하나 이상의 리소스들을 제거함으로써, 또는 몇몇 다른 수단들에 의해, 요청된 변화들이 실현 가능하다고 간주된다면 변화들을 적용할 수 있다. ADS는 따라서 상이한 세트들의 동작들을 수행함으로써 상이한 제출들에 응답할 수 있다. 적어도 몇몇 실시예들에서, ADS는, 애플리케이션의 상태를 수정하기 전에, 애플리케이션의 완전한 기능적 상태의 스냅샷(예로서, 소스 및/또는 실행 가능 파일들)이 저장소에 저장됨을 보장할 수 있다. 저장된 상태는 새롭게 제출된 변화들이 성공적이지 않다면 ADS에 의해 회복될 수 있다.
이전에 언급된 바와 같이, ADS의 상이한 세트들의 클라이언트들(예로서, 애플리케이션 코드의 다양한 부분들 상에서 작동하는 소프트웨어 개발자들, 애플리케이션 구성 전문가들 등)은, 시행되는 각각의 보안-관련 규칙들을 갖고, 몇몇 실시예들에서 맞춤 채널 엔드포인트들의 각각의 세트들을 사용하기 위한 허가들을 승인받을 수 있다. 이-메일 또는 SMS와 같은 사용하기 쉬운 메커니즘들을 셋업함으로써, 클라이언트들이, 클라이언트들 모두가 인터페이스들의 ADS의 디폴트 세트를 사용해야 하는 경우보다 애플리케이션들로 변화들을 제출하는 것이 상당히 더 용이해질 수 있다. 그 결과, 적어도 몇몇 경우들에서, 소프트웨어 개발 프로세스는 대응하는 애플리케이션들에 대해 속도가 높여질 수 있다. 다양한 실시예들에서, 맞춤 채널들은 특정한 클라이언트들에 대한 개발 프로세스의 특정한 단계들 동안 종료되거나 또는 폐쇄될 수 있으며 - 예로서, ADS는 요구에 따라 맞춤 채널들 또는 채널 엔드포인트들의 서브세트들을 불능시키기 위해 사용될 수 있는 옵트-아웃(opt-out) 인터페이스들을 지원할 수 있다. 몇몇 실시예들에서, 생성된 각각의 엔드포인트는 연관된 만료 시간을 가질 수 있으며, 그 후 엔드포인트는 그것이 재개되지 않는다면 더 이상 사용되지 않을 것이다. 맞춤 통신 채널들이 애플리케이션 배포 서비스들에서 셋업되고 사용될 수 있는 방식의 다양한 다른 양상들이 이하에서 추가로 상세히 설명된다.
예시적인 시스템 환경
도 1은 적어도 몇몇 실시예들에 따른, 맞춤화된 통신 채널들이 애플리케이션 배포 서비스를 위해 요구 시 수립될 수 있는 예시적인 시스템 환경을 예시한다. 도시된 바와 같이, 시스템(100)은 애플리케이션 배포 서비스(ADS)(110)가 구현되는 제공자 네트워크(102)를 포함한다. ADS(110)는 클라이언트들이 다양한 애플리케이션들을 배포하고 관리하는 프로세스를 단순화할 수 있게 할 것이다. 예를 들면, ADS(110)에 의해 지원된 디폴트 통신 채널 또는 맞춤 통신 채널들을 사용하여, 클라이언트는 애플리케이션 콘텐트들 및 구성 설정들을 제공할 수 있으며 ADS는 그 후 애플리케이션을 위해 필요한 리소스들의 상태를 획득하고, 구성하며 관리할 책임을 맡을 수 있다. 묘사된 실시예에서, ADS(110)의 배포 제어기 구성요소들(120)은 일 애플리케이션("App1")을 제 1 세트의 리소스들(152A)로, 및 제 2 애플리케이션("App2")을 제 2 세트의 리소스들(152B)로 배포하였다. 각각의 리소스 세트(152)는 묘사된 예에서 컴퓨팅 플랫폼들의 세트(153)(예로서, 각각 App1 및 App2에 대한 컴퓨팅 플랫폼들(153A 및 153B)) 및 저장 플랫폼들의 세트(154)(예로서, 각각 App1 및 App2에 대한 154A 및 154B)를 포함한다. 상이한 애플리케이션들을 위해 사용된 리소스 세트들(152)은 몇몇 실시예들에서 제공자 네트워크의 서비스들의 다중-테넌트 특징으로 인해 중첩할 수 있다.
도시된 바와 같이, ADS(110)는 애플리케이션 구성 메타데이터 저장소(112) 및 애플리케이션 소스 저장소(114)를 포함한다. 애플리케이션 구성 메타데이터 저장소(112)는 애플리케이션을 위해 요구된 리소스들의 종류들, 리소스들이 상호 연결되는 방식, 애플리케이션에서 리소스들에 의해 맡겨진 역할들(예로서, "웹 서버" 대 "애플리케이션 서버" 대 "데이터베이스 서버"), 애플리케이션의 리소스 세트로부터 리소스들을 부가하거나 또는 제거하기 위해 사용될 규칙들 등을 표시한 각각의 관리된 애플리케이션(App1 및 App2와 같은)에 대한 각각의 기록들을 포함할 수 있다. 애플리케이션 소스 저장소(114)는 묘사된 실시예에서 각각의 관리된 애플리케이션에 대한 소스 코드의 하나 이상의 계층들(및/또는 대응하는 실행 가능 코드 모듈들)을 포함할 수 있다. 적어도 몇몇 실시예들에서, 소스 코드 및/또는 구성 메타데이터는 제공자 네트워크의 하나 이상의 저장 서비스들에서 물리적으로 저장될 수 있으며, ADS는 소스 코드 및 구성 메타데이터가 위치되는 위치들에 대한 포인터들을 포함할 수 있다.
ADS는 묘사된 실시예에서 하나 이상의 제어-평면 또는 관리적 프로그래매틱 인터페이스들(124)을 구현할 수 있어서, 허가받은 클라이언트들이 소스 또는 실행 가능 파일들, 전체 실행 가능 프로그램들, 및/또는 다양한 유형들의 구성 설정들과 같은 배포-관련 아티팩트들을 제출하기 위해 사용될 맞춤 통신 채널들을 셋업하기 위한 요청들을 포함한 다양한 유형들의 요청들을 제출할 수 있게 한다. 인터페이스(124)를 통해 수신된 맞춤 통신 채널을 셋업하기 위한 요청에 응답하여, ADS는 EP1 내지 EPn과 같은, 하나 이상의 맞춤 통신 채널 엔드포인트들(122)의 수립을 개시할 수 있다. 예를 들면, EP1 내지 EPn은 각각의 이메일 어드레스들, SMS/텍스팅 목적지 어드레스들, FTP-형 전송들을 위해 사용될 IP(인터넷 프로토콜) 어드레스들 및 포트들, 또는 이러한 상이한 유형들의 엔드포인트들의 조합들을 포함할 수 있다. EP들의 세부사항들은, 애플리케이션 개발자들 및/또는 다른 유형들의 클라이언트들로의 추가 전파를 위해, ADS에 의해 요청 당사자들로 제공되었다. 묘사된 실시예에서, 예를 들면, EP1은 App1 개발자들에 대해 셋업된 반면, EPn은 App2 개발자들에 대해 셋업되었다(예로서, App1 및 App2 관리자들 또는 소유자들로부터 수신된 각각의 채널 셋업 요청들에 응답하여). 몇몇 실시예들에서, 주어진 애플리케이션은 그것에 대해 셋업된 다양한 상이한 맞춤 채널 엔드포인트들을 가질 수 있다 - 예로서, 이메일 어드레스들의 일부 수, 텍스팅 목적지들의 일부 수 등. 맞춤 채널 엔드포인트들은 이메일 서비스 구성요소, 메시징 서비스 구성요소 등과 같은, 몇몇 실시예들에서 하나 이상의 다른 엔티티들에 의해 ADS의 요청 시 생성될 수 있다. 맞춤 채널들의 부재 시 또는 그것에 더하여, ADS의 클라이언트들은 다양한 유형들의 배포-관련 아티팩트들을 제출하기 위해 디폴트 통신 채널 엔드포인트들(123)(웹-기반 관리 콘솔들, 애플리케이션 프로그래밍 인터페이스들, 맞춤 GUI 인터페이스들, 명령 라인 툴들 등에 대한 엔드포인트들 또는 어드레스들과 같은)을 사용할 수 있다. 적어도 하나의 실시예에서, 맞춤 채널 생성 요청들이 또한 디폴트 통신 채널 엔드포인트들(123)을 통해 제출될 수 있다.
App1 또는 App2와 같은 주어진 애플리케이션에 대해 요청된 맞춤 채널 엔드포인트들이 셋업된 후, 애플리케이션에 대한 다양한 유형들의 배포 아티팩트들을 포함한 메시지들은, 예로서, 170A 또는 170B와 같은 애플리케이션 개발자 디바이스들(170)로부터, 엔드포인트들로 제출될 수 있다. 예를 들면, 서버들, 데스크탑 개인용 컴퓨터들과 같은 워크스테이션들, 랩탑들, 태블릿들, 스마트폰들 등을 포함한, 다양한 컴퓨팅 디바이스들이 상이한 실시예들에서 애플리케이션 개발자 디바이스들(170)로서 사용될 수 있다. 묘사된 실시예에서, 각각의 개발자 디바이스(170)는 ADS의 디폴트 통신 채널을 위해 사용 가능한 각각의 이-메일 클라이언트(155)(예로서, 155A 및 155B), 각각의 SMS/텍스팅 애플리케이션 클라이언트(156)(예로서, 156A 및 156B), 및 각각의 콘솔 애플리케이션(예로서, 웹 브라우저)(157)을 포함하는 것으로 도시된다. 디바이스(170A)의 이-메일 클라이언트(155A)는 App1의 배포 아티팩트들을 EP1로 제출하기 위해 사용될 수 있는 반면, SMS/텍스팅 애플리케이션(156B)은 App2의 배포 아티팩트들을 EPn으로 제출하기 위해 사용될 수 있다. 몇몇 구현들에서, 이-메일 클라이언트들, SMS/텍스팅 애플리케이션들 등과 같은 클라이언트-측 구성요소들 중 일부 또는 모두는 통합 개발 환경(integrated development environment; IDE)들 및/또는 다른 소프트웨어 개발 툴들에 대한 플러그-인들 또는 애드-온들로서 구현될 수 있다.
디바이스(170)로부터의 특정한 메시지가 엔드포인트(122)에서 수신될 때, 그것은 포함된 배포 아티팩트들을 추출하기 위해 파싱될 수 있다(예로서, 배포 제어기(120)에 의해 또는 그것을 대신하여). 엔드포인트들에서 수신된 메시지들의 콘텐트들은 여기에서 "페이로드들"로서 불리울 수 있다. 메시지에 포함된 배포 아티팩트들의 종류는, 몇몇 실시예들에서 개시될 배포 동작들 또는 태스크들을 표시하거나, 또는 이를 추론하기 위해 사용될 수 있다. 예를 들면, Java™의 버전과 호환 가능한 .war 또는 .jar 파일이 메시지에 포함된다면, 배포 제어기(120)는 파일이 배포를 위한 리소스 세트(150)(예로서, App1의 리소스 세트(152A) 또는 App2의 리소스 세트(152B))의 하나 이상의 목적지 리소스들로 복사됨을 추론할 수 있으며, 구성 파일이 메시지에 포함된다면, 배포 제어기는 저장소(112)에 구성 설정들을 저장하며 그 후 구성 설정들을 이용할 수 있다. 몇몇 경우들에서, App1 및/또는 App2를 위한 사용 시 애플리케이션 실행 환경의 종류에 의존하여, EP1 또는 EPn을 통한 주어진 제출은 코드 저장소(114)에서 및 실행 리소스 세트들(152)에서 변화들을 야기할 수 있다. 적어도 몇몇 실시예들에서, 애플리케이션의 보안 설정들, 통신 채널 또는 사용된 엔드포인트와 같은 다양한 인자들에 의존하여, 부가적인 보안 검증 단계들이 임의의 변화들이 이루어지기 전에 배포 제어기(120)에 의해 수행되거나 또는 개시될 수 있다. 검증 단계들은 예를 들면, 제 2 메시지가 제출자로 되돌려 보내지는, 다-단계 인증 절차를 포함할 수 있으며, 제 2 메시지에 대한 시기적절한 응답은 전송자의 아이덴티티를 인증하기 위해 사용된다. 또 다른 접근법에서, 다중-당사자 검증 메커니즘이 사용될 수 있으며, 여기에서 맞춤 채널 엔드포인트들을 통해 수신된 적어도 몇몇 유형들의 제출들에 대해, 제출된 변화에 대한 승인 요청이 전송자(예로서, "피어" 개발자 또는 신뢰 기관)보다는 상이한 당사자로 전송될 수 있으며, 요청된 변화는 그것이 승인될 때까지 수용되지 않을 것이다. 이러한 검증 단계들이 실패한다면, 대응하는 아티팩트들을 포함한 메시지는 다양한 실시예들에서, 예로서 조용히 또는 에러의 표시가 전송자로 제공된 후, 폐기될 수 있다.
맞춤 채널 셋업의 개요
도 2는 적어도 몇몇 실시예들에 따른, 애플리케이션 배포 서비스의 제어 평면 구성요소들 및 클라이언트들 사이에서의 예시적인 상호 작용들을 예시한다. 도시된 바와 같이, 특정한 관리된 애플리케이션("Appk")에 대한 신뢰된 채널 요청자(210)는 맞춤 통신 채널에 대한 셋업 요청(230)을 애플리케이션 배포 서비스(ADS)의 제어-평면 구성요소(220)로 송신할 수 있다. 신뢰된 요청자는, 예를 들면, Appk 배포들에 대하여 관리적 특권들이 ADS에 의해 승인된 사용자 식별자를 가질 수 있다. 셋업 요청은 요구된 통신 채널의 종류(예로서, 이-메일 대 SMS) 및 요구된 개별 엔드포인트들의 수 및/또는 맞춤 채널을 통해 ADS에서 수신된 통신들을 위해 요구된 부가적인 보안 검증 단계들(만약에 있다면)과 같은, 채널의 다양한 원하는 속성들을 나타낼 수 있다. 하나 이상의 웹-기반 콘솔들, 애플리케이션 프로그래밍 인터페이스(application programming interface; API)들, 명령 라인 툴들, 독립형 그래픽 사용자 인터페이스들 등과 같은, 다수의 상이한 프로그래매틱 인터페이스들이 다양한 실시예들에서 셋업 요청(230) 및/또는 ADS와 연관된 다른 유형들의 관리적 요청들을 위해 지원될 수 있다.
요청이 허가받은 및 신뢰된 당사자로부터 온 것임을 검증하는, 셋업 요청을 인증한 후, ADS 구성요소(220)는 지정된 세트의 속성들을 가진 맞춤 채널이 요청자(210)를 대신하여 생성됨을 표시하는, 내부 요청(232)을 묘사된 실시예에서 제공자 네트워크의 통신 서비스(225)의 구성요소로 전송할 수 있다. 통신 서비스(225)는 Appk를 위한 맞춤 통신 채널을 위해 사용될, 엔드포인트들의 세트(272)(Appk-EP1, Appk-EP2, Appk-EP3, Appk-EP4 등)를 수립하기 위해 필요한 동작들을 수행할 수 있으며 - 예로서, 새로운 세트의 이-메일 어드레스들 또는 SMS 목적지 어드레스들이 생성될 수 있고, 어드레스들의 사전-할당 풀로부터의 어드레스들의 세트가 엔드포인트 세트(272)를 위해 선택될 수 있고, 새로운 채널을 통해 예상된 메시지들을 핸들링하기 위한 컴퓨팅 및/또는 네트워킹 리소스들이 할당될 수 있다. 통신 서비스(225)는 묘사된 실시예에서 엔드포인트 세트(272)를 나타내는 응답(234A)을 ADS 구성요소(220)로 전송할 수 있다. 몇몇 실시예들에서, ADS 구성요소는 예로서, 내부 요청(232)을 제공자 네트워크의 통신 서비스(225)로 전송하는 대신 또는 그것에 더하여, 제공자 네트워크 밖에서 제 3 자 통신 서비스들과 같은 엔티티들로 맞춤 채널들의 구성을 위한 요청들을 전송해야 할 것이다. 예를 들면, 일 실시예에서, 전기통신 서비스 제공자 및/또는 외부 DNS 서버는 맞춤 채널의 구성을 돕기 위해 접촉될 수 있다.
엔드포인트 세트(272)에 관한 정보를 표시하는 응답(234B)은 그 후 묘사된 실시예에서 신뢰된 채널 요청자(210)로 전달될 수 있다. 엔드포인트 정보의 각각의 서브세트들은 예로서, 각각 클라이언트 디바이스들(252A 및 252B)로 전송된 메시지들(235A 및 235B)을 통해, Appk의 준비 또는 테스팅 시 수반된 다양한 개발자들 또는 다른 클라이언트들로 제공될 수 있다. 몇몇 실시예들에서, 예를 들면, 엔드포인트들의 세트(272)는 대응하는 클라이언트들의 역할들에 기초하여 분할될 수 있으며 - 몇몇 개발자들은 엔드포인트들의 하나의 서브세트로의 액세스를 승인받을 수 있는 반면, 다른 개발자들은 상이한 서브세트로의 액세스를 승인받을 수 있다. 다양한 실시예들에서, 몇몇 엔드포인트들은 구체적으로 소스 코드 또는 실행 가능 코드에 대해 지정될 수 있는 반면, 다른 것들은 구성 변화 요청들에 대해 지정될 수 있다. 묘사된 예에서, 클라이언트 디바이스(252A)에서 비롯된 소스 코드 또는 실행 가능 패키지들(240A)은 Appk-EP1로 향해질 수 있는 반면, 클라이언트 디바이스(252B)에서 비롯된 소스 코드 또는 실행 가능 패키지(240B)는 Appk-EP3으로 향해질 수 있다. Appk 배포들에 대한 각각의 구성 변화들을 나타내는 구성 파일 세트들(241A 및 241B)은 Appk-EP2(클라이언트 디바이스(252A)로부터) 및 Appk-EP4(클라이언트 디바이스(252B)로부터)로 송신될 수 있다.
각각의 경우에, 메시지가 세트(272)의 엔드포인트에서 클라이언트 디바이스로부터 수신된 후, ADS는 이전에 설명된 것들과 같은 보안 검증의 부가적인 단계들이 메시지에 포함된 배포 아티팩트들이 대응하는 태스크들 또는 작업 흐름들에서 이용되거나 또는 사용되기 전에 적용될지를 결정할 수 있다. 몇몇 경우들에서, 통신 채널의 요청된 구성에 의존하여, 어떤 부가적인 보안 체크들도 요구되지 않을 수 있다. 적어도 하나의 실시예에서, 맞춤 통신 채널을 셋업하기 위한 요청은, 별개의 신뢰된 채널 요청자로부터 전송되는 대신에, 클라이언트 디바이스(252)로부터 전송될 수 있다. 일 실시예에서, 맞춤 채널들에 대한 요청은 Appk의 배포에 관해 ADS로 전송된 초기 구성 메시지들에 포함될 수 있으며, 이 경우에 별개의 셋업 요청들은 나중에 요구되지 않을 수 있다. 몇몇 실시예들에서, 엔드포인트들은 상이한 애플리케이션들 간에 공유될 수 있으며 - 예로서, ADS의 주어진 고객이 ADS에 의해 관리되는 두 개의 별개의 애플리케이션들(Appk 및 Appj)을 갖는다면, 단일 이-메일 어드레스는 Appj 및 Appk 양쪽 모두에 대해 셋업될 수 있다.
적어도 몇몇 실시예들에서, 신뢰된 채널 요청자와 같은 허가받은 당사자들은 또한 셋업 요청(230)을 위해 사용된 것들과 유사한 프로그래매틱 인터페이스들을 사용하여 하나 이상의 맞춤 채널들의 불능 또는 제거를 요청할 수 있다. 인터페이스들은 또한 맞춤 채널을 사용하기 위해 또는 맞춤 채널의 엔드포인트들의 특정 세트를 사용하기 위해 하나 이상의 클라이언트 엔티티들의 권리들을 취소하기 위해 사용될 수 있다. 예를 들면, 특정한 애플리케이션이 생성 환경에 배포된 후, 이전에 셋업된 하나 이상의 맞춤 채널들을 통해 배포 아티팩트들을 제출하기 위한 다양한 개발자들 및 테스터들의 권리들은 축소될 수 있다. 메시지가 클라이언트의 제출 권리들이 취소된 후 엔드포인트들 중 하나에서 수신된다면, ADS는 몇몇 실시예들에서 메시지를 폐기하고 및/또는 에러 메시지를 생성할 수 있다. 물론, 전체로서 엔드포인트 또는 채널이 불능된 후, 메시지를 제출하기 위한 시도는 성공하지 않을 수 있다.
맞춤 채널 메타데이터
도 3은 적어도 몇몇 실시예들에 따른, 애플리케이션 배포 서비스의 맞춤 통신 채널들을 위해 저장될 수 있는 예시적인 메타데이터 요소들을 예시한다. 도시된 바와 같이, 애플리케이션 배포 서비스의 하나 이상의 고객들을 대신하여 셋업된 맞춤 통신 채널을 위한 메타데이터 기록(310)은, 다양한 실시예들에서, 다른 요소들 중에서, 채널 유형 요소(312), 관리된 애플리케이션 세트 표시자(313), 화이트-리스트 제출자 식별자 요소(314), 다중-당사자 인증을 위한 신뢰된 당사자들의 리스트(315), 제출자 역할 요소(316), 수신자 엔드포인트 세트(318), 수신자 역할 요소(320), 강화된 보안 검증 규칙들의 세트(322), 타이밍 제약들의 세트(324), 및/또는 데이터 전송 제약 요소(326)의 몇몇 조합을 포함할 수 있다. 채널 유형(312)은 이-메일, 텍스팅/SMS, FTP 등과 같은, 채널을 위해 사용될 특정한 통신 메커니즘을 나타낼 수 있다. 관리된 애플리케이션 세트(313)는 채널이 사용되는 애플리케이션들의 세트를 나타낼 수 있다. 이전에 언급된 바와 같이, 몇몇 경우들에서, 그것의 배포가 ADS에 의해 관리되는 다수의 애플리케이션들은 공유된 맞춤 통신 채널을 할당받을 수 있지만, 다른 실시예들에서 주어진 맞춤 통신 채널은 단지 하나의 관리된 애플리케이션을 위해 사용될 수 있다.
승인된 제출자 식별자들의 화이트-리스트(314)(예로서, 이-메일 어드레스들, 이-메일들 또는 파일 전송들이 수용 가능한 IP 어드레스들, 텍스팅 소스 어드레스들 등)는 몇몇 실시예들에서 맞춤 통신 채널을 위해 저장된 메타데이터에 포함될 수 있다. 이러한 화이트-리스트는 몇몇 실시예들에서 적어도 제 1 보안 검증을 수행하기 위해 사용될 수 있다 - 예로서, 소스 코드 파일이 화이트-리스트에 있지 않은 소스로부터 수신된다면, 상기 소스 코드 파일의 제출은 ADS에 의해 거절될 수 있다. 몇몇 실시예들에서, 화이트-리스트에 대응하는 각각의 제출자 역할들(315)은 또한 - 예를 들면, 각각의 화이트-리스트 제출자로부터 수용 가능한 제출들의 종류들을 표시하는 - 채널 메타데이터 기록(310)에 포함될 수 있다. 몇몇 제출자들은 예를 들면, 관리된 애플리케이션들의 구성 설정들을 변경하도록 허용될 수 있지만, 다른 것들은 그렇지 않을 수 있으며, 역할 정보는 다양한 제출자들에 의해 허용 가능한 배포-관련 제출들의 종류들을 제한할 수 있다. 일 실시예에서, 다중-당사자 인증 목적들을 위해 질의될 신뢰된 당사자들의 리스트(316)가 또한 포함될 수 있다.
다양한 실시예들에서, 메타데이터 기록(310)은 또한 맞춤 채널을 위해 수립된 수신자 엔드포인트들의 세트(318), 및 각각의 수신자 엔드포인트들과 연관된 특정한 역할들(만약에 있다면)(320)을 포함할 수 있다. 예를 들면, 일 실시예에서, 하나의 이-메일 어드레스는 관리된 애플리케이션(들)의 개발자들로부터 소스 코드 파일들을 수신하기 위한 엔드포인트로서 수립될 수 있지만, 제 2 이-메일 어드레스는 구성 변화들을 수신하기 위해 수립될 수 있다. 각각의 역할들이 수신자 엔드포인트들에 할당되는 실시예들에서, 역할들은 배포 아티팩트들이 그것들에 대해 지정된 이들 엔드포인트들로만 제출됨을 검증하기 위해 사용될 수 있다 - 예로서, 구성 변화 파일들에 대해 지정된 엔드포인트로 전송된 소스 코드 파일은 거절될 수 있다.
다수의 강화된 보안 검증 규칙들(322) 중 임의의 것은 맞춤 통신 채널에 대해 지정될 수 있다. 몇몇 규칙들은 채널을 통해 수신된 모든 메시지들에 대해 적용 가능할 수 있지만, 다른 것들은 단지 특정 유형들의 메시지들, 제출자들의 서브세트 및/또는 엔드포인트들의 서브세트에만 적용 가능할 수 있다. 일 실시예에서, 적어도 몇몇 유형들의 제출된 배포 아티팩트들에 대해, 다-단계 인증 프로토콜이 이어질 수 있다. 이러한 시나리오에서, ADS는, 전송자가 ADS에 의해 이전에 제공된 보안 토큰으로, 또는 전송자의 아이덴티티의 몇몇 부가적인 증거로 응답함을 요청하는, 제 1 응답을 제출로 전송할 수 있다. 몇몇 실시예들에서, ADS는 부가적인 보안 검증 단계들이 특정한 메시지의 콘텐트들을 파싱 및 분석한 후 요구되는지에 대한 결정을 할 수 있다. 규칙들(322)에 따르면, 메시지가 사소한 변화(예로서, 소스 코드 파일로의 언급들의 부가)를 표시한다면, ADS는 제출된 아티팩트를 수용할 수 있는 반면, 보다 상당한 변화들에 대해서는, 부가적인 보안 검증 동작들이 수행될 수 있다. 몇몇 실시예들에서, 주어진 맞춤 통신 채널은 그것과 연관된 하나 이상의 타이밍 제약들(324)을 가질 수 있다 - 예로서, 채널은 그 후 그것이 정지될 만료 시간을 가질 수 있거나, 또는 채널은 단지 작업 일 동안 특정 기간들에서만 사용 가능할 수 있다. 예를 들면, 하나의 조직에서, 개발자들은 정상적인 근무 시간들 동안 특정한 통신 채널을, 및 정상적인 근무 시간 후 상이한 통신 채널을 사용하는 것으로 예상될 수 있다. 일 실시예에서, 예로서 배포 아티팩트들의 제출들을 위해 사용된 대역폭 또는 주어진 시간 기간 동안 허용된 제출들의 수를 제한하는, 데이터 전송 제약들(326)이 맞춤 통신 채널에 대해 지정될 수 있다. 주어진 메시지가 데이터 전송 제약을 위반하거나, 또는 그것의 배포 태스크들이 데이터 전송 제약들의 위반을 야기할 아티팩트들을 포함한다면, 메시지는 적어도 몇몇 실시예들에서 거절될 수 있다. 몇몇 경우들에서, 제공자 네트워크에서 구현된 애플리케이션 배포 서비스는 데이터 전송 제약들(326), 타이밍 제약들(324) 및/또는 보안 규칙들(322)을 시행하기 위해, 제공자 네트워크의 다른 서비스들(예로서, 도 5에 예시된 것들과 유사한 서비스들), 또는 제공자 네트워크 밖의 서비스들을 이용할 수 있다. 도 3에 예시된 메타데이터 요소들 중 적어도 일부의 콘텐트들은 채널에 대한 셋업 요청들로부터 도출될 수 있다 - 예로서, 수립된 수신자 엔드포인트들의 수, 제출자들의 화이트-리스트, 및/또는 보안 검증 규칙들 등은 셋업 요청에서 표시될 수 있다. 다양한 실시예들에서, 도 3에 도시된 메타데이터 요소들의 종류들 중 하나 이상은 사용되지 않을 수 있으며, 다른 실시예들에서 도 3에 도시되지 않은 부가적인 요소들은 도 3에 도시된 것들 대신에 또는 그것 외에 저장될 수 있다.
맞춤 채널들을 사용하여 수행된 배포 태스크들의 예들
도 4a 내지 도 4e는 적어도 몇몇 실시예들에 따른, 애플리케이션 배포 서비스(ADS)의 맞춤 통신 채널 엔드포인트를 통해 제출될 수 있는 요청들의 예들을 총괄하여 예시한다. 몇몇 실시예들에 따르면, 특정한 관리된 애플리케이션이 ADS를 사용하여 배포되기 전에, 구성 및 환경 정보의 세트가 ADS로 제공되어야 할 것이다. 도 4a에 도시된 바와 같이, 몇몇 실시예들에서, 애플리케이션에 대해 생성된 맞춤 채널은 애플리케이션(Appk)의 제 1 배포에 대한 전제 조건으로서 요구된 구성 정보를 제출하기 위해 사용될 수 있다. Appk 구성 파일들(435)은 클라이언트 디바이스(452A)로부터 맞춤 채널의 엔드포인트(Appk-EP)로 송신될 수 있다. ADS 구성요소(420)(선택적 보안 검증기 구성요소(444)를 포함할 수 있는)는 구성 파일들(435)을 수신하고, 요구된 임의의 보안 체크들을 수행하며, 보안 체크들이 성공적이면 묘사된 실시예에서 애플리케이션 구성 메타데이터 저장소(112)에 Appk에 대한 엔트리(437)로서 구성 파일들(435)을 저장할 수 있다. 엔트리(437)는 묘사된 실시예에서 Appk가 실제로 배포된다면 및 배포될 때 사용될 수 있으며; 즉, Appk에 대한 리소스들은 구성 파일들(435)이 제출되었기 때문에 할당될 필요가 없다. (도 4a에 도시된 실시예들에서, 맞춤 채널은 Appk-EP의 사용을 요구하지 않은 프로그래매틱 인터페이스를 통해 수신된 별개의 요청에 응답하여 셋업될 수 있다.)
도 4b에서, 초기 Appk 배포 패키지(447)는 상이한 클라이언트 디바이스(452B)로부터 Appk-EP로 제출될 수 있다. Appk의 프로그래밍 언어 및 실행 환경에 의존하여, 배포 패키지(447)는 단지 단일 실행 가능 파일, 실행 가능 파일들의 모음, 또는 소스 파일들 및 실행 가능 파일들의 몇몇 조합만을 포함할 수 있다. 소스 파일들은 몇몇 경우들에서 컴파일링되어야 할 수 있지만, 다른 경우들에서 파일들은 컴파일링되기 보다는 해석될 수 있다. 배포 패키지(447)를 수신하는 것에 응답하여, 도 4b의 예시적인 시나리오에서, ADS 구성요소(420)는 저장소(112)로부터 Appk 구성 엔트리(437)를 검색하며, Appk의 서브구성요소들이 배포될 리소스들의 세트를 획득할 수 있다. Appk에 대한 초기 배포 리소스 세트(466)는, 예를 들면, LB(434)와 같은 하나 이상의 로드 밸런서들, WS(436A), WS(436B) 및 WS(436C)와 같은 복수의 웹 서버들, 및 AS(438A) 및 AS(438B)와 같은 복수의 애플리케이션 서버들을 포함할 수 있다. 몇몇 실시예들에서, 이들 리소스들 중 일부 또는 모두는 제공자 네트워크의 컴퓨팅 서비스의 가상 기계들을 포함할 수 있다. 다른 제공자 네트워크 서비스들은 또한 또는 대신에, 도 5에 대하여 이하에서 보다 상세히 논의되는 바와 같이, 다양한 실시예들에서 ADS에 의해 관리된 애플리케이션들의 배포 및 구성을 위해 사용될 수 있다. 몇몇 실시예들에서, 초기 배포 패키지(447)는 예로서, 맞춤 채널 엔드포인트(Appk-EP)로 제출된 단일 메시지 내에서, 구성 파일들(435)과 함께 제출될 수 있으며; 즉, 도 4a 및 도 4b에 도시된 아티팩트들의 유형들은 반드시 ADS 구성요소(420)로 개별적으로 송신될 필요가 있는 것은 아니다.
도 4c는 Appk-EP를 통해 클라이언트 디바이스(452C)로부터 ADS로 웹 서버 층에 대한 파일 세트(441)(예로서, 하나 이상의 HTML 또는 자바스크립트 파일들을 포함한)의 제출을 예시한다. 이러한 시나리오에서, ADS 구성요소(420)는 파일 세트(441)를 포함한 메시지의 콘텐트들을 파싱하며, 파일 세트가 Appk 배포 리소스 세트(466)의 웹 서버들 중 하나 이상으로 복사될 것을 결정할 수 있다(요구된 임의의 부가적인 보안 또는 정확도 체크들이 수행된 후). 따라서, 파일 세트(441)의 사본들은 WS(436A, 436B 및 436C)로 송신될 수 있다. Appk 리소스 세트(466)의 다른 리소스들은 묘사된 실시예에서 파일 세트(441)의 제출에 의해 영향을 받지 않을 수 있다.
도 4d에서, 클라이언트는 Appk의 애플리케이션 서버 층을 위해 의도된, 소스 파일들의 세트(442)를 클라이언트 디바이스(452D)로부터 Appk-EP로 제출할 수 있다. ADS 구성요소(420)는 클라이언트 디바이스(452D)로부터 수신된 메시지의 콘텐트들을 검사하고, 메시지가 컴파일링되어야 하는 소스 파일들을 포함한다고 결정하며, 파일들의 실행 가능 버전들을 획득하기 위해 컴파일러(448)를 이용할 수 있다. 실행 가능 버전들은 그 후 애플리케이션 서버들(AS)(438A 및 438B)로 배포될 수 있다. 적어도 몇몇 실시예들에서, ADS 구성요소는 먼저 에러들 없이 애플리케이션을 컴파일링하기 위해 파일이 위치될 소스 코드 계층 내에서의 위치를 결정해야 할 것이다(예로서, 소스 파일의 명칭을 검사함으로써, 또는 소스 파일의 콘텐트들을 파싱함으로써). 몇몇 이러한 시나리오들에서, ADS 구성요소는 정확한 위치를 식별하고, 파일의 보다 오래된 버전을 저장하고(이러한 보다 오래된 버전이 존재한다면), 위치에 새롭게 제출된 파일을 저장하며, 그 후 실행 가능한 애플리케이션의 새로운 버전을 획득하기 위해 컴파일러 또는 유사한 툴을 호출할 수 있다. 실행 가능 애플리케이션의 새로운 버전은 그 후 하나 이상의 실행 플랫폼들에서 구동될 수 있다. 다른 시나리오들에서, ADS는 간단히 소스 코드 계층 내에서 그것에 대해 결정된 위치에 새롭게-제출된 파일을 위치시킬 수 있으며, 명시적 컴파일은 요구되지 않을 수 있다(예로서, 소스 파일이 컴파일링되기보다는 해석될 스크립트이면).
도 4e에서, Appk에 대한 구성 변화 요청(449)은 클라이언트 디바이스(452E)로부터 Appk-EP를 통해 ADS 구성요소(420)로 제출될 수 있다. ADS 구성요소(420)는 이러한 변화들에 대해 요구된 임의의 부가적인 보안 검증 절차들을 수행하며, 애플리케이션 구성 메타데이터 저장소(112)에 저장된 엔트리(437)를 수정할 수 있다. 구성 변화 요청의 특징에 의존하여, Appk의 배포를 위해 할당된 리소스들 중 일부가 또한 수정될 수 있다. 예를 들면, 도시된 바와 같이, 부가적인 애플리케이션 서버 리소스(AS)(438C)는 구성 변화 요청을 이행하기 위해 이용될 수 있다. ADS 구성요소(420)는 클라이언트와의 임의의 부가적인 상호 작용들을 요구하지 않고 구성 변화를 위해 필요한 동작들(예로서, AS(438C)에 대한 컴퓨팅 플랫폼의 획득, AS(438C)로의 필요한 파일들의 복사, 웹 서버 층에서 요구된 구성 변화들 등)을 개시할 수 있다. 구성-관련 배포 서비스 태스크들의 다수의 상이한 카테고리들은 다양한 실시예들에서 맞춤 채널들을 사용하여 수신된 메시지들에 응답하여 수행될 수 있다. 몇몇 구성 태스크들은 애플리케이션에 대해 배포된 리소스들에 대한 변화들을 수반할 수 있지만, 다른 것들은 애플리케이션의 리소스 풋프린트에 대한 변화들을 요구하지 않을 수 있다. 예를 들면, 애플리케이션의 스레드 풀에서의 스레드들의 최대 수와 같은 파라미터에 대한 설정은 맞춤 채널을 통해 메시지에서 제출될 수 있거나, 또는 새로운 소프트웨어 모듈 또는 확장을 배포하기 위한 요청이 제출될 수 있다. 이러한 시나리오들에서, 메시지에 응답하여 수행된 태스크들은 애플리케이션을 위해 사용된 리소스들의 세트에 대한 변화를 야기하지 않을 수 있다. 도 4a 내지 도 4e에 도시된 바와 같이, 다양한 상이한 유형들의 배포-관련 아티팩트들은 하나 이상의 관리된 애플리케이션들에 대해 ADS에서 셋업된 맞춤 채널을 사용하여 제출될 수 있으며, ADS는 제출된 아티팩트의 유형에 기초하여 상이한 세트들의 동작들을 취할 수 있다. 다양한 실시예들에서, 다른 유형들의 배포 태스크들(다양한 리소스들의 건강 상태가 모니터링되는 방식에 대한 변화들과 같은)이 또한 맞춤 채널들을 사용하여 요청될 수 있다. ADS로 제출된 요청들이 도 4a 내지 도 4e에서 상이한 클라이언트 디바이스들(452A 내지 452E)에서 비롯된 것으로 도시되며, 동일한 ADS 구성요소(420)에 의해 핸들링되지만, 일반적으로 맞춤 통신 채널의 사용을 수반한 요청들은 임의의 적절한 클라이언트 디바이스에서 비롯될 수 있으며 다양한 실시예들에서 다수의 ADS 구성요소들 중 임의의 것에 의해 핸들링될 수 있다.
다른 제공자 네트워크 서비스들을 사용한 애플리케이션 배포
몇몇 실시예들에서, 이전에 언급된 바와 같이, 맞춤 통신 채널의 엔드포인트를 통해 수신된 요청에 응답하여 ADS에서 수행된 배포 태스크들은 제공자 네트워크의 하나 이상의 다른 서비스들의 사용을 수반할 수 있다. 도 5는 적어도 몇몇 실시예들에 따라, 애플리케이션 배포 작업 흐름들을 구현하기 위해 사용될 수 있는 제공자 네트워크 서비스들의 예들을 예시한다. 묘사된 실시예에서, 제공자 네트워크의 서비스 포트폴리오(500)는 계산 서비스들(504), 저장 서비스들(506), 데이터베이스 서비스들(510), 네트워킹 서비스들(550) 및 범용 유틸리티 서비스들(540)의 그룹을 포함할 수 있다. (애플리케이션 배포 서비스(540F)는 범용 유틸리티 서비스 그룹에 포함된다.) 계산 서비스들(504)은, 예를 들면, 가상 컴퓨팅 서비스(504A)(예로서, 다양한 유형들의 범용 가상 기계들로의 액세스가 ADS(540F)에 의해 관리된 다양한 애플리케이션들을 배포하기 위해 획득될 수 있는 서비스), 분산/병렬 컴퓨팅 서비스(504B)(높은 정도의 병렬성을 가진 애플리케이션들에 대해 지정된 특수화된 하드웨어/소프트웨어 구성요소들을 가진), 배포된 애플리케이션들을 위해 할당된 리소스들을 적절하게 확대하거나 또는 축소하기 위해 사용될 수 있는 자동화 작업부하-기반 프로비저닝 서비스(504C), 및 다양한 배포된 애플리케이션들을 위해 사용된 계산 리소스들의 그룹들 간의 작업 부하들을 분산시키기 위한 로드 밸런싱 서비스(504D)를 포함할 수 있다. 예를 들면, 도 4b 내지 도 4e에서, 로드 밸런서(LB)(434)는 로드 밸런싱 서비스(504D)를 사용하여 구현될 수 있으며, WS 및 AS 리소스들은 가상 컴퓨팅 서비스(504A)를 사용하여 구현될 수 있다.
구조화되지 않은 저장 오브젝트들로의 웹-서비스 기반 액세스를 제공하는 오브젝트 저장 서비스(506A), 또는 저장 볼륨들로의 블록 디바이스 레벨 액세스를 제공하는 볼륨 서비스(506B)와 같은, 여러 개의 상이한 유형들의 저장-관련 서비스들이 몇몇 제공자 네트워크들에서 구현될 수 있다. 몇몇 실시예들에서, 관계형 데이터베이스 서비스(510A), 비-관계형(예로서, "noSQL") 데이터베이스 서비스(510B), 또는 데이터베이스 캐싱 서비스(510C)와 같은, 다수의 상이한 데이터베이스-관련 서비스들이 구현될 수 있다.
분리형 가상 네트워크(isolated virtual network; IVN) 서비스(550A)와 같은, 다양한 네트워킹-관련 서비스들이 묘사된 실시예에서 제공자 네트워크에서 지원될 수 있다. IVN 서비스 및 가상 컴퓨팅 서비스(404A)의 조합을 사용하여, 다수의 가상 기계들 및/또는 다른 디바이스들이 고객을 위해 고려되고 있는 분리형 가상 네트워크의 부분으로서 구성될 수 있으며 고객은 IVN에 대한 상당한 네트워킹 구성 유연성을 승인받을 수 있다. 예를 들면, 고객들은, 네트워크 구성 설정들이 고객-소유 설비에서 선택될 수 있는 방식과 매우 유사한 방식으로, 분리형 가상 네트워크 내에서 그들의 선택된 IP 어드레스들을 할당하고, 서브네트들 및 루트들을 셋업하는 등을 할 수 있다. IVN은 또한 몇몇 실시예들에서 "가상 사설 클라우드"로서 불리울 수 있다. 직접 연결 서비스(550B)(고객들이 전용 물리 링크들 또는 "직접 연결" 링크들을 통해 제공자 네트워크에 외부 네트워크들을 연결하도록 허용하는), 또는 가상 네트워크 인터페이스 서비스(550C)(논리 네트워크 인터페이스들이, 물리 네트워크 인터페이스 카드들의 재구성을 요구하지 않고, 가상 기계들에 프로그램에 따라 부착되도록 허용하는).
ADS 외에, 범용 유틸리티 서비스 카테고리는, 예를 들면, 다른 서비스들의 구성요소들 사이에서의 상호 작용들을 수반한 작업 흐름들을 구현하기 위해 사용될 수 있는 작업 흐름 서비스(540A), 사용자/그룹 인증을 위한 아이덴티티 관리 서비스(540B), 지속성 메시징 애플리케이션들을 위한 큐잉 메시지 서비스(540C), 이-메일/SMS 관리 서비스(540D), 및 다양한 유형들의 이벤트 통지들을 스케줄링하기 위한 통지 서비스(540E)를 포함할 수 있다. 배포된 애플리케이션들에 대한 건강 모니터링 서비스는 또한 몇몇 실시예들에서 구현될 수 있으며, ADS에 의해 관리된 하나 이상의 애플리케이션들을 모니터링하는 이러한 서비스의 에이전트들의 구성을 변경하기 위한 요청들이 또한 다양한 실시예들에서 맞춤 채널들을 통해 제출될 수 있다. 다른 서비스들은 상이한 실시예들에서 제공자 네트워크에서 구현될 수 있으며, 도 5에 예시된 서비스들의 유형들 중 일부는 구현되지 않을 수 있다.
도 5에 도시된 서비스들의 다양한 조합들은 상이한 실시예들에서 ADS의 배포-관련 태스크들을 위해 사용될 수 있다. 맞춤 통신 채널들이 이-메일 또는 SMS를 사용하는 실시예들에서, 서비스(540D)는 채널들을 수립하고 관리하기 위해 사용될 수 있다. 몇몇 실시예들에서, 데이터베이스 또는 저장 서비스들은 가상 컴퓨팅 서비스(504A)의 가상 기계들에서의 국소적으로-이용 가능한 저장 장치가 불충분한 관리된 애플리케이션들을 위해 이용될 수 있다. 일 실시예에서, 애플리케이션들은 서비스(550A)를 사용하여 수립된 IVN들 내에 배포될 수 있다. 다른 실시예들에서, ADS의 개발자들 또는 클라이언트들은 IVN들을 이용할 수 있다 - 즉, 배포 아티팩트들은 IVN들 내에서의 디바이스들로부터 ADS로 제출될 수 있다. 적어도 하나의 실시예에서, 맞춤 통신 채널은 단지 특정된 IVN 내로부터 비롯된 제출들만이 수용된다는 보안 요건을 가질 수 있다. 통지 및 메시징 서비스들은 다양한 실시예들에서 애플리케이션-간 통신들을 위해 및/또는 특정한 배포 태스크가 ADS에 의해 완료될 때 고객들에게 알리기 위해 사용될 수 있다. 도 5에 도시된 서비스들의 각각은 하드웨어 및/또는 소프트웨어 리소스들의 몇몇 세트를 사용하여 구현될 수 있으며, 리소스들 중 일부는 다수의 서비스들에 의해 공유된다.
애플리케이션 배포를 위해 맞춤 통신 채널들을 사용하기 위한 방법들
도 6은 적어도 몇몇 실시예들에 따른, 배포-관련 아티팩트들을 송신하기 위해 맞춤 보안 통신 채널들을 구성하고 사용하기 위해 수행될 수 있는 동작들의 양상들을 예시한 흐름도이다. 요소(601)에서 도시된 바와 같이, 하나 이상의 관리된 애플리케이션들의 배포-관련 아티팩트들을 송신하기 위해 사용될 보안 맞춤화된 통신 채널을 셋업하기 위한 요청은 제공자 네트워크의 배포 서비스의 제어-평면 구성요소에서 수신될 수 있다. 셋업 요청은 사용될 통신 메커니즘의 유형, 셋업될 엔드포인트들의 수, 엔드포인트들을 통해 수신된 메시지들에 응답하여 수행될 추가 보안 검증 단계들(만약에 있다면) 등과 같은, 채널의 다양한 속성들을 표시할 수 있다.
ADS 제어-평면 구성요소는 묘사된 실시예에서 수신된 셋업 요청에 대하여 하나 이상의 인증 및/또는 권한 체크들을 수행할 수 있으며, 또한 충분한 리소스들이 수용될 요청에 대해 이용 가능한지를 검증할 수 있다. 요청이 구현을 위해 수용된다면, ADS 구성요소는 이-메일 서비스 또는 SMS/텍스팅 서비스와 같은, 제공자 네트워크 내에 있는 및/또는 그 외부에 있는 하나 이상의 다른 서비스들 또는 제공자들과의 요청 채널의 수립을 조정할 수 있다(요소(604)). 도 3에 도시된 것과 유사한 콘텐트를 가진 메타데이터 기록들은 다양한 실시예들에서 ADS에 의해 또는 그것을 대신하여 생성되고 저장될 수 있다. 예를 들면, 승인된 제출자들의 화이트 리스트들, 다양한 엔드포인트들에 대한 보안 규칙들, 제출자들 및 수신자들의 역할들 등을 표현한 엔트리들은 채널을 셋업하거나 또는 관리하는데 수반된 ADS의 메타데이터 저장소 및/또는 다른 엔트리들에 저장될 수 있다.
하나 이상의 엔드포인트들의 세트(예로서, 이-메일 어드레스들, 파일 전송들을 위해 사용될 IP 어드레스 및 포트 조합들, SMS/텍스팅 목적지들 등)는 채널의 요청자로 제공될 수 있다(요소(607)). 몇몇 실시예들에서, 엔드포인트들의 세트는 분할될 수 있다: 예로서, 엔드포인트들의 하나의 그룹은 화이트-리스트 제출자들의 하나의 그룹에 대해 지정될 수 있으며, 엔드포인트들의 상이한 그룹은 화이트-리스트 제출자들의 또 다른 그룹에 대해 지정될 수 있다. 엔드포인트들은 또한 또는 대신에 몇몇 실시예들에서 그것들의 의도된 사용 또는 기능에 기초하여, 예로서 엔드포인트들을 통해 수신된 메시지들에 응답하여 수행되어야 할 수 있는 배포 태스크들의 카테고리들에 기초하여 분할될 수 있다. 예를 들면, 몇몇 엔드포인트들은 소스 코드 제출들에 대해서만 지정될 수 있는 반면, 다른 것들은 구성-관련 아티팩트 제출들에 대해 지정될 수 있다. 소스 코드 제출들에 대해(애플리케이션의 프로그래밍 언어 및/또는 구동-시간 환경에 의존하여), 몇몇 실시예들에서, 배포 태스크들은 저장소에서 제출된 파일들의 버전을 복사/저장하는 것, 파일들을 컴파일링하는 것, 및/또는 제출된 파일들의 실행 가능 버전들을 실행 플랫폼들의 세트로 복사하는 것을 포함할 수 있다. 구성-관련 제출들에 대해, 배포 태스크들은 구성 파일 또는 애플리케이션 메타데이터 기록을 업데이트하는 것, 하나 이상의 프로세스들을 재시작하는 것, 리소스들을 할당 또는 해제하는 것 등을 포함할 수 있다.
맞춤 통신 채널의 셋업 단계가 완료된 후, 클라이언트들은 채널의 엔드포인트들을 통해 배포-관련 아티팩트들을 제출할 수 있다. 하나 이상의 아티팩트들을 포함한 특정한 메시지는 엔드포인트에서 수신될 수 있다(요소(610)). 아티팩트들의 종류들은 관리된 애플리케이션들의 언어 및 구동-시간 피처들에 기초하여 상이할 수 있다. 예를 들면, 몇몇 애플리케이션들에 대해, 전체로서 애플리케이션을 표현한 실행 가능 파일들(예로서, .jar 파일 또는 .war 파일의 형태로), 애플리케이션의 부분을 형성하는 하나 이상의 실행 가능 모듈들, 배포 이전에 컴파일링되어야 할 수 있는 하나 이상의 소스 코드 파일들, 컴파일을 요구하지 않는 하나 이상의 소스 파일들, 애플리케이션의 조정 가능한 파라미터들을 통제하는 구성 파일들, 및/또는 애플리케이션에 대한 리소스들의 할당을 제어하는 구성 파일들은, 모두 적당한 종류들의 아티팩트들인 것으로 고려될 수 있다. 다른 애플리케이션들에 대해, 단지 이들 유형들의 배포-관련 아티팩트들의 서브세트만이 맞춤 채널을 통해 송신 가능할 수 있다 - 예로서, 애플리케이션 개발자들은 채널을 통해 몇몇 유형들의 소스 코드 변화들을 제출하도록 허용될 수 있지만, 대규모 구성 변화들은 허용되지 않을 수 있다.
메시지를 수신하는 ADS 구성요소는 그것의 콘텐트들을 파싱하고, 배포-관련 아티팩트들을 추출 및 분석하며, 메시지에서의 아티팩트들의 종류들에 기초하여 어떤 배포 태스크들이 수행될지를 결정할 수 있다. 몇몇 실시예들에서, 메시지는 제출된 아티팩트들을 사용하여 수행될 배포 작업 흐름 또는 태스크들을 표시한 ADS에 대한 명시적 지시들을 포함할 수 있다. ADS 구성요소는 선택적으로 아티팩트들(또는 메시지에 대응하는 태스크들)이 채널 또는 엔드포인트와 연관될 수 있는 임의의 데이터 전송 제약들을 위반하지 않는다는 것을 보장할 수 있다(요소(613)). 묘사된 실시예에서, ADS 구성요소는 또한 선택적으로, 메시지 콘텐트들에 기초하여, 임의의 부가적인 보안 검증 동작들(다중-당사자 또는 다-단계 인증과 같은)이 배포 태스크들이 개시되기 전에 수행되는지를 결정할 수 있다(또한 요소(613)에서 표시된 바와 같이). 다-단계 인증 기술에서, ADS는 하나 이상의 부가적인 검증 메시지들이 수신될 때까지(예로서, ADS로부터의 도전에 응답하여 제출자로부터) 메시지 콘텐트들에 기초하여 애플리케이션 배포에 대한 임의의 변화들을 구현하지 않을 수 있다. 다-단계 다중-당사자 인증 프로토콜에서, 메시지의 전송자가 신뢰된다는 확인(적어도 수신된 메시지에서 표시된 아티팩트 또는 아티팩트들에 대하여)은, 예로서 ADS에 의해 전송된 검증 질의에 응답하여, 몇몇 다른 신뢰 당사자로부터 ADS에서 획득되어야 할 것이다. 몇몇 실시예들에서, 수행된 보안 동작들은 콘텐트들 또는 아티팩트의 유형에 기초하여 상이할 수 있다 - 예로서 상당한 구성 변화들을 나타내는 몇몇 아티팩트들은 간단히 파일에 언급들을 부가하거나 또는 파일에 대한 작은 교정들을 할 수 있는 다른 아티팩트들보다 훨씬 더 엄격한 보안 체크들을 요구할 수 있다. ADS 구성요소가 제출된 메시지가 특정된 기준들을 충족시킨다고 결정하면, 제출된 메시지와 연관된 배포 태스크들은 다양한 실시예들에서 부가적인 보안 체크들 없이 개시될 수 있다. 몇몇 실시예들에서, 수행될 보안 체크들은 제출자의 아이덴티티에 적어도 부분적으로 기초하여 결정될 수 있다 - 예로서, 소스 코드에 대한 특정한 개발자의 변화들은 부가적인 보안 검증 없이 수용될 수 있다.
임의의 요구된 부가적인 보안 단계들이 완료된 후(또는 어떤 이러한 동작들도 요구되지 않는다면), 요청된 작업 흐름들이 개시될 수 있다(요소(616)). 상기 언급된 바와 같이, 작업 흐름의 부분으로서 수행된 배포 태스크들은, 예를 들면, 저장소에서 아티팩트의 버전을 저장하는 것, 하나 이상의 파일들에 대한 코드 계층 내에서의 적절한 위치를 결정하며 결정된 위치들에 파일들을 저장하는 것, 하나 이상의 파일들을 컴파일링하는 것, 하나 이상의 프로세스들을 재시작하는 것, 배포된 애플리케이션에 대한 부가적인 리소스들을 할당 및 구성하는 것, 배포된 애플리케이션에 대한 하나 이상의 이전-할당된 리소스들을 해제하는 것 등을 포함할 수 있다. 요소들(610, 613 및 616)에 대응하는 동작들은 맞춤 채널의 엔드포인트들을 통해 수신된 각각의 메시지에 대해 반복될 수 있다.
다양한 실시예들에서, 도 6에 도시된 동작들의 종류들 중 일부는 도시된 것과 상이한 순서로 구현될 수 있거나, 또는 순차적이기보다는 병렬로(예로서, 연속으로) 수행될 수 있다는 것이 주의된다. 예를 들면, 맞춤 채널의 엔드포인트들을 통해 제출된 여러 개의 상이한 메시지들에 대한 프로세싱은 병렬로 수행될 수 있다. 몇몇 실시예들에서, 도 6에 도시된 동작들의 일부는 구현되지 않을 수 있거나, 또는 도시되지 않은 부가적인 동작들이 수행될 수 있다.
사용 경우들
애플리케이션 배포 서비스로 아티팩트들을 제출하기 위해 맞춤화된 통신 채널들을 수립하는, 상기 설명된 기술들은 다양한 시나리오들에서 유용할 수 있다. 큰 소프트웨어 발전 및 품질 보증 팀들은 종종 복잡한 소프트웨어 프로그램들의 테스팅을 기록하고 개시하기 위해 많은 상이한 유형들의 컴퓨팅 디바이스들을 사용하여, 전세계에 분포된 고용인들을 포함할 수 있다. 이러한 팀들은 종종 확장 가능한 기반시설을 이용하기 위해 및 리소스 할당들 및 리소스 건강 관리를 위한 책임을 위임하기 위해 제공자 네트워크의 애플리케이션 배포 서비스들의 기능을 이용할 수 있다. 배포 서비스가 소스 코드 및/또는 구성 변화들의 제출들을 위한 다양한 맞춤화 가능한 채널들의 수립을 지원한다면, 관리 콘솔과 같은 디폴트 채널의 사용을 수반한 엄격한 제출 프로토콜을 따르도록 모든 제출들에 요구하는 대신에, 이것은 개발 및 품질 보증 팀들의 생산성을 증가시킬 수 있다.
예시적인 컴퓨터 시스템
적어도 몇몇 실시예들에서, 배포 서비스로의 아티팩트 제출을 위한 맞춤 통신 채널들의 수립 및 사용을 지원하기 위한 상기 설명된 기술들 중 하나 이상을 구현하는 서버(관리된 애플리케이션들을 배포 및 실행하기 위해 사용된 리소스 및/또는 배포 서비스의 다양한 제어-평면 및/또는 데이터-평면 구성요소들을 포함한)는 하나 이상의 컴퓨터-액세스 가능한 미디어를 포함하거나 또는 이를 액세스하도록 구성되는 범용 컴퓨터 시스템을 포함할 수 있다. 도 7은 이러한 범용 컴퓨팅 디바이스(9000)를 예시한다. 예시된 실시예에서, 컴퓨팅 디바이스(9000)는 입력/출력(I/O) 인터페이스(9030)를 통해 시스템 메모리(9020)(비휘발성 및 휘발성 메모리 모듈 양쪽 모두를 포함할 수 있는)에 결합된 하나 이상의 프로세서들(9010)을 포함한다. 컴퓨팅 디바이스(9000)는 I/O 인터페이스(9030)에 결합된 네트워크 인터페이스(9040)를 추가로 포함한다.
다양한 실시예들에서, 컴퓨팅 디바이스(9000)는 하나의 프로세서(9010)를 포함한 단일 프로세서 시스템, 또는 여러 개의 프로세서들(9010)(예로서, 2, 4, 8, 또는 또 다른 적절한 수)을 포함한 다중 프로세서 시스템일 수 있다. 프로세서들(9010)은 명령어들을 실행할 수 있는 임의의 적절한 프로세서들일 수 있다. 예를 들면, 다양한 실시예들에서, 프로세서들(9010)은 x86, PowerPC, SPARC, 또는 MIPS ISA들, 또는 임의의 다른 적절한 ISA와 같은, 다양한 명령어 세트 아키텍처(instruction set architecture; ISA)들 중 임의의 것을 구현한 범용 또는 내장형 프로세서들일 수 있다. 다중 프로세서 시스템들에서, 프로세서들(9010)의 각각은, 일반적으로, 반드시는 아니지만, 동일한 ISA를 구현할 수 있다. 몇몇 구현들에서, 그래픽 프로세싱 유닛(graphics processing unit; GPU)들은 종래의 프로세서들 대신에, 또는 그것에 더하여 사용될 수 있다.
시스템 메모리(9020)는 프로세서(들)(9010)에 의해 액세스 가능한 명령어들 및 데이터를 저장하도록 구성될 수 있다. 적어도 몇몇 실시예들에서, 시스템 메모리(9020)는 휘발성 및 비-휘발성 부분들 양쪽 모두를 포함할 수 있으며; 다른 실시예들에서, 단지 휘발성 메모리만이 사용될 수 있다. 다양한 실시예들에서, 시스템 메모리(9020)의 휘발성 부분은 정적 랜덤 액세스 메모리(static random access memory; SRAM), 동기식 동적 RAM 또는 임의의 다른 유형의 메모리와 같은, 임의의 적절한 메모리 기술을 사용하여 구현될 수 있다. 시스템 메모리의 비-휘발성 부분에 대해(예를 들면, 하나 이상의 NVDIMM들을 포함할 수 있는), 몇몇 실시예들에서, NAND-플래시 디바이스들을 포함한, 플래시-기반 메모리 디바이스들이 사용될 수 있다. 적어도 몇몇 실시예들에서, 시스템 메모리의 비-휘발성 부분은 슈퍼커패시터 또는 다른 전력 저장 디바이스(예로서, 배터리)와 같은, 전원을 포함할 수 있다. 다양한 실시예들에서, 멤리스터 기반 저항성 랜덤 액세스 메모리(memristor based resistive random access memory; ReRAM), 3-차원 NAND 기술들, 강유전성 RAM, 자기저항성 RAM(magnetoresistive RAM; MRAM), 또는 다양한 유형들의 상 변화 메모리(phase change memory; PCM) 중 임의의 것이 적어도 시스템 메모리의 비-휘발성 부분을 위해 사용될 수 있다. 예시된 실시예에서, 상기 설명된 이들 방법들, 기술들, 및 데이터와 같은, 하나 이상의 원하는 기능들을 구현한 프로그램 명령어들 및 데이터는 코드(9025) 및 데이터(9026)로서 시스템 메모리(9020) 내에 저장되어 도시된다.
일 실시예에서, I/O 인터페이스(9030)는 프로세서(9010), 시스템 메모리(9020), 네트워크 인터페이스(9040) 또는 다양한 유형들의 영구적 및/또는 휘발성 저장 디바이스들과 같은 다른 주변 인터페이스들 사이에서 I/O 트래픽을 조정하도록 구성될 수 있다. 몇몇 실시예들에서, I/O 인터페이스(9030)는 하나의 구성요소(예로서, 시스템 메모리(9020))로부터 또 다른 구성요소(예로서, 프로세서(9010))에 의한 사용에 적합한 포맷으로 데이터 신호들을 변환하기 위해 임의의 필요한 프로토콜, 타이밍 또는 다른 데이터 변환들을 수행할 수 있다. 몇몇 실시예들에서, I/O 인터페이스(9030)는 예를 들면, 로우 핀 카운트(Low Pin Count; LPC) 버스, 주변 장치 구성요소 상호 접속(Peripheral Component Interconnect; PCI) 버스 표준의 변형 또는 범용 시리얼 버스(Universal Serial Bus; USB) 표준과 같은, 다양한 유형들의 주변 장치 버스들을 통해 부착된 디바이스들에 대한 지지대를 포함할 수 있다. 몇몇 실시예들에서, I/O 인터페이스(9030)의 기능은 예를 들면, 노스 브리지 및 사우스 브리지와 같은, 둘 이상의 별개의 구성요소들로 분리될 수 있다. 또한, 몇몇 실시예들에서, 시스템 메모리(9020)로의 인터페이스와 같은, I/O 인터페이스(9030)의 기능 중 일부 또는 모두는 직접 프로세서(9010)로 통합될 수 있다.
네트워크 인터페이스(9040)는 예를 들면, 도 1 내지 도 6에서 예시된 바와 같이 다른 컴퓨터 시스템들 또는 디바이스들과 같은, 네트워크 또는 네트워크들(9050)에 부착된 컴퓨팅 디바이스(9000) 및 다른 디바이스들(9060) 사이에서 데이터가 교환되도록 허용하기 위해 구성될 수 있다. 다양한 실시예들에서, 네트워크 인터페이스(9040)는 예를 들면, 이더넷 네트워크의 유형들과 같은, 임의의 적절한 유선 또는 무선 일반 데이터 네트워크들을 통해 통신을 지원할 수 있다. 부가적으로, 네트워크 인터페이스(9040)는 아날로그 음성 네트워크들 또는 디지털 파이버 통신 네트워크들과 같은 전기통신들/전화기술 네트워크들을 통해, 파이버 채널 SAN들과 같은 저장 영역 네트워크들을 통해, 또는 임의의 다른 적절한 유형의 네트워크 및/또는 프로토콜을 통해 통신을 지원할 수 있다.
몇몇 실시예들에서, 시스템 메모리(9020)는 대응하는 방법들 및 장치의 실시예들을 구현하기 위해 도 1 내지 도 6에 대해 상기 설명된 바와 같이 프로그램 명령어들 및 데이터를 저장하도록 구성된 컴퓨터-액세스 가능한 매체의 일 실시예일 수 있다. 그러나, 다른 실시예들에서, 프로그램 명령어들 및/또는 데이터는, 상이한 유형들의 컴퓨터-액세스 가능한 미디어 상에서 수신되고, 전송되거나 또는 저장될 수 있다. 일반적으로 말하면, 컴퓨터-액세스 가능한 매체는 자기 또는 광학 미디어, 예로서 I/O 인터페이스(9030)를 통해 컴퓨팅 디바이스(9000)에 결합된 디스크 또는 DVD/CD와 같은 비-일시적 저장 미디어 또는 메모리 미디어를 포함할 수 있다. 비-일시적 컴퓨터-액세스 가능한 저장 매체는 또한 시스템 메모리(9020) 또는 또 다른 유형의 메모리로서 컴퓨팅 디바이스(9000)의 몇몇 실시예들에 포함될 수 있는 RAM(예로서, SDRAM, DDR SDRAM, RDRAM, SRAM 등), ROM 등과 같은 임의의 휘발성 또는 비-휘발성 미디어를 포함할 수 있다. 뿐만 아니라, 컴퓨터-액세스 가능한 매체는 네트워크 인터페이스(9040)를 통해 구현될 수 있는, 네트워크 및/또는 무선 링크와 같은 통신 매체를 통해 운반된, 전기, 전자기, 또는 디지털 신호들과 같은 신호들 또는 송신 미디어를 포함할 수 있다. 도 7에 예시된 것과 같은 다수의 컴퓨팅 디바이스들의 부분들 또는 모두는 다양한 실시예들에서 설명된 기능을 구현하기 위해 사용될 수 있으며; 예를 들면, 다양한 상이한 디바이스들 및 서버들 상에서 구동하는 소프트웨어 구성요소들은 기능을 제공하기 위해 협력할 수 있다. 몇몇 실시예들에서, 설명된 기능의 부분들은 범용 컴퓨터 시스템들을 사용하여 구현되는 것 외에 또는 그 대신에, 저장 디바이스들, 네트워크 디바이스들, 또는 특수-목적 컴퓨터 시스템들을 사용하여 구현될 수 있다. 여기에서 사용된 바와 같이, 용어("컴퓨팅 디바이스")는 적어도 모든 이들 유형들의 디바이스들을 나타내며, 이들 유형들의 디바이스들에 제한되지 않는다.
결론
다양한 실시예들은 컴퓨터-액세스 가능한 매체상에서 앞서 말한 설명에 따라 구현된 명령어들 및/또는 데이터를 수신하고, 전송하거나 또는 저장하는 것을 추가로 포함할 수 있다. 일반적으로 말하면, 컴퓨터-액세스 가능한 매체는 자기 또는 광학 미디어, 예로서 디스크 또는 DVD/CD-ROM과 같은 저장 미디어 또는 메모리 미디어, RAM(예로서, SDRAM, DDR, RDRAM, SRAM 등), ROM 등과 같은 휘발성 또는 비-휘발성 미디어, 뿐만 아니라 네트워크 및/또는 무선 링크와 같은 통신 매체를 통해 운반된, 전기, 전자기, 또는 디지털 신호들과 같은 신호들 또는 송신 미디어를 포함할 수 있다.
앞서 말한 것은 다음의 조항들을 고려하여 보다 양호하게 이해될 수 있다:
1. 시스템으로서:
제공자 네트워크의 복수의 컴퓨팅 디바이스들에서 구현된 애플리케이션 배포 서비스의 하나 이상의 구성요소들을 포함하며;
상기 하나 이상의 구성요소들은:
상기 제공자 네트워크의 하나 이상의 실행 플랫폼들에서 실행될 특정한 애플리케이션의 하나 이상의 배포 아티팩트들을 송신하기 위해 하나 이상의 클라이언트들에 의해 사용될 통신 채널에 대한 제 1 요청을 수신하고;
통신 채널의 특정한 엔드포인트의 표시를, 상기 하나 이상의 클라이언트들과 연관된 적어도 하나의 목적지로 송신하는 것으로서, 상기 특정한 엔드포인트는 상기 특정한 애플리케이션과 연관된 복수의 배포 태스크 카테고리들 중 적어도 제 1 배포 태스크 카테고리와 연관된 배포 아티팩트들을 송신하기 위해 사용되는, 상기 송신하기;
상기 하나 이상의 클라이언트들의 특정한 클라이언트에 의해 상기 특정한 엔드포인트로 향해진 메시지로부터 페이로드를 추출하고;
상기 페이로드의 검사에 적어도 부분적으로 기초하여, 상기 제 1 배포 태스크 카테고리의 배포 태스크의 구현 이전에 하나 이상의 보안 검증 동작들이 수행됨을 결정하며;
상기 하나 이상의 보안 검증 동작들이 성공적임을 결정하는 것에 응답하여, 상기 배포 태스크를 구현하는 것으로서, 상기 배포 태스크는 상기 페이로드에 표시된 배포 아티팩트의 버전을 저장소에 저장하는 것을 포함하는, 상기 배포 태스크를 구현하도록 구성되는, 시스템.
2. 조항 1에 나열된 바와 같은 시스템으로서, 상기 하나 이상의 구성요소들은:
상기 특정한 엔드포인트로 메시지들을 제출하도록 허가된 제 1 세트의 하나 이상의 제출자들의 표현, 및 상기 통신 채널에 대해 수립된 상이한 엔드포인트로 메시지들을 제출하도록 허가된 제 2 세트의 하나 이상의 제출자들의 표현을 저장하도록 구성되는, 시스템.
3. 조항 1에 나열된 바와 같은 시스템으로서, 상기 하나 이상의 구성요소들은:
상기 통신 채널의 제 2 엔드포인트의 수립을 개시하도록 구성되며, 상기 제 2 엔드포인트는 상기 복수의 배포 태스크 카테고리들 중 적어도 제 2 배포 태스크 카테고리와 연관된 배포 아티팩트들을 송신하기 위해 사용되는, 시스템.
4. 조항 1에 나열된 바와 같은 시스템으로서, 상기 하나 이상의 보안 검증 동작들은: (a) 다-단계 인증 프로토콜 또는 (b) 다중-당사자 인증 프로토콜 중 하나 이상의 사용을 포함하는, 시스템.
5. 조항 1에 나열된 바와 같은 시스템으로서, 상기 복수의 배포 태스크 카테고리들은: (a) 소스 코드를 업데이트하는 것, (b) 실행 가능 패키지를 배포하는 것, (c) 애플리케이션 구성 설정을 수정하는 것, 또는 (d) 애플리케이션을 실행하기 위해 사용된 리소스 세트를 수정하는 것 중 하나 이상을 포함하는, 시스템.
6. 방법으로서:
제공자 네트워크의 하나 이상의 컴퓨팅 디바이스들에서 수현된 애플리케이션배포 서비스에서:
특정한 애플리케이션의 하나 이상의 배포 아티팩트들을 송신하기 위해 하나 이상의 클라이언트들에 의해 사용될 통신 채널에 대한 제 1 요청을 수신하는 것;
통신 채널의 특정한 엔드포인트의 표시를, 상기 하나 이상의 클라이언트들과 연관된 적어도 하나의 목적지로 송신하는 것;
상기 특정한 엔드포인트를 통해 수신된 제 1 메시지에 응답하여, 상기 특정한 애플리케이션 및 상기 메시지에 대응하는 제 1 배포 태스크의 구현 이전에 하나 이상의 보안 검증 동작들이 수행됨을 결정하는 것;
상기 하나 이상의 보안 검증 동작들을 완료하는 것에 응답하여, 적어도 상기 제 1 메시지에 표시된 제 1 아티팩트를 사용하여 상기 제 1 배포 태스크를 구현하는 것을 수행하는 단계를 포함하는, 방법.
7. 조항 6에 나열된 바와 같은 방법으로서, 상기 특정한 엔드포인트의 표시는: (a) 이-메일 어드레스, (b) 단문 메시지 서비스(SMS) 목적지 어드레스, 또는 (c) 파일 전송 목적지 어드레스 중 하나를 포함하는, 방법.
8. 조항 6에 나열된 바와 같은 방법으로서, 상기 애플리케이션 배포 서비스에 의해:
상기 특정한 엔드포인트로 메시지들을 전송하도록 허가된 제 1 세트의 하나 이상의 제출자들의 표현, 및 상기 통신 채널에 대해 수립된 상이한 엔드포인트로 메시지들을 제출하도록 허가된 제 2 세트의 하나 이상의 제출자들의 표현을 저장하는 것을 수행하는 단계를 더 포함하는, 방법.
9. 조항 6에 나열된 바와 같은 방법으로서, 상기 제 1 배포 태스크는 상기 특정한 애플리케이션의 복수의 배포 태스크 카테고리들 중 제 1 배포 태스크 카테고리에 속하며, 상기 애플리케이션 배포 서비스에 의해:
상기 통신 채널의 제 2 엔드포인트의 수립을 개시하는 것을 수행하는 단계를 더 포함하며, 상기 제 2 엔드포인트는 상기 복수의 배포 태스크 카테고리들 중 적어도 제 2 배포 태스크 카테고리와 연관된 배포 아티팩트들을 송신하기 위해 사용되는, 방법.
10. 조항 9에 나열된 바와 같은 방법으로서, 상기 복수의 배포 태스크 카테고리들은: (a) 소스 코드를 업데이트하는 것, (b) 실행 가능 패키지를 배포하는 것, (c) 애플리케이션 구성 설정을 수정하는 것, 또는 (d) 애플리케이션을 실행하기 위해 사용된 리소스 세트를 수정하는 것 중 하나 이상을 포함하는, 방법.
11. 조항 6에 나열된 바와 같은 방법으로서, 상기 하나 이상의 보안 검증 동작들은: (a) 다-단계 인증 프로토콜 또는 (b) 다중-당사자 인증 프로토콜 중 하나 이상의 사용을 포함하는, 방법.
12. 조항 6에 나열된 바와 같은 방법으로서, 상기 제 1 배포 태스크를 구현하는 것은:
상기 제 1 메시지에 포함된 특정한 소스 코드 파일이 저장되는 소스 코드 계층 내에서의 특정한 위치를 결정하는 것;
상기 특정한 위치에 상기 특정한 소스 코드 파일을 저장하는 것;
상기 특정한 소스 코드 파일을 사용하여, 상기 특정한 애플리케이션의 실행 가능 버전을 생성하는 것; 및
상기 실행 가능 버전을 사용하여 하나 이상의 실행 플랫폼들에서 상기 특정한 애플리케이션의 실행을 인스턴스화(instantiate)하는 것을 포함하는, 방법.
13. 조항 6에 나열된 바와 같은 방법으로서, 상기 애플리케이션 배포 서비스에 의해:
상기 특정한 엔드포인트에서 제 2 메시지를 수신하는 것에 응답하여, 어떤 부가적인 보안 검증 동작들도 상기 제 2 메시지에 표시된 제 2 배포 태스크를 구현하기 전에 스케줄링되지 않음을 결정하는 것을 수행하는 단계를 더 포함하는, 방법.
14. 조항 6에 나열된 바와 같은 방법으로서, 상기 애플리케이션 배포 서비스에 의해:
프로그래매틱 인터페이스를 통해, 상기 특정한 애플리케이션과 연관된 허가받은 엔티티가 상기 통신 채널을 통해 배포 아티팩트들을 제출하기 위해 상기 하나 이상의 클라이언트들의 권리들을 취소하였다는 표시를 수신하는 것; 및
상기 특정한 엔드포인트에서 상기 표시 다음에 제 2 메시지를 수신하는 것에 응답하여, 상기 제 2 메시지를 폐기하는 것을 수행하는 단계를 더 포함하는, 방법.
15. 조항 6에 나열된 바와 같은 방법으로서, 상기 애플리케이션 배포 서비스에 의해:
상기 제 2 메시지가 상기 특정한 엔드포인트와 연관된 하나 이상의 데이터 전송 제약들을 위반하였다는 결정에 적어도 부분적으로 기초하여 상기 특정한 엔드포인트로 향해진 제 2 메시지를 거절하는 것을 수행하는 단계를 더 포함하는, 방법.
16. 하나 이상의 프로세서들 상에서 실행될 때, 애플리케이션 배포 서비스의 하나 이상의 구성요소들을 구현하는 프로그램 명령어들을 저장한 비-일시적 컴퓨터-액세스 가능한 저장 매체로서, 상기 애플리케이션 배포 서비스의 하나 이상의 구성요소들은:
특정한 애플리케이션의 하나 이상의 배포 아티팩트들을 송신하기 위해 하나 이상의 클라이언트들에 의해 사용될 통신 채널에 대한 제 1 요청을 수신하고;
통신 채널의 특정한 엔드포인트의 표시를, 상기 하나 이상의 클라이언트들과 연관된 적어도 하나의 목적지로 송신하고;
상기 특정한 엔드포인트를 통해 수신된 제 1 메시지에 응답하여, 상기 특정한 애플리케이션 및 상기 메시지에 대응하는 제 1 배포 태스크의 구현 이전에 하나 이상의 보안 검증 동작들이 수행됨을 결정하며;
상기 하나 이상의 보안 검증 동작들을 완료하는 것에 응답하여, 적어도 상기 제 1 메시지에 표시된 제 1 아티팩트를 사용하여 상기 제 1 배포 태스크를 구현하도록 구성되는, 비-일시적 컴퓨터-액세스 가능한 저장 매체.
17. 조항 16에 나열된 바와 같은 비-일시적 컴퓨터-액세스 가능한 저장 매체로서, 상기 특정한 엔드포인트의 표시는: (a) 이-메일 어드레스, (b) 단문 메시지 서비스(SMS) 목적지 어드레스, 또는 (c) 파일 전송 목적지 어드레스 중 하나를 포함하는, 비-일시적 컴퓨터-액세스 가능한 저장 매체.
18. 조항 16에 나열된 바와 같은 비-일시적 컴퓨터-액세스 가능한 저장 매체로서, 상기 애플리케이션 배포 서비스의 하나 이상의 구성요소들은 또한:
상기 특정한 엔드포인트로 메시지들을 제출하도록 허가된 제 1 세트의 하나 이상의 제출자들의 표현, 및 상기 통신 채널을 위해 수립된 상이한 엔드포인트로 메시지들을 제출하도록 허가된 제 2 세트의 하나 이상의 제출자들의 표현을 저장하도록 구성되는, 비-일시적 컴퓨터-액세스 가능한 저장 매체.
19. 조항 16에 나열된 바와 같은 비-일시적 컴퓨터-액세스 가능한 저장 매체로서, 상기 제 1 배포 태스크는 상기 특정한 애플리케이션의 복수의 배포 태스크 카테고리들 중 제 1 배포 태스크 카테고리에 속하며, 상기 애플리케이션 배포 서비스의 하나 이상의 구성요소들은 또한:
상기 통신 채널의 제 2 엔드포인트의 수립을 개시하도록 구성되며, 상기 제 2 엔드포인트는 상기 복수의 배포 태스크 카테고리들 중 적어도 제 2 배포 태스크 카테고리와 연관된 배포 아티팩트들을 송신하기 위해 사용되는, 비-일시적 컴퓨터-액세스 가능한 저장 매체.
20. 조항 19에 나열된 바와 같은 비-일시적 컴퓨터-액세스 가능한 저장 매체로서, 상기 복수의 배포 태스크 카테고리들은: (a) 소스 코드를 업데이트하는 것, (b) 실행 가능 패키지를 배포하는 것, (c) 애플리케이션 구성 설정을 수정하는 것, 또는 (d) 애플리케이션을 실행하기 위해 사용된 리소스 세트를 수정하는 것 중 하나 이상을 포함하는, 비-일시적 컴퓨터-액세스 가능한 저장 매체.
도면들에서 예시되며 여기에서 설명된 바와 같은 다양한 방법들은 방법들의 대표적인 실시예들을 나타낸다. 방법들은 소프트웨어, 하드웨어, 또는 그것의 조합으로 구현될 수 있다. 방법의 순서는 변경될 수 있으며, 다양한 요소들은 부가, 재순서화, 조합, 생략, 수정 등이 될 수 있다.
다양한 수정들 및 변화들은 본 개시의 이들을 가진 이 기술분야에서의 숙련자에게 명백할 바와 같이 이루어질 수 있다. 모든 이러한 수정들 및 변화들을 포괄하며, 그에 따라 상기 설명은 제한적 의미보다는 예시적으로 간주되도록 의도된다.

Claims (15)

  1. 시스템으로서,
    제공자 네트워크의 복수의 컴퓨팅 디바이스들에서 구현된 애플리케이션 배포 서비스의 하나 이상의 구성요소들을 포함하며,
    상기 하나 이상의 구성요소들은:
    상기 제공자 네트워크의 하나 이상의 실행 플랫폼들에서 실행될 특정한 애플리케이션의 하나 이상의 배포 아티팩트(artifact)들을 송신하기 위해 하나 이상의 클라이언트들에 의해 사용될 통신 채널에 대한 제 1 요청을 수신하고;
    통신 채널의 특정한 엔드포인트(endpoint)의 표시를, 상기 하나 이상의 클라이언트들과 연관된 적어도 하나의 목적지로 송신하는 것으로서, 상기 특정한 엔드포인트는 상기 특정한 애플리케이션과 연관된 복수의 배포 태스크 카테고리들 중 적어도 제 1 배포 태스크 카테고리와 연관된 배포 아티팩트들을 송신하기 위해 사용되는, 상기 송신하기;
    상기 하나 이상의 클라이언트들의 특정한 클라이언트에 의해 상기 특정한 엔드포인트로 향해진 메시지로부터 페이로드(payload)를 추출하고;
    상기 페이로드의 검사에 적어도 부분적으로 기초하여, 상기 제 1 배포 태스크 카테고리의 배포 태스크의 구현 이전에 하나 이상의 보안 검증 동작들이 수행됨을 결정하며; 및
    상기 하나 이상의 보안 검증 동작들이 성공하였다고 결정하는 것에 응답하여, 상기 배포 태스크를 구현하는 것으로서, 상기 배포 태스크는 상기 페이로드에 표시된 배포 아티팩트의 버전을 저장소 내에 저장하는 것을 포함하는, 상기 배포 태스크를 구현하도록 구성되는, 시스템.
  2. 청구항 1에 있어서,
    상기 하나 이상의 구성요소들은:
    상기 특정한 엔드포인트로 메시지들을 제출하도록 허가된 제 1 세트의 하나 이상의 제출자들의 표현, 및 상기 통신 채널에 대해 수립된 상이한 엔드포인트로 메시지들을 제출하도록 허가된 제 2 세트의 하나 이상의 제출자들의 표현을 저장하도록 구성되는, 시스템.
  3. 청구항 1에 있어서,
    상기 하나 이상의 구성요소들은:
    상기 통신 채널의 제 2 엔드포인트의 수립을 개시하도록 구성되며, 상기 제 2 엔드포인트는 상기 복수의 배포 태스크 카테고리들 중 적어도 제 2 배포 태스크 카테고리와 연관된 배포 아티팩트들을 송신하기 위해 사용되는, 시스템.
  4. 청구항 1에 있어서,
    상기 하나 이상의 보안 검증 동작들은: (a) 다-단계 인증 프로토콜 또는 (b) 다중-당사자 인증 프로토콜 중 하나 이상의 사용을 포함하는, 시스템.
  5. 청구항 1에 있어서,
    상기 복수의 배포 태스크 카테고리들은: (a) 소스 코드를 업데이트하는 것, (b) 실행 가능 패키지를 배포하는 것, (c) 애플리케이션 구성 설정을 수정하는 것, 또는 (d) 애플리케이션을 실행하기 위해 사용되는 리소스 세트를 수정하는 것 중 하나 이상을 포함하는, 시스템.
  6. 방법으로서,
    제공자 네트워크의 하나 이상의 컴퓨팅 디바이스들에서 구현된 애플리케이션 배포 서비스에서:
    특정한 애플리케이션의 하나 이상의 배포 아티팩트들을 송신하기 위해 하나 이상의 클라이언트들에 의해 사용될 통신 채널에 대한 제 1 요청을 수신하는 것;
    통신 채널의 특정한 엔드포인트의 표시를, 상기 하나 이상의 클라이언트들과 연관된 적어도 하나의 목적지로 송신하는 것;
    상기 특정한 엔드포인트를 통해 수신된 제 1 메시지에 응답하여, 상기 특정한 애플리케이션 및 상기 제 1 메시지에 대응하는 제 1 배포 태스크의 구현 이전에 하나 이상의 보안 검증 동작들이 수행됨을 결정하는 것; 및
    상기 하나 이상의 보안 검증 동작들을 완료하는 것에 응답하여, 적어도 상기 제 1 메시지에서 표시된 제 1 아티팩트를 사용하여 상기 제 1 배포 태스크를 구현하는 것을 수행하는 단계를 포함하는, 방법.
  7. 청구항 6에 있어서,
    상기 특정한 엔드포인트의 표시는: (a) 이-메일 어드레스, (b) 단문 메시지 서비스(SMS) 목적지 어드레스, 또는 (c) 파일 전송 목적지 어드레스 중 하나를 포함하는, 방법.
  8. 청구항 6에 있어서,
    상기 애플리케이션 배포 서비스에 의해:
    상기 특정한 엔드포인트로 메시지들을 제출하도록 허가된 제 1 세트의 하나 이상의 제출자들의 표현, 및 상기 통신 채널에 대해 수립된 상이한 엔드포인트로 메시지들을 제출하도록 허가된 제 2 세트의 하나 이상의 제출자들의 표현을 저장하는 것을 수행하는 단계를 더 포함하는, 방법.
  9. 청구항 6에 있어서,
    상기 제 1 배포 태스크는 상기 특정한 애플리케이션의 복수의 배포 태스크 카테고리들 중 제 1 배포 태스크 카테고리에 속하며, 상기 애플리케이션 배포 서비스에 의해:
    상기 통신 채널의 제 2 엔드포인트의 수립을 개시하는 것을 수행하는 단계를 더 포함하며, 상기 제 2 엔드포인트는 상기 복수의 배포 태스크 카테고리들 중 적어도 제 2 배포 태스크 카테고리와 연관된 배포 아티팩트들을 송신하기 위해 사용되는, 방법.
  10. 청구항 6에 있어서,
    상기 하나 이상의 보안 검증 동작들은: (a) 다-단계 인증 프로토콜 또는 (b) 다중-당사자 인증 프로토콜 중 하나 이상의 사용을 포함하는, 방법.
  11. 청구항 6에 있어서,
    상기 제 1 배포 태스크를 구현하는 것은:
    상기 제 1 메시지에 포함된 특정한 소스 코드 파일이 저장될 소스 코드 계층 내에서의 특정한 위치를 결정하는 것;
    상기 특정한 위치에 상기 특정한 소스 코드 파일을 저장하는 것;
    상기 특정한 소스 코드 파일을 사용하여, 상기 특정한 애플리케이션의 실행 가능 버전을 생성하는 것; 및
    상기 실행 가능 버전을 사용하여 하나 이상의 실행 플랫폼들에서 상기 특정한 애플리케이션의 실행을 인스턴스화(instantiate)하는 것을 포함하는, 방법.
  12. 청구항 6에 있어서,
    상기 애플리케이션 배포 서비스에 의해:
    상기 특정한 엔드포인트에서 제 2 메시지를 수신하는 것에 응답하여, 상기 제 2 메시지에 표시된 제 2 배포 태스크를 구현하기 전에 어떤 부가적인 보안 검증 동작들도 스케줄링되지 않음을 결정하는 것을 수행하는 단계를 더 포함하는, 방법.
  13. 청구항 6에 있어서,
    상기 애플리케이션 배포 서비스에 의해:
    프로그래매틱(programmatic) 인터페이스를 통해, 상기 특정한 애플리케이션과 연관된 허가받은 엔티티가 상기 통신 채널을 통해 배포 아티팩트들을 제출하기 위해 상기 하나 이상의 클라이언트들의 권리들을 취소하였다는 표시를 수신하는 것; 및
    상기 특정한 엔드포인트에서 상기 표시 다음에 제 2 메시지를 수신하는 것에 응답하여, 상기 제 2 메시지를 폐기하는 것을 수행하는 단계를 더 포함하는, 방법.
  14. 청구항 6에 있어서,
    상기 애플리케이션 배포 서비스에 의해,
    제 2 메시지가 상기 특정한 엔드포인트와 연관된 하나 이상의 데이터 전송 제약들을 위반하였다고 결정하는 것에 적어도 부분적으로 기초하여 상기 특정한 엔드포인트로 향해진 상기 제 2 메시지를 거절하는 것을 수행하는 단계를 더 포함하는, 방법.
  15. 시스템으로서,
    하나 이상의 프로세서들; 및
    하나 이상의 메모리들로서, 상기 하나 이상의 메모리들은 상기 하나 이상의 프로세서들 상에서 실행될 때, 애플리케이션 배포 서비스의 하나 이상의 구성요소들을 구현하는 프로그램 명령어들을 저장하며, 상기 애플리케이션 배포 서비스의 하나 이상의 구성요소들은:
    특정한 애플리케이션의 하나 이상의 배포 아티팩트들을 송신하기 위해 하나 이상의 클라이언트들에 의해 사용될 통신 채널에 대한 제 1 요청을 수신하고;
    통신 채널의 특정한 엔드포인트의 표시를, 상기 하나 이상의 클라이언트들과 연관된 적어도 하나의 목적지로 송신하고;
    상기 특정한 엔드포인트를 통해 수신된 제 1 메시지에 응답하여, 상기 특정한 애플리케이션 및 상기 제 1 메시지에 대응하는 제 1 배포 태스크의 구현 이전에 하나 이상의 보안 검증 동작들이 수행됨을 결정하며;
    상기 하나 이상의 보안 검증 동작들을 완료하는 것에 응답하여, 적어도 상기 제 1 메시지에 표시된 제 1 아티팩트를 사용하여 상기 제 1 배포 태스크를 구현하도록 구성되는, 상기 하나 이상의 메모리들을 포함하는, 시스템.
KR1020177035635A 2015-05-19 2016-05-19 애플리케이션 배포를 위한 맞춤 통신 채널들 KR102045136B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/716,700 US10749985B2 (en) 2015-05-19 2015-05-19 Custom communication channels for application deployment
US14/716,700 2015-05-19
PCT/US2016/033319 WO2016187450A1 (en) 2015-05-19 2016-05-19 Custom communication channels for application deployment

Publications (2)

Publication Number Publication Date
KR20180004802A KR20180004802A (ko) 2018-01-12
KR102045136B1 true KR102045136B1 (ko) 2019-12-02

Family

ID=56119753

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177035635A KR102045136B1 (ko) 2015-05-19 2016-05-19 애플리케이션 배포를 위한 맞춤 통신 채널들

Country Status (8)

Country Link
US (1) US10749985B2 (ko)
EP (1) EP3298757B1 (ko)
JP (1) JP6411698B2 (ko)
KR (1) KR102045136B1 (ko)
CN (1) CN107637042B (ko)
AU (1) AU2016264496C1 (ko)
CA (1) CA2986230C (ko)
WO (1) WO2016187450A1 (ko)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9882968B1 (en) 2014-12-09 2018-01-30 Amazon Technologies, Inc. Virtual network interface multiplexing
US10749808B1 (en) 2015-06-10 2020-08-18 Amazon Technologies, Inc. Network flow management for isolated virtual networks
US9910652B2 (en) * 2015-11-30 2018-03-06 International Business Machines Corporation Deploying applications
US10157215B2 (en) * 2016-01-13 2018-12-18 American Express Travel Related Services Company, Inc. System and method for managing data and updates to a database structure
US10158727B1 (en) 2016-03-16 2018-12-18 Equinix, Inc. Service overlay model for a co-location facility
US10348556B2 (en) * 2016-06-02 2019-07-09 Alibaba Group Holding Limited Method and network infrastructure for a direct public traffic connection within a datacenter
US20180189054A1 (en) * 2016-12-29 2018-07-05 Arvind Varma Kalidindi Automated platform re-creation system
CN108287723B (zh) * 2016-12-30 2022-07-12 华为技术有限公司 一种应用交互方法、装置、物理机及系统
US10809989B2 (en) * 2017-05-05 2020-10-20 Servicenow, Inc. Service release tool
US10812974B2 (en) * 2017-05-06 2020-10-20 Vmware, Inc. Virtual desktop client connection continuity
US10142222B1 (en) * 2017-06-13 2018-11-27 Uber Technologies, Inc. Customized communications for network systems
US10530632B1 (en) 2017-09-29 2020-01-07 Equinix, Inc. Inter-metro service chaining
US11188355B2 (en) * 2017-10-11 2021-11-30 Barefoot Networks, Inc. Data plane program verification
US11082338B1 (en) 2018-04-17 2021-08-03 Amazon Technologies, Inc. Distributed connection state tracking for large-volume network flows
US11010150B2 (en) * 2018-04-18 2021-05-18 Verizon Media Inc. System and method for performing device updates
US10834044B2 (en) 2018-09-19 2020-11-10 Amazon Technologies, Inc. Domain name system operations implemented using scalable virtual traffic hub
CN115277816B (zh) * 2019-04-16 2023-10-20 创新先进技术有限公司 服务适配方法、设备、系统以及计算机可读介质
US11088944B2 (en) 2019-06-24 2021-08-10 Amazon Technologies, Inc. Serverless packet processing service with isolated virtual network integration
US11296981B2 (en) 2019-06-24 2022-04-05 Amazon Technologies, Inc. Serverless packet processing service with configurable exception paths
US10848418B1 (en) 2019-06-24 2020-11-24 Amazon Technologies, Inc. Packet processing service extensions at remote premises
US11936638B2 (en) * 2019-06-28 2024-03-19 Salesforce Inc. Link protocol agents for inter-application communications
CN112579099A (zh) * 2019-09-30 2021-03-30 北京国双科技有限公司 代码的部署方法、装置、存储介质及电子设备
US11194601B2 (en) * 2019-12-31 2021-12-07 Microsoft Technology Licensing, Llc Dynamic integration checklist for development platform
US11153195B1 (en) 2020-06-08 2021-10-19 Amazon Techologies, Inc. Packet processing service configuration change propagation management
US11689473B2 (en) * 2020-07-24 2023-06-27 Oracle International Corporation Pre-allocating resources with hierarchy-based constraints
CN114003346A (zh) * 2021-11-12 2022-02-01 深圳前海微众银行股份有限公司 任务处理方法、设备、存储介质及程序产品
CN116527406B (zh) * 2023-07-03 2023-09-12 北京左江科技股份有限公司 一种基于fpga的多主机的安全系统和通信方法
CN116760913B (zh) * 2023-08-18 2023-12-01 明阳时创(北京)科技有限公司 k8s集群协议转换平台配置下发方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080249961A1 (en) * 2007-03-22 2008-10-09 Harkness David H Digital rights management and audience measurement systems and methods

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6754709B1 (en) * 2000-03-29 2004-06-22 Microsoft Corporation Application programming interface and generalized network address translator for intelligent transparent application gateway processes
US20070192863A1 (en) 2005-07-01 2007-08-16 Harsh Kapoor Systems and methods for processing data flows
US6901446B2 (en) * 2001-02-28 2005-05-31 Microsoft Corp. System and method for describing and automatically managing resources
US20020178254A1 (en) 2001-05-23 2002-11-28 International Business Machines Corporation Dynamic deployment of services in a computing network
US20070061277A1 (en) 2003-09-05 2007-03-15 International Business Machines Corporation Method, system, and storage medium for providing dynamic deployment of grid services over a computer network
US7660879B2 (en) 2004-05-20 2010-02-09 Ananthan Bala Srinivasan System and method for application deployment service
US7735097B2 (en) 2004-05-24 2010-06-08 Sap Ag Method and system to implement a deploy service to perform deployment services to extend and enhance functionalities of deployed applications
US7950010B2 (en) 2005-01-21 2011-05-24 Sap Ag Software deployment system
US8745583B2 (en) * 2006-03-31 2014-06-03 Sap Ag Method and system for managing development components
US20080096507A1 (en) * 2006-10-24 2008-04-24 Esa Erola System, apparatus and method for creating service accounts and configuring devices for use therewith
US8032528B2 (en) * 2007-01-12 2011-10-04 About Inc. Method and system for managing content submission and publication of content
WO2009032710A2 (en) * 2007-08-29 2009-03-12 Nirvanix, Inc. Filing system and method for data files stored in a distributed communications network
US8893141B2 (en) * 2008-01-28 2014-11-18 Microsoft Corporation System and method for describing applications for manageability and efficient scale-up deployment
JP5218820B2 (ja) * 2008-03-07 2013-06-26 日本電気株式会社 ソフトウェアのインストールシステム及びその方法
US9076176B2 (en) * 2008-05-05 2015-07-07 Apple Inc. Electronic submission of application programs for network-based distribution
EP2365677B1 (en) * 2010-03-03 2020-04-08 BlackBerry Limited Method, system and apparatus for configuring a device for interaction with a server
CN103947140B (zh) 2011-09-20 2017-09-29 以太杰作有限责任公司 用于位置无关软件的需求驱动的部署的系统和方法
WO2013044138A1 (en) * 2011-09-21 2013-03-28 Twilio, Inc. System and method for authorizing and connecting application developers and users
US8984162B1 (en) 2011-11-02 2015-03-17 Amazon Technologies, Inc. Optimizing performance for routing operations
US8726264B1 (en) 2011-11-02 2014-05-13 Amazon Technologies, Inc. Architecture for incremental deployment
CN104854558B (zh) 2012-12-14 2018-10-23 瑞典爱立信有限公司 用于使用编译和部署服务进行软件构建和负载处理的系统、方法和计算机程序产品
US9189285B2 (en) 2012-12-14 2015-11-17 Microsoft Technology Licensing, Llc Scalable services deployment
US20150066919A1 (en) * 2013-08-27 2015-03-05 Objectvideo, Inc. Systems and methods for processing crowd-sourced multimedia items
US9311076B2 (en) * 2014-01-22 2016-04-12 Linkedin Corporation Systems and methods for enforcing code reviews
US9135458B1 (en) * 2014-02-23 2015-09-15 Aitheras, LLC. Secure file transfer systems and methods
US9886254B2 (en) * 2015-01-06 2018-02-06 Oracle International Corporation Incremental provisioning of cloud-based modules

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080249961A1 (en) * 2007-03-22 2008-10-09 Harkness David H Digital rights management and audience measurement systems and methods

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
John V,"Managed File Transfer and Network Solutions", 19 July 2014, 인터넷 등록 자료, [2019년 3월 21일 검색], : <https://www.jscape.com/blog/bid/80512/Active-v-s-Passive-FTP-Simplified>*

Also Published As

Publication number Publication date
JP2018523248A (ja) 2018-08-16
CN107637042A (zh) 2018-01-26
AU2016264496B2 (en) 2018-11-29
US20160344798A1 (en) 2016-11-24
JP6411698B2 (ja) 2018-10-24
CN107637042B (zh) 2020-09-29
AU2016264496A1 (en) 2017-12-07
WO2016187450A1 (en) 2016-11-24
US10749985B2 (en) 2020-08-18
AU2016264496C1 (en) 2019-04-04
CA2986230C (en) 2021-08-10
KR20180004802A (ko) 2018-01-12
CA2986230A1 (en) 2016-11-24
EP3298757A1 (en) 2018-03-28
EP3298757B1 (en) 2022-04-27

Similar Documents

Publication Publication Date Title
KR102045136B1 (ko) 애플리케이션 배포를 위한 맞춤 통신 채널들
JP7203444B2 (ja) 代替サーバ名を使用する相互トランスポート層セキュリティを選択的に提供すること
US9122531B2 (en) Resource configuration for a network data processing system
US10601871B2 (en) Reconfiguration of security requirements for deployed components of applications
US20130212340A1 (en) Partition aware quality of service feature
US10356155B2 (en) Service onboarding
US11108871B2 (en) Dynamic generation of network routing configuration with service requirements
CN113544675A (zh) 安全执行客户机所有者环境控制符
US11948005B2 (en) Managed integration of constituent services of multi-service applications
US20210406039A1 (en) Managed control plane service
US20210132975A1 (en) Automated host attestation for secure run-time environments
US20220407707A1 (en) Generative cryptogram for blockchain data managment
US20210216343A1 (en) Safely processing integrated flows of messages in a multi-tenant container
CN116263818A (zh) 多集群系统中的服务请求的授权
CN114586032B (zh) 安全的工作负载配置
US11861409B2 (en) Distributed decomposition of string-automated reasoning using predicates
US20230037986A1 (en) Autoencryption system for data in a container
US20240061941A1 (en) Distribution of Secure Data for Networked Transactions
US20240007340A1 (en) Executing on-demand workloads initiated from cloud services in a software-defined data center
Montalbano Definition of a Microservices-based Management and Monitoring System for Oracle Cloud
De Paz et al. Cloud analytics and security automation with Ansible
JP2023138909A (ja) コンピュータ実装方法、システム及びコンピュータプログラム(クラウドネイティブアプリケーションのログにおける機密データのフィルタリング)

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right