DevOps thay đổi cách phát triển Dev & vận hành Ops
DevOps - sự hợp tác giữa bộ phận phát triển và bộ phận vận hành trong quá trình phát triển phần mềm không chỉ thay đổi quy trình, đó là sự chuyển đổi văn hóa.
Ngày xửa ngày xưa, bộ phận phát triển phần mềm (dev) là dev, và bộ phận vận hành (ops) là ops, hai bộ phận này chẳng bao giờ giao nhau, như mặt trăng với mặt trời.
“Trong lịch sử, chúng hoạt động trong thế giới riêng biệt,” Ash Minhas, Kiến trúc sư CNTT của IBM, chia sẻ với IBM Think trong cuộc phỏng vấn. Phát triển phần mềm nghĩa là lập trình, còn CNTT về cơ bản nghĩa là quản trị hệ thống. “Trong quy trình phân phối phần mềm truyền thống,” Minhas nói, “đưa một ứng dụng vào sản xuất bao gồm phối hợp cơ sở hạ tầng, phần cứng, đánh giá bảo mật, mạng lưới và hậu cần triển khai”.
Kết quả là gì?
Theo Minhas, đó là những hệ thống nguyên khối đáng tin cậy nhưng chậm, rất chậm. Thay đổi mã nguồn rất khó khăn mà không làm mất ổn định toàn bộ hệ thống. Do đó, "mô hình này đã trở thành nút thắt cổ chai", Minhas nói.
Rồi đến cuối những năm 2000, DevOps xuất hiện. Như tên gọi ghép gợi ý, DevOps kết hợp hài hòa giữa hai quy trình trước đây bị phân mảnh, cho phép các nhóm “xây dựng, kiểm thử, triển khai và vận hành phần mềm như một dòng chảy liên tục chứ không phải một chuỗi các bước chuyển giao riêng lẻ.
Minhas cho biết, công nghệ chính giúp DevOps trở thành hiện thực là điện toán đám mây. “Những tiến bộ trong điện toán đám mây đã tách rời phần mềm khỏi phần cứng vật lý. Mạng lưới trở nên nhanh và đáng tin cậy đến mức gần như chìm vào nền và các thực tiễn bảo mật ngày càng được chuẩn hóa”, ông nói.
Trước thời kỳ DevOps, công việc được vận hành theo phương pháp “thác nước ” – diễn ra theo một hướng từ trên xuống dưới, với phần mềm ở trên cùng.
DevOps về cơ bản là ngược lại: phương pháp phát triển phần mềm linh hoạt (agile) áp dụng cách tiếp cận lặp đi lặp lại đối với chu kỳ phát triển phần mềm. Với DevOps (và triết lý lập trình linh hoạt nói chung) các nhiệm vụ được thực hiện theo cả hai chiều.
Kết quả là gì?
Một chu kỳ phát triển phần mềm an toàn hơn, nhanh hơn và rẻ hơn. Vận hành không đơn thuần duy trì hoạt động sau khi phát hành; nó đã được tích hợp vào chính quy trình phát triển.