Monday, 11 April 2016

분 미만에서 배포 - MariaDB와 고정 표시기 자바 응용 프로그램


MariaDB와 고정 표시기 Java 응용 프로그램 - 분 이내에 배포

---------------------------------------------------------------------------------------------------------------------
배경
자바 개발자 및 개발 운영팀 전문가들은 긴 엔터프라이즈 자바 애플리케이션의 배포를 자동화하기 위해 노력하고 있습니다. 이러한 응용 프로그램의 복잡한 성격은 일반적으로 개발 / 테스트 환경, 응용 프로그램 종속성에 배치하고 외부 응용 프로그램을 통합 될 때마다 재구성하기위한 것입니다.
광고 솔루션, 대부분 "어디 한 번 배포 모델,"응용 프로그램 배포에 대한 메시지. 하지만, 실제로는 항상 모두 AWS 환경에서, 예를 들어 온 peuremiseueun은 vSphere 가상 환경 복잡한 매우 어렵다 애플리케이션 템플릿을 사용하여 재 작성 하였다.
dokeo dokeo 컨테이너가 애플리케이션 컴포넌트를 패키징하는 개념을 일반화로서 최근에는 엔진이 설치되어 리눅스 컨테이너 리눅스 호스트 dongilreul 배치 될 수있다.
복잡한 종속성을 해결하지 않는 대부분의 엔터프라이즈 자바 응용 프로그램, 외부 또는 통합 후 워크 플로가 자동으로 containerizing 규정을 조정하기 때문에 불행하게도 여전히 응용 프로그램 구성 프레임 워크를 기존의 것은 도전이다. 또한, 임시 용기의 설계는 개발자 용기 회전 새로운 업데이트 모든 버전의 복소 외부 종속성 통합 재건 한 것을 의미한다.
DCHQ, 호스팅에 - 모두 가능한 온 - 프레미스 버전은 이러한 문제를 해결하고 많은 호스트 또는 지역으로 확장 이전 응용 프로그램 구성 프레임 워크 dokeo 용으로 작성된 엔터프라이즈 자바 애플리케이션의 컨테이너 운송 플러그인 확장 BASH 스크립트를 결합 교차 이미지 환경 변수를 단순화 즉, 고 가용성을위한 자동 스케일링을 지원하며 시간을 전화 또는 우편 규칙 및 클러스터링 애플리케이션에 요청하실 수 있습니다.
응용 프로그램이 프로비저닝되면, 사용자의 CPU, 당신은 메모리를 모니터링 할 수 있습니다, & I는 컨테이너 업데이트 BASH 스크립트 플러그인을 사용하여 같은 예약 된 백업으로 당신이 얻을 경우 컨테이너가 / O, 알림 및 경고를 실행하고 규모됩니다 일상적인 작업을 수행합니다 / 아웃. 또한, 젠킨스 및 워크 플로 개발자가 기존의 종속성 및 통합 프로그램을 방해하지 않고 실행중인 응용 프로그램의 자바 WAR 파일을 업데이트 할 수 있습니다 아웃 오브 박스의 지속적인 공급을 촉진한다.
이 블로그는 두 개의 다른 컨테이너 애플리케이션 스택의 종단 Java 애플리케이션의 자동 배치라고 피자 통해 이동한다 :
  • Nginx에 (부하 분산) 클러스터 톰캣 과 MariaDB (데이터베이스 등)
  • Nginx에 (부하 분산) 클러스터 부두 (등 데이터베이스) 및 MariaDB
자바 WAR 파일과 같은 두 개의 서로 다른 응용 프로그램 서버에 배포됩니다. DCHQ 잘뿐만 아니라 애플리케이션 배포를 자동 -뿐만 아니라 통합 12 클라우드는 소​​프트웨어 정의 네트워킹 클러스터의 프로비저닝 및 자동 스케일링 자동화. 우리는 다룰 것입니다 :
  • 어디 리눅스 호스트를 실행하는 데 재사용 할 수있는 내장 응용 프로그램 템플릿
  • 프로비저닝 (랙 스페이스는 예를 들어, 블로그 상태)가 자동으로 기본 인프라 확장 된 구름
  • 랙 스페이스 클러스터의 다중 계층 Java 기반 응용 프로그램 배포 피자
  • CPU, 메모리를 모니터링하고 난 용기 존재의 / O 실행
  • 젠킨스와 연속 배달 워크 플로우 빌드가 실행중인 응용 프로그램의 WAR 파일을 업데이트 트리거 될 때
  • 확장 성 테스트를위한 응용 프로그램 서버 클러스터를 확장

