Ứng dụng trên điện thoại của bạn được cập nhật đều đặn, có khi vài ngày một lần. Đằng sau nhịp cập nhật ấy là một cách làm việc tên DevOps cùng những công cụ tự động như Azure DevOps.
Hãy tưởng tượng một nhóm làm báo tường cho lớp. Bạn viết bài xong thì đưa cho bạn khác soát lỗi, rồi đưa cho bạn trình bày, rồi mới dán lên. Nếu ba bạn ngồi ba nơi, không ai nói chuyện với ai, tờ báo sẽ chậm và đầy lỗi. Ngành phần mềm từng ở đúng tình cảnh đó. DevOps ra đời để thay đổi nó.
Từ "ném qua hàng rào" đến cùng một đội
Cuốn Azure DevOps Succinctly của tác giả Sander Rossel giải thích DevOps là ghép của hai chữ "development" (phát triển) và "operations" (vận hành). Đây là tập hợp cách làm việc giúp lập trình viên, người kiểm thử, người quản trị hệ thống và cả người lo bảo mật phối hợp với nhau để đưa phần mềm đến tay khách hàng nhanh hơn và ổn định hơn.
Sách kể lại rằng trước đây các nhóm thường tách biệt. Lập trình viên viết xong thì "ném qua hàng rào" cho nhóm kiểm thử, kiểm thử xong lại ném cho nhóm vận hành. Mỗi nhóm một mục tiêu: lập trình viên muốn giao tính năng thật nhanh, người kiểm thử muốn tìm thật nhiều lỗi, nhóm vận hành muốn hệ thống chạy liên tục không ngừng. Kết quả là phần mềm vừa trễ hẹn vừa nhiều lỗi.
Hội nghị DevOps đầu tiên mang tên devopsdays được tổ chức năm 2009 tại Ghent, Bỉ. Từ đó, DevOps trở thành xu hướng của cả ngành.
Văn hóa trước, công cụ sau
Tác giả nhấn mạnh DevOps trước hết là văn hóa làm việc. Thay vì một đội toàn lập trình viên và một đội toàn người kiểm thử, mỗi đội có đủ các vai trò cần thiết để cùng hướng đến một kết quả.
Nhiều đội áp dụng phương pháp Agile, phổ biến nhất là Scrum. Theo sách, một nhóm Scrum khoảng bốn đến bảy người, làm việc theo từng đợt ngắn gọi là sprint, mỗi đợt hai hoặc ba tuần. Mỗi ngày cả nhóm họp nhanh khoảng 15 phút để cập nhật tiến độ. Hết mỗi sprint, nhóm cùng nhìn lại việc gì làm tốt, việc gì cần cải thiện.
.png)
Hình 1. Vòng đời Scrum: từ danh sách công việc của sản phẩm, lập kế hoạch sprint, họp hằng ngày, đánh giá rồi rút kinh nghiệm (nguồn: tài liệu Microsoft Azure)
Cách làm này khác hẳn mô hình "thác nước" cũ, khi yêu cầu được thu thập từ đầu rồi lập trình viên viết mã hàng tháng, hàng năm mới giao sản phẩm. Lúc giao thì yêu cầu đã cũ.
Tự động hóa: trái tim kỹ thuật của DevOps
Về mặt kỹ thuật, từ khóa của DevOps là tự động hóa. Sách mô tả một quy trình mẫu: lập trình viên gửi mã mới lên kho lưu trữ, máy chủ lập tức tự biên dịch. Biên dịch thành công thì các bài kiểm thử tự động chạy. Qua hết kiểm thử, phần mềm tự được đưa lên môi trường thử nghiệm để người kiểm thử xem lại. Khi mọi thứ ổn, chỉ cần một cú nhấp là phần mềm lên môi trường thật.
Quá trình tự động biên dịch và kiểm thử gọi là tích hợp liên tục (CI). Bước tự động triển khai sau đó gọi là chuyển giao liên tục (CD). Ghép lại thành cụm từ CI/CD mà dân phần mềm nhắc đến hằng ngày.
.png)
Hình 2. Một đường ống tự động trên Azure DevOps chạy ba giai đoạn liên tiếp: biên dịch, triển khai lên môi trường phát triển và môi trường kiểm thử
Azure DevOps có gì?
Azure DevOps là bộ công cụ của Microsoft hỗ trợ toàn bộ quy trình trên. Boards là bảng quản lý công việc theo Scrum hoặc Kanban, ai làm gì, đến đâu. Repos là kho lưu trữ mã nguồn dùng Git. Pipelines là đường ống tự động biên dịch và triển khai. Test Plans quản lý các kịch bản kiểm thử, còn Artifacts lưu các gói phần mềm dùng chung. Sách cũng nhắc rằng các công cụ khác như GitHub, GitLab hay Jenkins làm được những việc tương tự.
DevOps mở ra những nghề gì?
Kỹ sư DevOps, kỹ sư CI/CD, kỹ sư hạ tầng đám mây là những vị trí hình thành từ chính xu hướng này. Ngay cả lập trình viên và người kiểm thử phần mềm cũng cần biết làm việc với Git, với bảng công việc, với đường ống tự động, vì đó là cách các công ty phần mềm hiện đại vận hành.
Ngoài công cụ, bạn còn học cách làm việc nhóm theo nhịp ngắn, cách chia nhỏ công việc, cách nhìn lại để làm tốt hơn. Bạn cũng quen với tư duy "việc gì lặp lại thì tự động hóa", giúp tiết kiệm thời gian và giảm lỗi do con người.
Làm phần mềm là làm việc cùng nhau
Theo cách nhìn của DevOps, phần mềm tốt là thành quả của cả một đội phối hợp nhịp nhàng, có công cụ hỗ trợ đúng. Nếu bạn thích làm việc nhóm, thích sắp xếp quy trình gọn gàng và muốn thấy sản phẩm của mình đến tay người dùng nhanh chóng, DevOps là hướng đi rất đáng tìm hiểu trong ngành công nghệ thông tin.
Trường Cao đẳng Công nghệ thông tin TP.HCM
Website: itc.edu.vn - Email tuyển sinh: tuyensinh@itc.edu.vn
Điện thoại: (028) 386 050 03 - Hotline: 093 886 1080 / 097 500 5356
Địa chỉ: 12 Trịnh Đình Thảo, P. Tân Phú, TP.HCM
ThS. Trương Châu Long - Trưởng bộ môn ngành CNTT & HTTT