Staging là gì

Nhiều team thường bỏ lỡ môi trường staging lúc trở nên tân tiến vận dụng. Họ thường xuyên submit một pull request (PR), chạy test bằng CI, merge vào master với rồi deploy lên production. Đây là 1 trong những các bước khá nguy nan bởi vì không có Việc thử nghiệm tích hòa hợp như thế nào được thực hiện. Tệ không dừng lại ở đó là giả dụ tất cả lỗi thì họ tiếp cận bằng cách fix thẳng sinh sống môi trường thiên nhiên production.

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

Trong nội dung bài viết này, bọn họ sẽ thuộc bàn luận về tiện ích của vấn đề thực hiện môi trường xung quanh staging trong tầm đời trở nên tân tiến phần mềm, cùng giải pháp bọn chúng góp phẩn đảm bảo rằng thành phầm sẽ được deliver đến production quả như mong muốn chờ.

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

Môi trường staging là môi trường thiên nhiên cơ mà các bạn deploy vào quy trình trở nên tân tiến ứng dụng. quý khách hàng deploy đến môi trường staging trước khi deploy lên production.

Môi trường staging thường như nhau môi trường thiên nhiên production. Điều này có nghĩa là bọn chúng gồm thuộc Hartware, phần mềm với config, Tóm lại là càng kiểu như thì quý giá của staging càng tốt.

Mức độ tương tự nhau thân staging và production bảo vệ rằng bài toán chạy thử trên môi trường staging đang phả ánh đúng hầu hết gì xảy ra trên production với cùng ĐK.

Không nhỏng môi trường thiên nhiên cải cách và phát triển hoặc tích phù hợp, môi trường thiên nhiên staging thực hiện thuộc service back-kết thúc cũng như các service khác. Chúng gồm cùng bản vẽ xây dựng, cùng một thứ hạng scale, cùng những thông số thông số kỹ thuật.

Tùy vào những yếu tố quy định (ví dụ điển hình tận hưởng GDPR) cùng khả năng đậy giấu tài liệu của tổ chức triển khai, môi trường thiên nhiên staging thường ẩn danh Hay những bộ tài liệu hoàn hảo của production để ngay sát hơn cùng với môi trường xung quanh production trong quả đât thực. Như vậy Có nghĩa là môi trường thiên nhiên staging ko được release hoặc open cho tất cả những người dùng sinh sống production, nhưng nó chỉ sẵn có nghỉ ngơi nội bộ tổ chức hoặc một số lượng người tiêu dùng nhỏ.

Để kiểm soát điều hành ngân sách, bạn có thể deploy môi trường staging nhỏng một trong những phần của vòng đời release và phá bỏ sau thời điểm release được đưa mang lại production.

Phương thơm thức này cho chính mình năng lực để phân phát hiện tại vụ việc về code chất lượng, vụ việc tài liệu tại mức cao, vấn đề về tích hợp với các vấn đề liên quan nhưng quan trọng đơn giản được diễn đạt sinh hoạt môi trường xung quanh chạy thử tích đúng theo hoặc môi trường xung quanh rẻ hơn hẳn như development hoặc local.

Phương thức này cũng cho phép chúng ta dự đân oán ở tại mức chính xác cao, rằng vấn đề deploy lên production có thành công xuất sắc hay không, cũng như trả lời các câu hỏi dạng "service mới tiếp tế bao gồm chuyển động trên production tốt không?"...

Làm bài toán cùng với môi trường thiên nhiên staging buộc các bạn bắt buộc khám nghiệm tất cả các đưa định mà bạn chỉ dẫn vào quy trình cách tân và phát triển với đảm báo rằng chúng ta đã cách xử lý nhằm chắc chắn để deploy thành công xuất sắc.

*

II. Nguy cơ của câu hỏi deploy nhưng không có staging

Việc test ở local hoặc chạy unit test không phải là 1 trong cách xuất sắc để kiểm trả quality với tính năng thành phầm. Unit demo được viết vày tín đồ, nhưng fan thì luôn luôn có thể mắc lỗi. Nếu bạn chỉ test đa số vụ việc vẫn biết trước, thì các bạn bắt buộc cover đông đảo vụ việc cơ mà chúng ta đắn đo.

Người ta thường quên rằng việc đổi khác có thể ảnh hưởng cho những service khác hoặc chức năng không giống. Đôi thời gian một thỏng bài toán chúng ta áp dụng ở local rất có thể không hoạt động được sinh sống cloud, và chỉ còn khi deploy lên production thì chúng ta mới phạt hiện tại.

Đôi khi thì cỗ tài liệu dùng để làm chạy thử ở môi trường xung quanh cấp thấp đều là trả định về các chiếc làm việc production. Một số người nghĩ rằng staging là ko cần thiết vị lỗi sẽ được phân phát hiện tại nhanh chóng, tuy nhiên ví dụ các bạn đang làm user gặp bug cùng lỗi thông số kỹ thuật.

Nói bình thường, bài toán đổi khác rất có thể ảnh hưởng tài liệu ngơi nghỉ production, với rất có thể tác động cho cả những service liên quan.

Dựa vào niềm tin và mong muốn nhỏng một phương pháp để bảo vệ deploy lên production thành công chắc chắn rằng sẽ sở hữu được nguy cơ tiềm ẩn tạo thành dấn thức tiêu cực về unique sản phẩm của người tiêu dùng và sau cùng dẫn cho mất lợi nhuận, mất khách hàng cùng rất có thể phạm luật pháp luật thích hợp đồng cùng với người tiêu dùng của người sử dụng.

Chi phí tương quan đến sự việc deploy hoặc code lỗi bao gồm:

