Sự khác biệt giữa môi trường dàn dựng và UAT là gì?


9

Tôi biết chúng ta nên có ít nhất 3 môi trường khác nhau trong khi phát triển giải pháp:

  • Phát triển : Các lập trình viên có thể tự do thay đổi và thúc đẩy thay đổi bất cứ lúc nào để nhanh chóng kiểm tra mã của họ và tích hợp với các thay đổi khác mà không sợ phá vỡ bất cứ điều gì - điều này được kết nối với cơ sở dữ liệu và dịch vụ TEST;
  • UAT : Nên được các nhà phát triển đối xử tôn trọng, vì nó phải chứa một bản sao "tốt nhất có thể" của môi trường sản xuất liên quan đến phần cứng, với sự khác biệt là môi trường này được kết nối với cơ sở dữ liệu UAT với một bản sao dữ liệu sản xuất có thể chỉnh sửa - nó được sử dụng bởi cả nhóm Hỏi & Đáp và người dùng để xác thực các thay đổi sẽ được đưa vào sản xuất
  • Sản xuất : Thỏa thuận thực sự.

Tôi đã xem xét câu hỏi này trên SoftwareEngineering , và câu hỏi này trên ServerFault , và chúng dường như khác nhau về ý nghĩa của Môi trường dàn dựng. Ngoài ra, trang Wikipedia về chủ đề này nói rằng:

Việc sử dụng chính của môi trường dàn là để kiểm tra tất cả các quy trình và quy trình cài đặt / cấu hình / di chuyển, trước khi chúng được áp dụng cho môi trường sản xuất. Điều này đảm bảo rằng tất cả các nâng cấp lớn và nhỏ cho môi trường sản xuất sẽ được hoàn thành một cách đáng tin cậy mà không có lỗi, trong thời gian tối thiểu.

Đối với tôi, Staging bằng UAT, nơi bạn phải kiểm tra ứng dụng và quy trình triển khai trước khi chuyển sang thế giới thực. Vì vậy, chúng tôi đẩy gói với các thay đổi sang UAT giống như cách chúng tôi đẩy sang sản xuất, hoàn toàn tự động và với tất cả các buổi lễ chúng tôi nên có với môi trường sản xuất.

Điều đó đang được nói, sự khác biệt thích hợp giữa môi trường UAT và môi trường Staging là gì?

-

EDIT: Nói rõ hơn, tôi đang nghĩ về Ứng dụng web, có thể là trang web internet hoặc trang web mạng nội bộ. Không có "mẫu" ứng dụng hoặc ứng dụng di động.


4
Tôi muốn nhiều người cân nhắc hơn, nhưng điều này dường như chủ yếu dựa trên ý kiến. Trong môi trường hiện tại của tôi, Staging và UAT là khác nhau. UAT là một môi trường công cộng trực tiếp, được đồng bộ hóa với các triển khai sản xuất nhưng với tải dữ liệu khác nhau để cho phép người dùng chơi xung quanh với phần mềm. Chúng tôi gọi nó là môi trường Sandbox cho người dùng. Dàn dựng là một nơi riêng tư để kiểm tra các thay đổi về triển khai và cơ sở hạ tầng trước khi chạy chúng trong Sản xuất và UAT. Có các nghĩa vụ đối với khách hàng xung quanh tính khả dụng và việc sử dụng UAT, nhưng không phải là Staging. Các công ty khác có thể sẽ khác nhau.
Thomas Owens

@ThomasOwens quan điểm chính xác là: Cả hai môi trường đều khác nhau và đối với một số người, nó dường như là một thứ và đối với những người khác, nó có nghĩa là những thứ khác. Câu hỏi trên Server Fault nói rằng bạn sử dụng phân đoạn chỉ vào dữ liệu sản xuất trực tuyến và chỉ "bật công tắc", tôi nghĩ đó là một cách tiếp cận thú vị, nhưng đó là một cách nhìn khác so với những gì bạn đang nói.
Machado

