Staging là gì

     

Nhiều team thường quăng quật qua môi trường thiên nhiên staging khi cải cách và phát triển ứng dụng. Họ thường xuyên submit một pull request (PR), chạy test bởi CI, merge vào master cùng rồi deploy lên production. Đây là 1 quy trình khá nguy hại vì không có việc demo tích hòa hợp nào được thực hiện. Tệ không dừng lại ở đó là nếu 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 thiên nhiên production.

Bạn đang xem: Staging là gì

Trong bài viết này, họ sẽ cùng bàn luận về công dụng của việc sử dụng môi trường xung quanh staging trong khoảng đời trở nên tân tiến phần mềm, và phương pháp chúng góp phẩn bảo đảm an toàn rằng sản phẩm sẽ được deliver cho production đúng như mong muốn đợi.

I. Môi trường staging là gì?

Môi ngôi trường staging là môi trường xung quanh mà các bạn deploy trong quá trình trở nên tân tiến phần mềm. Các bạn deploy đến môi trường staging trước khi deploy lên production.

Môi trường staging thường giống hệt môi ngôi trường production. Điều này có nghĩa là chúng bao gồm cùng phần cứng, phần mềm và config, tóm lại là càng kiểu như thì cực hiếm của staging càng cao.

Mức độ tương tự nhau thân staging cùng production bảo đảm rằng bài toán test trên môi trường xung quanh staging sẽ phả ánh đúng đầy đủ gì xẩy ra trên production với cùng điều kiện.

Không như môi trường phát triển hoặc tích hợp, môi trường xung quanh staging áp dụng cùng service back-end tương tự như các service khác. Chúng bao gồm cùng kiến trúc, cùng một kiểu scale, cùng các thông số cấu hình.

Tùy vào các nhân tố quy định (chẳng hạn yêu mong GDPR) và tài năng che giấu tài liệu của tổ chức, môi trường xung quanh staging thường ẩn danh hoặc là bộ dữ liệu hoàn hảo của production nhằm gần rộng với môi trường thiên nhiên production trong nhân loại thực. Điều này tức là môi trường staging ko được release hoặc open cho người dùng sinh sống production, cơ mà nó chỉ sẵn bao gồm ở nội bộ tổ chức triển khai hoặc một vài lượng người tiêu dùng nhỏ.

Để kiểm soát chi phí, bạn có thể deploy môi trường staging như một phần của vòng đời release và phá bỏ sau thời điểm release được chuyển mang đến production.

Phương thức này cho chính mình khả năng nhằm phát hiện vấn đề về code quality, vụ việc dữ liệu tại mức cao, vấn đề về tích đúng theo và các vấn đề tương quan mà không thể dễ dàng và đơn giản được diễn đạt ở môi trường xung quanh test tích hợp hoặc môi trường thiên nhiên thấp hơn hẳn như development hoặc local.

Phương thức này cũng được cho phép bạn dự đoán ở mức đúng đắn cao, rằng câu hỏi deploy lên production có thành công xuất sắc hay không, tương tự như trả lời các thắc mắc dạng "service new thêm vào có hoạt động trên production tốt không?"...

Làm bài toán với môi trường thiên nhiên staging buộc các bạn phải kiểm tra toàn bộ các mang định mà bạn đưa ra trong quá trình cách tân và phát triển và đảm báo rằng bạn đã xử trí để chắc chắn là để deploy thành công.

*

II. Nguy cơ tiềm ẩn của việc deploy mà không có staging

Việc kiểm tra ở local hoặc chạy unit test không phải là 1 trong những cách xuất sắc để kiểm trả unique và tính năng sản phẩm. Unit thử nghiệm được viết do người, mà fan thì luôn rất có thể mắc lỗi. Nếu như bạn chỉ demo những vụ việc đã biết trước, thì các bạn không thể cover những vấn đề mà bạn không biết.

Người ta hay quên rằng việc biến đổi có thể ảnh hưởng đến các service không giống hoặc công dụng khác. Đôi dịp một thư câu hỏi bạn áp dụng ở local có thể không hoạt động được sống cloud, còn chỉ khi deploy lên production thì bạn mới phạt hiện.

Thông thường thì cỗ dữ liệu dùng để làm test ở môi trường xung quanh cấp thấp các là trả định về những cái ở production. Một vài người cho là staging là không quan trọng vì lỗi sẽ tiến hành phát hiện tại sớm, nhưng ví dụ bạn đang làm user chạm chán bug cùng lỗi cấu hình.

Nói chung, việc thay đổi có thể tác động dữ liệu sinh sống production, và gồm thể ảnh hưởng đến cả các service liên quan.

Dựa vào lòng tin và mong muốn như một phương pháp để đảm bảo an toàn deploy lên production thành công chắc chắn rằng sẽ có nguy hại tạo ra dìm thức tiêu cực về unique sản phẩm của công ty và ở đầu cuối dẫn cho mất doanh số, mất người tiêu dùng và hoàn toàn có thể vi phạm điều khoản hợp đồng với người sử dụng của bạn.

Chi phí liên quan đến việc deploy hoặc code lỗi bao gồm:

Phải hotfixRollback releaseẢnh hưởng cho scheduleKhả năng mất dữ liệuẢnh hưởng đến người dùngVi phạm hòa hợp đồngRủi ra lừng danh / thương hiệuMất doanh thuMất khách hàng