Phải hotfixRollbachồng releaseẢnh hưởng mang đến scheduleKhả năng mất dữ liệuẢnh hưởng cho bạn dùngVi phạm thích hợp đồngRủi ra nổi tiếng / tmùi hương hiệuMất doanh thuMất khách hàng

Lợi ích bạn nhận ra từ những việc sử dụng môi trường staging là cường độ bảo đảm an toàn chất lượng cao rộng và sự ưa thích của chúng ta. Hình như, bằng phương pháp sút tác động ảnh hưởng hoặc số lỗi trong thành phầm, bạn cũng có thể tiết kiệm chi phí rất nhiều chi phí. Ví dụ: chúng ta cũng có thể sút lượng thời hạn các bạn đề xuất bỏ ra nhằm rollbaông chồng, hoặc giảm thời hạn cung cấp những hotfix đúng lúc nhưng có thể ảnh hưởng mang đến chu kỳ cách tân và phát triển. Bạn cũng tiết kiệm chi phí chi phí cho các sự cầm cố có thể xảy ra vào quy trình tiếp tế với thời gian trả lời những 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 phiên bản quả đât thực

Hãy cùng điểm qua một trong những kịch bạn dạng ẩn chứa có thể tránh khỏi nếu như bạn thực hiện môi trường xung quanh staging. Chúng tôi đang cách tân và phát triển một ứng dụng Call là Bitcoin Price Index. Đây là một ứng dụng React dễ dàng và đơn giản, kết nối người dùng cùng với CoinDesk API nhằm đưa thông tin về xu hướng giá của bitcoin dựa trên đơn vị chi phí tệ được tuyển lựa.

Xem thêm: Đánh Giá Tivi Asanzo 40As330, Smart Tivi Asanzo 40 Inch 40As330

1. Sai service URLs

Ở kịch bản trước tiên, trong những khi cách tân và phát triển sống môi trường cấp thấp (local/development), chúng tôi trỏ áp dụng cho một mock service của CoinDesk API nhằm giảm chi phí và lưu giữ lượng. URL này cần trỏ mang đến CoinDesk API thực tiễn trước khi deploy lên production.

*

Như các bạn thấy, mochồng URL bằng phương pháp làm sao đó đã lẫn vào vào code.

Txuất xắc đổi này thao tác suôn sẻ tru ở môi trường thiên nhiên dev. Trong môi trường xung quanh staging, service liên quan không nên làm việc đó, với sự biến đổi này nên được bắt lỗi trước lúc lên production.

Đây là quý hiếm cơ bản của môi trường thiên nhiên staging: duy trì những biến đổi ko apply trực tiếp lên production bằng cách hỗ trợ một môi trường thiên nhiên nhằm thử nghiệm cùng validate.

2. Lỗi làm việc source control cùng review

Hãy xem một ví dụ khác: 2 developer commit tác dụng new nhưng mà có cùng tệp tin, cơ mà khác sinh hoạt loại CSS. Tại từng nhánh riêng biệt của developer, style cùng sản phẩm đúng như mong ngóng.

Txuất xắc thay đổi được merge với deploy lên production.

Tuy nhiên, khi mỗi developer chế tạo ra pull request để merge vào development, style bị cyếu lẫn sẽ không còn được show ra vào quy trình đánh giá bởi vì chúng nằm ở cả 2 pull khác biệt. Chúng được merge không nên với deploy lên production. Kết quả là thành phầm có một tâm lý không hề mong muốn.

3. Các service liên quan

Cuối thuộc, hãy cùng đào sâu vào một trong những phát biểu không còn xa lạ của developer: "nó chạy trên vật dụng em"

Ở phía trên một developer thêm imagemagichồng cho staông chồng nhằm xử trí ảnh upload. Những tlỗi viện npm tương quan đến imagemagiông chồng được thiết lập cùng giữ vào package.json, tuy vậy "imagemagick-cli" chỉ được mua sinh sống sản phẩm developer.

Vậy nên những lúc chạy thử sinh sống local thì chức năng vận động chính xác, tuy nhiên khi đẩy lên production thì không.

*Error: Command failed: CreateProcessW: The system cannot find the file specified*

Không bao gồm môi trường staging, các loại vấn đề như vậy này sẽ rất dễ dàng xảy ra.

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

Sử dụng một môi trường thiên nhiên staging như một trong những phần của vòng đời deploy hoàn toàn có thể bớt nguy hại xảy ra mọi lỗi này.

IV. Môi ngôi trường staging không bắt buộc phức tạp

Một lý do thường nhìn thấy nhằm không sử dụng staging là bọn chúng phức tạp hoặc tốn chi phí. Có một sự thật là nó thêm ngân sách, với devops trsống yêu cầu tốn kém, cùng môi trường xung quanh staging hết sức khó nhằm thiết đặt như môi trường xung quanh production. Tuy nhiên, nó ko quan trọng nên như vậy.

Các cloud platform hiện đại chất nhận được bạn sử dụng staging khi đề nghị, với auto quy trình deploy. Chúng giúp bạn tránh được hầu như lỗi nhưng tác động đến production.

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

Nếu không có quá trình auto, ta cũng có thể áp dụng đồ đạc giống như cùng với production nhằm deploy bằng tay.

Xem thêm: Cái Này Là Của Ai Tiếng Anh Là Gì In English, Phân Biệt Whose Và Who'S

Điều sau cùng, sử dụng staging khiến cho bạn nắm bắt được những cách thức cách tân và phát triển phần mềm tân tiến nhằm nâng cấp năng suất của team. Quan trọng rộng, nó góp nâng cao unique thành phầm chúng ta gửi đến mang đến quý khách.

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


Chuyên mục: Kiến thức