2011-10-05 4 views
9

Tôi vừa mới học được về tính năng Tomcat 7 để cho phép nhiều phiên bản của cùng một webapp triển khai cùng một lúc:Tính năng triển khai song song Tomcat7: trải nghiệm sử dụng nó trên máy chủ sản xuất?

http://www.tomcatexpert.com/blog/2011/05/31/parallel-deployment-tomcat-7

http://www.javacodegeeks.com/2011/06/zero-downtime-deployment-and-rollback.html

trang web của chúng tôi thường xuyên nhận được 10-20.000 phiên người dùng mỗi ngày và khá nhiều trong số đó là loại webapp giao dịch/trạng thái. Triển khai song song có vẻ hoàn hảo cho những gì chúng tôi muốn, nhưng tôi chưa thực sự nghe nhiều về trải nghiệm của mọi người khi sử dụng nó trên máy chủ của họ.

Nếu bạn sử dụng tính năng này của tomcat 7 trong sản xuất, bạn đã có bất kỳ vấn đề với nó cho đến nay? Bạn có phải thực hiện bất kỳ thay đổi nào đối với các ứng dụng web của mình để "chơi đẹp" với tính năng Tomcat này không?

+3

@Robert Harvey Làm thế nào điều này có thể "không mang tính xây dựng"? Rất nhiều câu hỏi bạn đã đưa ra cũng là "thu hút ý kiến", nhiều hơn câu hỏi này. Tìm hiểu trải nghiệm của mọi người bằng tính năng sản phẩm chắc chắn liên quan đến "sự thật và chuyên môn". Có rất ít câu hỏi đối phó với khía cạnh này của tomcat 7. Vui lòng mở lại. – trafalmadorian

+0

Tôi đã thay đổi lý do đóng. Nếu bạn có thể làm cho câu hỏi của bạn cụ thể hơn và phù hợp hơn với phát triển phần mềm, tôi sẽ mở lại. Nhưng câu hỏi thu hút ý kiến ​​thường không có chủ đề trong toàn mạng SE. –

+1

@RobertHarvey Tất nhiên điều này liên quan đến lập trình và phát triển phần mềm. Rất nhiều nhà phát triển sử dụng Tomcat như một máy chủ ứng dụng để triển khai các ứng dụng web Java. Tôi đang thu hút những trải nghiệm thực tế của mọi người bằng tính năng này trên máy chủ sản xuất của họ. Kinh nghiệm của ai đó khi sử dụng sản phẩm được coi là "ý kiến"? Có rất nhiều câu hỏi hiện có liên quan đến triển khai Tomcat, vậy làm thế nào điều này có thể không được với phạm vi của SE? – trafalmadorian

Trả lời

6

Tôi không sử dụng tính năng này trong sản xuất. Những khó khăn đầu tiên của tôi là:

  • Điều gì xảy ra nếu bạn áp dụng thay đổi lược đồ cơ sở dữ liệu? Bạn sẽ có hai ứng dụng chạy trên cùng một lược đồ với xử lý cơ sở dữ liệu khác nhau (ví dụ các thực thể JPA khác nhau).
  • Điều gì sẽ xảy ra nếu bạn có một số tác vụ được lên lịch? Họ sẽ chạy song song. Ứng dụng của bạn phải sẵn sàng cho việc này.
  • Điều gì xảy ra nếu bạn áp dụng một số sửa lỗi rất quan trọng? Bạn sẽ có ứng dụng tốt và lỗi chạy cùng nhau. Họ sẽ cùng nhau thay đổi cơ sở dữ liệu cho đến khi tất cả các vệt cũ hết hạn.
  • Tại sao bạn muốn người dùng xem phiên bản ứng dụng cũ nếu bạn áp dụng một số tính năng hoặc sửa lỗi mới.
  • Ứng dụng của bạn phải được chuẩn bị giống như cách bạn chuẩn bị để chạy trên cụm với các phiên dính. Nó chỉ giống nhau, nhưng trên cùng Tomcat.
  • Bạn có chắc chắn rằng ứng dụng của bạn có thể được triển khai lại trên Tomcat mà không có vấn đề về gen nổi tiếng không? Tôi nghe nói họ nói rằng nó có thể được thực hiện ngay bây giờ. Tôi vẫn khởi động lại Tomcat với mỗi lần triển khai lại.
3

Chúng tôi không có nhiều may mắn khi làm việc này một cách nhất quán trong môi trường thử nghiệm của chúng tôi, vì vậy không có cách nào chúng tôi xem xét nó để sản xuất.

Câu hỏi là, bạn có cần khả năng thực hiện các nâng cấp nóng trong môi trường của mình không? Thông thường về mặt lý thuyết thì tốt nhưng không cần thiết.