CÔNG TY CỔ PHẦN DỊCH VỤ CÔNG NGHỆ DATECH

Số 23E4 KĐT Cầu Diễn, Tổ 7, Phú Diễn, Bắc Từ Liêm, Hà Nội


Terraform từ đầu đến cuối – Hiện bao gồm cả Junos!

11/08/2023
Bookmark Tin tức

Terraform từ đầu đến cuối – Hiện bao gồm cả Junos!

Một con ong làm việc một mình có thể hoàn thành rất nhiều công việc. Tuy nhiên, nhiều con ong làm việc cùng nhau có thể xây dựng cả một thuộc địa. Hiệu trưởng này cũng áp dụng cho công nghệ; định cấu hình một công tắc tại một thời điểm giúp dự án tiến lên phía trước, nhưng tự động hóa sẽ thay đổi quy mô triển khai với hiệu ứng biến đổi.

Cơ sở hạ tầng dưới dạng mã (IaC) cung cấp chất xúc tác chuyển đổi và điều bắt buộc là công cụ và phương pháp phải phù hợp với công việc. Terraform của Hashicorp cho phép các tổ chức thúc đẩy quá trình tự động hóa thông qua việc quản lý trạng thái mong muốn của mạng và Terraform đảm nhận công việc khó khăn là tìm ra những gì cần tạo, cập nhật và xóa. Vào năm 2018, một nhóm nhỏ của Juniper Networks đã bắt đầu hành trình chống lại quá trình tự động hóa dựa trên biểu đồ vì nhiều lợi ích mà nó mang lại và đó là tinh thần của Terraform tỏa sáng rực rỡ. Đối với các tổ chức định hướng công nghệ đã liên kết với Terraform, Khung tự động hóa Terraform (JTAF) của Juniper cung cấp phương tiện mở rộng điểm kiểm soát tới các thành phần mạng vật lý và mạng ảo chạy Junos, cho phép tự động hóa cộng tác và liền mạch.

Chúng tôi rất vui mừng thông báo rằng Juniper và Hashicorp đã ký kết thỏa thuận Đối tác Liên minh. Trong blog này, chúng tôi sẽ phác thảo làn sóng phân phối đầu tiên để hỗ trợ cho mối quan hệ đối tác này và để dễ sử dụng cũng như nâng cao trải nghiệm người dùng, Juniper đã tạo và tải Nhà cung cấp vSRX Terraform lên Hashicorp Terraform Registry, với nhiều nội dung khác sẽ được bổ sung tương lai.

Terraform và Junos cung cấp khả năng tự động hóa từ trên xuống dưới của toàn bộ ngăn xếp

Terraform cung cấp cho các tổ chức công cụ Ngày 0 đến Ngày 2 sử dụng Ngôn ngữ cấu hình Hashicorp (HCL), một ngôn ngữ thời gian chạy đơn giản và một hệ sinh thái bổ trợ phong phú, được gọi là nhà cung cấp. Bản thân công cụ Terraform là một tệp nhị phân được biên dịch tĩnh, nghĩa là người dùng không phải lo lắng về các phụ thuộc của ứng dụng và nó có thể chạy trên bất kỳ nền tảng nào có hỗ trợ trình biên dịch Go. HCL giảm đầu vào thành các cặp khóa-giá trị thiết yếu với một số logic xử lý cơ bản. Nói tóm lại, người dùng không cần phải là chuyên gia ngôn ngữ lập trình để tận dụng tối đa Terraform, cũng như không có kỹ năng xây dựng hệ thống tự động hóa thông qua các ngôn ngữ động như Python.

Mỗi nhà cung cấp Terraform cung cấp một số tài nguyên khai báo mà nó có thể quản lý. Ví dụ: một tài nguyên có thể là một phiên bản EC2 trên AWS hoặc trong trường hợp của Juniper, một quy tắc tường lửa hoặc ngang hàng BGP trên Junos. Người dùng Terraform có quyền sử dụng ngữ nghĩa hoạt động của Terraform để kiểm soát cấu hình Junos khi họ triển khai tài nguyên đám mây. Điều này cho phép một công cụ không chỉ kiểm soát việc triển khai cơ sở hạ tầng mà còn cả cấu hình của mạng gắn với cơ sở hạ tầng bên dưới cũng như các ứng dụng. Sức mạnh của Terraform là tự động hóa từ trên xuống dưới của toàn bộ ngăn xếp.

