2012-02-05 1 views
1

Azure 플랫폼을 탐색 중이지만 문제가 있습니다.Azure : Java webrole

사실,

내가 웹 역할 및 작업자 역할의 차이를 이해 ... 내가하지 않는 무언가가있다. 그러나 Java 응용 프로그램의 웹 역할을 구체적으로 만드는 방법은 무엇입니까?

eclipse에서 azure 용 Java 응용 프로그램을 개발할 때 자바 서버 (i got up tomcat7) + jdk를 복사/붙여 넣기해야합니다. 나는 그것이 에뮬레이터 안에 자바 애플 리케이션을 실행하는 것으로 가정합니다.

그러나 webrole으로 응용 프로그램을 azure에 배포하는 경우 ..... war 패키지 + xml 구성 파일 (cscfg 및 기타) 만 업로드합니까? 아니면 서버와 jdk도 업로드합니까? "에뮬레이터"매개 변수 대신 "클라우드"매개 변수를 사용하여 프로젝트를 빌드하려고 시도했으며 150 메가 바이트의 거대한 cspkg 파일을 만들었습니다 ... 나는 앱을 업데이트해야 할 때마다 150 메가 바이트를 업로드 할 수 없습니다 ...

.war 파일을 업로드하는 것을 허용하지 않는 이유는 무엇입니까? 서버 배포를 업로드해야한다면 페일 오버 및 세션 복제가 어떻게 설정됩니까 ??

은 아마 ... 답변

에 대한

감사합니다 뭔가를 그리워


편집 :

사실, 웹에서 무엇을 읽었습니다, 자바 응용 프로그램은 기본적으로 처리되지 않는에서 Azure에 의해, 당신은 패키지 안에 독자적인 어플리케이션 서버 (tomcat, glassfish 등)를 제공해야하며, startup 스크립트는 내부 app으로 서버를 구동시킬 것입니다. 새 패키지를 재배포 할 때마다 jre + 서버 바이너리 + 응용 프로그램 코드를 업로드해야합니다.

세션 복제 또는 기타 기능을 기본적으로 지원하지 않습니다. 멀티플 인스턴스에서 세션을 "공유 가능"하게하려면 테이블 스토리지 서비스를 사용하여 세션 정보를 저장해야합니다.

참고 : 일식으로, 최신 플러그인은 끈적 세션을 설정할 수 있지만,이

따라서, 자바 응용 프로그램이 webrole로하지만, 작업자 역할 곳으로 배포되지 않은에 대해 난 아무것도 더 알고하지 않습니다 자신의 서버를 추가합니다.

웹 롤은 .NET 및 PHP 응용 프로그램에만 있습니다.

내가 틀렸다면 나를 수정하십시오.

+0

Java 또는 Tomcat을 배포 패키지에 포함 할 필요가 없습니다. blob 저장소에 저장하거나 시작 스크립트에서 로컬 저장소에 복사하고 tomcat을 시작할 수 있습니다. 로컬 VM 저장소는 매우 빠릅니다. 동일한 작업을 수행하는 데모 앱을 만들고 있는데, JRE와 Tomcat을 blob 저장소로 옮길 때 패키지 크기가 약 160MB에서 70MB로 떨어졌습니다. 코드를 사용할 수있는 몇 주 후에이 게시물을 업데이트 하겠지만,이 작업을 수행하는 방법을 보여주는 많은 자료가 있습니다. –

답변

1

당신 말이 맞습니다. 일반적으로 웹 역할에서 java/Tomcat을 실행할 수도 있지만 웹 역할에는 IIS 내부에 하나 이상의 사이트가 있어야합니다 (IIS와 Tomcat이 TCP 포트를 공유 할 수 없으므로이 사이트에 포트 80을 연결하지 마십시오).

Azure VM Role으로 시도해야합니다. 이 시나리오에서는 모든 시스템 요구 사항 (JRE, Tomcat, ...)으로 가상 macine을 로컬로 생성합니다. 이 가상 이미지를 Azure에 VM 역할을위한 템플릿으로 업로드하십시오. 이제 응용 프로그램 파일 만 업로드 할 수 있습니다.

Blob 저장소에서 JRE 및 Tomcat을 다운로드하고 압축을 해제하는 스타 업 작업으로 업로드/배포 프로세스 속도를 높일 수 있습니다. Azure Bootstrapper 당신을 도울 수있다.

+0

나는 동의하지 않는다 - Java를 실행하기 위해 VM 역할이 필요 없다. Tomcat, Jetty 등을 시작하기 만하면됩니다. VM Role을 사용한다면, OS 업그레이드를 관리해야하며, 이점은 없습니다. 또한 OP는 170MB 패키지를 업로드하는 것과 관련이있었습니다. VM 역할을 사용하면 이제는 전체 VM을 밀어 넣을 수 있습니다. 배포 패키지보다 훨씬 큽니다. –

1

답변 해 주셔서 감사합니다.

또 다른 질문이 있습니다. 자바 패키지의 새 버전을 배포 할 때 "어떤 일이 발생합니까?"

tomcat이 주요 보안 수정 사항을 발표 한 것을 상상해보십시오. tomcat을 cspkg (heavyyyyy)에 삽입하거나 blob (light !!)에 저장하여 새 버전의 tomcat을 사용해야합니다.) 그리고 물론 업데이트가 거의없는 Java 코드. 이미 실행중인 인스턴스에이 패키지를 배포합니다.

어떻게됩니까? 새로운 패키지로 재부팅합니까? 새로운 인스턴스를 생성하고 현재 실행을 중지합니까? 각 인스턴스에서 실행중인 응용 프로그램 서버를 종료하고 새 패키지에서 새 응용 프로그램을 실행합니까? (비 영구적 인) 로컬 스토리지 (저렴한 캐시로 사용되는 경우)는 어떻게됩니까? 사용중인 세션은 어떻게됩니까? (blob에 저장되지 않고 메모리에만 저장되는 경우)?

Azure에는 다른 Java 서버의 벤치 마크/비교표가 있습니까? (메모리 풋 프린트, 동시 연결 등)

내 질문에 이상하게 보일 수 있지만 현재 Google App Engine (Azure로 이동할 의사가 있음)과 함께 배포/업데이트해야하는 유일한 작업이 있습니다. 응용 프로그램은 이클립스에서 Deploy 버튼을 클릭하는 것입니다. 그래서 현재 상황은 여전히 ​​매우 혼란 스럽습니다. 실제로, 자신 만의 jre와 자신의 응용 프로그램 서버를 업로드해야한다는 사실은 많은 자유를 추가합니다. PaaS