DEVOPS LÀ GÌ?
Theo Wikipedia Devops là thuật ngữ chỉ tập hợp các hoạt động trong đó nhấn mạnh sự hợp tác và trao đổi thông tin giữa lập trình viên và các chuyên viên IT khác khi làm việc cùng. Nhằm tự động hóa quá trình chuyển giao phần mềm và thay đổi kiến trúc hệ thống.
Devops là một văn hóa làm việc đề cao sự hợp tác, kéo hai giai đoạn phát triển và vận hành xích lại gần nhau hơn.
- Giai đoạn phát triển ( development) bao gồm phần việc của designer, developer, QA QC…
- Giai đoạn vận hành ( operations) có sự tham gia của system engineer, system administrator, operation executive, release engineer, DBA, network engineer,…
Hai giai đoạn này tương đối tách rời nhau. Đặc biệt là ở những công ty có quy mô từ trung bình trở lên. Chính vì thế, khái niệm devops ra đời nhằm tối ưu hóa chu trình phát triển phần mềm. Giúp sản phẩm IT được release nhanh và thường xuyên hơn.
LỢI ÍCH LỚN NHẤT CỦA VIỆC DÙNG DEVOPS LÀ GÌ?
Đóng góp lớn nhất của DevOps là, cùng với phương pháp Agile. Nó giúp hoàn thiện việc chuyển đổi quy trình phát triển và vận hành phần mềm từ mô hình thác nước (waterfall) sang mô hình phát triển/phát hành liên tục (continuous development/releases).
Những lợi ích chính của DevOps là:
- Tăng cường sự cộng tác chặt chẽ giữa nhóm phát triển (development). Và nhóm vận hành (operation), cũng như khả năng làm việc liên chức năng (cross-functional).
- Nâng cao tần suất triển khai (deployment), giúp rút ngắn thời gian phát triển/cải tiến sản phẩm.
- Tận dụng các công cụ tự động hóa, giúp hạn chế rủi ro, giảm tỉ lệ thất bại.
- Thời gian phục hồi sản phẩm nhanh hơn.
Tất cả đều phục vụ cho mục đích cuối cùng là cải thiện khả năng cung cấp dịch vụ IT một cách nhanh chóng. Từ đó, tăng khả năng cạnh tranh của sản phẩm/doanh nghiệp.
DEVOPS ENGINEER LÀ GÌ?
Nhìn chung, công việc chính của DevOps Engineer rất gần với công việc của Sysadmin, bao gồm: deploy, optimizing, monitoring, analysis… Điểm khác biệt là:
- DevOps Engineer đòi hỏi nhiều kĩ năng mềm hơn, đồng thời phải biết dùng coding, scripting để automate hệ thống.
- Người làm DevOps Engineer cũng cần tìm hiểu về stack mà sản phẩm công ty đang sử dụng. Để có thể cùng review bug. Viết những unit test thông thường, và để khi phát triển tiến trình CI/CD thì deploy “êm ái” hơn.
Người làm DevOps Engineer trước hết phải có tư tưởng – mindset đúng. Họ cần đặt lợi ích doanh nghiệp, lợi ích sản phẩm lên hàng đầu. Đồng thời thấy rằng toàn bộ các team thực chất là cùng một “phe”, cùng chia sẻ lợi ích cũng như rủi ro.
Thay vì đợi team Dev phát triển xong sản phẩm, rồi team Ops mới tham gia vận hành như trước kia. Thì nay, DevOps Engineer nên tham gia ngay từ đầu với đội ngũ phát triển. Nhằm:
- Hiểu sản phẩm hơn, để tối ưu hóa sản phẩm tốt hơn.
- Học ngôn ngữ lập trình mà công ty sử dụng, để nắm được logic code, mài sắc khả năng tư duy, nắm được tiến trình của code chạy như thế nào.v.v…
Khi deploy code, nếu gặp vấn đề ở chỗ nào, DevOps Engineer sẽ có thể chủ động tìm lỗi và fix luôn mà không cần phải chờ developer.
TIÊU CHÍ QUAN TRỌNG NHẤT KHI TUYỂN DEVOPS ENGINEER LÀ GÌ?
1. LUÔN ĐẶT LỢI ÍCH TẬP THỂ LÊN HÀNG ĐẦU.
Đây là tiêu chí quan trọng nhất. Vì DevOps sinh ra là để giải quyết mâu thuẫn. Tiêu chí này thể hiện qua những việc rất nhỏ nhặt cụ thể.
Ví dụ như cách anh ta suy nghĩ, tổ chức, cấu trúc code/thư mục như thế nào, chia sẻ những best practices… để mọi người có thể cùng nhau đọc và hiểu code đó, cùng tham gia được với mình.
2. NHÌN NHẬN MỌI THỨ TỪ NHIỀU KHÍA CẠNH.
Mâu thuẫn giữa nhóm phát triển và vận hành nảy sinh từ sự khác biệt về góc nhìn. Cho nên, DevOps Engineer cần nhìn nhận mọi thứ từ nhiều khía cạnh, để khách quan, sáng suốt hơn, biết “thông cảm” hơn.
Cụ thể, khi deploy mà code không chạy, thì DevOps Engineer cần xem xét kĩ: vấn đề nằm ở phía code hay phía môi trường.
Ví dụ, trường hợp làm với Laravel (PHP Framework), file config là .env. Sysadmin không có kinh nghiệm thì dễ mắc sai lầm là chỉ lấy phần code đó xuống. Và chạy và lỗi thì loay hoay và thường nghĩ do code. Trong khi, lẽ ra cần phải hiểu những cấu hình liên quan đến môi trường và cách thức hoạt động của Laravel, và phải tác động vào file.env trước đã.
3. GIAO TIẾP VÀ HỢP TÁC TỐT VỚI CÁC TEAM KHÁC.
Trong công việc, mối quan hệ tốt thì cái gì cũng dễ dàng, và ngược lại.
Ví dụ, khi triển khai hệ thống bị lỗi do code, nếu mối quan hệ không tốt thì anh dev thường sẽ cãi cho bằng được. Để bảo vệ cái tôi của anh DEV. Còn, nếu mình có mối quan hệ tốt, thì khi xảy ra lỗi, chỉ cần nhẹ nhàng nói: “hệ thống không chạy vì nó bị lỗi như này, như kia”. Anh dev sẽ đồng ý sửa ngay để mình deploy lại.
NGOÀI RA, MỘT DEVOPS ENGINEER CŨNG CẦN CÓ:
- Kinh nghiệm với system và IT operations, quản lý dữ liệu.
- Nắm vững các tiến trình (CI/CD) và công cụ tự động hóa.
- Khả năng sử dụng nhiều công nghệ và mã nguồn mở, coding/scripting.
Bài viết liên quan
Database là gì?
Database là gì? Database được gọi là Cơ sở dữ liệu, là một bộ sưu tập dữ liệu có [...]
Th9
Tạo Responsive và Mobile-Friendly Tooltip bằng jQuery
Việc tìm kiếm một chức năng Tooltip phù hợp với website hay blog thì không [...]
Th5
Code tự động lưu ảnh vào host khi copy bài từ nguồn khác
Như tiêu tiêu đề thôi hôm nay mình sẽ share đoạn code tự động lưu [...]
Th4
Tạo đăng nhập trên website với tài khoản google
Bạn cần người dùng vào website của bạn đăng nhập mà không cần phải đăng [...]
Th4
Xác thực người dùng với tài khoản facebook
Code xác thực người dùng trên website dựa trên tài khoản của facebook. Bạn có [...]
Th4
Code popup quảng cáo nằm dưới trình duyệt (popup under)
Bạn là webmaster và muốn treo quảng cáo popup nhưng bạn không muốn làm phiền [...]
Th4