đa phần team thường bỏ qua mất môi trường xung quanh staging Lúc phát triển ứng dụng. Họ hay submit một pull request (PR), chạy kiểm tra bằng CI, merge vào master và rồi deploy lên production. Đây là một trong quá trình khá nguy nan vày không tồn tại câu hỏi thử nghiệm tích vừa lòng nào được tiến hành. Tệ không chỉ có thế là nếu tất cả lỗi thì chúng ta tiếp cận bằng phương pháp fix trực tiếp ở môi trường xung quanh production.Quý Khách đã xem: Staging là gì
Trong bài viết này, họ sẽ cùng đàm luận về tiện ích của câu hỏi áp dụng môi trường staging trong tầm đời cách tân và phát triển phần mềm, cùng biện pháp chúng góp phẩn bảo đảm an toàn rằng thành phầm sẽ được deliver cho production đúng thật hy vọng hóng.
Bạn đang xem: Staging là gì
I. Môi ngôi trường staging là gì?
Môi trường staging là môi trường xung quanh mà lại chúng ta deploy trong quy trình cải tiến và phát triển ứng dụng. Bạn deploy đến môi trường xung quanh staging trước lúc deploy lên production.
Môi ngôi trường staging thường xuyên giống hệt môi trường xung quanh production. Điều này Tức là chúng có thuộc phần cứng, phần mềm và config, Tóm lại là càng như là thì quý giá của staging càng cao.
Mức độ như là nhau thân staging và production bảo đảm rằng vấn đề test trên môi trường xung quanh staging đang phả ánh đúng phần nhiều gì xảy ra bên trên production với thuộc ĐK.
Không nhỏng môi trường trở nên tân tiến hoặc tích thích hợp, môi trường staging thực hiện cùng service back-end cũng tương tự các service không giống. Chúng tất cả cùng bản vẽ xây dựng, và một dạng hình scale, và những thông số kỹ thuật thông số kỹ thuật.
Tùy vào các yếu tố giải pháp (chẳng hạn thử dùng GDPR) cùng khả năng bịt giấu dữ liệu của tổ chức, môi trường xung quanh staging thường xuyên ẩn danh Hay những bộ dữ liệu hoàn hảo của production nhằm gần hơn với môi trường production vào quả đât thực. Điều này có nghĩa là môi trường thiên nhiên staging không được release hoặc open cho những người sử dụng ở production, mà nó chỉ sẵn gồm sinh sống nội bộ tổ chức triển khai hoặc một số lượng người dùng nhỏ.
Để kiểm soát điều hành chi phí, chúng ta cũng có thể deploy môi trường thiên nhiên staging như một phần của vòng đời release với phá quăng quật sau thời điểm release được đưa mang đến production.
Phương thức này cho chính mình tài năng để phát hiện tại vụ việc về code unique, sự việc tài liệu ở mức cao, sự việc về tích đúng theo cùng những vụ việc tương quan mà lại cần yếu dễ dàng và đơn giản được biểu thị ở môi trường thử nghiệm tích thích hợp hoặc môi trường xung quanh thấp hơn hẳn như development hoặc local.
Phương thức này cũng chất nhận được bạn dự đoán thù tại mức đúng đắn cao, rằng bài toán deploy lên production gồm thành công hay không, cũng giống như trả lời những câu hỏi dạng "service new cấp dưỡng bao gồm chuyển động bên trên production tốt không?"...
Làm câu hỏi cùng với môi trường staging buộc bạn đề xuất soát sổ tất cả các mang định nhưng mà bạn đưa ra trong quy trình trở nên tân tiến với đảm báo rằng chúng ta vẫn cách xử trí nhằm chắc chắn nhằm deploy thành công.

II. Nguy cơ của bài toán deploy mà lại không tồn tại staging
Việc demo sống local hoặc chạy unit demo không phải là 1 trong phương pháp xuất sắc để kiểm trả unique cùng công dụng sản phẩm. Unit kiểm tra được viết vì chưng fan, mà bạn thì luôn luôn hoàn toàn có thể mắc lỗi. Nếu các bạn chỉ demo phần lớn sự việc vẫn biết trước, thì bạn thiết yếu cover đông đảo vấn đề mà bạn trù trừ.
Người ta hay quên rằng vấn đề biến đổi có thể tác động đến các service không giống hoặc tính năng khác. Đôi lúc một tlỗi câu hỏi bạn áp dụng làm việc local rất có thể không vận động được nghỉ ngơi cloud, và chỉ còn lúc deploy lên production thì các bạn bắt đầu phát hiện nay.
Đôi khi thì bộ tài liệu dùng để làm thử nghiệm sinh sống môi trường thiên nhiên cấp thấp hầu như là giả định về những chiếc làm việc production. Một số bạn cho là staging là ko quan trọng vị lỗi sẽ được phạt hiện nhanh chóng, tuy vậy ví dụ chúng ta đang khiến user gặp mặt bug và lỗi cấu hình.
Nói phổ biến, bài toán biến đổi hoàn toàn có thể tác động tài liệu sinh sống production, cùng hoàn toàn có thể ảnh hưởng mang lại cả các service tương quan.
Dựa vào lòng tin với hy vọng như một phương pháp để bảo đảm deploy lên production thành công chắc hẳn rằng sẽ sở hữu được nguy cơ tạo nên dấn thức xấu đi về quality thành phầm của người tiêu dùng cùng cuối cùng dẫn mang đến mất doanh thu, mất người sử dụng với hoàn toàn có thể vi phạm điều khoản phù hợp đồng với người sử dụng của người tiêu dùng.
Chi phí tương quan tới việc deploy hoặc code lỗi bao gồm:
Phải hotfixRollbaông xã releaseẢnh hưởng trọn mang đến scheduleKhả năng mất dữ liệuHình ảnh hưởng mang lại tín đồ dùngVi phạm đúng theo đồngRủi ra lừng danh / thương hiệuMất doanh thuMất khách hàng hàngLợi ích chúng ta cảm nhận từ việc sử dụng môi trường staging là cường độ đảm bảo an toàn chất lượng cao hơn và sự hài lòng của công ty. Ngoài ra, bằng phương pháp bớt tác động hoặc số lỗi vào sản phẩm, chúng ta có thể tiết kiệm không hề ít ngân sách. Ví dụ: bạn có thể bớt lượng thời gian chúng ta buộc phải chi ra để rollback, hoặc giảm thời gian cung ứng các hotfix kịp lúc nhưng mà rất có thể tác động mang lại chu kỳ luân hồi cách tân và phát triển. Quý Khách cũng tiết kiệm ngân sách cho những sự cố gắng rất có thể xảy ra trong quá trình tiếp tế và thời hạn vấn đáp các thắc mắc của người tiêu dùng hoặc viết báo cáo lỗi.
III. Ba kịch bạn dạng nhân loại thực
1. Sai service URLsỞ kịch bạn dạng trước tiên, trong những khi phát triển nghỉ ngơi môi trường thiên nhiên thấp cấp (local/development), Shop chúng tôi trỏ vận dụng đến một moông chồng service của CoinDesk API để giảm chi phí cùng lưu giữ lượng. URL này cần trỏ mang đến CoinDesk API thực tế trước khi deploy lên production.
Xem thêm: Tổng Hợp Các Tuyệt Chiêu Trong Đấu Trường Thú 2 Và Cách Chơi Bakuryu

