Cơ sở hạ tầng thế nào là mã Code?


13

Cụm từ "Cơ sở hạ tầng như mã" đã được đề cập nhiều lần trong hai tuần qua trong các bối cảnh khác nhau. Điều đó thực sự có ý nghĩa gì trong việc hiểu Cơ sở hạ tầng là Mã?

Câu trả lời:


11

TL; DR : Cơ sở hạ tầng dưới dạng Mã là một cách để tự động hóa và sao lưu môi trường của bạn. Trong trường hợp lý tưởng, sau thảm họa, bạn có thể khôi phục Cơ sở hạ tầng của mình đầy đủ và tự động bằng cách Cung cấp tài nguyên mới, Khôi phục cấu hình từ Kho lưu trữ mã và khôi phục dữ liệu từ bản sao lưu.

Tổng quat

Cơ sở hạ tầng như Mã dựa trên ba khái niệm chính:

Tự động hóa

Quản lý cấu hình là thế hệ thứ 3 của công cụ. Xây dựng trên CFEngine một bộ công cụ mới cho Quản lý cấu hình tự động hiện đang được triển khai rộng rãi. Phổ biến nhất theo thứ tự bảng chữ cái là Ansible, CFEngine, Chef, Puppet, PowerShell DSC và SaltStack . Mỗi ngôn ngữ sẽ có một Ngôn ngữ để mô tả trạng thái cơ sở hạ tầng của bạn, Mô-đun mã để áp dụng các thay đổi đó và cung cấp khả năng mở rộng các công cụ, một số Tác nhân để thực thi các ngôn ngữ đó trên máy chủ và Kho lưu trữ thông tin trung tâm .

Chúng thường sẽ hoạt động ở chế độ đẩy hoặc kéo, kết nối với máy chủ từ một vị trí trung tâm và thực hiện các thay đổi từ xa hoặc chạy trên mỗi máy chủ và kéo thông tin về trạng thái từ vị trí trung tâm và trong mô hình máy khách / máy chủ hoặc trong mô hình phân tán đường.

Các khái niệm quan trọng là cho người quản trị hệ thống hoặc kỹ sư trang web đáng tin cậy để không làm thay đổi trực tiếp với cơ sở hạ tầng, nhưng hãy để tự động hóa làm thay đổi. Bất cứ điều gì được thực hiện thủ công bởi con người nên được coi là dễ hỏng, sẽ sớm được sửa chữa lại bằng tự động hóa hoặc ở dạng nghiêm ngặt hơn vi phạm tính toàn vẹn của cơ sở hạ tầng và gây ra sự phá hủy và xây dựng lại các thành phần bị ảnh hưởng.

Kho lưu trữ mã

Kho lưu trữ mã, lý tưởng tách biệt với Phần mềm lưu trữ kho, sẽ được sử dụng để quản lý tất cả các thay đổi đối với Cơ sở hạ tầng và Tự động hóa có liên quan. Nó nên chứa các tệp và mẫu cấu hình, Playbooks (Cookbooks) mô tả quá trình thay đổi sẽ được xem xét, Mã mở rộng các công cụ tự động hóa CM, Cấu hình cung cấp, Kiểm tra và cảnh báo cơ sở hạ tầng, Thử nghiệm triển khai / triển khai, Tài liệu, Hướng dẫn sử dụng (chưa được tự động) .

Khái niệm quan trọng là đưa ra các đánh giá ngang hàng để thay đổi, có hồ sơ về tất cả các thay đổi và khả năng tự động trở lại trạng thái trước đó trong trường hợp không thể đoán trước và / hoặc chưa được kiểm tra, khả năng triển khai môi trường và kiểm tra thay đổi cấu hình và khả năng tự động triển khai thay đổi mà không thay đổi gây ra bởi lỗi của con người.

Cơ sở hạ tầng được quản lý

Quản lý cơ sở hạ tầng vật lý là một nhiệm vụ trong thế giới thực vượt ra ngoài phần mềm và đòi hỏi bộ kỹ năng rất khác nhau. Bằng cách có thể trừu tượng lớp này thông qua Điện toán đám mây hoặc Trung tâm dữ liệu được quản lý, bạn có nhóm của mình tập trung vào phần quản lý Cơ sở hạ tầng làm tăng giá trị doanh nghiệp.