톰캣, 피자 가게와 부두에서 Java 기반 응용 프로그램에 대한 응용 프로그램 템플릿 구축

하나 (한 DCHQ.io 호스팅 또는 온 - 프레미스 버전) 사용자는 탐색 할 수 있습니다 DCHQ에 로그인 응용 프로그램 및 기계를  한 후, 클릭 의 + 만들려면 새로 만들기 버튼을 만들 dokeo 템플릿을.
우리는 네 개의 응용 프로그램 템플릿을 만든 dokeo 허브에서 공식 이미지를 사용하여 하지만 네 개의 응용 프로그램 서버 - 동일한 피자 가게 응용 프로그램입니다.
  • (Nginx에에 - 톰캣 - MariaDB) 레이어 3 PizzaShop
  • 레이어 3 PizzaShop (Nginx에에 - 부두 - MariaDB)
두 개의 템플릿을 통해,이 동적으로 컨테이너 default.conf 파일의 IP에 응용 프로그램 서버를 추가 Nginx에 BASH 스크립트 플러그인 (시 또는 요구)을 요구 것을 볼 수 있습니다.
제외 된 WAR 파일을 배포 - 응용 프로그램 서버 (톰캣과 부두)입니다 같은 플러그인을 호출 외부 URL의 피자 톰캣, 제이 보스와 부두에서 WAR 파일을 배포하는 자바 플러그인을 호출 다른 디렉토리 BASH 스크립트 :
  • 톰캣 - DIR은 = / usr / 지방 / 바람둥이 / 웹 응용 프로그램 / ROOT.war
  • 부두 - DIR은 =은 / var / lib 디렉토리 / 부두 / 웹 응용 프로그램 / ROOT.war입니다
당신은 것을 볼 수 있습니다 CLUSTER_SIZE의 매개 변수는 (동일한 응용 프로그램 종속성에서) 시작하는 용기의 수를 지정할 수 있습니다.

호스트 매개 변수는 컨테이너 분포를 사용하는 호스트를 지정할 수 있습니다. 이렇게하면 다른 호스트 (또는 지역)의 응용 프로그램 서버 클러스터의 고 가용성을 보장 할 수 있으며 별도의 호스트에서 실행되도록 기본 설정 규칙을 준수하는, 예를 들어 데이터베이스가 포함되어 있습니다. 다음과 같이 호스트 매개 변수에있는 지원되는 값을 다음과 같습니다
  • 이 host1의, host2의, host3이라는라는 등, - 무작위로 구축하는 컨테이너의 데이터 센터에서 호스트 (또는 클러스터)를 선택
  • <IP 어드레스 (1), IP 주소 등이> - IP 주소를 지정하기위한 사용자의 실제 배포 컨테이너 용으로 사용될 수 있도록
  • <호스트 1, 호스트 2 등> - 사용자가 배포 컨테이너의 실제 호스트 이름을 지정할 수 있습니다
  • 와일드 카드 (예 : "DB- *"또는 "srv- 앱 *") - 사용의 호스트 이름에 와일드 카드를 지정합니다
