Helpex - Trao đổi & giúp đỡ Đăng nhập

Triển khai đến sản xuất: 5 mẹo để làm cho nó mượt mà hơn

Ai không gặp sự cố khi triển khai thay đổi phần mềm cho sản xuất? Không một ai.

Tôi đã từng vô tình xóa một thư mục bin khỏi ứng dụng .NET ở một trong bốn máy chủ khi triển khai một thay đổi. Do đó, trang web hoạt động không liên tục, vì vậy tôi phải kiểm tra lại tất cả các máy chủ để tìm máy chủ đang gặp sự cố. May mắn cho tôi, chỉ có bốn máy chủ.

Mọi thứ có thể xảy ra sai sót trong quá trình triển khai thay đổi sang sản xuất sẽ không thành công. Đó là định luật Murphy . Vì lý do đó, chúng tôi có một sự tôn trọng mà biên giới với sự sợ hãi khi chúng tôi nghĩ về việc triển khai. Có quá nhiều rủi ro, vì vậy đôi khi chúng ta tránh đấu tranh. Nhưng trên thực tế, triển khai sẽ là nhiệm vụ nhàm chán nhất của quy trình làm việc . Bí quyết là biết làm thế nào để làm điều đó.

Với ý nghĩ đó, chúng ta hãy nói về một số cách để triển khai suôn sẻ vào sản xuất mà không gặp rủi ro về chất lượng.

1. Tự động hóa càng nhiều càng tốt

Hãy để máy tính thực hiện công việc lặp lại cho bạn - chúng giỏi hơn chúng ta. Tôi thích đầu tư một số giờ làm việc trên một tập lệnh để thực hiện các triển khai, giống như một công thức các lệnh. Sau đó, tôi kiểm tra tập lệnh cục bộ và trong môi trường phát triển. Bằng cách đó, lần tới khi tôi muốn triển khai một thay đổi, tôi sẽ không phải lo lắng về việc bỏ lỡ bất kỳ bước nào như tạo thư mục hoặc cấp quyền cho một số tệp. Tôi chỉ cần chạy lại script.

Nhưng tôi không nói về một tập lệnh bash khó đọc và khó hiểu. Trong vài năm gần đây, nhiều thứ mới đã xuất hiện. Bạn có các công cụ tùy ý sử dụng như Terraform , AnsibleJenkins , cho phép bạn sử dụng các nguyên tắc mã. Bạn có thể có tất cả các tập lệnh của mình trong quyền kiểm soát phiên bản và đó sẽ là nguồn chân lý duy nhất. Điều đó có nghĩa là mọi người sẽ biết những gì đã thay đổi, cũng như khi nào và tại sao nó thay đổi, không chỉ trong mã mà còn trong cơ sở hạ tầng và đường ống triển khai.

Tất cả điều này có nghĩa là việc triển khai có thể dễ dàng như nhấp vào một nút . Ngay cả việc hoàn nguyên triển khai cũng chỉ bằng một cú nhấp chuột. Bạn có thể đạt đến điểm mà bất kỳ ai, ngay cả những người không chuyên về kỹ thuật, đều có thể triển khai.

Tự động hóa giúp triển khai mượt mà hơn bằng cách cho phép bạn tiến lùi một cách dễ dàng. Quá trình trở nên lặp lại và đáng tin cậy.

2. Xây dựng và đóng gói ứng dụng của bạn chỉ một lần

Quá trình xây dựng thường mất một khoảng thời gian, vì vậy nó sẽ giúp mọi thứ chạy trơn tru hơn rất nhiều vào thời điểm triển khai nếu bạn chỉ xây dựng một lần. Bạn có thể tiếp tục viết mã và đẩy các thay đổi mọi lúc mà không cần lo lắng về việc quảng cáo mã chưa sẵn sàng.

Sau khi bạn xây dựng ứng dụng của mình, bước tiếp theo là đóng gói ứng dụng và đảm bảo rằng gói vẫn không thể chạm tới. Bằng cách đó, bạn liên tục chụp nhanh ứng dụng của mình. Sẽ có lúc ứng dụng bị lỗi hoặc mã không đầy đủ. Nhưng điều đó không có vấn đề gì vì bạn có thể chọn gói nào sẽ được triển khai.