Mặc dù Cloud Computing cung cấp một cách để bắt đầu và mở rộng nhanh chóng ở giai đoạn sau, các công ty thường nhận ra một số lợi ích và thậm chí tiết kiệm đáng kể trong việc di chuyển các bộ phận của Cơ sở hạ tầng trong các trung tâm dữ liệu của riêng họ cho một mô hình lai. Sở hữu hoặc thuê phần cứng không có nghĩa là bạn cũng phải thuê những người xử lý nó. Ở quy mô này, bạn cần các trung tâm dữ liệu phân phối theo địa lý trên khắp thế giới và có những người có tất cả các kỹ năng cần thiết ở tất cả mọi nơi sẽ rất tốn kém. Bay chúng trên khắp thế giới thêm độ trễ cao cho bất kỳ thay đổi và mức độ không hiệu quả hoạt động bổ sung, đó là một lý do khác để thuê ngoài quản lý trung tâm dữ liệu.

Điểm quan trọng là Cơ sở hạ tầng vật lý được quản lý thường bị lãng quên hoặc bị bỏ qua khái niệm , nhưng cũng quan trọng không kém. Ngay cả khi bạn đã có mọi thứ tự động, tất cả cấu hình được lưu trữ trong kho lưu trữ mã được sao lưu, trừ khi bạn có cách nhanh chóng cung cấp , bạn có một nút cổ chai lớn , có thể dễ dàng xóa tất cả các lợi ích bạn có được bằng hai bước còn lại .


5

Trước khi giải thích chính xác nó là gì, hãy để tôi trích dẫn một định nghĩa thực sự hay, trực tiếp từ Wikipedia :

Cơ sở hạ tầng dưới dạng Mã (IaC) là quá trình quản lý và cung cấp cơ sở hạ tầng máy tính (quy trình, máy chủ kim loại, máy chủ ảo, v.v.) và cấu hình của chúng thông qua các tệp định nghĩa có thể xử lý bằng máy, thay vì cấu hình phần cứng vật lý hoặc sử dụng cấu hình tương tác công cụ.

Được rồi, bây giờ chúng ta hãy xem một công cụ IaC như vậy, Terraform để hiểu rõ hơn về khái niệm này: https://www.terraform.io/

Ngoài ra, đây là những gì Terraform nói về chính nó:

Terraform cho phép bạn tạo, thay đổi và cải thiện cơ sở hạ tầng sản xuất một cách an toàn và có thể dự đoán được. Nó là một công cụ nguồn mở mã hóa API thành các tệp cấu hình khai báo có thể được chia sẻ giữa các thành viên trong nhóm, được coi là mã, được chỉnh sửa, xem xét và phiên bản.

Điều này có nghĩa, người ta có thể mã toàn bộ infra. bao gồm tạo tài nguyên đám mây (/ infra) như phiên bản máy chủ, bộ cân bằng tải, v.v., cùng với các cấu hình hoàn chỉnh (bao gồm các chỉnh sửa cài đặt cơ bản, cài đặt bảo mật, vùng, v.v.) dưới dạng mã, có thể chỉnh sửa, có thể chỉnh sửa và Tất nhiên, có thể xem lại.

Đây là một ví dụ mẫu về mã Terraform để cung cấp tài nguyên AWS:

resource "aws_elb" "frontend" {
  name = "frontend-load-balancer"
  listener {
    instance_port     = 8000
    instance_protocol = "http"
    lb_port           = 80
    lb_protocol       = "http"
  }

  instances = ["${aws_instance.app.*.id}"]
}

resource "aws_instance" "app" {
  count = 5

  ami           = "ami-408c7f28"
  instance_type = "t1.micro"
}

Phần thưởng PS : Ngoài ra, người ta cần hiểu sự khác biệt giữa các công cụ cung cấpđiều phối . Các nhà phát triển nhầm lẫn cái này với cái khác rất thường xuyên và có xu hướng phạm sai lầm khi cố gắng điều chỉnh và sử dụng một công cụ cho những gì nó không được sử dụng cho.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.