Như bạn thấy, mochồng URL bằng phương pháp nào này đã lẫn vào vào code.
Tgiỏi đổi này làm việc trơn tuột tru sinh sống môi trường thiên nhiên dev. Trong môi trường staging, service liên quan tránh việc sinh sống kia, và sự đổi khác này phải được bắt lỗi trước lúc lên production.
Đây là quý hiếm cơ bạn dạng của môi trường staging: giữ các biến đổi không apply thẳng lên production bằng cách cung ứng một môi trường xung quanh nhằm demo cùng validate.
2. Lỗi sống source control cùng reviewHãy xem một ví dụ khác: 2 developer commit tính năng new cơ mà gồm cùng file, nhưng mà không giống sinh sống cái CSS. Ở từng nhánh riêng biệt của developer, style với sản phẩm quả thật mong chờ.
Ttốt thay đổi được merge và deploy lên production.
Tuy nhiên, lúc từng developer chế tác pull request để merge vào development, style bị cnhát lẫn sẽ không còn được show ra trong quá trình Đánh Giá bởi chúng nằm ở 2 pull không giống nhau. Chúng được merge không nên và deploy lên production. Kết quả là thành phầm có một tâm trạng không muốn.
3. Các service liên quanCuối thuộc, hãy thuộc đào sâu vào một phát biểu thân quen của developer: "nó chạy trên đồ vật em"
Ở trên đây một developer thêm imagemagiông chồng mang đến stack nhằm cách xử lý hình ảnh upload. Những thỏng viện npm tương quan đến imagemagiông xã được cài đặt với giữ vào package.json, cơ mà "imagemagick-cli" chỉ được mua sinh hoạt lắp thêm developer.
Vậy nên những lúc chạy thử ngơi nghỉ local thì tính năng vận động đúng chuẩn, tuy nhiên Khi đưa lên production thì ko.
*Error: Commvà failed: CreateProcessW: The system cannot find the tệp tin specified*
Không có môi trường thiên nhiên staging, hầu như mẫu mã vụ việc như vậy này sẽ tương đối dễ dàng xẩy ra.
Thực tế là tất cả gần như ví dụ này mọi là đa số sai lầm hoàn toàn rất có thể phòng tránh được. Những sai lầm này luôn luôn luôn xảy ra, cùng có thể không bị bắt trước lúc lên production giả dụ không tồn tại một môi trường thiên nhiên staging. lúc ứng dụng của doanh nghiệp trsống cần tinh vi, tiềm năng cho những loại lỗi này cũng tăng theo cung cấp số nhân.
Sử dụng một môi trường xung quanh staging như một trong những phần của vòng đời deploy có thể bớt nguy hại xẩy ra mọi lỗi này.
IV. Môi trường staging ko đề xuất phức tạp
Một lý do thường bắt gặp để ko áp dụng staging là chúng tinh vi hoặc tốn chi phí. Có một sự thật là nó thêm chi phí, cùng devops trsinh sống buộc phải tốn kỉm, cùng môi trường thiên nhiên staging siêu nặng nề để setup như môi trường thiên nhiên production. Tuy nhiên, nó ko cần thiết buộc phải như thế.
Các cloud platsize tiến bộ cho phép các bạn sử dụng staging lúc cần, và tự động quy trình deploy. Chúng khiến cho bạn tránh được mọi lỗi nhưng ảnh hưởng mang đến production.
Một phương pháp khác là tự động deploy lên staging bao hàm những chỉ thị về infra và ảo hóa nhỏng Kubernetes.
Nếu không có các bước tự động, ta cũng hoàn toàn có thể thực hiện đồ đạc như thể với production nhằm deploy bằng tay.
Điều ở đầu cuối, áp dụng staging khiến cho bạn nắm bắt được những cách làm cải cách và phát triển ứng dụng văn minh nhằm cải thiện năng suất của team. Quan trọng rộng, nó góp nâng cao chất lượng thành phầm bạn gửi mang lại mang đến người tiêu dùng.
Tmê man khảo: https://hackernoon.com/staging-environments-are-overlooked-heres-why-they-matter-5jp2gm0