DevOps là gì? Cùng học DevOps với mình nhé!

Tram Ho

Xin chào mọi người, nếu bạn đang muốn tìm hiểu về DevOps thì hãy bằng đầu cùng mình nhé!

DevOps là gì?

DevOps không phải là một công cụ, phần mềm hoặc một ngôn ngữ lập trình nào đó. Nếu search google bạn có thể thấy nó được định nghĩa như sau:

Có thể nói một cách ngắn gọn DevOps là con đường để làm mọi thứ theo cách thông mình hơn khi phát triển phần mềm.
Dưới đây là 1 ví dụ cụ thể để tụi mình có thể hình dung vai trò của DevOps trong quy trình phát triển 1 phần mềm:

1 công ty sản xuất phần mềm có 2 bộ phận:

  • Team Development: (Developer, Designer, BrSe, BA, QC,…) chịu trách nhiệm lên kế hoạch (planning), thiết kế và xây dựng sản phẩm từ con số 0
  • Team Operation: (System Administrator, System Engineer, Network Engineer, Security Engineer,..) chịu trách nhiệm kiểm tra, đánh giá và triển khai sản phẩm (được develop từ team Development) đến cho người dùng. Ngoài ra Operation team cũng sẽ gửi feedback (bug, tính năng) cho team Development để tiếp tục fix hoặc cải tiến sản phẩm.
    Vấn đề: Sẽ có 1 khoảng thời gian chờ để team Development nhận được feedback từ team Operation. Điều này sẽ làm quá trình phát triển sản phẩm bị gián đoạn và mất nhiều thời gian hơn.
    Đây là lúc khái niệm DevOps xuất hiện để giải quyết vấn đề trên.

image.png

Như đã đề cập ở trên, DevOps bổ sung cho phương pháp Agile, một số khía cạnh DevOps đến từ cách làm việc Agile:

Bắt đầu sprint:

  1. Plan: Lên kế hoạch và thiết kế tính năng sẽ phát triển trong sprint
  2. Code: coding chức năng/fix bug theo kế hoạch ở trên
  3. Build: đóng gói các output của quá trình coding bằng cách build
  4. Test: kiểm thử trên bản build trên môi trường development (dev)
  5. Release (Integrate): sau khi bản build ở môi trường dev pass, bản release sẽ được gửi đến team Operation để build và test 1 lần nữa
  6. Deploy: triển code lên các môi trường STG/PRD
  7. Operate: duy trì và vận hành sản phẩm
  8. Monitor: đo lường và theo dõi sản phẩm để có được feedback cho sprint sau
    Kết thúc sprint.
    Bắt đầu sprint mới…

Một case study thực tế đó là Netflix. Năm 2007, Netflix ra mắt dịch vụ streaming video. Tại thời điểm năm 2014, họ đã ước tính rằng mỗi khi hệ thống bị sập trong khoảng 1 giờ thì sẽ tiêu tốn khoảng 200.000 USD. Nhưng giờ thì Netflix đã có thể giải quyết vấn đề đấy bằng cách chọn áp dụng DevOps để phát triển sản phẩm. Cụ thể là họ phát triển 1 tool có tên là Simian Army, cái sẽ liên tục tạo ra bugs trong 1 môi trường Dev. Điều này khiến các developer của Netflix có động lực để xây dựng một hệ thống không dễ bị đổ vỡ khi có bất kì điều gì xảy ra.

Trên đây là những gì mình rút ra được theo cách mình hiểu trong quá trình tự học DevOps. Nếu có chỗ nào chưa đúng hi vọng các bạn sẽ comment phía dưới để giúp mình học tốt hơn nhé. Cảm ơn mọi người đã xem!

Tham khảo

https://github.com/MichaelCade/90DaysOfDevOps?fbclid=IwAR0YihnJ0vr6MjAa6O_N4u88MD2T1PJoWZcxUe4_jGWNqFV2a5fMRirYTaA

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo