Automation [P1] Automation là gì?

BlackDrag0n

Moderator

[P1] Automation là gì?


Xin chào các bạn, trong Series Automation này mình sẽ hướng dẫn làm sao giảm thiểu thời gian các bạn dành ra để làm các công việc hàng ngày như kiểm tra hệ thống, backup dữ liệu, ... bằng cách tự động hoá những công việc đó và những kỹ năng cần thiết để làm điều đó. Điều này giúp bạn có thêm nhiều thời gian hơn cho những công việc khác cũng như để phát triển bản thân.
Để bắt đầu Series Automation này thì các bạn cần có lượng kiến thức cơ bản ở các mục sau:
  • - Linux
  • - Tư duy logic code
  • - Kiến thức cơ bản về platform bạn muốn tự động hoá ( Bạn không thể tự động hoá thứ mà bạn không biết :D)

Trong Series này các bạn sẽ được tìm hiểu về các mục sau:
  • Data format (XML, JSON, YAML)
  • API
  • Script language ( Python, Bash Script)
  • Configuration managerment tools ( Ansible)

Okay, Vậy Automation là gì?

Có rất nhiều cách để định nghĩa khái niệm này. Như là Tự động hoá (Automation) là việc giúp giảm sự tương tác trực tiếp của người quản trị với hệ thống Server, giảm thời gian làm những công việc có thể tự động hoá hàng ngày. Các bạn đều biết, công nghệ mỗi ngày một phát triển, các hệ thống càng phát triển kéo theo người quản trị hệ thống cần dành nhiều thời gian ra để có thể giám sát cũng như xử lý lỗi được. Chính vì điều đó nên các hãng đều có những giải pháp tự động hoá đi kèm theo với các sản phẩm của họ. Tuy nhiên vì tính chất mỗi môi trường hệ thống đều khác nhau và độc lập, không môi trường nào giống môi trường nào nên các giải pháp của các hãng cũng chỉ góp sức một phần thôi. Vì vậy, trong tương lai kỹ năng Automation này sẽ trở nên quan trọng và không thể thiếu đối với mỗi người kỹ sư hệ thống.

Ưu điểm:
  • - Giảm thiểu thời gian cho người quản trị hệ thống.
  • - Giảm thiểu lỗi con người trong việc cấu hình.
  • - Giảm thiểu thời gian Downtime của dịch vụ.
  • - Là một trong những yếu tố để triển khai cloud.
    • Ví dụ: Khi người dùng muốn tạo một VM trên một hệ thống Cloud, thì công việc thường ngày của chúng ta sẽ là clone VM từ template -> Cấp IP -> Public IP đó ra trên Firewall cho người dùng truy cập qua đường SSH hoặc remote. Tất cả những tiến trình đó sẽ được tự động hoá và trở nên trong suốt đổi với người dùng.
Nhược điểm:
Quào, ưu điểm của tự động hoá như các bạn cũng thấy thì nó đem lại quá nhiều lợi ích. Vậy nhược điểm của nó là gì?
1628535130531.png

Như hình trên, theo lý thuyết thì khi các bạn bắt tay vào thực hiện Automation, mọi thứ đều màu hồng, code các bạn viết ra hoạt động mỹ mãn, không hề có bất cứ lỗi gì, việc Automation giúp công việc của bạn giảm thiểu thời gian. Nhưng khi bắt tay vào thì cuộc đời không còn màu hồng nữa, code automation của bạn lỗi, bạn phải debug, phải tìm hướng khác để khắc phục việc đó. Vòng lặp đó sẽ chiếm hết thời gian làm các task của bạn.
= > Vậy nên Automation như con dao hai lưỡi, có thể làm giảm thời gian thực hiện task của các bạn cũng có thể chiếm mất thời gian rảnh rỗi của bạn để debug. :v

Sẽ có hai cách để tự động hoá hệ thống là On-box và Off-box Automation
- On-box Automation: là kiểu tự động hoá quen thuộc đối với mọi người. Có thể ví dụ như một số ví dụ như crontab trên Linux hoặc schedule trên Windows. Setup chạy một đoạn script vào một thời điểm nào đó trong ngày. Hoặc trên Network thì IP SLA, hoặc là Embedded Event Manager trên các thiết bị của Cisco cũng hoạt động tương tự. On-box Automation là cách tự động hoá trên thiết bị có thể chạy các đoạn script, kịch bản được viết sẵn để có thể phục vụ mục đích của mình.
- Out-box Automation: là kiểu tự động hoá có thể sẽ mới đối với mọi người. Tuy nhiên đây là cách mà các hãng cung cấp giải pháp tự động hoá cho người dùng nhiều nhất. Như cách on-box Automation sẽ thực thi đoạn script từ trong thiết bị. Còn kiểu off-box sẽ được thực hiện từ một thiết bị thứ 3 thông qua một số giao thức như SSH, API,...

Để hiểu rõ hơn về cách thức off-box automation này thì các bạn sẽ cần tìm hiểu thêm khái niệm Software Defined Network (SDN). Thông thường một con thiết bị( Router, Switch) sẽ chia thành 2 phần Data Plane và Control Plane. Data Plane là một thành phần của thiết bị mà ở đó tất cả các gói tin được xử lý và truyền đi. Còn Control Plane sẽ là nơi thực hiện cấu hình cũng như quản trị thiết bị. Hai thành phần này sẽ được gắn liền với nhau chặt chẽ. Điều này sẽ trở nên khó khăn khi số lượng thiết bị lớn, dẫn đến việc quản trị cũng như cấu hình trở nên khó khăn. Vì thế trong kiến trúc SDN sẽ tách biệt 2 phần này ra để có thể tự động hoá được.
1628537297291.png

Các bạn có thể lấy ví dụ hệ thống ảo hoá ESXI và vCenter. ESXI sẽ đóng vai trò là Data plane và vCenter sẽ đóng vai trò là Control Plane. Dựa trên mô hình SDN, chúng ta có thể tự viết những đoạn script có thể đóng vái trò Control Plane để đẩy cấu hình xuống các Data Plane theo kiểu off-box Automation.

Đó là tổng quan về Automation. Ở bài tiếp theo, chúng ta sẽ tìm hiểu về Data format.

Cảm ơn các bạn đã theo dõi bài viết của mình. Nếu có bất cứ thắc mắc gì các bạn cứ comment ở phía dưới để mình giải đáp.
 
Top