Các công cụ tự động hóa mạng có truyền thống tập trung vào các hành động độc lập như tạo hoặc cập nhật các bước. Terraform đi kèm với bộ đầy đủ các động từ Tạo, Đọc, Cập nhật và Xóa (CRUD) ngay lập tức và kết quả là việc xóa tài nguyên cũng dễ dàng như tạo tài nguyên; nó chỉ là một lời gọi của công cụ Terraform với động từ chính xác. Người thiết kế quy trình công việc không phải làm việc với bất kỳ thứ gì khác ngoài tài nguyên mà họ quan tâm.

Terraform đạt được tính ổn định và quản lý trạng thái bằng cách lưu trữ trạng thái cục bộ và so sánh nó với trạng thái từ xa. Nếu Terraform phát hiện ra rằng trạng thái của các tài nguyên từ xa không khớp với trạng thái mong muốn, thì Terraform sẽ đề xuất một kế hoạch để làm cho chúng khớp với nhau. Với tầm quan trọng của trạng thái cục bộ, điều bắt buộc là nó phải được xử lý một cách thích hợp và được sao lưu hoặc chuyển giao cho một hệ thống phụ trợ như AWS S3, Consul hoặc ETCD [1].

Terraform và Junos cung cấp khả năng tự động hóa từ trên xuống dưới của toàn bộ ngăn xếp Terraform cung cấp cho các tổ chức công cụ

Ngày 0 đến Ngày 2 sử dụng Ngôn ngữ cấu hình Hashicorp (HCL), một ngôn ngữ thời gian chạy đơn giản và một hệ sinh thái bổ trợ phong phú, được gọi là nhà cung cấp. Bản thân công cụ Terraform là một tệp nhị phân được biên dịch tĩnh, nghĩa là người dùng không phải lo lắng về các phụ thuộc của ứng dụng và nó có thể chạy trên bất kỳ nền tảng nào có hỗ trợ trình biên dịch Go. HCL giảm đầu vào thành các cặp khóa-giá trị thiết yếu với một số logic xử lý cơ bản. Nói tóm lại, người dùng không cần phải là chuyên gia ngôn ngữ lập trình để tận dụng tối đa Terraform, cũng như không có kỹ năng xây dựng hệ thống tự động hóa thông qua các ngôn ngữ động như Python.

Mỗi nhà cung cấp Terraform cung cấp một số tài nguyên khai báo mà nó có thể quản lý. Ví dụ: một tài nguyên có thể là một phiên bản EC2 trên AWS hoặc trong trường hợp của Juniper, một quy tắc tường lửa hoặc ngang hàng BGP trên Junos. Người dùng Terraform có quyền sử dụng ngữ nghĩa hoạt động của Terraform để kiểm soát cấu hình Junos khi họ triển khai tài nguyên đám mây. Điều này cho phép một công cụ không chỉ kiểm soát việc triển khai cơ sở hạ tầng mà còn cả cấu hình của mạng gắn với cơ sở hạ tầng bên dưới cũng như các ứng dụng. Sức mạnh của Terraform là tự động hóa từ trên xuống dưới của toàn bộ ngăn xếp.

Các công cụ tự động hóa mạng có truyền thống tập trung vào các hành động độc lập như tạo hoặc cập nhật các bước. Terraform đi kèm với bộ đầy đủ các động từ Tạo, Đọc, Cập nhật và Xóa (CRUD) ngay lập tức và kết quả là việc xóa tài nguyên cũng dễ dàng như tạo tài nguyên; nó chỉ là một lời gọi của công cụ Terraform với động từ chính xác. Người thiết kế quy trình công việc không phải làm việc với bất kỳ thứ gì khác ngoài tài nguyên mà họ quan tâm.

