Hiểu về DevOps trong một bài viết - 78winđăngnhập

Ngày 02 tháng 03 năm 2023 - Công nghệ thông tin

DevOps là gì? Dưới đây là định nghĩa của Atlassian về DevOps:

"DevOps là tập hợp các thực hành, công cụ và triết lý văn hóa tự động hóa và tích hợp các quy trình giữa nhóm phát triển phần mềm và đội ngũ IT. Nó nhấn mạnh vào việc trao quyền cho nhóm làm việc, giao tiếp và hợp tác giữa các nhóm khác nhau cũng như tự động hóa công nghệ." — Atlassian

Chúng ta biết rằng thuật ngữ DevOps là sự kết hợp của Development (phát triển) và Operations (vận hành). DevOps bắt nguồn từ khoảng năm 2007, nhằm giải quyết vấn đề thiếu sự phối hợp hiệu quả giữa các nhóm phát triển và vận hành truyền thống. Trong mô hình cũ, phát triển và vận hành thường thuộc hai bộ phận riêng biệt với tư duy khác nhau, dẫn đến thiếu hiểu biết lẫn nhau.

Nhóm phát triển muốn nhanh chóng đưa mã nguồn ra thị trường, trong khi nhóm vận hành lại ưu tiên sự ổn định của hệ thống. Mô hình này đã cản trở khả năng đáp ứng nhanh chóng nhu cầu thay đổi. Do đó, DevOps ra đời như một cách tiếp cận mới, mang theo sự thay đổi về văn hóa làm việc để cải Nohu66 Club Win Game Bài thiện hiệu suất.

!Tường chắn hỗn loạn trong DevOps (Hình ảnh trích dẫn từ Kovair Blog)

1. Chu kỳ sống của DevOps

Hình dưới đây minh họa các giai đoạn của chu kỳ sống DevOps. Có thể thấy chu kỳ sống DevOps bao gồm khoảng tám giai đoạn, được chia thành hai phần: phát triển bên trái và vận hành bên phải, tạo thành một vòng lặp không giới hạn.

!Chu kỳ sống DevOps (Hình ảnh trích dẫn từ Atlassian)

Dưới đây là tóm tắt ngắn gọn về từng giai đoạn:

  • Khám phá (Discover)
    Chuẩn bị trước khi bắt đầu dự án. Đội nhóm tổ chức các hoạt động não bộ sáng tạo (brainstorming) để khám phá và xác định rõ mục tiêu cũng như thứ tự ưu tiên.

  • Kế hoạch (Plan)
    Giai đoạn lập kế hoạch, sử dụng phương pháp Agile để phân chia yêu cầu thành các nhiệm vụ nhỏ hơn, dễ dàng triển khai nhanh chóng.

  • Xây dựng (Build)
    Quá ban ca doi the trình biên dịch và xây dựng mã nguồn.

  • Kiểm thử (Test)
    Sử dụng kiểm thử tự động để đảm bảo tính chính xác của các thay đổi trước khi triển khai vào môi trường sản xuất.

  • Triển khai (Deploy)
    Triển khai các tính năng vào môi trường sản xuất bằng cách sử dụng phương pháp tự động hóa.

  • Vận hành (Operate)
    Quản lý và duy trì cơ sở hạ tầng IT.

  • Quan sát (Observe)
    Giám sát và cảnh báo sớm để phát hiện và xử lý kịp thời các vấn đề về chức năng hoặc hiệu suất.

  • Phản hồi liên tục (Continuous feedback)
    Thu thập phản hồi từ khách hàng về phiên bản hiện tại để tìm kiếm điểm cần cải thiện và áp dụng những thay đổi phù hợp trong lần phát hành tiếp theo.

2. Năm nguyên tắc của DevOps

