Dokeo 램프는, LAPP는 LAOP 스택 및 단계별 PHP 응용 프로그램 배포 및 관리를위한 가이드[ K O ]
---------------------------------------------------------------------------------
리 주문하기 9 은 vSphere에 대한 ((13) 기타 구름, OpenStack은은, AWS, 랙 스페이스, 마이크로 소프트 애저, 구글 컴퓨 트 엔진, 디지털 오션, IBM SOFTLAYER 가상화 플랫폼을 포함하여 PHP 애플리케이션 템플릿이 프로젝트 (LAMP, LAPP 및 LAOP 스택) 등), 확인하는 일을의
사용자 지정 및 (포함 램프, LAPP 스택과 LAOP)는 dokeo 템플릿 및 PHP 애플리케이션, 멀티 티어 자바 애플리케이션 스택, 몽골 클러스터 복제 세트, 드루팔, 워드 프레스, (예 MEAN.JS 실행할 등 많은 중 하나) 다른 템플릿을 발급
배경
여전히 기존의 엔터프라이즈 애플리케이션 Containerizing, 응용 프로그램 구성 프레임 워크는 대부분 외부 복잡한 종속성, 또는 통합 자동 크기 조정 후 제공되는 워크 플로우를 해결하지 않기 때문에 도전이다. 또한, 임시 용기의 설계는 개발자 용기 회전 새로운 업데이트 모든 버전의 복소 외부 종속성 통합 재건 한 것을 의미한다.
DCHQ는 호스팅에-수있는 온 - 프레미스 버전에서 사용하면 이러한 문제를 모두 해결하고 높은 바운드 요청으로 작성 dokeo 상호 이미지 환경 변수 확장 BASH 스크립트 플러그인을 확장하는 고급 응용 프로그램 구성 프레임 워크를 통해 엔터프라이즈 응용 프로그램의 컨테이너 운송을 단순화 자동 스케일링을 지원하는 여러 호스트 또는 영역에 걸쳐 가용성은 한 번에 또는 사후 규제 및 클러스터링 애플리케이션에서 호출됩니다.
응용 프로그램이 프로비저닝되면, 사용자의 CPU, 당신은 메모리를 모니터링 할 수 있습니다, & I는 컨테이너 / O, 알림을 받고있을 것 경고는 응용 프로그램의 백업 액세스, 자동 스케일을 얻기 위해 인 / 아웃 워크 플로우에서 실행하고 컨테이너를 실행 및 플러그인 실행중인 워크 플로를 업데이트합니다. 또한, 자동 GitHub의를 야간 빌드에 병합하거나 변경할 때마다 당신은 자신의 지속적인 통합 워크 플로우 용기의 배포 일정을 통합 할 수 있습니다 "실행 앱".
이전 블로그에서 우리는 스택을 기반으로 13 개의 다른 클라우드 및 가상화 플랫폼에서 응용 프로그램 (피자 가게와 영화 스토어 앱, 등) Java 응용 프로그램의 다양한 끝입니다 dokeo 다중 계층이 - 배포 자동화 엔드 - 투을 보였다. : 블로그의 전체 목록을 보려면이 페이지를 방문 할 수 있습니다 http://dchq.co/docker-java-applications.html에를
그러나, 많은 사용자가 모델링 애플리케이션의 기본 형태 중 일부에 의해 혼란 하였다. 다음과 같이 이러한 질문은 다음과 같습니다 :
이 문제를 해결하기 위해, 우리는 itseupnidayi이 샘플 응용 프로그램을 만드는 PHP "디렉토리 이름"응용 프로그램 스택에 배포 할 수있는 GitHub의 프로젝트에 있습니다 :
이 프로젝트에서 우리는, 구성, 배포 및이 다른 애플리케이션 스택을 사용하여 PHP 애플리케이션을 관리하기위한 다른 클라우드 / 가상 인프라에 대한 단계별 가이드를 제공합니다.
우리는 다룰 것입니다 :
당신은 GitHub의에서 샘플 "디렉토리 이름"PHP 응용 프로그램을 복제 할 수 있습니다.
이것은 "Dockerizing"PHP 응용 프로그램에서 가장 중요한 단계입니다. 컨테이너를 실행하는 경우,이 응용 프로그램은 당신이 요청에 따라 특정 속성을 변경할 수있는 방식으로 구성되어 있는지 확인해야합니다 전달 될 수있는 환경 변수의 장점 중요합니다 - 등을 :
이 작업을 수행하려면 먼저 구성해야 하여 config.php를을 .
당신은 다음과 같은 요청으로 전송됩니다 특정 데이터 소스 속성으로, 그 기준을 환경 변수를 볼 수 있습니다
PHP 애플리케이션을위한 데이터베이스를 초기화
일반적으로, 우리는 PHP 응용 프로그램 배포 자체의 일부로 데이터베이스 스키마를 초기화하는 것이 좋습니다. 별도의 SQL 파일 유지 관리를 위해 데이터베이스에 개별적으로 실행해야합니다에 대해 이런 식으로, 당신은 걱정할 필요가 없습니다.
DCHQ는 다음의 플러그인 프레임 워크를 통해 프로세스를 자동화 할 수 있습니다 - 당신은 여전히 별도로 데이터베이스를 실행할 수 있습니다 원하는 경우 이미 SQL 파일이 있습니다. 당신이 볼 수있는 부분을 자세한 내용은.
그것은 PHP 애플리케이션에서 데이터베이스 테이블 생성하는 SQL 스크립트를 포함하도록 구성되어 Persistence.php에서 SQL 문을 다른 .populateDatabase () 함수의 MySQL, PostgreSQL을 사용하여 데이터베이스를 채우는 데 파일 (기본 사용을 따라), 협력 ohrakeulwa.
dokeo 이미지 구축 PHP를 사용하여 5.6 - 아파치
PHP 애플리케이션이 구성 될 때, 당신은 단순히 당신의 PHP 코드와 dokeo 이미지를 만들어야합니다.
하나 (한 DCHQ.io 호스팅 또는 온 - 프레미스 버전), 사용자가 로그인 DCHQ로 이동할 수 있습니다 , 이미지 건물 클릭 의 + 만들려면 새로 만들기 버튼을 Dockerfile (힘내 / / GitHub의의의 bitbucket를) 이미지를 구축 할 수 있습니다.
다음과 같이 필요한 값을 제공합니다 :
필수 필드가 완료되면, 사용자가 클릭하면 저장 .
사용자가 다음을 클릭하면 재생 버튼 , 사용자 정의 고정 표시기 이미지를 구축 할 수 있습니다.
다음은 실제 Dockerfile 가게의 이미지,이 dokeo GitHub의를 구축하는 데 사용됩니다 :
어디 리눅스 호스트를 실행하는 데 재사용 할 수있는 응용 프로그램 내장 템플릿을 YAML 기반
하나 (한 DCHQ.io 호스팅 또는 온 - 프레미스 버전) 사용자는 탐색 할 수 있습니다 DCHQ에 로그인 응용 프로그램 및 기계를 한 후, 클릭 의 + 만들려면 새로 만들기 버튼을 만들 dokeo 템플릿을.
우리가 만든 9 응용 프로그램 템플릿을 사용하여 dokeo 허브에서 공식 이미지를 하지만, 다른 응용 프로그램 서버 및 데이터베이스 - 동일한 "이름 디렉토리"PHP 응용 프로그램입니다.
템플릿 (예 : PHP 응용 프로그램 등) 응용 프로그램 스택의 예를 포함한다 :
환경 변수는 이미지를 가로 질러 결합
또한, 사용자가 환경 변수의 다른 이미지를 볼 수있는 상호 이미지로 결합 된 환경 변수를 만들 수 있습니다. 포함 -이 경우, 우리는 여러 바인딩했다 | DB_HOST는 container_private_ip = {} {MySQL은}에서 데이터베이스 - 컨테이너는 Apache PHP 서버와의 접속을 확립 할 수 있도록하는 데 사용되는 경우 데이터베이스에 동적 IP 요구를 해결한다.
다음은 환경 변수의 목록을 지원한다 :
LAMP 스택 (리눅스 - 아파치 - MySQL과 PHP)LAPP 스택 (리눅스 - 아파치 -의 PostgreSQL - PHP)LAOP 스택 (리눅스 - 아파치 - 오라클 PHP)(Nginx에-PHP-MySQL의 3 계층에서) LAMP 스택(3 계층의 PostgreSQL의 Nginx에-PHP-) LAPP 스택(Nginx에-PHP- 3 층 오라클 XE) LAOP 스택(A 3 층 ApacheHTTP-PHP-MySQL의) LAMP 스택LAPP 스택 (ApacheHTTP-PHP-의 3 PostgreSQL의 층)LAOP 스택 (레이어 3 ApacheHTTP-PHP- 오라클 XE)당신이 호출 할 때 별도로 LAMP 스택을 dokeo 데이터베이스를 플러그인을 초기화
우리는 PHP 응용 프로그램 배포 자체의 일부로 데이터베이스 스키마를 초기화하는 것이 좋습니다. 당신은 여전히 별도로 데이터베이스의 SQL 파일을 실행하려는 경우 - DCHQ는 당신의 플러그인 프레임 워크를 통해 프로세스를 자동화 할 수 있습니다.
이 예에서, LAMP 스택은, MySQL은 플러그인 작성 배쉬 스크립트로 이동 populate.sql 배시 스크립트 파일을 실행할 수있는 플러그인을 호출 플러그인 등을 :
bash는 스크립트 플러그인에서 $ MYSQL_USER , $ MYSQL_ROOT_PASSWORD , 및 $ MYSQL_DATABASE입니다 요청에 전달되는 환경 변수.
$ FILE_URL가 덮어 인수, 당신은 당신이 플러그인을 만들거나 응용 프로그램을 요청하는 경우 정의 할 수 있습니다. 이 파일 populate.sql의 URL 될 것입니다.
자동 프로비저닝 및 클라우드 확장의 모든 기본적인 인프라
응용 프로그램이 저장되면, 당신은 클라우드 제공자의 사용자 프로비저닝 및 스피어 V VM웨어를 등록 할 수 있습니다 OpenStack은은, CloudStack, 아마존 웹 서비스, 랙 스페이스, 마이크로 소프트 애저, 디지털 오션, IBM, SOFTLAYER, 구글의 이러한 클러스터와 12 클라우드 엔드 포인트 계산 엔진 및 많은 다른 사람은 자동 크기 조정을 자동화합니다.
첫째, 대한 클라우드 제공 업체 랙 스페이스를 등록 사용자로 이동 (예를 들어), C 큰 공급자와 레 포스 그런 다음 클릭하면 + 및 선택 버튼의 랙 공간 . 즉, 제어판의 랙 스페이스 클라우드 계정 설정 섹션에서 검색 할 수 있습니다 할 수있다 랙 스페이스의 API 키가 제공 될 필요가있다.
사용자는 자동 정책의 클러스터를 생성하고 자동으로 새로운 클라우드 서버를 회전 확장 할 수 있습니다. 이것은로 이동하여 수행 할 수 있습니다 C 광택 다음 페이지를 클릭하고 의 + 와 버튼을 누릅니다. 누릅니다 정책 사용자 용량 기반의 위치를 선택 직조 클러스터에서 여러 호스트와 통신 보안 암호 보호 크로스 용기를 용이하게하기 위해 네트워크 계층을 자동 확장 정책 이 설정 될 수 가입 VM (10) (또는 클라우드 서버)에, 예를 들면.
이제 간단한 YAML 기반의 클라우드 서버 시스템과 사용자 수는 작업 기반의 UI 중 하나 또는 셀프 서비스 라이브러리 제공의 흐름을 통해 요청할 수 있습니다 새로 생성 된 클러스터를 정의하는 템플릿을 만들 수 있습니다.
인터페이스 기반의 워크 플로우 - 당신로 이동합니다 랙 스페이스 클라우드 서버 사용자로 이동 요청할 수 있습니다 기계 다음을 클릭 +를 선택 버튼 랙 공간 . 클라우드 제공자를 선택하면, 크기와의 이미지를 선택할 수 있습니다 영역은 사용자가 필요합니다. 랙 스페이스 클라우드 서버 포트 요구 사항을 일부 수용하기 위해 기본적으로 열립니다 포트합니다 (섬유 RabbitMQ에 대한 예를 들어 32000-59000, 5672 및 dokeo, 6783 참조). 클러스터가 다음 선택의 수를 지정할 수 있습니다 클라우드 서버.
템플릿을 만들 수있는 기계를 YAML 기반 -로 이동하여 랙 공간에 대한 템플릿을 만들 수있는 기계 만드는 첫 번째 사용자로 이동 기계 및 클릭 + 버튼 다음 선택하면 컴퓨터를 만드는을 .
여기에 클라우드 서버 4GB의를 요청하는 템플릿입니다.
다음과 같이 기계 만든 템플릿을 지원하는 매개 변수 요약 :
컴퓨터 생성 템플릿이 저장되면, 사용자는 셀프 서비스 시스템이 요청할 수 라이브러리 . 사용자가 클릭하면 사용자 정의 를 선택한 다음 클라우드 공급 업체 및 클러스터 이 랙 스페이스 클라우드 서버 프로비저닝에 사용합니다.
랙 공간의 PHP 다중 계층 분산 응용 프로그램 클러스터
클라우드 서버를 제공 할 때, 사용자는 멀티 티어 dokeo, 새로운 클라우드 서버에 PHP 기반 응용 프로그램을 배포 할 수 있습니다. 이 사용자 정의 다중 계층 응용 프로그램을 요청하고 라이브러리로 이동하여 셀프 서비스를 수행하기 위해 한 번의 클릭 할 수 있습니다.
실행 (DEV 또는 QE 등)을 클릭하기 전에 만든 사용자, 당신은 태그와 환경, 공간, 랙 클러스터를 선택할 수 있습니다.
컨테이너 터미널 액세스 브라우저에서 실행
당신은 다음 라이브 앱 페이지에있는 컨테이너의 이름으로 명령 프롬프트 아이콘을 사용할 수 있습니다. 이 컨테이너는 사용자 에이전트 메시지 큐를 통해 보안 통신 프로토콜을 이용하여 입력 할 수있다. 명령이 화이트리스트는 컨테이너에 유해하지 않은 변경은 사용자가 실행하는 관리자 임차인에 의해 정의 될 수있다.
예를 들어, PHP 배포, 우리의 / var / www / html / 디렉토리에있는 PHP 코드가 실제로 명령 프롬프트에서 사용 있는지 확인하려면.
용기 및 실행하는 I를 사용하여 CPU를 모니터링 / O 메모리
애플리케이션가 실행되면 이러한 통계 I 컨테이너 / O 경고 실행을 얻는 소정의 임계 값보다 클 때, 우리의 현상은 CPU, 메모리를 모니터링한다. 우리의 개발자들이 기능 및로드 테스트를 수행 할 때 특히 유용합니다.
당신은 배포 업데이트 또는 컨테이너와 관련된 기록을 수행하고 모니터링 분석 문제를 구축 할 수 있습니다. 이것은 클릭하여 수행 할 수 있습니다 작업을 응용 프로그램의 실행 메뉴에서 모니터링을 . 사용자 지정 날짜 범위, 당신은 역사의 CPU, 메모리 및 I / O를을 볼 선택할 수 있습니다
자동 실행 응용 프로그램을 사용하면 지속적인 통합을 가능하게
새로운 용기 dokeo 이미지 회전을 다시 응용 프로그램 코드가 포함 된 응용 프로그램 업데이트를 자동 자동화 된 이미지를 구축하기 위해 Dockerfiles의 모델 dokeo을하고 싶은 개발자와 개발자를위한 "불변"DCHQ 컨테이너에 자동 응용 프로그램 실행 기능을 제공합니다 이미지를 만들거나 개인 GitHub의 프로젝트는 Dockerfiles 및 일정 응용 프로그램 배포를 포함하고 임대 응용 프로그램을 사용자 정의하는 최신 이미지를 사용하여 전체 LAMP 스택을 돌립니다.
사용자는 다음에 탐색 할 수 있습니다 응용 프로그램 실행 후 클릭 의 +를 새로운 "자동 실행 응용 프로그램"정책을 만들려면 버튼을 누릅니다. 그런 다음 필요한 필드를 완료 할 수 있습니다 - 예를 :
PHP 애플리케이션을 확장
실행 애플리케이션은 제한된 리소스가 될 경우, 사용자는 증가 된 부하를 만족하도록 애플리케이션을 확장 할 수있다. 또한, 사용자는 예를 들어 시간과 규모의 크기를 여는 주말에 예약 할 수 있습니다.
1-2 컨테이너 PHP의 클러스터를 확장하려면, 사용자가 클릭하면 작업을 실행중인 응용 프로그램의 메뉴를 선택하고 수평 확장 . 사용자는 클러스터의 새 크기를 지정하고 다음을 클릭 지금 실행을 .
우리는 그래서 추가적인 새 응용 프로그램 서버의 인식을 아파치 HTTP 서버의 httpd.conf 파일을 업데이트 할 BASH 플러그인을 사용했다. 배쉬 스크립트 플러그인은 같은 청소와 사용 사례를 수용 또는 로그 정의 된 주파수의 구성을 업데이트 예약 할 수 있습니다.
플러그인 실행 컨테이너를 실행하려면 사용자가 클릭 할 수 있습니다 작업을 실행중인 응용 프로그램의 메뉴를 선택하고 연결합니다 . 사용자 컨테이너를 시작하고 버튼을 토글, 검색 플러그인을 실행해야합니다, 컨테이너를 선택한 다음로드 밸런서 (아파치 HTTP 서버)를 사용하도록 설정할 수 있습니다. 플러그인의 기본 인수는 동적으로 모든 컨테이너의 컨테이너를 수정하고 httpd.conf 파일의 한 부분으로 IP를 추가 할 수 PHP를 실행합니다.
응용 프로그램 타임 라인 당신은 감사 및 진단을위한 응용 프로그램에 대한 모든 변경 사항을 추적 할 수 있습니다. 이것은 실행중인 애플리케이션의 페이지의 하단에 확장 메뉴에 액세스 할 수있다.
두개의 호스트 CPU 용기의 메모리 사용률 또는 하나의 정의 된 임계치를 초과 경보 및 통지, 당신은 아래 용기 또는 호스트 또는 사용할 수있다.
결론
대부분의 복잡한을 해결 한 후 워크 플로우 종속성, 외부 또는 통합 자동 스케일링을 제공하지 않기 때문에 여전히 응용 프로그램 구성 프레임 워크를 기존 엔터프라이즈 PHP 애플리케이션을 Containerizing하는 것은 도전이다.
DCHQ는 호스팅에-수있는 온 - 프레미스 버전에서 사용하는 호출 할 수있는 확장 BASH 스크립트 플러그인을 용이하게하기 위해 사전 응용 프로그램 구성 프레임 워크를 통해 이러한 문제와 기업의 PHP 응용 프로그램의 교차 이미지 환경 변수 컨테이너를 모두 해결 바인딩은 시간이나 사후 서비스를 요청에서 자동 스케일링을 지원하는 여러 호스트 또는 지역에 대한 고 가용성을 위해 애플리케이션 클러스터링은 전송을 단순화합니다.
|
No comments:
Post a Comment