Trong bài viết này, chúng ta sẽ cùng thảo luận về lợi ích của việc sử dụng môi trường staging trong vòng đời phát triển phần mềm, và cách chúng góp phẩn đảm bảo rằng sản phẩm sẽ được deliver đến production đúng như mong đợi.
I. Môi trường staging là gì?
Môi trường staging là môi trường tự nhiên mà bạn deploy trong quy trình tăng trưởng ứng dụng. Bạn deploy đến thiên nhiên và 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 trường tự nhiên production. Điều này có nghĩa là chúng có cùng phần cứng, ứng dụng và config, Kết luận là càng giống thì giá trị của staging càng cao .Mức độ giống nhau giữa staging và production bảo vệ rằng việc test trên môi trường tự nhiên staging sẽ phả ánh đúng những gì xảy ra trên production với cùng điều kiện kèm theo .Không như thiên nhiên và môi trường tăng trưởng hoặc tích hợp, môi trường tự nhiên staging sử dụng cùng service back-end cũng như những service khác. Chúng có cùng kiến trúc, cùng một kiểu scale, và những thông số kỹ thuật thông số kỹ thuật .Tùy vào những tác nhân pháp luật ( ví dụ điển hình nhu yếu GDPR ) và năng lực che giấu tài liệu của tổ chức triển khai, môi trường tự nhiên staging thường ẩn danh hoặc là bộ tài liệu hoàn hảo của production để gần hơn với môi trường tự nhiên production trong quốc tế thực. Điều này có nghĩa là môi trường tự nhiên staging không được release hoặc open cho người dùng ở production, mà nó chỉ sẵn có ở nội bộ tổ chức triển khai hoặc một số lượng người dùng nhỏ .Để trấn áp ngân sách, bạn hoàn toàn có thể deploy môi trường tự nhiên staging như một phần của vòng đời release và phá bỏ sau khi release được chuyển đến production .Phương thức này cho bạn năng lực để phát hiện yếu tố về code quality, yếu tố tài liệu ở mức cao, yếu tố về tích hợp và những yếu tố tương quan mà không hề đơn thuần được bộc lộ ở môi trường tự nhiên test tích hợp hoặc môi trường tự nhiên thấp hơn như development hoặc local .Phương thức này cũng được cho phép bạn Dự kiến ở mức đúng mực cao, rằng việc deploy lên production có thành công xuất sắc hay không, cũng như vấn đáp những câu hỏi dạng ” service mới thêm vào có hoạt động giải trí trên production hay không ? ” …Làm việc với thiên nhiên và môi trường staging buộc bạn phải kiểm tra toàn bộ những giả định mà bạn đưa ra trong quy trình tăng trưởng và đảm báo rằng bạn đã giải quyết và xử lý để chắc như đinh để deploy thành công xuất sắc .
II. Nguy cơ của việc deploy mà không có staging
Việc test ở local hoặc chạy unit test không phải là một cách tốt để kiểm trả chất lượng và công dụng loại sản phẩm. Unit test được viết bởi người, mà người thì luôn hoàn toàn có thể mắc lỗi. Nếu bạn chỉ test những yếu tố đã biết trước, thì bạn không hề cover những yếu tố mà bạn không biết .Người ta thường quên rằng việc đổi khác hoàn toàn có thể ảnh hưởng tác động đến những service khác hoặc công dụng khác. Đôi lúc một thư việc bạn sử dụng ở local hoàn toàn có thể không hoạt động giải trí được ở cloud, và chỉ khi deploy lên production thì bạn mới phát hiện .Thông thường thì bộ tài liệu dùng để test ở môi trường tự nhiên cấp thấp đều là giả định về những cái ở production. Một số người nghĩ rằng staging là không thiết yếu vì lỗi sẽ được phát hiện sớm, nhưng rõ ràng bạn đang khiến user gặp bug và lỗi thông số kỹ thuật .Nói chung, việc đổi khác hoàn toàn có thể ảnh hưởng tác động tài liệu ở production, và hoàn toàn có thể tác động ảnh hưởng đến cả những service tương quan .Dựa vào niềm tin và kỳ vọng như một cách để bảo vệ deploy lên production thành công xuất sắc chắc như đinh sẽ có rủi ro tiềm ẩn tạo ra nhận thức xấu đi về chất lượng mẫu sản phẩm của bạn và ở đầu cuối dẫn đến mất doanh thu, mất người mua và hoàn toàn có thể vi phạm lao lý hợp đồng với người mua của bạn .Chi tiêu tương quan đến việc deploy hoặc code lỗi gồm có :Phải hotfixRollback releaseẢnh hưởng đến scheduleKhả năng mất dữ liệuẢnh hưởng đến người dùngVi phạm hợp đồngRủi ra danh tiếng / thương hiệuMất doanh thuMất khách hàngPhải hotfixRollback releaseẢnh hưởng đến scheduleKhả năng mất dữ liệuẢnh hưởng đến người dùngVi phạm hợp đồngRủi ra khét tiếng / thương hiệuMất doanh thuMất người muaLợi ích bạn nhận được từ việc sử dụng môi trường tự nhiên staging là mức độ bảo vệ chất lượng cao hơn và sự hài lòng của người mua. Ngoài ra, bằng cách giảm tác động ảnh hưởng hoặc số lỗi trong loại sản phẩm, bạn hoàn toàn có thể tiết kiệm chi phí rất nhiều ngân sách. Ví dụ : bạn hoàn toàn có thể giảm lượng thời hạn bạn phải bỏ ra để rollback, hoặc giảm thời hạn phân phối những hotfix kịp thời mà hoàn toàn có thể ảnh hưởng tác động đến chu kỳ luân hồi tăng trưởng. Bạn cũng tiết kiệm ngân sách và chi phí ngân sách cho những sự cố hoàn toàn có thể xảy ra trong quy trình sản xuất và thời hạn vấn đáp những câu hỏi của người dùng hoặc viết báo cáo lỗi .
III. Ba kịch bản thế giới thực
Hãy cùng điểm qua một số ít ngữ cảnh tiềm tàng hoàn toàn có thể tránh được nếu bạn sử dụng thiên nhiên và môi trường staging. Chúng tôi đang tăng trưởng một ứng dụng gọi là Bitcoin Price Index. Đây là một ứng dụng React đơn thuần, liên kết người dùng với CoinDesk API để phân phối thông tin về xu thế giá của bitcoin dựa theo đơn vị chức năng tiền tệ được lựa chọn .Xem thêm : Đánh Giá Tivi Asanzo 40A s330, Smart Tivi Asanzo 40 Inch 40A s3301. Sai service URLs
1. Sai service URLs
Ở ngữ cảnh tiên phong, trong khi tăng trưởng ở môi trường tự nhiên cấp thấp ( local / development ), chúng tôi trỏ ứng dụng đến một mock service của CoinDesk API để giảm ngân sách và lưu lượng. URL này nên trỏ đến CoinDesk API thực tiễn trước khi deploy lên production .Như bạn thấy, mock URL bằng cách nào đó đã lẫn vào trong code .Thay đổi này thao tác trơn tru ở thiên nhiên và môi trường dev. Trong thiên nhiên và môi trường staging, service tương quan không nên ở đó, và sự biến hóa này nên được bắt lỗi trước khi lên production .Đây là giá trị cơ bản của thiên nhiên và môi trường staging : giữ những biến hóa không apply trực tiếp lên production bằng cách cung ứng một môi trường tự nhiên để test và validate .2. Lỗi ở source control và review2. Lỗi ở source control và reviewHãy xem một ví dụ khác : 2 developer commit công dụng mới mà có cùng file, nhưng khác ở dòng CSS. Ở mỗi nhánh riêng của developer, style và mẫu sản phẩm đúng như mong đợi .Thay đổi được merge và deploy lên production .Tuy nhiên, khi mỗi developer tạo pull request để merge vào development, style bị chèn lẫn sẽ không được show ra trong quy trình review vì chúng nằm ở 2 pull khác nhau. Chúng được merge sai và deploy lên production. Kết quả là mẫu sản phẩm có một trạng thái không mong ước .3. Các service liên quan3. Các service tương quanCuối cùng, hãy cùng đào sâu vào một phát biểu quen thuộc của developer : ” nó chạy trên máy em “Ở đây một developer thêm imagemagick đến stack để giải quyết và xử lý ảnh upload. Những thư viện npm tương quan đến imagemagick được setup và lưu vào package.json, nhưng ” imagemagick-cli ” chỉ được cài ở máy developer .Vậy nên khi test ở local thì tính năng hoạt động giải trí đúng mực, nhưng khi đẩy lên production thì không .* Error : Command failed : CreateProcessW : The system cannot find the file specified *Không có môi trường tự nhiên staging, những kiểu yếu tố như thế này sẽ rất dễ xảy ra .Thực tế là toàn bộ những ví dụ này đều là những sai lầm đáng tiếc trọn vẹn hoàn toàn có thể phòng tránh được. Những sai lầm đáng tiếc này luôn luôn xảy ra, và hoàn toàn có thể không bị bắt trước khi lên production nếu không có một thiên nhiên và môi trường staging. Khi ứng dụng của bạn trở nên phức tạp, tiềm năng cho những 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 tự nhiên staging như một phần của vòng đời deploy hoàn toàn có thể giảm rủi ro tiềm ẩn xảy ra những lỗi này .
IV. Môi trường staging không cần phức tạp
Một nguyên do thường thấy để không sử dụng staging là chúng phức tạp hoặc tốn ngân sách. Có một thực sự là nó thêm ngân sách, và devops trở nên tốn kém, và môi trường tự nhiên staging rất khó để thiết lập như môi trường tự nhiên production. Tuy nhiên, nó không thiết yếu phải như thế .Các cloud platform văn minh cho phép bạn sử dụng staging khi cần, và tự động hóa quy trình deploy. Chúng giúp bạn tránh được những lỗi mà tác động ảnh hưởng đến production .
Một cách khác là tự động deploy lên staging bao gồm các chỉ thị về infra và ảo hóa như Kubernetes.
Nếu không có tiến trình tự động hóa, ta cũng hoàn toàn có thể sử dụng máy móc giống với production để deploy bằng tay thủ công .Điều sau cuối, sử dụng staging giúp bạn chớp lấy được những phương pháp tăng trưởng ứng dụng hiện đại để cải tổ hiệu suất của team. Quan trọng hơn, nó giúp cải tổ chất lượng loại sản phẩm bạn gửi đến cho người mua .Tham khảo : https://hackernoon.com/staging-environments-are-overlooked-heres-why-they-matter-5jp2gm0
Source: kubet
Category: Tải Phầm Mềm
Leave a Reply