DevOps là gì?
DevOps là sự kết hợp của từ Development (phát triển tính năng sản phẩm) + Operations (vận hành) . DevOps là một sự kết hợp của các nguyên lý, thực hành, quy trình và các tool giúp tự động hóa quá trình lập trình và chuyển giao phần mềm . DevOps là một thuật ngữ để chỉ một tập hợp các hành động trong đó nhấn mạnh sự hợp tác và trao đổi thông tin của các lập trình viên và chuyên viên tin học khi cùng làm việc để tự động hóa quá trình chuyển giao sản phẩm phần mềm và thay đổi kiến trúc hệ thống.
- DevOps = Dev (Development) + Ops (Operations)
DevOps không phải là 1 công cụ nhưng các công cụ là cần thiết để đạt được hiệu quả trong DevOps.
-
DevOps không phải là 1 sản phẩm
-
DevOps không phải là 1 tiêu chuẩn
-
DepOps không phải là 1 chức danh nghề nghiệp.
DevOps là một tập hợp các phương pháp thực hành, công cụ và triết lý văn hóa giúp tự động hóa và tích hợp các quy trình giữa các nhóm phát triển phần mềm và Bộ phận vận hành. Nó nhấn mạnh việc trao quyền cho nhóm, giao tiếp và cộng tác giữa các nhóm và tự động hóa công nghệ.
DevOps là một cách để phát triển phần mềm một cách thông minh hơn.
Có 7 giai đoạn trong vòng đời DevOps:
- Phát triển liên tục (CD) – Continuous development
- Tích hợp liên tục (CI) – Continuous integration
- Kiểm tra liên tục – Continuous testing
- Triển khai liên tục – Continuous Deployment
- Phản hồi liên tục – Continuous Feedback
- Giám sát liên tục – Continuous Monitoring
- Hoạt động liên tục – Continuous Operations
Lợi ích của DevOps
Các lợi ích của DevOps bao gồm:
- Tăng tốc độ triển khai sản phẩm
- Giảm thiểu thời gian phát triển sản phẩm
- Tăng khả năng phục hồi sau khi có sự cố
- Tăng tính linh hoạt và khả năng thích nghi với thay đổi
- Tăng sự hợp tác giữa các nhóm phát triển và vận hành
- Giảm thiểu rủi ro và chi phí
Kỹ năng để trở thành DevOps
Các kỹ năng cần thiết để trở thành DevOps bao gồm :
- Kiến thức về các công cụ và phần mềm liên quan đến DevOps
- Kiến thức về các quy trình phát triển phần mềm
- Kỹ năng lập trình
- Kỹ năng quản lý dự án
- Kỹ năng giao tiếp và hợp tác
Các tools dành cho DevOps:
Build automation tool:
Các tool để build tự động: dùng để xử lý code chuẩn bị cho triển khai, phát hành.
Các tool dùng để build tự động phụ thuộc vào ngôn ngữ lập trình và các framework.
Ví dụ:
-
Java thì có tool ant, maven, gradle.
-
Javascript thì có tool npm, grunt, gulp.
-
Make: sử dụng rộng rãi trong các hệ thống unix-based
-
Paker: sử dụng để build machine image và container.
CI Tool (continuous integration): Tự động cập nhật code tới 1 nhánh con hay line chính.
-
Jenkins
-
TravisCI
-
Bamboo
Configuration Management tool: quản lý và thay đổi các thành phần trong cơ sở hạ tầng.
-
Puppet
-
Chef
-
Salt
Virtualization Tool: Quản lý các máy chủ ảo, image.
-
Vmware ESXi
-
Microsoft Hyper-V
-
Citrix XenServer
-
Container
-
Docker
Monitoring tool: giám sát hệ thống
-
SignalFX
-
NewRelic
Orchestration tool:
-
Tự động hóa trong xử lý và quy trình làm việc như cung cấp tài nguyên 1 cách tự động.
-
Tự động tăng giảm ứng dụng theo yêu cầu.
-
Scale ứng dụng theo tài nguyên sử dụng.
-
Tự động phát hiện node bị lỗi và thay thế node lỗi bằng 1 node mới.
Có các tool như:
-
Kubernetes : opensource, quản lý container thông qua nhiều host.
-
Zookeeper: opensource.]
Các bạn có thể tìm hiểu thêm tại đây về hành trình cải thiện kiến thức DevOps của mình.