Terraform đạt được tính ổn định và quản lý trạng thái bằng cách lưu trữ trạng thái cục bộ và so sánh nó với trạng thái từ xa. Nếu Terraform phát hiện ra rằng trạng thái của các tài nguyên từ xa không khớp với trạng thái mong muốn, thì Terraform sẽ đề xuất một kế hoạch để làm cho chúng khớp với nhau. Với tầm quan trọng của trạng thái cục bộ, điều bắt buộc là nó phải được xử lý một cách thích hợp và được sao lưu hoặc chuyển giao cho một hệ thống phụ trợ như AWS S3, Consul hoặc ETCD [1].

Với các công cụ tập trung vào thứ tự của các tác vụ trong quy trình công việc, các yếu tố phụ thuộc được quản lý hoàn toàn, cho dù người tiêu dùng có nhận ra điều đó hay không. Với mục đích khám phá văn bản sau, giả sử Alice muốn tạo một phiên ngang hàng BGP qua một liên kết vật lý. Từ khía cạnh mạng truyền thống, đây có thể là một cam kết cấu hình, tuy nhiên, nên tách cấu hình BGP và giao diện. Trong ví dụ này, tài nguyên BGP phụ thuộc vào tài nguyên giao diện. Hơn nữa, chúng ta có thể nhóm các tài nguyên này thành các mô-đun, không gì khác hơn là các thùng chứa logic. Với Terraform, người dùng có khả năng tạo sự phụ thuộc rõ ràng giữa các tài nguyên trong một tệp phẳng hoặc trên các mô-đun, đây là một khái niệm rất mạnh mẽ.

Khi chạy, Terraform sẽ tạo một mô hình biểu đồ trong bộ nhớ của tập hợp tài nguyên mong muốn, vốn đã chiếm các phần phụ thuộc. Biểu đồ trong bộ nhớ này sẽ được duyệt qua và các hành động của Terraform, chẳng hạn như “kế hoạch” và “áp dụng”, có thể được phát hành thông qua ứng dụng.

Hãy nói về Multicloud

Vì Terraform cung cấp HCL, nên có một bộ ngữ nghĩa và cú pháp ràng buộc duy nhất. Điều này có nghĩa là tạo tài nguyên trong AWS, mặc dù có tên khác và bộ đầu vào khác có cùng phong cách hoặc cảm giác như tạo tài nguyên trong Azure. Một số tên khóa sẽ khác với tên tài nguyên, nhưng ngữ nghĩa vẫn giống nhau. Một nhà thiết kế giỏi sẽ xác định đầu vào nào được yêu cầu và đưa chúng vào tập dữ liệu để Terraform sử dụng, do đó bình thường hóa trải nghiệm cho cấu hình nhiều đám mây.

Tuy nhiên, Terraform vẫn là một công cụ Cơ sở hạ tầng dưới dạng mã (IaC) và do đó, không cung cấp thông tin chi tiết về ý định của người dùng. Terraform nhìn thế giới qua lăng kính quản lý tài nguyên và người thiết kế quy trình làm việc có trách nhiệm tìm ra quy trình làm việc nên làm gì.

Tự động hóa mạnh mẽ là chìa khóa dẫn đến tiến bộ thực sự và việc các tổ chức chèn mặt phẳng quản lý và đơn vị vận hành cũng như các thử nghiệm tích hợp là điều bình thường sau khi thực hiện thay đổi cấu hình. Terraform, ngay lập tức, hỗ trợ xác thực thay đổi. Nó thực hiện điều này bằng cách đọc lại trạng thái từ xa ngay sau các bước tạo hoặc cập nhật. Điều này có nghĩa là người dùng Terraform không phải sử dụng các công cụ như jSnapy của Juniper để xác thực trạng thái mặt phẳng quản lý. Mặc dù Terraform không quản lý kiểm tra hoạt động, nhưng không có gì ngăn cản nhà thiết kế tạo các tài nguyên bổ sung kích hoạt các kiểm tra đó trên hệ thống Hệ thống quản lý mạng (NMS) hoặc hệ thống đo từ xa, chẳng hạn như Paragon Insights (trước đây là Healthbot).

