Thứ Sáu, 9 tháng 3, 2018

Tất cả những thông tin về DevOps bạn cần biết

1. Khái niệm về DevOps ?

Trước tiên, để tìm hiểu thông tin về DevOps bạn cần nắm được đinh nghĩa về thuật ngữ này là gì?  DevOps không phải là một công cụ, nó là một phương pháp tiếp cận và đó là một văn hóa với mục tiêu tối ưu hóa vòng đời phát triển phần mềm SDLC (Software Development Life Cycle) bằng cách đưa sự phát triển (development) và operation xích lại gần nhau hơn. Đó là một điều được coi nhu làn gió mới đối với các tỏ chức CNTT trên thế giới, thúc đẩy quá trình dự án và làm gia tăng lợi nhuận. DevOps tăng cường sự hợp tác giữa các kỹ sư phát triển và bộ phận operation, tham gia với nhau trong toàn bộ vòng đời dịch vụ, từ thiết kế đến quá trình phát triển để hỗ trợ sản xuất.

"Dev" là thuật ngữ viết tắt để nói về những nhà phát triển phần mềm trong khi "Ops" là thuật ngữ bao gồm các kỹ sư hệ thống, quản trị hệ thống, nhân viên operation, kỹ sư phát hành, DBA, kỹ sư mạng, chuyên gia bảo mật, và nhiều công việc phụ khác. Giải pháp DevOps mang đến là giảm đi khoảng cách giữa Development (phát triển) và Ops (vận hành) bằng việc giảm đi sự không chắc chắn của việc phát hành và thay đổi. DevOps = Development + QA + Operation. Nó cũng làm giảm thiểu rủi ro liên quan đến các giai đoạn khác nhau của việc quản lý phát hành, bao gồm: Build (xây dựng), (Deploy) triển khai, Test (kiểm thử), và Continuous Improvement (cải tiến liên tục).
Một cơn bão hoàn hảo hội tụ các phương pháp có nhiều điểm chung bao gồm Agile, Operations Management (Systems Thinking & Dynamics), Theory of Constraints, LEAN và IT Service Management xuất hiện cùng nhau vào năm 2009 thông qua các hội nghị, buổi nói chuyện và trên mạng xã hội Twitter (#devops) được tranh luận trên một phạm vi rộng khắp thế giới mà cuối cùng đã trở thành triết lý đằng sau DevOps.
Phương pháp phát triển phần mềm Agile mở đường, chuyển từ phương pháp phát triển phần mềm kiểu thác nước (waterfall) hướng tới một chu kỳ phát triển liên tục (continuous development). Nhưng nó vẫn chưa bao gồm mặt operation vì vậy trong khi phát triển có thể được liên tục, nhưng triển khai vẫn còn theo hướng thác nước (waterfall).
Trong một môi trường DevOps, chức năng chéo, việc chia sẻ trách nhiệm và sự tin tưởng được đề cao. DevOps là sự mở rộng các mục tiêu phát triển liên tục của phong trào Agile để tích hợp và phát hành liên tục. Để thích ứng với việc phát hành liên tục (continuous releases), DevOps khuyến khích tự động hóa các quá trình thay đổi, cấu hình và phát hành.
Việc liên tục triển khai dẫn đến nhu cầu cộng tác chặt chẽ giữa nhóm phát triển (development) và nhóm vận hành (operation) và cách phân chia tổ chức theo nhóm chức năng (functional team) trở nên lỗi thời; cách làm việc liên chức năng (cross-functional) sẽ hiệu quả hơn rất nhiều. Và đó là DevOps. 
DevOps tìm thấy lực kéo ban đầu trong nhiều nhà cung cấp dịch vụ điện toán đám mây lớn. Với các ứng dụng hiện đại chạy trong đám mây (cloud), phần lớn những gì từng được coi là hạ tầng thì bây giờ là một phần của code. Các WebOps lớn như Google, Amazon, Twitter và Etsy được biết là phải triển khai nhiều lần trong một ngày. Để triển khai thường xuyên, bạn phải chắc chắn là mình sẽ không làm hỏng những gì đã làm việc ổn định trước đó. DevOps giúp đảm bảo triển khai thường xuyên với một tỷ lệ thất bại rất thấp.

Các công ty thuộc mọi quy mô đang bắt đầu thực hiện các practice DevOps, trong một cuộc khảo sát năm 2012 của Puppet Labs and IT Revolution Press cho thấy rằng 63% của hơn 4.000 công ty được hỏi đang thực thi các practice DevOps. Và rất nhiều công ty nhỏ, đặc biệt là các startup, đã "làm DevOps" mà không gọi nó là DevOps trong một thời gian dài.
Tại sao DevOps phức tạp? Vì DevOps thực sự tạo ra một văn hoá cộng tác để chuyển giao sản phẩm theo cách mới. Theo quy trình phát triển phần mềm cổ điển, các nhóm development, QA, operation hoạt động rất riêng biệt với những kỹ năng, văn hoá khác nhau. Giờ đây họ đứng cùng nhau với một mục tiêu chung và một văn hoá chung. Điều này không thể có trong một thời gian ngắn.
Tại sao DevOps thông thường nhanh thành công hơn trong môi trường Linux? Tôi lưu ý là thông thường. Vì thông thường, nhóm opeartion sử dụng Linux quen thuộc hơn với việc sử dụng câu lệnh, lập trình (viết script…); so với Windows, nhóm sử dụng công cụ đồ hoạ để cấu hình. Và CI, CD nói chung làm việc nhiều với dòng lệnh.

2. Các công cụ DevOps

Bản tuyên ngôn Agile nhấn mạnh về các cá nhân và sự tương tác thông qua các quy trình và công cụ, nhưng DevOps đồng thời nhấn mạnh sự cộng tác và tích hợp, và cũng trông vào các công cụ tự động hóa để tận dụng một cơ sở hạ tầng có thể lập trình và năng động từ góc độ vòng đời sản phẩm. Việc kiểm soát phiên bản và tự động triển khai code là hai trong số những công cụ phổ biến và có ảnh hưởng mạnh nhất, nhưng còn có rất nhiều vấn đề khác bao gồm quản lý cấu hình, hệ thống ticket, theo dõi và dự phòng.

3. Tại sao lại cần DevOps?

Nói về lợi ích của phương pháp DevOps đem lại rất nhiều, bao gồm:
  • Nâng cao tần suất triển khai, điều này có thể dẫn đến thời gian đưa sản phẩm ra thị trường nhanh hơn.
  • Tỷ lệ thất bại thấp hơn
  • Rút ngắn thời gian phát triển
  • Thời gian phục hồi được tiết kiệm

4. Sự phát triển của DevOps

Hiện nay, có nhiều thống kê cho rằng những nhân viên về DevOps thường có mức lương cao nhất so với mặt bằng chung trong giới nhân viên CNTT. Không khó hiểu để giải thích về mức lương của họ vì nhu cầu thị trường cho công việc này càng cao bởi số lượng các tổ chức sử dụng DevOps ngày càng phát triển. Theo báo cáo mới nhất từ Puppetlabs, tần suất sử dụng DevOps của những tổ chức triển khai code với tần suất nhiều hơn 30 lần so với các đối thủ cạnh tranh của họ, và số lần triển khai thất bại của họ ít hơn đến 50%.
Trong vòng 2 năm trở gần đây, khối lượng công việc DevOps trên trang tuyển dụng uy tín Indeed.com đã tăng đến 75%. Trên LinkedIn.com, số lượng yêu cầu đến kỹ năng DevOps cũng đã tăng 50%. Cũng theo như khảo sát mới nhất của Puppetlabs, một nửa sô người được phỏng vấn trên 4000 người tham gia ( ở hơn 90 quốc gia) cho biết kỹ ăng DevOps là một trong những kĩ năng được họ quan tâm nhất khi tuyển dụng.
Có thể thấy rằng tư tưởng DevOps có rất nhiều tiềm năng phát triển trong tương lai. Cùng với sự thay đổi nhanh chóng của ngành công nghiệp IT, những developer không có kiến thức về quản trị hệ thống (hoặc ops) và những quản trị hệ thống (hoặc ops) mà không biết phát triển sản phẩm sẽ trở nên kém quan trọng và nhanh chóng bị đào thải.
DevOps sẽ thay đổi một người có một kỹ năng duy nhất thành một người đa năng bao gồm lập trình, xây dựng hạ tầng và cấu hình, thử nghiệm, xây dựng và phát hành. Vì nó không chỉ giới hạn cho bất kỳ công nghệ cụ thể nào, những người làm việc trong môi trường DevOps liên tục làm việc với tích hợp và tự động hoá trong các công nghệ khác nhau.

5. Tương lai của DevOps

Tư tưởng DevOps có rất nhiều tiềm năng phát triển trong tương lai. Ngay cả trong giai đoạn trứng nước, DevOps đã tạo ra một cuộc cách mạng trong ngành công nghiệp này. Cùng với sự thay đổi nhanh chóng của ngành công nghiệp IT, những developer không có kiến thức về quản trị hệ thống (hoặc ops) và những quản trị hệ thống (hoặc ops) mà không biết phát triển sản phẩm sẽ trở nên kém quan trọng và nhanh chóng bị đào thải.
DevOps sẽ biến đổi một người có một kỹ năng duy nhất thành một người đa năng bao gồm lập trình, xây dựng hạ tầng và cấu hình, thử nghiệm, xây dựng và phát hành. Vì nó không chỉ giới hạn cho bất kỳ công nghệ cụ thể nào, những người làm việc trong môi trường DevOps liên tục làm việc với tích hợp và tự động hoá trong các công nghệ khác nhau.
Kết luận: Đó là toàn bộ thông tin về DevOps được tổng hợp chung, hi vọng nhwungx thông tin trên phần nào cung cấp được cho các bạn cái nhìn tổng quan về những gì mà DevOps mang lại.



EmoticonEmoticon