Bạn sẽ di chuyển cùng một gói trên tất cả các môi trường của mình. Điều này có nghĩa là khi bạn tạo ứng dụng để phát triển, bạn sẽ sử dụng phiên bản chính xác của ứng dụng để cập nhật môi trường sản xuất. Bạn có thể dễ dàng đạt được điều này bằng cách quản lý cấu hình đầy đủ. Ví dụ: chỉ cần thay thế các trình giữ chỗ bằng các giá trị tương ứng của các điểm cuối cơ sở dữ liệu giống môi trường.

Bạn sẽ muốn thực hành tích hợp liên tục để đóng gói dễ dàng hơn và một trong những nguyên tắc cơ bản của nó là bạn chỉ xây dựng một lần. Các phương pháp như thế này cho phép bạn tích hợp liên tục trong kho lưu trữ được chia sẻ, xác minh quy trình bằng các bài kiểm tra tự động và sửa chữa mọi thứ nhanh chóng nếu cần.

Làm tất cả những điều này và bạn sẽ suôn sẻ việc triển khai đến sản xuất vì những gì bạn đã thử nghiệm trong quá trình phát triển cũng giống như những gì bạn đã thử nghiệm trong các môi trường khác, bao gồm cả sản xuất.

3. Triển khai cùng một cách mọi lúc

Không có giá trị gì khi áp dụng các mẹo trước nếu bạn không phân phối theo cùng một cách trong mọi trường hợp. Bạn đã đóng gói một lần để triển khai cùng một mã ở mọi nơi và bạn cần phân phối theo cùng một cách. Bằng cách này, bạn sẽ tránh được bất kỳ sự ngạc nhiên nào trong quá trình sản xuất.

Đối với điều này, bạn cần có môi trường giống như sản xuất . Điều này không nhất thiết có nghĩa là bạn sẽ có cùng một dữ liệu ở mọi nơi - điều này có thể tốn kém và có thể có rủi ro bảo mật. Nó chỉ có nghĩa là nếu bạn có một bộ cân bằng tải trong quá trình sản xuất vì bạn cần có khả năng mở rộng / mở rộng, bạn cũng phải có một bộ cân bằng tải trong quá trình phát triển. Nếu bạn đang lưu trữ sản xuất trên đám mây, bạn cần làm điều tương tự để phát triển.

Tất nhiên, bạn có thể nghĩ đến việc làm thế nào để có môi trường rẻ hơn. Bạn chỉ cần thay đổi cấu hình khi cập nhật môi trường.

Mẹo triển khai này sẽ giúp bạn mạnh dạn khi thay đổi sản xuất. Bạn sẽ không sợ hãi vì bạn đã thực hành nó vài lần trước khi thực sự thực hiện nó.

4. Triển khai bằng cách sử dụng cờ tính năng trong ứng dụng của bạn

Nếu bạn chỉ lấy đi một mẹo trong danh sách này, hãy biến nó thành mẹo này. Sử dụng cờ tính năng sẽ giúp bạn tự tin triển khai hơn. Và lợi ích thậm chí còn lớn hơn khi bạn kết hợp chúng với các chiến lược như triển khai màu xanh lam / xanh lá câychim hoàng yến . Những chiến lược này sẽ giúp bạn triển khai mà khách hàng không nhận thấy có sự thay đổi.

Không quan trọng bạn chọn chiến lược nào - tất cả các thay đổi phải tương thích ngược. Tôi khuyên bạn nên chọn một chiến lược phù hợp với bạn. Việc triển khai màu xanh lam / xanh lục có xu hướng tốn kém, tùy thuộc vào cơ sở hạ tầng của bạn và mức độ nhỏ của ứng dụng. Nhưng chúng là cách an toàn nhất để triển khai vì bạn đang nhân bản môi trường và thử nghiệm nó trước khi đưa nó vào hoạt động. Trong trường hợp triển khai canary, bạn đang đẩy mạnh các thay đổi từng chút một. Bạn có thể thực hiện việc đó trên máy chủ hoặc bằng cách tạo lại từng vùng chứa một.

Nhưng bạn có thể làm điều đó tốt hơn bằng cách sử dụng cờ tính năng.

Trên thực tế, bạn có thể làm điều đó tốt hơn nhiều đến mức bạn có thể triển khai tất cả các thay đổi khi cờ tính năng bị tắt. Sau đó, bạn có thể bật cờ tính năng cho một phần nhỏ người dùng, theo dõi hành vi của họ trong một thời gian và tiếp tục bật tính năng này cho nhiều người dùng hơn cho đến khi bạn chắc chắn rằng thay đổi là tốt để giữ lại. Và bạn có thể làm tất cả điều này mà không cần lo lắng về việc thêm phức tạp hơn vào mã hoặc chiến lược triển khai của mình.