Trải nghiệm vận hành mạng trung tâm dữ liệu cải thiện đáng kể khi các tổ chức xoay quanh ít công cụ hơn. Khi ngày càng có nhiều kiến trúc sư, kỹ sư và nhà điều hành mạng trở nên thành thạo trong bộ công cụ giảm bớt, tỷ lệ nhân viên tiêu hao giảm xuống và thời gian phản ứng tăng lên. Ngoài ra, kiến thức vận hành được nhúng trong HCL dễ đọc mà bất kỳ thành viên nào trong nhóm cũng có thể hiểu và sử dụng lại. Nếu nhân viên quyết định tiếp tục, kiến thức bộ lạc mà nếu không sẽ để lại với họ giờ đây đã an toàn và dễ hiểu.

Điều khiển từ đám mây đến mạng với Terraform

Khi cung cấp một máy ảo (VM) hoặc bộ chứa vào một cụm, điều quan trọng là phải đảm bảo rằng cơ sở hạ tầng có thể giao tiếp với bất kỳ thứ gì đã được cung cấp. Các nhà cung cấp của Juniper và những nhà cung cấp do JTAF tạo ra có thể cung cấp các nguyên mẫu bắt buộc như VLAN, danh sách truy cập, quy tắc tường lửa, v.v., trong khi các nhà cung cấp hiện tại xử lý việc cung cấp cơ sở hạ tầng, ví dụ: quay vòng Tường lửa ảo vSRX trong môi trường được lưu trữ.

Tiếp cận bài toán phương sai

Tính nhất quán làm giảm tính biến thiên, điều này thúc đẩy độ tin cậy và cuối cùng là tốc độ. Do tính chất hỗ trợ rộng rãi của Junos trên nhiều nền tảng và số lượng bản phát hành trên mỗi nền tảng ngày càng tăng, việc tạo một nhà cung cấp duy nhất mà không đưa ra các vấn đề về tương thích là không thực tế. Do đó, Juniper đã thiết lập một khuôn khổ tạo ra các nhà cung cấp Terraform cho nền tảng và một phiên bản Junos mà người dùng đang làm việc.

Với Junos, có hàng ngàn tùy chọn cấu hình, nhiều tùy chọn trong số đó được sử dụng bởi ít hơn năm phần trăm người tiêu dùng Junos. Trong trường hợp này, sẽ không hợp lý nếu áp dụng phương pháp 'bồn rửa nhà bếp' và bao gồm mọi thứ. Logic của Juniper là cung cấp đầu vào cho JTAF như một phần của các bước tạo bình thường, điều này cho JTAF biết những gì cần đưa vào trình cung cấp. Đối với cấu hình giao diện và BGP, người dùng nên bao gồm các tài nguyên đó. Khi nói đến các khía cạnh DevOps hoặc SRE của việc sử dụng một công cụ như vậy, các tạo phẩm đầu vào cho JTAF có thể được kiểm soát phiên bản, cũng như các đầu ra của JTAF. Cách tiếp cận này đảm bảo rằng các nhà cung cấp chỉ có các khả năng phù hợp với phiên bản phù hợp với nền tảng và phiên bản mã đang được làm việc.

Kết luận

Phần kết luận Kể từ tháng 10 năm 2021, Juniper Networks đã trở thành Đối tác của Hashicorp Alliances và cam kết cung cấp một hệ thống các tùy chỉnh có kích thước phù hợp cho các nhà cung cấp Terraform. Sự hợp tác này là minh chứng cho sứ mệnh chung của chúng ta là cung cấp trải nghiệm hài hòa và giải pháp IaC đẳng cấp thế giới.

JTAF trao cho các nhóm vận hành sức mạnh của việc xây dựng các nhà cung cấp được kiểm soát phiên bản và khớp chính xác với nền tảng mạng dựa trên Junos và phiên bản phần mềm Junos. Video dưới đây cung cấp hướng dẫn xây dựng nhà cung cấp với JTAF 1.5.