Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • IaC

    Infrastructure as Code (IaC) là gì? Khi hạ tầng bắt đầu được quản lý như phần mềm


    Có một giai đoạn trong ngành IT mà việc quản trị hạ tầng gần như đồng nghĩa với việc SSH vào từng server, telnet/console vào từng thiết bị mạng, hoặc mở giao diện web để click từng cấu hình.

    Dân network gọi vui đó là “finger net” — cấu hình bằng… ngón tay.

    Nghe quen chứ?
    • Thêm VLAN? SSH vào switch.
    • Tạo VM mới? Click trong vCenter.
    • Mở firewall rule? Login firewall GUI.
    • Scale cloud environment? Vào portal click tiếp.

    Khi hạ tầng chỉ vài thiết bị, cách này vẫn sống được.

    Nhưng khi hệ thống có:
    • 100 VM
    • 50 switch/router
    • nhiều firewall
    • hybrid cloud (AWS + Azure + on-prem)
    • CI/CD pipeline cần provisioning tự động

    …thì cách làm thủ công bắt đầu sụp đổ.
    IaC là gì?


    Infrastructure as Code (IaC) là phương pháp quản lý, cấu hình và provisioning hạ tầng CNTT thông qua code thay vì thao tác trực tiếp trên thiết bị.

    Nói ngắn gọn:

    Thay vì:
    “Đăng nhập vào thiết bị và cấu hình.”

    Ta chuyển sang:
    “Mô tả trạng thái mong muốn của hệ thống bằng code.”

    Sau đó công cụ automation sẽ đọc code đó và triển khai cấu hình tương ứng.

    Đây là định nghĩa cốt lõi:

    The management and provisioning of computer infrastructure through code and data structures instead of direct device management.

    Dịch sát nghĩa:

    Quản lý và triển khai hạ tầng máy tính thông qua mã nguồn và cấu trúc dữ liệu thay vì thao tác trực tiếp lên thiết bị.
    Vấn đề của cách quản trị truyền thống


    Quản lý hạ tầng thủ công thường gặp các vấn đề: 1. Chậm


    Cấu hình 1 server mất 10 phút.

    100 server?

    => hơn 16 giờ.

    Nếu có lỗi giữa chừng thì còn lâu hơn.
    2. Dễ sai


    Con người copy-paste nhầm là chuyện bình thường.

    Ví dụ:
    ip route 0.0.0.0 0.0.0.0 10.1.1.2

    đáng lẽ phải là:
    10.1.1.1

    Một typo nhỏ có thể làm outage.
    3. Không nhất quán


    Server A:
    NTP = ntp1.company.local

    Server B:
    NTP = ntp.local

    Server C:

    không cấu hình.

    Rất nhanh hệ thống drift khỏi chuẩn.
    4. Không audit tốt


    Ai đổi cấu hình?

    Đổi lúc nào?

    Rollback thế nào?

    Nếu làm bằng click GUI thì rất khó truy vết.
    Triết lý cốt lõi của IaC: Desired State


    IaC không nói:
    “Hãy chạy lệnh này.”

    IaC nói:
    “Tôi muốn hệ thống ở trạng thái này.”

    Ví dụ:

    Muốn có:
    • 3 EC2 instances
    • 1 VPC
    • 2 subnets
    • 1 load balancer

    Bạn chỉ mô tả:
    resource "aws_instance" ...
    resource "aws_vpc" ...

    Terraform sẽ lo phần còn lại.

    Đây gọi là:

    Desired State Configuration
    IaC hoạt động như thế nào?


    Luồng cơ bản: Bước 1 — Define


    Khai báo trạng thái mong muốn:

    Ví dụ:
    hostname: web01
    packages:
    - nginx
    - docker
    Bước 2 — Compare


    Automation tool kiểm tra trạng thái thực tế.

    Ví dụ:
    • nginx đã cài chưa?
    • docker đã có chưa?
    • hostname đúng chưa?

    Bước 3 — Remediate


    Nếu lệch chuẩn:

    Tool tự sửa.

    Ví dụ:
    apt install nginx
    Bước 4 — Maintain


    Nếu ai đó manual sửa cấu hình:

    IaC có thể đưa hệ thống về đúng baseline.

    Đây là chống:

    configuration drift
    Các công cụ IaC phổ biến

    Terraform


    Rất phổ biến cho cloud provisioning.

    Dùng để tạo:
    • AWS
    • Azure
    • GCP
    • VMware
    • Kubernetes resources

    Ví dụ:
    terraform apply

    Terraform mạnh ở:

    Provisioning infrastructure
    Ansible


    Agentless automation.

    Dùng SSH/WinRM/API.

    Phù hợp:
    • server config
    • network automation
    • patching
    • compliance

    Ví dụ:
    - hosts: routers
    tasks:
    - ios_config:

    Rất hợp với dân NetDevOps.
    Puppet


    Model agent-based.

    Có:
    • Puppet Server
    • Puppet Agent

    Mạnh ở:
    • state enforcement
    • configuration compliance

    Chef


    Code-centric automation.

    Infrastructure được mô tả bằng Ruby DSL.
    SaltStack


    Remote execution + configuration management.

    Scale lớn khá tốt.
    AWS CloudFormation


    IaC native của AWS.

    Nếu all-in AWS thì rất hữu ích.
    Pulumi


    IaC nhưng dùng ngôn ngữ lập trình thật:
    • Python
    • TypeScript
    • Go
    • C#

    Khá hấp dẫn với developer.
    Network Engineer có cần IaC không?


    Rất cần.

    Nhiều người nghĩ IaC chỉ dành cho cloud engineer.

    Sai.

    Ví dụ network automation:

    Thay vì:
    ssh sw1
    vlan 10
    name USERS

    Ta viết:
    vlans:
    - id: 10
    name: USERS

    Ansible push xuống 200 switch.

    Đây chính là IaC.
    IaC vs ClickOps vs CLI Ops


    ClickOps
    • GUI
    • nhanh cho lab nhỏ
    • khó scale
    • khó audit

    CLI Ops
    • linh hoạt
    • mạnh
    • vẫn manual

    IaC
    • repeatable
    • version controlled
    • scalable
    • auditable
    • automatable

    Lợi ích thực chiến


    IaC giúp:
    • triển khai nhanh
    • rollback dễ
    • peer review config
    • CI/CD cho infrastructure
    • giảm human error
    • compliance tốt hơn
    • chuẩn hóa môi trường

    Góc nhìn DevOps thực tế


    IaC là lý do infrastructure bắt đầu được đối xử như software.

    Điều đó kéo theo:
    • Git cho config
    • pull request
    • code review
    • automated testing
    • deployment pipeline

    Hạ tầng không còn là “cấu hình thủ công”.

    Mà trở thành:

    software-defined operational model
    Kết luận


    Nếu DevOps thay đổi cách build software…

    thì IaC thay đổi cách build infrastructure.

    Từ:

    “login vào thiết bị để sửa”

    sang:

    “commit code để thay đổi hệ thống.”

    Đó là một thay đổi tư duy rất lớn.

    Và với Cloud, NetDevOps, Platform Engineering, AI Infrastructure…

    IaC gần như đã trở thành kỹ năng nền tảng.
    Attached Files
    Đặng Quang Minh, CCIE#11897 (Enterprise Infrastructure, Wireless, Automation, AI), CCSI#31417

    Email : dangquangminh@vnpro.org
    https://www.facebook.com/groups/vietprofessional/
Working...
X