2
Thực tế là một điều đối với một số người và một điều khác đối với những người khác là điều làm cho ý kiến ​​chủ yếu này dựa trên - không có câu trả lời. Tôi chưa bóp cò khi đóng nó, trong trường hợp tôi sai. Đó là một câu hỏi được viết tốt, và có thể có một định nghĩa tiêu chuẩn ngoài kia. Bây giờ, nếu mọi người chọn bỏ qua định nghĩa tiêu chuẩn đó và sử dụng riêng của họ là một câu chuyện khác.
Thomas Owens

@ThomasOwens, tuyên bố công bằng. Nếu bạn không phiền, hãy để nó mở trong một vài ngày và nếu nó xuất hiện chỉ là những câu trả lời dựa trên ý kiến, tôi sẵn sàng bỏ phiếu để gần gũi với bạn. :)
Machado

@ThomasOwens đồng ý Tôi cảm thấy câu hỏi này cũng hơi chủ quan trong những gì mọi người gọi là dàn dựng. Môi trường dàn dựng và UAT của chúng tôi là "điều tương tự" nhưng điều này là do chúng tôi có nhiều bản phát hành nên khi chúng tôi sẵn sàng phát hành, chúng tôi tiếp quản môi trường dàn dựng và chuẩn bị cho UAT phát hành. Các nhà phát triển đang làm việc trên những thứ của riêng họ vẫn có cách sử dụng các nhánh tính năng trên môi trường sân khấu của chúng tôi để nó không chặn họ mặc dù.
Tháng Tám

Câu trả lời:


9

Sự khác biệt là dữ liệu.

Một môi trường UAT được thiết lập để "người dùng chấp nhận" chức năng mới. Để kiểm tra chức năng đó, QA hoặc các bên liên quan có thể thiết lập hồ sơ người dùng theo một cách cụ thể để thực hiện các tính năng cụ thể hoặc có thể thiết lập các sản phẩm hoặc cấu hình giả để kiểm tra tất cả.

Một môi trường dàn dựng thường được thiết lập với một bản sao của dữ liệu sản xuất, đôi khi được ẩn danh. Một số tập đoàn thường xuyên "làm mới" cơ sở dữ liệu dàn của họ từ một ảnh chụp nhanh sản xuất. Trọng tâm chính là đảm bảo rằng ứng dụng sẽ hoạt động trong sản xuất giống như cách nó hoạt động trong UAT. Thay vì thiết lập dữ liệu một lần nữa, người kiểm tra sẽ tìm kiếm cơ sở dữ liệu cho các cấu hình và sản phẩm phù hợp với một bộ trường hợp kiểm thử thiết yếu. Thông thường dữ liệu "thực" có các quirks trong đó làm phát sinh các trường hợp cạnh bất ngờ bị bỏ sót trong UAT. Ngoài ra, bất kỳ thử nghiệm di chuyển dữ liệu sẽ cần phải diễn ra trong môi trường dàn dựng.


1
| Environment | Software version  | Way of usage of software |
 ------------- ------------------- --------------------------
| UAT         | New               | Same as production       |
| Staging     | New or production | New for this version     |

Định nghĩa sử dụng rất rộng ở đây và có thể bao gồm tất cả các loại từ thay đổi cấu hình được thực hiện bởi người dùng cuối đến tính năng cơ sở hạ tầng tốn kém không có sẵn trên môi trường UAT. Phiên bản quan trọng của sản phẩm phần mềm về dàn dựng có thể là phiên bản mới hoặc hiện tại nhưng luôn là phiên bản đã được chấp nhận.

Nói cách khác:

  • UAT tồn tại để chứng minh rằng phiên bản mới của sản phẩm phần mềm sẽ hoạt động nếu được sử dụng giống như cách sử dụng phiên bản hiện tại.
  • Phân đoạn tồn tại để chứng minh rằng cách sử dụng sản phẩm phần mềm mới với một số phiên bản sản phẩm phần mềm được chấp nhận sẽ hoạt động giống như cách sử dụng phiên bản hiện tại của sản phẩm phần mềm.

