You are on page 1of 4

DEVOPS

- DevOps (phối hợp giữa Development và Operations) là một phương pháp


trong lĩnh vực công nghệ thông tin (IT) tập trung vào việc tích hợp quá trình
phát triển phần mềm và quản lý hệ thống (hoạt động) để tạo ra môi trường
làm việc mượt mà và hiệu quả hơn. DevOps giúp tạo ra sự liên kết chặt chẽ
giữa các nhóm phát triển phần mềm (Development) và quản lý hệ thống
(Operations) để đạt được mục tiêu chung của việc cung cấp sản phẩm phần
mềm chất lượng cao một cách nhanh chóng và đáng tin cậy.
- Các yếu tố chính của DevOps bao gồm:
 Tự động hóa: Sử dụng các công cụ để tự động hóa các quy trình phát
triển, kiểm tra, triển khai và quản lý hệ thống để giảm thiểu sự can thiệp
thủ công và nguy cơ lỗi.
 Liên kết liên tục: Phối hợp giữa các quy trình phát triển và hoạt động để
đảm bảo sự liên tục và linh hoạt trong việc cung cấp các tính năng và sửa
lỗi.
 Kiểm tra liên tục: Áp dụng kiểm tra tự động trong toàn bộ quy trình để
đảm bảo chất lượng sản phẩm và xác định lỗi sớm.
 Triển khai liên tục: Thực hiện triển khai sản phẩm một cách liên tục để
giảm thiểu thời gian chờ đợi và đảm bảo tính nhất quán của môi trường.
 Theo dõi và giám sát: Sử dụng giám sát liên tục để theo dõi hiệu suất và
tính trạng của hệ thống, từ đó giúp xác định và giải quyết vấn đề nhanh
chóng.
 Hợp tác và giao tiếp: Thúc đẩy sự hợp tác và giao tiếp giữa các nhóm
phát triển và quản lý hệ thống để đảm bảo hiểu rõ mục tiêu và nguy cơ
chung.
 DevOps giúp tạo ra môi trường làm việc hiệu quả hơn, giảm thiểu thời