또한, 사용자가 환경 변수의 다른 이미지를 볼 수있는 상호 이미지로 결합 된 환경 변수를 만들 수 있습니다. 를 포함하여 -이 경우, 우리는 몇 가지 바인딩을 만든 | // {{MariaDB : MySQL은 다음 database.url = JDBC에 container_ip}} : 3306 / {{MariaDB | MYSQL_DATABASE}} - IP 애플리케이션 서버를 요청하는 데이터베이스 컨테이너 동적 해상도 시간 데이터베이스와의 연결을 설정하기 위해 사용된다.
다음은 환경 변수의 목록을 지원한다 :
  • {{영숫자 | 8}} - 임의의 8 자리 영숫자 문자열을 작성합니다. 이것은 임의의 암호를 생성하는 가장 유용합니다.
  • {{<이미지 이름> | IP}} - 환경 변수의 값을 상기 용기의 호스트 IP 주소를 입력 할 수있다. 따라서, 데이터베이스와의 연결을 설정하도록 상기 미들웨어 계층을 허용하는 것이 가장 유용하다.
  • {{<이미지 이름> | }} container_ip -은 환경 변수의 값과 용기의 내부 IP를 입력 할 수있다. 이것은 (포트를 노출시키지 않고베이스) 데이터베이스로의 보안 연결을 설정하도록 상기 미들웨어 계층을 허용하는 것이 가장 유용하다.
  • {{<이미지 이름> | 포트 _ <포트 번호>} - 당신은 환경 변수의 값과 컨테이너의 포트 번호를 입력 할 수있다. 따라서, 데이터베이스와의 연결을 설정하도록 상기 미들웨어 계층을 허용하는 것이 가장 유용하다. 즉, 외부 포트는 컨테이너에 할당하지 않는 경우 -이 경우, 지정된 포트 번호 내부 포트 번호가 있어야합니다. 예를 들어, {{PostgreSQL의의 | port_5432}} 상기 미들웨어 계층은 데이터베이스와의 연결을 확립하는 실제 외부 포트로 전환된다.
  • {{<이미지 이름> | <환경 변수 이름>}} - 환경 변수의 다른 이미지에, 당신은 이미지에 환경 변수를 입력 할 수 있습니다. 여기에 사용 사례는 무한하다 - 이미지 대부분의 다중 계층 응용 프로그램 사이에 의존성이있을 것이다.
그림
그림

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

응용 프로그램, 사용자 프로비저닝을 저장 OpenStack은이 CloudStack, 아마존 웹 서비스, 랙 스페이스, 마이크로 소프트 애저, 디지털 오션, HP 등의 클러스터 당신이 할 수있는 12 클라우드 엔드 포인트의 자동 스케일링을 자동화하는 클라우드 공급자를 등록하는 등의 공용 클라우드 인되면, IBM SOFTLAYER, 구글 컴퓨 트 엔진, 그리고 많은 다른 사람.
첫째, 클라우드 제공 업체 랙 스페이스에 등록 할 수 있습니다 (예를 들어) 사용자로 이동 클라우드 제공 업체  의 onclick 다음 +를 선택 버튼 랙 공간 . 즉, 제어판의 랙 스페이스 클라우드 계정 설정 섹션에서 검색 할 수 있습니다 랙 스페이스의 API가 제공 될 필요가있다 키.
사용자는 자동 정책의 클러스터를 생성하고 자동으로 새로운 클라우드 서버를 회전 확장 할 수 있습니다. 이것은 C로 이동하여 수행 할 수 있습니다 광택 에 클릭 + 버튼 . 사용자 위치를 용량 기반과 정책 선택 직조 클러스터에서 여러 호스트에 보안 암호로 보호 된 크로스 선박 통신을 용이하게하기 위해 네트워크 계층을 자동으로 정책을 확장 , 이 예 VM (또는 클라우드 서버)의 10 최대 수를 설정합니다.

사용자는 이제, 새로 만든 클러스터에 클라우드 서버를 제공에 갈 수 기계  및 클릭  +  선택 버튼을  랙 공간을 . 클라우드 제공자가 선택되면, 상기 크기 및 사용자가 필요로하는 영역의 화상을 선택하는 것이 가능하다. 포트는 새로운 클라우드 서버에 열려 있습니다 할 수 있습니다합니다 (섬유 32000-59000 및 5672 RabbitMQ를위한 예를 들어 dokeo, 6783). 데이터 센터 (또는 클러스터)를 선택하고 클라우드 서버의 수를 지정할 수 있습니다.

랙 스페이스 클러스터의 다중 계층 Java 기반 응용 프로그램 배포 피자

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

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

애플리케이션가 실행되면 이러한 통계 I 컨테이너 / O 경고 실행을 얻는 소정의 임계 값보다 클 때, 우리의 현상은 CPU, 메모리를 모니터링한다. 우리의 개발자들이 기능 및로드 테스트를 수행 할 때 특히 유용합니다.

당신은 배포 업데이트 또는 컨테이너와 관련된 기록을 수행하고 모니터링 분석 문제를 구축 할 수 있습니다. 이것은 클릭하여 수행 할 수 있습니다 작업을 응용 프로그램의 실행 메뉴에서 모니터링을 . 사용자 지정 날짜 범위, 당신은 역사의 CPU, 메모리 및 I / O를을 볼 선택할 수 있습니다
에스

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

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

톰캣 애플리케이션 서버 클러스터를 확장

실행 애플리케이션은 제한된 리소스가 될 경우, 사용자는 증가 된 부하를 만족하도록 애플리케이션을 확장 할 수있다. 또한, 사용자는 예를 들어 시간과 규모의 크기를 여는 주말에 예약 할 수 있습니다.
2-4에서 톰캣 서버의 클러스터를 확장하려면, 사용자가 클릭하면 작업을 실행중인 응용 프로그램의 메뉴를 선택하고 수평 확장 . 사용자는 클러스터의 새 크기를 지정하고 다음을 클릭 지금 실행을 .

우리는 추가로 새로운 응용 프로그램 서버의 인식에 따라 Nginx에 대한 플러그인 BASH의 default.conf 파일을 업데이트하는 데 사용됩니다. 배쉬 스크립트 플러그인은 같은 청소와 사용 사례를 수용 또는 로그 정의 된 주파수의 구성을 업데이트 예약 할 수 있습니다. 응용 프로그램 타임 라인 당신은 감사 및 진단을위한 응용 프로그램에 대한 모든 변경 사항을 추적 할 수 있습니다.
플러그인 실행 컨테이너를 실행하려면 사용자가 클릭 할 수 있습니다 작업을 실행중인 응용 프로그램의 메뉴를 선택하고 연결합니다 . 다음 (Nginx에로) 선택된 컨테이너를 실행해야하는 사용자는,로드 밸런서는 검색 스위치 버튼 플러그인을 사용하여 용기를 다시 시작할 수있다. 이 플러그인의 기본 인수는 동적으로 컨테이너에서 실행되는 Tomcat 서버를 해결하고 IP의 default.conf 파일의 일부를 추가하는 것입니다.
응용 프로그램 타임 라인 당신은 감사 및 진단을위한 응용 프로그램에 대한 모든 변경 사항을 추적 할 수 있습니다. 이것은 실행중인 애플리케이션의 페이지의 하단에 확장 메뉴에 액세스 할 수있다.
두개의 호스트 CPU 용기의 메모리 사용률 또는 하나의 정의 된 임계치를 초과 경보 및 통지, 당신은 아래 용기 또는 호스트 또는 사용할 수있다.

결론

엔터프라이즈 자바 애플리케이션 Containerizing은 여전히​​ 가장 복잡한 종속성, 외부 또는 통합 자동 크기 조정 후 제공되는 워크 플로우를 해결하지 않기 때문에 기존 응용 프로그램 프레임 워크는 도전이다 구성합니다. 또한, 임시 용기의 설계는 개발자 용기 회전 새로운 업데이트 모든 버전의 복소 외부 종속성 통합 재건 한 것을 의미한다.

DCHQ, 호스팅 및 온 수 크로스 화상으로부터 호출 될 수 팽창 BASH 스크립트 플러그인을 용이하게하기 위해이 사내 버전은 이러한 문제 및 사전 애플리케이션 구성 프레임 워크를 통해 엔터프라이즈 자바 애플리케이션 컨테이너 수송을 모두 해결에 사용될 환경 변수 많은 지역에서 바인딩 호스트 또는 자동 크기 조절 및 단순화 요청 시간 또는 포스트 제안, 고 가용성을위한 응용 프로그램 클러스터링을 지원합니다.
무료 가입 http://DCHQ.io
IN / OUT 및 다중 계층 규모와 아웃 - 오브 - 박스 컨테이너를 업데이트하는 등의 모니터링과 같은 애플리케이션 라이프 사이클 관리 기능, 연속 배달, 당신은 자바 응용 프로그램 템플릿에 액세스 할 수 있습니다.

No comments:

Post a Comment