Monday, 11 April 2016

Docker Java Application With Solr, Mongo, & Cassandra: Design, Deployment, Service Discovery, And Management In Production

산 설계, 배포 및 관리 서비스 검색 : SOLR, 몽골, 카산드라와 고정 표시기 자바 응용 프로그램 [ K O ]

--------------------------------------------------------------------------------------------------------

이 샘플 "디렉토리 이름", 당신은 GitHub의.에 자바 응용 프로그램을 복제 할 수 있습니다 아이 복제 https://github.com/dchqinc/dchq-docker-java-solr-mongo-cassandra-example.git을

단계에서 Dockerizing에 대해 구성 단계를 안내하고 관리 Java 응용 프로그램 :
  • 아파치 HTTP 서버 (아파치) Nginx에 ( 로드 밸런싱 )
  • 보스 , 톰캣 부두 ( 응용 프로그램 서버 등 )
  • SOLR ( 전체 텍스트 검색 )
  • 몽골 , 카산드라 , 와 MySQL 오라클 ( 데이터베이스 )
이 프로젝트 (의 확장 https://github.com/dchqinc/dchq-docker-java-example ). 이제 응용 프로그램을 지원 SOLR에게 모든 전체 텍스트 검색 및 몽골 카산드라 데이터베이스를 지원하고있다.
실행 및 관리 (24) 가 그 중 하나, 13 개의 다른 구름 만들기 (은 vSphere를 포함하여, OpenStack은은, 디지털 바다를 포함하여 AWS, 랙 스페이스, 마이크로 소프트 애저, 구글 컴퓨 트 엔진이며, IBM SOFTLAYER) 가상화 플랫폼, 템플릿이 프로젝트 Java 응용 프로그램 :
그림
그림

배경

엔터프라이즈 자바 애플리케이션 Containerizing은 여전히​​ 가장 복잡한 종속성, 외부 또는 통합 자동 크기 조정 후 제공되는 워크 플로우를 해결하지 않기 때문에 기존 응용 프로그램 프레임 워크는 도전이다 구성합니다. 또한, 임시 용기의 설계는 개발자 용기 회전 새로운 업데이트 모든 버전의 복소 외부 종속성 통합 재건 한 것을 의미한다.
DCHQ, 호스팅에 - 모두 가능한 온 - 프레미스 버전은 이러한 문제를 해결하고 많은 호스트 또는 지역으로 확장 이전 응용 프로그램 구성 프레임 워크 dokeo 용으로 작성된 엔터프라이즈 자바 애플리케이션의 컨테이너 운송 플러그인 확장 BASH 스크립트를 결합 교차 이미지 환경 변수를 단순화 즉, 고 가용성을위한 자동 스케일링을 지원하며 시간을 전화 또는 우편 규칙 및 클러스터링 애플리케이션에 요청하실 수 있습니다.
응용 프로그램이 프로비저닝되면, 사용자의 CPU, 당신은 메모리를 모니터링 할 수 있습니다, & I는 컨테이너 / O, 알림을 받고있을 것 경고는 응용 프로그램의 백업 액세스, 자동 스케일을 얻기 위해 인 / 아웃 워크 플로우에서 실행하고 컨테이너를 실행 및 플러그인 실행중인 워크 플로를 업데이트합니다. 또한, 젠킨스 및 워크 플로 개발자가 기존의 종속성 및 통합 프로그램을 방해하지 않고 실행중인 응용 프로그램의 자바 WAR 파일을 업데이트 할 수 있습니다 아웃 오브 박스의 지속적인 공급을 촉진한다.
이전 블로그에서 우리는 스택을 기반으로 13 개의 다른 클라우드 및 가상화 플랫폼에서 응용 프로그램 (피자 가게와 영화 스토어 앱, 등) Java 응용 프로그램의 다양한 끝입니다 dokeo 다중 계층이 - 배포 자동화 엔드 - 투을 보였다. : 블로그의 전체 목록을 보려면이 페이지를 방문 할 수 있습니다 http://dchq.co/docker-java-applications.html에를
그러나, 많은 사용자가 모델링 애플리케이션의 기본 형태 중 일부에 의해 혼란 하였다. 다음과 같이 이러한 질문은 다음과 같습니다 :
  • 어디에서 어떻게 이러한 환경 변수 당신 YAML 기반 응용 프로그램 템플릿에서?
  • 어떻게되는 데이터베이스 스키마는 해당로 초기화되는 자바 애플리케이션 내에서 필요?
  • 나는 이미 WebLogic 응용 프로그램 서버에 대한 배치 계획을 가지고있다. 내가 할 수있는 내 자신의 스크립트 실행 Java 응용 프로그램을 배포 할 수 있습니까?
이러한 문제를 해결하기 위해,이 응용 프로그램에서 우리는 GitHub의는 "디렉토리 이름"자바 응용 프로그램 샘플을 만들어 itseupnidayi 스택 프로젝트에 배포 할 수 있습니다 :
  • 아파치 HTTP 서버 (아파치)와 Nginx에 (로드 밸런싱)
  • 보스, 톰캣과 부두 (응용 프로그램 서버)
  • (전체 텍스트 검색) SOLR
  • (데이터베이스) 오라클, 몽골, 카산드라, MySQL은,
이 프로젝트에서 우리는, 구성, 배포 및이 다른 애플리케이션 스택을 사용하여 Java 응용 프로그램을 관리하기위한 다른 클라우드 / 가상 인프라에 대한 단계별 가이드를 제공합니다.
우리는 다룰 것입니다 :
  • 데이터베이스 액세스 환경 변수 SOLR 자바 구성 파일
  • 첨부 된 빈 liquibase을 사용하여 데이터베이스를 초기화
  • 어디 리눅스 호스트를 실행하는 데 재사용 할 수있는 응용 프로그램 내장 템플릿을 YAML 기반
  • 프로비저닝 (랙 스페이스는 예를 들어, 블로그 상태)가 자동으로 기본 인프라 확장 된 구름
  • 클러스터 랙 공간에 다중 계층 Java 응용 프로그램 배포
  • CPU, 메모리를 모니터링하고 난 용기 존재의 / O 실행
  • 젠킨스와 연속 배달 워크 플로우 빌드가 실행중인 응용 프로그램의 WAR 파일을 업데이트 트리거 될 때
  • 당신은 자원 제약로드 균형 조정 서비스를 업데이트, 서비스 검색 프레임 워크를 사용하는 응용 프로그램 서버 클러스터 응용 프로그램을 확장하는 경우

데이터베이스 액세스 환경 변수 SOLR 자바 구성 파일

당신은 GitHub의 "이름 디렉토리"에이를보실 수 있습니다 당신은 자바 응용 프로그램을 복제 할 수 있습니다.
자바 응용 프로그램이 "Dockerizing"가장 중요한 단계. 컨테이너를 실행하는 경우,이 응용 프로그램은 당신이 요청에 따라 특정 속성을 변경할 수있는 방식으로 구성되어 있는지 확인해야합니다 전달 될 수있는 환경 변수의 장점 중요합니다 - 등을 :
  • 나는 SOLR URL 및 포트를 사용하고 싶습니다
  • 사용하려는 데이터베이스 드라이버
  • URL 데이터베이스
  • 데이터베이스 자격 증명
  • 당신이 요청에 다른 매개 변수를 변경하려면 (등 예를 들어 최소 / 연결 풀 유휴 시간 제한의 최대 크기)
이를 위해, 우리는 몇 자바 파일, 당신은 우리의 데이터베이스와 SOLR에 연결하는 데 사용할 것을 선언하는 데 필요한 환경 변수를 만들었습니다. 자바 파일은 config 디렉토리에서 찾을 수 있습니다 :

그림
당신은 말할 수 solr_host solr_port는 응용 프로그램 서버 컨테이너를 실행할 때 전달 될 ​​수있는 환경 변수로 선언된다.
그림
당신은 볼 수 database_driverClassName , database_url , database_username을 하고 DATABASE_PASSWORD이됩니다 응용 프로그램 서버 컨테이너를 실행할 때 전달 될 ​​수있는 환경 변수로 선언된다. 그들은 MySQL은, PostgreSQL을가 Oracle 데이터베이스에 연결하는 데 사용됩니다.
그림
당신은 말할 수 mongo_url는 응용 프로그램 서버 컨테이너를 실행할 때 전달 될 ​​수있는 환경 변수로 선언된다.
하지만 MongoConfig.java 시작하는 적절한 스키마 및 테이블과 데이터베이스를 채우는 데 사용됩니다 - 테이블이 아직 발견되지 않은 경우.
그림
당신은 말할 수 cassandra_url는 응용 프로그램 서버 컨테이너를 실행할 때 전달 될 ​​수있는 환경 변수로 선언된다.

Liquibase 콩의 MySQL 및 PostgreSQL을 초기화 오라클 데이터베이스 연결

우리는 당신이 일반적으로 자바 응용 프로그램 배포 자신의 데이터베이스 스키마의 일환으로 초기화 바랍니다. 별도의 SQL 파일 유지 관리를 위해 데이터베이스에 개별적으로 실행해야합니다에 대해 이런 식으로, 당신은 걱정할 필요가 없습니다.
DCHQ는 다음의 플러그인 프레임 워크를 통해 프로세스를 자동화 할 수 있습니다 - 당신은 여전히 별도로 데이터베이스를 실행할 수 있습니다 원하는 경우 이미 SQL 파일이 있습니다. 당신이 볼 수있는 부분을 자세한 내용은.
MongoConfig.java는 파일에 적용하고 CassandraConfig.java 몽골 카산드라 데이터베이스를 초기화 할 수 있습니다.
, 경우의 MySQL 및 PostgreSQL을, 오라클, LiquiBase의 콩 데이터 소스를 확인하고 upgrade.sql에서 SQL 문을 실행하는 DatabaseConfig.java 파일에 사용됩니다. 각 데이터베이스에 대해 실행 Liquibase 문을 추적 변경 로그.
그림
다음은 오라클 데이터베이스 스키마를 초기화하는 SQL 문에서 파일 upgrade.sql MySQL의, PostgreSQL을 또는 실제 연결입니다.
그림

어디 리눅스 호스트를 실행하는 데 재사용 할 수있는 응용 프로그램 내장 템플릿을 YAML 기반

하나 (한 DCHQ.io 호스팅 또는 온 - 프레미스 버전), 사용자가 로그인 DCHQ로 이동할 수 있습니다 APP 및 기계 누른 다음 의 +  생성 버튼을 만들 dokeo 템플릿을.
우리가 만든 24 응용 프로그램 템플릿을 사용하여 dokeo 허브에서 공식 이미지를 하지만, 다른 응용 프로그램 서버 및 데이터베이스 - 동일한 "이름 디렉토리"자바 응용 프로그램입니다.
템플릿 (예 : Java 응용 프로그램 등) 응용 프로그램 스택의 예를 포함한다 :
  • Nginx에 아파치 HTTP 서버 (아파치) -로드 균형 조정
  • SOLR - 전체 텍스트 검색
  • 톰캣, 부두, 보스 - 응용 프로그램 서버
  • 몽골, 카산드라, MySQL은, 오라클 XE 데이터베이스에 -

플러그인 요청 후 시간 제공에 웹 서버와 응용 프로그램 서버를 구성 할

모든 응용 프로그램 템플릿에 걸쳐, 당신은 BASH 스크립트 플러그인을 호출하는 선박의 일부는 용기를 구성하는 요청할 것을 볼 수 있습니다. 이러한 플러그인은 제공되는 게시물을 실행할 수 없습니다.
이러한 플러그인은로 이동하여 생성 할 수 있습니다  플러그인  . bash는 스크립트를 제공 할 때, DCHQ 에이전트는 스크립트 실행 컨테이너 내부를 . 사용자 인수 요청에 대체 시간외 규정 할 수있는 지정할 수 있습니다. 에 의해 앞에 아무것도 $ A 부호는 인수를 고려하지 않습니다 - 예를 들어, $ FILE_URL입니다 획득 할 수 있으며, 개발자는 WAR 파일의 다운로드 URL을 지정할 수 있습니다. 이것은 당신이 용기 자바 WAR 파일이 실행되는 규정과 요청 시간을 업데이트 할 게시물에 (재정의)를 오버라이드 (override) 할 수 있습니다.

플러그인 ID는 YAML 기반 응용 프로그램 템플릿을 정의하기 위해 제공해야 할 수도 있습니다. 예를 들어, 다음 : 우리는 ID 플러그인, 당신은 더 볼 것, Nginx에 대한 BASH 스크립트 플러그인을 호출
그림
예 템플릿에서, 우리는 4 BASH 스크립트 플러그인을 호출합니다.
이 Nginx에 (또는 요청) 동적 IP default.conf 파일의 응용 프로그램 서버의 용기에 주입 된 bash는 스크립트 플러그를 호출합니다. 플러그인 ID 0H1Nk .
아파치 HTTP 서버 (아파치)는 응용 프로그램 서버 플러그인 bash는 스크립트 컨테이너 IP에 동적 httpd.conf 파일에 주입 (또는 요청)를 호출 할 수 있습니다. 플러그인 ID uazUi .
아파치 HTTP 서버 (아파치) 플러그인의 Nginx의 아름다움은 이후 절은 클러스터 스케일 업 또는 스케일 응용 프로그램 서버의 일부로서가 실행 될 수 있다는 것이다. 자동 자동 정책 스케일 업데이트 웹 서버 (또는 부하 분산)을 정의 할 수 있도록. 중요성 일부 DCHQ 서비스 디스커버리 프레임 워크.

플러그인 라이프 사이클 단계 및 서비스 검색

라이프 사이클 플러그인의 매개 변수는 플러그인을 실행할 수있는 정확한 단계 또는 이벤트를 지정할 수 있습니다. 지정되지 않은 경우, 라이프 사이클 플러그인 실행하는 데 기본적으로 on_create을 . 다음과 같이 다음과 같은 지원되는 라이프 사이클 단계는 다음과 같습니다
  • on_create - 당신이 용기를 만들 때 플러그인 실행
  • on_start - 플러그인 실행 선박이 시작된 후
  • on_stop - 플러그인 컨테이너를 중지하기 전에 실행
  • on_destroy - 플러그인 실행 컨테이너를 파괴하기 전에
  • post_create입니다 - 컨테이너를 만든 및 플러그인 실행 실행 한 후
  • post_start의의 [: 노드] - 다른 용기 플러그인을 실행하기 시작하면
  • [: 노드] post_stop의의 - 다른 컨테이너를 중지 한 후 플러그를 실행
  • [: 노드] post_destroy의의 플러그인을 실행 한 후 다른 컨테이너에 의해 파괴되었다
  • [: 노드] post_scale_out의의 - 플러그인을 실행, 다른 클러스터의 크기가 조절 된 용기
  • post_scale_in의 [의 : 노드는 다른 클러스터에 선박의 붕괴 이후에 실행 -ins
최종 사용자 사용권 계약의 라이센스 중합을 확인, 아파치 HTTP 서버 Nginx에 (아파치), 및 플러그인에 대한 액세스 권한을 얻으려면
응용 프로그램 서버 (톰캣, 부두, 보스이며)도 의미 GitHub의에 BASH 스크립트는 URL에서 WAR 파일을 배포 할 수있는 자바 플러그인을 호출 접근했다.

톰캣, 제이 보스와 부두 같은 BASH 스크립트 플러그인 (ID 플러그인 : 전화 oncXN를 ) - 당신은 WAR 파일이 다른 디렉토리에 배포 제외하는 경우 :

  • 톰캣 - DIR은 = / usr / 지방 / 바람둥이 / 웹 응용 프로그램 / ROOT.war
  • 부두 - DIR은 =은 / var / lib 디렉토리 / 부두 / 웹 응용 프로그램 / ROOT.war입니다
  • 보스 - DIR은 = / 옵션 / 보스 / 보스 / 독립 / 유통 / ROOT.war
SOLR는 플러그인 호출하는 다른 BASH 스크립트 : (ID 플러그 doX8s를 하고 얻을 추출)을 names.zip 파일 및 / 옵션 / SOLR / 서버 / SOLR /

여러 호스트와 호스트 CLUSTER_SIZE에서 HA 배포 매개 변수

당신은 것을 볼 수 있습니다 CLUSTER_SIZE의 매개 변수는 (동일한 응용 프로그램 종속성에서) 시작하는 용기의 수를 지정할 수 있습니다.
호스트 매개 변수는 컨테이너 분포를 사용하는 호스트를 지정할 수 있습니다. 이 경우 선택할 수 있습니다 wibeueul가 클러스터를 만들 때 레이어를 네트워킹. 이렇게하면 다른 호스트 (또는 지역)의 응용 프로그램 서버 클러스터의 고 가용성을 보장 할 수 있으며 별도의 호스트에서 실행되도록 기본 설정 규칙을 준수하는, 예를 들어 데이터베이스가 포함되어 있습니다. 다음과 같이 호스트 매개 변수에있는 지원되는 값을 다음과 같습니다
  • 이 host1의, host2의, host3이라는라는 등, - 무작위로 구축하는 컨테이너의 데이터 센터에서 호스트 (또는 클러스터)를 선택
  • IP 주소 (1), IP 주소 등이 - 사용자가 배포 컨테이너에 사용할 실제 IP 주소를 지정할 수
  • 호스트 1, 호스트 2 등은 - 배포 컨테이너의 실제 호스트 이름을 사용자 정의 할 수 있습니다
  • 와일드 카드 (예 : "DB- 또는"앱이 srv-이다는 " ") - 호스트 이름을 사용하는 와일드 카드를 지정

환경 변수는 이미지를 가로 질러 결합

또한, 사용자가 환경 변수의 다른 이미지를 볼 수있는 상호 이미지로 결합 된 환경 변수를 만들 수 있습니다. | // {MySQL의 {의 : MySQL은 다음과 같습니다 포함 database_url = JDBC -이 경우, 우리는 몇 가지 결합했다 container_hostname}} : 3306 / {MySQL의 {의 | MYSQL_DATABASE}} - 애플리케이션 서버와 데이터베이스와의 연결을 설정하는 데 사용되는 시간베이스 용기 동적 이름 확인 요청.
다음은 환경 변수의 목록을 지원한다 :
  • {{영숫자 | 8}}  - 임의의 8 자리 영숫자 문자열을 작성합니다. 이것은 임의의 암호를 생성하는 가장 유용합니다.
  • {{이미지 이름 | IP}}  - 환경 변수의 값을 상기 용기의 호스트 IP 주소를 입력 할 수있다. 따라서, 데이터베이스와의 연결을 설정하도록 상기 미들웨어 계층을 허용하는 것이 가장 유용하다.
  • {{이미지 이름 | }} container_ip  -은 환경 변수의 값을 컨테이너의 이름을 입력 할 수있다. 이것은 (포트를 노출시키지 않고베이스) 데이터베이스로의 보안 연결을 설정하도록 상기 미들웨어 계층을 허용하는 것이 가장 유용하다.
  • {{이미지 이름 | }} container_private_ip  -은 환경 변수의 값과 용기의 내부 IP를 입력 할 수있다. 이것은 (포트를 노출시키지 않고베이스) 데이터베이스로의 보안 연결을 설정하도록 상기 미들웨어 계층을 허용하는 것이 가장 유용하다.
  • {{이미지 이름 | port_Port 번호}  - 당신은 환경 변수의 값과 컨테이너의 포트 번호를 입력 할 수있다. 따라서, 데이터베이스와의 연결을 설정하도록 상기 미들웨어 계층을 허용하는 것이 가장 유용하다. 즉, 외부 포트는 컨테이너에 할당하지 않는 경우 -이 경우, 지정된 포트 번호 내부 포트 번호가 있어야합니다. 예를 들어, {{PostgreSQL의의 | port_5432}} 상기 미들웨어 계층은 데이터베이스와의 연결을 확립하는 실제 외부 포트로 전환된다.
  • {{이미지 이름 | }} 환경 변수 이름  - 환경 변수의 다른 이미지에, 당신은 이미지에 환경 변수를 입력 할 수 있습니다. 여기에 사용 사례는 무한하다 - 이미지 대부분의 다중 계층 응용 프로그램 사이에 의존성이있을 것이다.
다음 네 예. 당신은 사용자 정의 찾아 모든 (24) 자신의 템플릿을 실행할 수 있습니다.
그림

(Nginx에와 - 톰캣 -SOLR - 몽골) 멀티 - 티어 자바

그림
그림

(Nginx에와 - 보스 -SOLR - 오라클 XE) 멀티 - 티어 자바

그림
그림

멀티 티어 자바 (ApacheLB - 톰캣 -SOLR - 카산드라)

그림
그림

멀티 티어 자바 (ApacheLB- 부두 -SOLR - 몽골)

그림
그림

자동 프로비저닝 및 클라우드 확장의 모든 기본적인 인프라

응용 프로그램이 저장되면, 당신은 클라우드 제공자의 사용자 프로비저닝 및 스피어 V VM웨어를 등록 할 수 있습니다 OpenStack은은, CloudStack, 아마존 웹 서비스, 랙 스페이스, 마이크로 소프트 애저, 디지털 오션, IBM, SOFTLAYER, 구글의 이러한 클러스터와 12 클라우드 엔드 포인트 계산 엔진 및 많은 다른 사람은 자동 크기 조정을 자동화합니다.
첫째, (예를 들어)을위한 클라우드 제공 업체 랙 스페이스를 등록 사용자로 이동 클라우드 제공 업체와 레 포스 그런 다음 클릭하면 에 + 선택 버튼 랙 공간 . 즉, 랙 스페이스의 API 키가 제공 될 필요가있다 제어판의 랙 스페이스 클라우드 계정 설정 섹션에서 검색 할 수 있습니다.
사용자는 자동 정책의 클러스터를 생성하고 자동으로 새로운 클라우드 서버를 회전 확장 할 수 있습니다. 이것은로 이동하여 수행 할 수 있습니다  클러스터  를 클릭 +의  버튼을 누릅니다. 사용자 위치를 용량 기반 정책 선택 직조 클러스터 내의 여러 호스트와 통신 보안 암호 보호 크로스 용기를 용이하게하기 위해 네트워크 계층을 자동 정책 확장 가입 VM에, 예를 들면, (10) (또는 클라우드 서버)이 될 수있다 세트.
이제 간단한 YAML 기반의 클라우드 서버 시스템과 사용자 수는 작업 기반의 UI 중 하나 또는 셀프 서비스 라이브러리 제공의 흐름을 통해 요청할 수 있습니다 새로 생성 된 클러스터를 정의하는 템플릿을 만들 수 있습니다.
인터페이스 기반의 워크 플로우 - 당신은 가고 요청할 수 있습니다 기계  및   온 클릭   +의 버튼을  선택  랙 공간을 . 클라우드 제공자가 선택되면, 상기 크기 및 사용자가 필요로하는 영역의 화상을 선택하는 것이 가능하다. (32000-59000, 5672 및 dokeo, 6783 섬유 RabbitMQ에 대한 예를 들어) 포트 : 랙 스페이스 클라우드 서버는 포트 요구 사항 중 일부를 수용하기 위해 기본적으로 열립니다. 클러스터는 선택하고 클라우드 서버의 수를 지정할 수 있습니다.
기계 템플릿을 만들 수 YAML 기반 로 이동 - 기계  랙 공간에 대한 템플릿 생성  템플릿을 다음과 같은 선택하면 컴퓨터를 만드는을 .
여기에 클라우드 서버 4GB의를 요청하는 템플릿입니다.
그림
다음과 같이 기계 만든 템플릿을 지원하는 매개 변수 요약 :
  • 설명 : 청사진 / 템플릿에 대한 설명
  • instanceType : (예를 들어 general1-4) 클라우드 제공자 특정 값
  • 지역 : 클라우드 공급자 특정 값 (예 : IAD)
  • 이미지 : 필수 - 전체 이미지 ID / 이름 (예 : IAD / 5ed162cc-b4eb-4371 -b24a-a0ae73376c73 또는은 vSphere VM 템플릿 이름)
  • 이름 : 옵션 - 이베이 사용자 이름은 vSphere VM 템플릿
  • 암호 선택 사항 : - 이베이은 vSphere VM 템플릿의 비밀번호를 암호화. 당신은 엔드 포인트 사용하여 암호를 암호화 할 수 있습니다 https://www.dchq.io/#/encrypt의를
  • 네트워크 선택 : - 클라우드 공급자 특정 값 (예를 들어, 기본)
  • 에는 SecurityGroup : 클라우드 공급 업체 특정 값 (예 : dchq 보안 그룹)
  • 키 쌍 : 클라우드 제공자 - 특정 값 (예를 들어, 개인 키)
  • openPorts : 선택 사항 - 쉼표로 구분 된 포트 값을
  • 계산하지 : VM 더 많은 의미를 기본값은 1 총입니다.
컴퓨터 생성 템플릿이 저장되면, 사용자는 셀프 서비스 시스템이 요청할 수 라이브러리 . 사용자가 클릭하면 사용자 정의 를 선택한 다음 클라우드 공급 업체 클러스터 이 랙 스페이스 클라우드 서버 프로비저닝에 사용합니다.

랙 공간의 다중 계층 자바 응용 프로그램 배포 클러스터

클라우드 서버, 멀티 티어 사용자를 프로비저닝 할 때 Java 응용 프로그램이 새로운 클라우드 서버를 기반으로 dokeo 배포 할 수 있습니다. 이 사용자 정의 다중 계층 응용 프로그램을 요청하고 라이브러리로 이동하여 셀프 서비스를 수행하기 위해 한 번의 클릭 할 수 있습니다.
사용자가 이전에 만든 (DEV 또는 QE 등) 및 랙 공간 클러스터 환경 태그 선택을 클릭하면 만드는 기계를 .

컨테이너 터미널 액세스 브라우저에서 실행

당신은 다음 라이브 앱 페이지에있는 컨테이너의 이름으로 명령 프롬프트 아이콘을 사용할 수 있습니다. 이 컨테이너는 사용자 에이전트 메시지 큐를 통해 보안 통신 프로토콜을 이용하여 입력 할 수있다. 명령이 화이트리스트는 컨테이너에 유해하지 않은 변경은 사용자가 실행하는 관리자 임차인에 의해 정의 될 수있다.
예를 들어, 톰캣 배포의 경우, 우리는 자바 WAR 파일이 명령 프롬프트를 사용하고 / usr / 지방 / 바람둥이 / 웹 응용 프로그램 / 디렉토리 아래에 있습니다 있는지 확인하려면.

용기 및 실행하는 I를 사용하여 CPU를 모니터링 / O 메모리

애플리케이션가 실행되면 이러한 통계 I 컨테이너 / O 경고 실행을 얻는 소정의 임계 값보다 클 때, 우리의 현상은 CPU, 메모리를 모니터링한다. 우리의 개발자들이 기능 및로드 테스트를 수행 할 때 특히 유용합니다.
당신은 배포 업데이트 또는 컨테이너와 관련된 기록을 수행하고 모니터링 분석 문제를 구축 할 수 있습니다. 이것은 클릭하여 수행 할 수 있습니다 작업을 응용 프로그램의 실행 메뉴에서 모니터링을 . 사용자 지정 날짜 범위, 당신은 역사의 CPU, 메모리 및 I / O를을 볼 선택할 수 있습니다

빌드가 트리거 될 때 실행중인 응용 프로그램의 WAR 파일을 업데이트 할 젠킨스와 연속 게재 워크 플로와

dokeo 이미지를 재 구축 할 수있는 응용 프로그램 코드를 포함, 모든 응용 프로그램 업데이트, DCHQ가 자동으로 할 수 Dockerfiles의 이미지 나 개인 GitHub의의 프로젝트를 dokeo 개발 모델을 실행하려는 개발자를위한 포함되어있는 "불변"컨테이너와 함께 새로운 용기를 회전 그 Dockerfiles를 자동 빌드 기능을 제공합니다.
그러나, 많은 개발자 수 있습니다 응용 프로그램은 응용 프로그램 서버 컨테이너 업데이트에 대한 최신 자바 WAR 파일에서 실행되는 대신. 이를 위해, DCHQ 개발자는 젠킨스 연속 배달 워크 플로우를 사용할 수 있습니다. 이것은 클릭하여 수행 할 수 있습니다 작업 , 메뉴 및 실행중인 응용 프로그램을 선택 연속 배달 . 이미 DCHQ, 최신 WAR 파일에 등록 된 젠킨스 인스턴스에서 선택하고 빌드를 실행중인 응용 프로그램 서버에 젠킨스 배포의 실제 작업을 잡고 BASH 스크립트를 연결할 수 있습니다. 이 정책이 저장되면, DCHQ는 캐치에게 트리거가 WAR 파일 젠킨스의 최신 빌드 때마다 실행되는 응용 프로그램 서버에 배포됩니다.
개발자는 최신 자바 WAR 파일이 컨테이너의 결과로 모든 시간을 개발 / 테스트 환경을 실행하는 데 배포해야합니다.

, 톰캣 애플리케이션 서버 클러스터를 확장하고 서비스 검색 프레임 워크를 활용, 부하 분산 장치를 업데이트

실행 애플리케이션은 제한된 리소스가 될 경우, 사용자는 증가 된 부하를 만족하도록 애플리케이션을 확장 할 수있다. 또한, 사용자는 예를 들어 시간과 규모의 크기를 여는 주말에 예약 할 수 있습니다.

1-2에서 톰캣 서버의 클러스터를 확장하려면, 사용자가 클릭하면 작업을 실행중인 응용 프로그램의 메뉴를 선택하고 수평 확장 . 사용자는 클러스터의 새 크기를 지정하고 다음을 클릭 지금 실행을 .

스케일 아웃 실행하면 서비스는 검색 워크로드 밸런서를 업데이트하는 데 사용됩니다. 플러그인 아파치 HTTP 서버에서 실행이 자동으로 새로운 응용 프로그램 서버가 추가 인식 아파치 HTTP 서버의 httpd.conf 파일을 업데이트합니다. 우리가 지정된 때문이다 AppServer를가 ipnidaeul : post_scale_out는 플러그인 라이프 사이클 이벤트입니다.
그림
응용 프로그램 타임 라인 당신은 감사 및 진단을위한 응용 프로그램에 대한 모든 변경 사항을 추적 할 수 있습니다. 이것은 실행중인 애플리케이션의 페이지의 하단에 확장 메뉴에 액세스 할 수있다. 이 경우, 서비스 디스커버리 워크는 아파치 웹 서버 플러그인을 실행하는 자동 즉시 응용 서버 확장형 클러스터 후.
두개의 호스트 CPU 용기의 메모리 사용률 또는 하나의 정의 된 임계치를 초과 경보 및 통지, 당신은 아래 용기 또는 호스트 또는 사용할 수있다.

결론

엔터프라이즈 자바 애플리케이션 Containerizing은 여전히​​ 가장 복잡한 종속성, 외부 또는 통합 자동 크기 조정 후 제공되는 워크 플로우를 해결하지 않기 때문에 기존 응용 프로그램 프레임 워크는 도전이다 구성합니다. 또한, 임시 용기의 설계는 개발자 용기 회전 새로운 업데이트 모든 버전의 복소 외부 종속성 통합 재건 한 것을 의미한다.
DCHQ, 호스팅 및 온 수 크로스 화상으로부터 호출 될 수 팽창 BASH 스크립트 플러그인을 용이하게하기 위해이 사내 버전은 이러한 문제 및 사전 애플리케이션 구성 프레임 워크를 통해 엔터프라이즈 자바 애플리케이션 컨테이너 수송을 모두 해결에 사용될 환경 변수 많은 지역에서 바인딩 호스트 또는 자동 크기 조절 및 단순화 요청 시간 또는 포스트 제안, 고 가용성을위한 응용 프로그램 클러스터링을 지원합니다.
무료로 가입 http://DCHQ.io 또는 다운로드 온 - 프레미스 DCHQ
스케일 아웃 오브 박스의 템플릿에 액세스 할 수 있습니다 다중 계층 Java 응용 프로그램과 함께 인 / 아웃 기능 및 용기 업데이트를 모니터링을 포함하는 응용 프로그램 수명주기 관리의 지속적인 배달, TO.

No comments:

Post a Comment