Một công cụ tốt giúp các cờ tính năng dễ triển khai hơn là Rollout . Bạn thiết lập đối tượng của mình và triển khai các thay đổi của mình từng chút một.

5. Triển khai theo lô nhỏ và thực hiện thường xuyên

Khi bạn áp dụng tất cả các mẹo trước đó vào thực tế, việc triển khai theo từng đợt nhỏ và thực hiện nó thường xuyên trở nên tự nhiên. Sẽ mất một thời gian để đạt được điều đó, đặc biệt là vì việc triển khai phải có thể dự đoán được và đáng tin cậy. Nhưng nó sẽ đáng giá.

Bây giờ, kiểm tra tự động là điều kiện tiên quyết. Không quan trọng bạn đã nỗ lực bao nhiêu để tự động hóa việc triển khai - nếu vào cuối ngày, bạn dành nhiều thời gian để kiểm tra ứng dụng của mình theo cách thủ công, bạn sẽ không thấy được lợi ích. Vì vậy, hãy cố gắng dành thời gian tự động hóa các trường hợp thử nghiệm của bạn. Nếu không, không có ích gì khi thực hiện triển khai tự động.

Nhưng trở lại chủ đề trong tầm tay. Các lô của bạn nên nhỏ đến mức nào và bạn nên triển khai chúng thường xuyên như thế nào?

Chà, nếu bạn đã từng chơi trò chơi khoai tây nóng, bạn sẽ hiểu rõ "nhỏ" và "thường xuyên" nghĩa là gì. Ngay sau khi bạn có một cái gì đó sẵn sàng được triển khai, hãy thực hiện nó. Nó không cần phải hoàn chỉnh, miễn là bạn sử dụng cờ đặc trưng. Xử lý các triển khai giống như mã hóa. Thật kỳ lạ khi ai đó dành nhiều giờ để viết mã mà không thử nghiệm. Nếu không kiểm tra mã của bạn khi bạn viết nó, bạn sẽ không biết chính xác điều gì gây ra lỗi. Và nếu không có nhiều dòng mã, bạn cần kiểm tra ít thứ hơn.

Khuếch đại phản hồi bằng cách tăng số lần bạn triển khai. Nghe có vẻ rủi ro, nhưng không phải vậy. Bạn càng thực hiện ít thay đổi, bạn càng dễ dàng biết được điều gì sai. Đừng đợi cho đến khi bạn có nhiều thay đổi mới triển khai. Làm điều đó thường xuyên.

Thực hiện triển khai một nhiệm vụ Mundane

Khi bạn thực hành một hoặc tất cả các mẹo trên, việc triển khai của bạn sẽ trở nên nhàm chán. Và trong trường hợp này, nhàm chán là một chiến thắng lớn. Bạn sẽ tìm thấy nhiều điều thú vị hơn để làm thay vì phải đối mặt với cùng một vấn đề lặp đi lặp lại.

Các công cụ, dịch vụ và thực tiễn tồn tại ngày nay - đặc biệt là những công cụ mà tôi đã đề cập ở đây - thật tuyệt vời. Chúng giúp bạn tránh những điều bất ngờ, biến tất cả những đêm đáng sợ hoặc những ngày cuối tuần dài thành những ngày làm việc bình thường, bình thường. Bạn có thể làm những việc như tự động hóa nhiều tác vụ của mình, đặc biệt là kiểm tra, để làm cho việc tiếp tục trở nên dễ dàng và hiệu quả hơn. Ngoài ra, bạn có thể đóng gói ứng dụng của mình; nó sẽ giúp bạn triển khai nhất quán. Cũng lưu ý rằng môi trường sản xuất không đáng được đối xử khác biệt. Và đảm bảo rằng bạn sử dụng cờ tính năng. Chúng sẽ giúp bạn bớt căng thẳng hơn khi triển khai vì bạn biết rằng bạn luôn có thể tắt các tính năng và mọi thứ sẽ tiếp tục hoạt động. Cuối cùng, làm việc theo lô nhỏ. Việc phát hiện lỗi dễ dàng hơn và ít rủi ro hơn vì bạn không phải thay đổi quá nhiều thứ cùng một lúc.

6 hữu ích 0 bình luận 19k xem chia sẻ

Có thể bạn quan tâm

loading