Lưu ý: vì nó được mô tả trong chính câu hỏi, có những cách hiểu khác nhau về "Môi trường dàn dựng" và một cách sử dụng trong công ty / môi trường của bạn có thể khác.


0

Sử dụng các môi trường khác nhau thực sự, thực sự phụ thuộc vào nhu cầu của bạn. Từ nhận xét của bạn rằng "staging == UAT", nghe có vẻ rất giống như bạn có một ứng dụng rất nhỏ không có nhóm QA và chỉ có một vài nhà phát triển.

Các môi trường ứng dụng lớn hơn có thể có môi trường kiểm thử tích hợp, cũng như môi trường QA, trước đây nơi các nhà phát triển chạy thử nghiệm tích hợp của họ và sau đó nhóm QA chạy thử nghiệm của họ. Có thể có một môi trường đào tạo có dữ liệu chứng khoán được phục hồi trước mỗi buổi đào tạo. Môi trường dàn dựng sẽ được kiểm soát bởi đội ngũ vận hành, để đảm bảo rằng việc triển khai diễn ra đúng cách. Môi trường kiểm tra chấp nhận người dùng (UAT) sẽ được sử dụng bởi nhóm khách hàng. Cũng có thể có một môi trường ảnh chụp sản xuất để tái tạo các vấn đề của khách hàng.

Quan điểm của tôi là hãy cẩn thận với quan điểm duy nhất khi xác định môi trường bạn cần.


Dường như bạn có 3 môi trường thử nghiệm khác nhau, với các mục đích khác nhau, nhưng vẫn là các môi trường thử nghiệm: 1 tập trung vào Hỏi & Đáp, 1 tập trung vào các nhà phát triển và một tập trung vào nhóm vận hành. Nhưng tất cả trong số họ vẫn đang thử nghiệm môi trường, và gắn liền với cơ sở dữ liệu thử nghiệm, ví dụ. Điều này đúng hay tôi đang thiếu một cái gì đó?
Machado

Mỗi người trong số họ sẽ được gắn với cơ sở dữ liệu riêng của họ, vâng.
BobDalgleish

-1

UAT là viết tắt của " Kiểm tra chấp nhận người dùng " và là môi trường trong đó kiểm tra chấp nhận người dùng được thực hiện. Lưu ý sự nhấn mạnh vào người dùng - kiểm tra QA của bạn là khác nhau, UAT là cơ hội cho người dùng thực tế (hoặc ít nhất là nhóm đào tạo, nhân viên bán hàng, nhân viên hỗ trợ của bạn, v.v.) để thử các tính năng mới và đánh giá phần mềm trước khi được triển khai hệ thống sản xuất của họ.

Điều này có nghĩa chính xác sẽ phụ thuộc vào các quy trình của bạn:

  • UAT (môi trường) có thể là "cấp độ" với sản xuất và về cơ bản là một hộp cát để người dùng thử các tính năng mới.
  • UAT (môi trường) có thể "đi trước" sản xuất, do đó các tính năng mới không được triển khai vào sản xuất cho đến khi chúng được đánh giá. (Tôi không quan tâm đến phương pháp này vì nó nhất thiết có nghĩa là bạn có thời gian thực hiện lâu hơn).
  • Bạn có một hệ thống nhiều người thuê mà bạn thậm chí không cần môi trường UAT, thay vào đó bạn có thể chọn để người dùng đánh giá các tính năng mới trong các hệ thống sản xuất bằng cách sử dụng cờ tính năng.

Về mặt triển khai liên tục / phân phối liên tục, môi trường dàn dựng được sử dụng để kiểm tra phần mềm trong môi trường "giống như sản xuất", vì có khả năng các nhà phát triển sẽ làm việc trong một môi trường có sự khác biệt đáng kể so với sản xuất (ví dụ như không cân bằng tải, nhỏ hơn tập dữ liệu vv ...)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.