Configuration Management
Configuration Management (CM) là công cụ được sử dụng để thay đổi trạng thái hệ thống sang trạng thái đã được xác định từ trước. Trong bài viết hôm nay, Bizfly Cloud sẽ đi sâu vào tìm hiểu về Configuration Management, cùng theo dõi nhé!
Configuration Management là gì?
Configuration management (CM) là công cụ thực hiện việc thay đổi trạng thái hiện tại của hệ thống sang trạng thái được xác định trước. Hay nói cách khác, là công cụ hỗ trợ, cấu hình, cài đặt hệ thống một cách tự động.
Configuration management tools
Có rất nhiều công cụ như Ansible, Chef, Puppet, Saltstack ... Loạt bài viết này sẽ không tập trung vào việc so sánh các công cụ CM mà chỉ hướng dẫn bạn cách cài đặt và sử dụng Ansible.
Tại sao lại cần Configuration management?
Ví dụ một ngày sếp bạn vào và bảo bạn triển khai 1 hệ thống LAMP stack gồm 2 server, 1 web và 1 database. OK không vấn đề gì, chỉ cần yum/apt, sửa config apache, php, mysql,.. bạn hoàn thành công việc.
Rồi một ngày khác sếp bạn yêu cầu bạn mở rộng triển khai sang n webserver, m database với cấu hình keepalive, HA, replication database loằng ngoằng... "Anh đùa em?". Không !! Nhưng bạn vẫn hoàn thành công việc.
Lại một ngày khác, sếp bạn vào và nói: "Chú dựng cho anh 1 hệ thống tương tự như vậy nữa nhé. Số lượng server tăng gấp đôi". Và bạn đã khóc
Giờ thì bạn đã hiểu tại sao lại có Ansible, Saltstack rồi chứ ... :D
Lợi ích của configuration management
Giúp cho việc triển khai hệ thống được thực hiện một cách đơn giản và thuận tiện hơn
Tạo sự linh hoạt, mềm dẻo trong quy trình quản lý
Có thể tái sử dụng cho những hệ thống tương tự
Giảm thiểu những thao tác lặp đi lặp lại, tiết kiệm thời gian vận hành
So sánh với shell script (Linux)
Thế shell script thì sao ? Tôi vẫn dùng shell script để triển khai hệ thống. Có vấn đề gì đâu ?
Đúng, shell script vẫn tốt. Nhưng hãy tưởng tượng bạn có 10 server, bạn phải download script trên từng server rồi thực thi script. Tiếp tục, ví dụ 10 server đó của bạn có Ubuntu, CentOS, thì chí ít bạn lại phải có 2 version shell script, như apt >< yum, gói Apache trên Ubuntu là apache2, trên CentOS là httpd... Rồi thì version hệ điều hành khác nhau, như Ubuntu 12.04, 14.04, CentOS thì 5, 6, 7. Bạn cần chục version khác nhau của shell script? (hoặc bạn phải if/else mệt nghỉ). Việc maintaince code rất khó khăn.
Với những công cụ như Ansible, Chef... hỗ trợ sẵn việc xác định distro, phiên bản cũng như sử dụng những cấu trúc linh hoạt, dễ đọc như yaml, jinja2 giúp đỡ rất nhiều cho người quản trị để xây dựng kịch bản hệ thống, maintaince code cũng như tái sử dụng.
Có hạn chế gì không ?
Mặc dù rất tốt nhưng CM không phải là vạn năng. Nếu không phải triển khai 1 hệ thống đủ lớn, hoặc chỉ phải thực hiện trên 1, 2 server thì thực sự không cần thiết dùng đến CM. Viết ra kịch bản có khi tiêu tốn nhiều thời gian hơn việc bạn thực hiện nó bằng lệnh.
Trong những tình huống như hệ thống gặp sự cố hay troubleshooting thì CM không có nhiều tác dụng. Đó là những tình huống cần sự cẩn thận, tránh những sai sót không đáng có.
CM với Cloud Computing
Cloud computing mang đến cho bạn khả năng tạo các server ảo hóa một cách nhanh chóng. Chỉ 1 nút bấm, bạn đã có 10 đến hàng trăm cloud server sẵn sàng phục vụ. Với tốc độ phát triển chóng mặt cùng với cạnh tranh quyết liệt trong việc cung cấp dịch vụ trên Internet, những yêu cầu của sếp như ví dụ trên sẽ xảy ra thường xuyên với những deadline ngắn hạn. Là nhà cung cấp dịch vụ trên nền điện toán đám mây, VCCloud hiểu rằng việc tự động hóa các thao tác cài đặt, cấu hình, triển khai và mở rộng với CM sẽ giúp tiết kiệm rất nhiều thời gian và tiền bạc.
Theo Bizfly Cloud chia sẻ