gian phát triển và triển khai phần mềm, và cải thiện tính ổn định của hệ
thống, giúp doanh nghiệp thích nghi nhanh chóng với thay đổi và cạnh
tranh tốt hơn trên thị trường.
1. Các thuật ngữ
- CI/CD (Continuous Integration/Continuous Deployment): Kỹ thuật liên
quan đến tự động hóa quy trình tích hợp liên tục (CI) và triển khai liên
tục (CD), giúp phát triển và triển khai phần mềm một cách nhanh chóng
và đáng tin cậy.
- Automation (Tự động hóa): Sử dụng các công cụ và kịch bản để tự động
hóa các công việc trong quy trình phát triển và triển khai.
- Version Control (Quản lý phiên bản): Sử dụng hệ thống quản lý phiên
bản như Git để theo dõi, lưu trữ và quản lý mã nguồn của phần mềm.
- Containerization (Chứa ứng dụng): Sử dụng các công nghệ như Docker
để đóng gói ứng dụng và tất cả các phụ thuộc của nó trong một
container duy nhất để dễ dàng triển khai và quản lý.
- Orchestration (Orchestration): Sử dụng các công cụ như Kubernetes để
quản lý và điều phối các container trong môi trường sản xuất.
- Infrastructure as Code (IaC): Sử dụng mã để tự động hóa quá trình triển
khai và quản lý hạ tầng hệ thống, chẳng hạn như sử dụng công cụ như
Terraform.
- Microservices (Kiến trúc microservices): Mô hình phát triển ứng dụng
bằng cách chia nhỏ ứng dụng thành các dịch vụ nhỏ độc lập, dễ quản lý
và triển khai.
- Monitoring and Logging (Giám sát và ghi log): Sử dụng các công cụ giám
sát như Prometheus và ELK Stack để theo dõi hiệu suất và tính trạng hệ
thống.
- Scalability (Khả năng mở rộng): Khả năng mở rộng hạ tầng và ứng dụng
để đáp ứng nhu cầu người dùng.
- DevSecOps: Kết hợp bảo mật vào quy trình DevOps để đảm bảo rằng an
ninh được tích hợp ngay từ đầu.
- GitOps: Mô hình quản lý hạ tầng và ứng dụng bằng việc lưu trữ cấu hình
trong kho lưu trữ Git.
- Artifact (Tài liệu, tác phẩm): Bất kỳ thành phần phần mềm nào (chẳng
hạn như gói, ứng dụng hoặc hình ảnh container) được sử dụng trong
quy trình phát triển và triển khai.
- Blue-Green Deployment (Triển khai Blue-Green): Phương pháp triển
khai ứng dụng mới bên cạnh phiên bản cũ, cho phép việc chuyển đổi
mạch không gián đoạn.
- Immutable Infrastructure (Hạ tầng bất biến): Mô hình xây dựng và triển
khai hạ tầng mà không thay đổi trạng thái của hệ thống, mà thay vào đó
tạo ra các phiên bản mới.
- Pipeline (Luồng công việc): Chuỗi các bước và công việc trong quy trình
CI/CD.
- SLA (Service Level Agreement): Giao kèo mức dịch vụ, định nghĩa mức
độ dịch vụ và hiệu suất mà dự án hoặc dịch vụ phải tuân thủ.
- Failure Recovery (Khôi phục khi lỗi): Chiến lược và quy trình để xử lý lỗi
và khôi phục khi hệ thống hoặc ứng dụng gặp sự cố.
2. Docker
Docker là một nền tảng mã nguồn mở để đóng gói ứng dụng và phụ thuộc
của chúng vào các container độc lập.
Containers là môi trường đơn giản, bao gồm ứng dụng và tất cả các phụ
thuộc của nó, chạy giống nhau trên mọi nền tảng.
Docker giúp tạo ra các môi trường cơ bản và di động để triển khai ứng
dụng, đảm bảo tính nhất quán giữa môi trường phát triển và môi trường
sản xuất.
3. Jenkins
Jenkins là một công cụ mã nguồn mở cho việc tích hợp liên tục và triển khai
liên tục.
Jenkins cho phép tự động hóa quy trình xây dựng, kiểm tra, và triển khai
ứng dụng từ mã nguồn.
Nó hỗ trợ tích hợp với nhiều công cụ, cung cấp quản lý và theo dõi tiến
trình xây dựng và triển khai.
4. Kubernetes
Kubernetes là một hệ thống mã nguồn mở để quản lý và triển khai các
container, thường được sử dụng trên các môi trường đám mây và máy chủ
vật lý.
Kubernetes giúp tự động hóa việc quản lý và điều phối các container, cung
cấp khả năng mở rộng và khả năng tự phục hồi khi lỗi.
Nó cho phép bạn triển khai và quản lý các ứng dụng một cách hiệu quả
trong môi trường sản xuất.
5. Terraform
Terraform là một công cụ mã nguồn mở để quản lý cơ sở hạ tầng như máy
chủ, mạng, và tài nguyên đám mây.
Terraform sử dụng ngôn ngữ HashiCorp Configuration Language (HCL) để
định nghĩa cơ sở hạ tầng dưới dạng mã.
Nó cho phép tự động hóa việc triển khai và quản lý tài nguyên cơ sở hạ tầng
trong môi trường đám mây và on-premises.
6. Ansible
Ansible là một công cụ tự động hóa và quản lý cấu hình mã nguồn mở.
Ansible sử dụng mã YAML để định nghĩa các tác vụ và cấu hình hệ thống.
Nó cho phép bạn tự động hóa các nhiệm vụ quản lý, triển khai ứng dụng và
quản lý cấu hình trên máy chủ vật lý và máy chủ đám mây.

You might also like