Nâng cấp không thời gian chết trong Jira Software Data Center

Tháng Năm 10, 2021
Nga Pham

Benjamin King – kĩ sư giải pháp của Atlassian và Dick Wiggers – kĩ sư phần mềm của Jira Software từng hợp tác trình bày một hội thảo trực tuyến (webinar) về cách hoạt động của các hoạt động tùy chọn triển khai Data Center (Trung tâm Dữ liệu), với những kiến thức chuyên sâu về việc nâng cấp với thời gian chết bằng không (zero downtime upgrades) cho các phần mềm phiên bản Data Center của Jira. Dưới đây là một bản tóm tắt các nội dung chính của hội thảo.

Hiểu về Data Center

Atlassian đã thiết kế tùy chọn triển khai Data Center để phù hợp với nhu cầu của các nhóm phát triển phần mềm trên quy mô lớn. Các nhóm lựa chọn dịch vụ ẩn-sau-tường-lửa này sẽ nhận được tính sẵn sàng cao, hiệu suất trên quy mô lớn và khả năng mở rộng tức thì.

Nhưng chính xác thì những tính năng kể trên có nghĩa là gì? Kĩ sư Ben đã chia sẻ kiến thức sâu rộng của anh ấy về vấn đề này.

Tính khả dụng cao

Với chế độ phân cụm active-active clustering, quản trị viên có thể nhóm nhiều nút (node) hoạt động trong một nhóm máy chủ cung cấp cùng một dịch vụ. Có nghĩa là, khi một máy chủ gặp sự cố, sẽ có những máy chủ khác tự động thay thế nó. Quản trị viên có thể phân phối tải trên toàn bộ cụm Data Center một cách thông minh bằng việc sử dụng bất kỳ hình thức công nghệ, phần cứng hoặc phần mềm cân bằng tải nào. Trung tâm dữ liệu cũng tích hợp với các công nghệ tiêu chuẩn để phân cụm cơ sở dữ liệu và hệ thống tập tin chia sẻ, nhờ đó các nhóm CNTT có thể sử dụng công nghệ họ muốn để cung cấp lựa chọn thay thế ở tất cả các cấp của ứng dụng.

Hiệu suất trên quy mô lớn

Mỗi nút trong cụm Data Center sẽ tăng dung lượng cho những người dùng đồng thời, cho phép duy trì hiệu suất trên một cơ sở người dùng đang phát triển. Data Center cung cấp khả năng phục hồi ứng dụng, tránh được sự suy giảm hiệu suất khi tăng đột biến tải bằng cách tăng thông lượng ứng dụng.

Chẳng hạn như, khi các nhà phát triển của Atlassian ở Sydney hoạt động trực tuyến vào buổi sáng, hiệu suất của các nhà phát triển làm việc ở San Francisco và Austin sẽ không bị ảnh hưởng. Quản trị viên có thể dành các nút cho các tác vụ tự động, lệnh gọi API, các nhóm và hơn thế nữa. Do đó, một số loại lưu lượng nhất định có thể được phân chia để có tài nguyên dành riêng cho kiến trúc. Cách quản lý lưu lượng dữ liệu linh hoạt này đảm bảo các dịch vụ không bao giờ ngừng hoạt động.

Khả năng mở rộng tức thì

Khi có các nhóm phát triển và người dùng mới được thêm vào, quản trị viên có thể dễ dàng thêm các nút mới mà không cần loại bớt một số người dùng sang chế độ ngoại tuyến (offline) và cũng không cần trả thêm phí. Các nút hiện có sẽ tự động đồng bộ hóa chỉ mục (index) và các phần mềm bổ trợ (plugin) với mỗi thành viên mới được bổ sung. Để đơn giản hóa công việc của quản trị viên, tính năng mở rộng quy mô theo chiều ngang có thể được thực hiện tự động. Ví dụ, nếu bạn triển khai trên AWS, dịch vụ Tự động mở rộng quy mô (Auto Scaling service) có thể triển khai các nút mới cho cụm của bạn khi bạn cần đến chúng. Điều này cho phép bạn chỉ trả tiền cho những gì bạn cần và giải phóng ứng dụng để tự điều chỉnh tùy theo lượng tải.

Nâng cấp với thời gian chết bằng không

Atlassian hiểu rằng Jira Software có thể mang một sứ mệnh quan trọng, góp phần vào sự thành công của nhóm phát triển. Nếu thời gian ngừng hoạt động xuất hiện, nó có thể gây ảnh hưởng lớn đến năng suất, giảm thiểu đầu ra và tiêu hao tài nguyên. Chính vì vậy, họ luôn nỗ lực để giảm thiểu rủi ro này, bằng cách không chỉ tập trung vào các giải pháp đối phó với thời gian ngừng hoạt động ngoài kế hoạch, chẳng hạn như phát triển các đối sách dự phòng và hỗ trợ khắc phục sự cố, mà còn cả thời gian ngừng hoạt động theo kế hoạch. Với tính năng nâng cấp không có thời gian chết cho Jira Software Data Center, quản trị viên không còn cần phải lên lịch thời gian ngừng hoạt động vào ban đêm hoặc các ngày cuối tuần để thực hiện nâng cấp. Giờ đây, họ có thể làm điều đó khi họ muốn mà không ảnh hưởng đến hoạt động của người dùng. Kĩ sư Dick đã trình bày cách thức hoạt động của giải pháp này như sau.

Trong suốt quá trình nâng cấp điển hình của Jira Software Data Center, quản trị viên cần gỡ bỏ tất cả các nút cùng một lúc và sau đó, đưa từng nút một trở lại. Với nâng cấp không có thời gian chết, các nút sẽ lần lượt được gỡ xuống và đưa trở lại một cách riêng lẻ. Khi nút cuối cùng ngừng hoạt động là lúc cơ sở dữ liệu đã sẵn sàng để được nâng cấp. Điều tuyệt vời nhất ở đây là gì? Chính là vì luôn có các nút đang chạy, quản trị viên không cần ngừng hoạt động của hệ thống và người dùng có thể tiếp tục công việc mà không bị gián đoạn.

Dick đã giải thích 4 khái niệm hữu ích về cách nâng cấp này:

  1. Trạng thái cụm (Cluster states): 5 trạng thái chuyển đổi khác nhau trong quá trình nâng cấp
  2. Nâng cấp tác vụ (Upgrade tasks): tập hợp các thao tác thô trên cơ sở dữ liệu
  3. Cờ tính năng (Feature flags): nút chuyển đổi để bật hoặc tắt các tính năng
  4. Đóng băng tập tin (Freeze file): ảnh chụp nhanh (snapshot) các plugin đã được cài đặt

Ngoài ra, anh cũng chia sẻ một nguồn để thực hiện nâng cấp với thời gian chết bằng không. Bạn có thể tìm nó tại tab Application trong chế độ xem quản trị (Administration view), sau đó chọn Jira upgrades.

Để tìm hiểu sâu hơn về các tính năng của Data Center và các yêu cầu phần cứng, phần mềm, cũng như quy trình 6 bước chuyên sâu để thực hiện nâng cấp với thời gian chết bằng không trong Jira Software Data Center, bạn có thể xem lại hội thảo trực tuyến này tại đây.

Nguồn: Atlassian Blog