Lợi ích chúng ta nhận được từ các việc sử dụng môi trường xung quanh staging là nút độ bảo đảm an toàn chất lượng cao hơn nữa và sự chuộng của khách hàng. Quanh đó ra, bằng phương pháp giảm ảnh hưởng tác động hoặc số lỗi vào sản phẩm, chúng ta có thể tiết kiệm rất nhiều chi phí. Ví dụ: bạn cũng có thể giảm lượng thời hạn bạn phải ném ra để rollback, hoặc bớt thời gian hỗ trợ các hotfix kịp lúc mà gồm thể tác động đến chu kỳ luân hồi phát triển. Các bạn cũng huyết kiệm chi phí cho các sự cố rất có thể xảy ra trong quy trình sản xuất và thời gian trả lời các câu hỏi của người tiêu dùng hoặc viết báo cáo lỗi.

III. Bố kịch bạn dạng thế giới thực

Hãy cùng điểm qua một trong những kịch bản tiềm tàng rất có thể tránh được nếu như khách hàng sử dụng môi trường xung quanh staging. Shop chúng tôi đang trở nên tân tiến một áp dụng gọi là Bitcoin Price Index. Đây là một trong ứng dụng React đối kháng giản, kết nối người tiêu dùng với CoinDesk API để tin báo về xu thế giá của bitcoin dựa theo đơn vị tiền tệ được lựa chọn.

Xem thêm: " Dolce Là Gì Trên Facebook? (Nhảy Đốc Cờ Lê, Đôn Dolce Là Gì

1. Sai service URLs

Ở kịch bạn dạng đầu tiên, trong khi cách tân và phát triển ở môi trường xung quanh cấp phải chăng (local/development), cửa hàng chúng tôi trỏ vận dụng đến một mock service của CoinDesk API để giảm chi tiêu và lưu lại lượng. URL này phải trỏ mang đến CoinDesk API thực tế trước khi deploy lên production.

*

Như bạn thấy, mock URL bằng cách nào này đã lẫn vào vào code.

Thay đổi này làm việc trơn tru ở môi trường thiên nhiên dev. Trong môi trường xung quanh staging, service liên quan không đề xuất ở đó, và sự biến đổi này đề xuất được bắt lỗi trước khi lên production.

Đây là quý hiếm cơ bạn dạng của môi trường thiên nhiên staging: giữ lại các biến hóa không apply thẳng lên production bằng phương pháp cung cung cấp một môi trường để thử nghiệm và validate.

2. Lỗi ngơi nghỉ source control với review

Hãy xem một lấy một ví dụ khác: 2 developer commit tác dụng mới mà bao gồm cùng file, cơ mà khác ở cái CSS. Ở từng nhánh riêng biệt của developer, style và thành phầm đúng như ý muốn đợi.

Thay đổi được merge và deploy lên production.

Tuy nhiên, lúc mỗi developer tạo pull request nhằm merge vào development, style bị chèn lẫn sẽ không được show ra trong quá trình nhận xét vì bọn chúng nằm ở cả 2 pull không giống nhau. Bọn chúng được merge sai và deploy lên production. Hiệu quả là sản phẩm có một tâm trạng không ao ước muốn.

3. Những service liên quan

Cuối cùng, hãy cùng đào sâu vào trong 1 phát biểu thân thuộc của developer: "nó chạy xe trên máy em"

Ở phía trên một developer thêm imagemagick đến stack để xử lý ảnh upload. Phần đa thư viện npm tương quan đến imagemagick được setup và lưu giữ vào package.json, nhưng "imagemagick-cli" chỉ được mua ở trang bị developer.

Vậy nên những khi test ngơi nghỉ local thì công dụng hoạt động thiết yếu xác, tuy vậy khi đưa lên production thì không.

*Error: Command failed: CreateProcessW: The system cannot find the tệp tin specified*

Không có môi trường xung quanh staging, phần nhiều kiểu vấn đề như vậy này sẽ khá dễ xảy ra.

Thực tế là tất cả những lấy ví dụ như này phần đông là những sai lầm hoàn toàn có thể phòng kị được. Những sai lầm này luôn luôn xảy ra, và hoàn toàn có thể không bị bắt trước lúc lên production nếu không có một môi trường xung quanh staging. Khi ứng dụng của bạn trở nên phức tạp, tiềm năng cho các loại lỗi này cũng tăng theo cấp số nhân.

Sử dụng một môi trường staging như một phần của vòng đời deploy có thể giảm nguy hại xảy ra phần đa lỗi này.

IV. Môi trường staging không cần phức tạp

Một nguyên nhân thường thấy để không sử dụng staging là chúng tinh vi hoặc tốn chi phí. Có một sự thật là nó thêm đưa ra phí, cùng devops trở phải tốn kém, và môi trường staging rất nặng nề để cài đặt như môi trường production. Mặc dù nhiên, nó không cần thiết phải như thế.

Các cloud platform hiện nay đại chất nhận được bạn áp dụng staging khi cần, và tự động hóa quá trình deploy. Chúng khiến cho bạn tránh được phần nhiều lỗi mà tác động đến production.

Một phương pháp khác là tự động hóa deploy lên staging bao hàm các chỉ thị về infra cùng ảo hóa như Kubernetes.

Nếu không có quy trình từ bỏ động, ta cũng hoàn toàn có thể sử dụng trang thiết bị giống với production nhằm deploy thủ công.

Xem thêm: "In A Nutshell Là Gì Định Nghĩa Của Me In A Nutshell Là Gì, Sử Dụng In A Nutshell

Điều cuối cùng, thực hiện staging giúp bạn nắm bắt được những phương thức cách tân và phát triển phần mềm tiến bộ để cải thiện năng suất của team. đặc biệt quan trọng hơn, nó giúp cải thiện chất số lượng hàng hóa bạn gởi đến mang lại khách hàng.

Tham khảo: https://hackernoon.com/staging-environments-are-overlooked-heres-why-they-matter-5jp2gm0