Để tận dụng tối đa tiềm năng của DevOps, đội ngũ cần tuân thủ năm nguyên tắc sau:

  • Hợp tác (Collaboration)
    Hợp tác là nền tảng của DevOps. Các nhóm phát triển và vận hành hợp nhất thành một đội ngũ chung, cùng nhau chia sẻ và hợp tác để cung cấp sản phẩm tốt hơn, nhanh hơn.

  • Tự động hóa (Automation)
    Một thực hành cần thiết của DevOps là tự động hóa càng nhiều giai đoạn trong vòng đời phần mềm càng tốt. Điều này giúp phản hồi nhanh hơn cho yêu cầu của khách hàng.

  • Cải tiến liên tục (Continuous Improvement)
    Cải tiến liên tục đã trở thành một phần quan trọng của phát triển Agile và sản xuất tinh gọn. Đây là một thực hành tập trung vào việc thử nghiệm, giảm thiểu chi phí và tăng cường hiệu quả. Nó cũng có mối liên hệ chặt chẽ với giao hàng liên tục, nơi DevOps liên tục đẩy các bản cập nhật để tăng tốc độ lặp lại phần mềm.

  • Hành động hướng đến khách hàng (Customer-centric action)
    DevOps phát triển các sản phẩm hoặc dịch vụ lấy người dùng cuối làm trung tâm thông qua các vòng phản hồi ngắn gọn. Thực hành này bao gồm giám sát thời gian thực và triển khai nhanh chóng để thu thập và phản hồi ý kiến của người dùng.

  • Tạo ra với mục tiêu cuối cùng trong tâm trí (Create with the end in mind)
    Đội ngũ DevOps nên có cái nhìn tổng thể về toàn bộ quá trình từ việc tạo ra sản phẩm đến khi đạt được mục tiêu, giúp hiểu sâu hơn về sản phẩm và nhu cầu, từ đó cung cấp các giải pháp thực sự giải quyết vấn đề của khách hàng.

3. Đường ống DevOps (Pipeline)

Đường ống DevOps là một loạt các quy trình tự động và công cụ cho phép các nhà phát triển và vận hành phối hợp để xây dựng và triển khai mã nguồn vào môi trường sản xuất. Hình dưới đây minh họa cấu trúc của một đường ống DevOps điển hình, bao gồm các giai đoạn như xây dựng, kiểm thử và triển khai sau khi cam kết mã nguồn. Tuy nhiên, không có một chuẩn mực cố định nào cho đường ống DevOps; mỗi tổ chức sẽ xây dựng đường ống phù hợp với tình huống và công nghệ của mình.

!Đường ống DevOps (Hình ảnh trích dẫn từ Atlassian)

4. DevSecOps

DevSecOps là một thực hành tích hợp bảo mật vào các đường ống tích hợp liên tục, giao hàng liên tục và triển khai liên tục.

Hình dưới đây minh họa cách bảo mật được tiêm vào chu kỳ sống DevOps:

!Chu kỳ sống DevSecOps (Hình ảnh trích dẫn từ Atlassian)

  • Giai đoạn Kế hoạch (Plan)
    Có thể sử dụng các phương pháp như mô hình đe dọa để xác định các lỗ hổng bảo mật tiềm năng trong phần mềm.

  • Giai đoạn Xây dựng (Build)
    Sử dụng các công cụ kiểm tra bảo mật ứng dụng tĩnh (Static Application Security Testing – SAST), chẳng hạn như SonarQube, để quét các lỗ hổng bảo mật trong mã nguồn.

  • Giai đoạn Kiểm thử (Test)
    Sử dụng các công cụ kiểm tra bảo mật ứng dụng động (Dynamic Application Security Testing – DAST) để kiểm tra các lỗ hổng bảo mật, ví dụ như danh sách OWASP Top 10.

  • Giai đoạn Triển khai (Deploy)
    Cần kiểm tra cấu hình an toàn của cơ sở hạ tầng và môi trường chạy, bao gồm tường lửa mạng, khóa dữ liệu, v.v. Một số công cụ quản lý cấu hình phổ biến bao gồm Ansible, Puppet, HashiCorp Terraform và Chef.

  • Giai đoạn Vận hành (Operate)
    Sử dụng các công cụ như tường lửa ứng dụng web (Web Application Firewall – WAF) để cung cấp thêm lớp bảo vệ.

Tóm lại, bài viết này đã giới thiệu khái niệm DevOps, chu kỳ sống và các nguyên tắc thực hành, đồng thời giải thích về đường ống DevOps và DevSecOps. Hy vọng rằng sau khi đọc xong bài viết này, bạn sẽ có cái nhìn tổng quan về DevOps.

[1] DevOps là gì? | Atlassian - www.atlassian.com
[2] Chu kỳ sống DevOps: Các giai đoạn khác nhau trong DevOps | BrowserStack - www.browserstack.com
[3] DevOps Tools Làm Thế Nào Để Hoạt Động Cùng Nhau? | TechieRoop - techieroop.com
[4] Cuộc Chiến – Dev vs Ops | Kovair Blog - www.kovair.com