Chống mô hình: Quản lý tài nguyên Edge mà không cần sử dụng tính năng quản lý kiểm soát nguồn

Bạn đang xem tài liệu về Apigee Edge.
Truy cập vào tài liệu Apigee X.
thông tin

Apigee Edge cung cấp nhiều loại tài nguyên và mỗi loại tài nguyên phục vụ một mục đích riêng. Chỉ những người dùng có các vai trò và quyền cần thiết mới có thể định cấu hình (tức là tạo, cập nhật và/hoặc xoá) một số tài nguyên thông qua giao diện người dùng Edge, API quản lý hoặc các công cụ sử dụng API quản lý. Ví dụ: chỉ quản trị viên tổ chức thuộc một tổ chức cụ thể mới có thể định cấu hình các tài nguyên này. Điều này có nghĩa là người dùng cuối không thể định cấu hình các tài nguyên này thông qua cổng thông tin dành cho nhà phát triển hoặc bằng bất kỳ phương thức nào khác. Các tài nguyên này bao gồm:

  • API proxy
  • Luồng dùng chung
  • Sản phẩm API
  • Bộ nhớ đệm
  • KVM
  • Kho khoá và kho khoá tin cậy
  • Máy chủ ảo
  • Máy chủ đích
  • Tệp tài nguyên

Mặc dù các tài nguyên này có quyền truy cập bị hạn chế, nhưng nếu có bất kỳ sửa đổi nào đối với các tài nguyên này, ngay cả khi do người dùng được uỷ quyền thực hiện, thì dữ liệu cũ sẽ bị ghi đè bằng dữ liệu mới. Điều này là do các tài nguyên này chỉ được lưu trữ trong Apigee Edge theo trạng thái hiện tại của chúng. Các trường hợp ngoại lệ chính đối với quy tắc này là các proxy API và các luồng được chia sẻ.

API Proxy và Shared Flow trong chế độ Kiểm soát phiên bản

Các proxy API và luồng dùng chung được quản lý (tức là được tạo, cập nhật và triển khai) thông qua các bản sửa đổi. Các bản sửa đổi được đánh số tuần tự, cho phép bạn thêm các thay đổi mới và lưu dưới dạng bản sửa đổi mới hoặc đảo ngược một thay đổi bằng cách triển khai bản sửa đổi trước đó của proxy API/luồng dùng chung. Tại một thời điểm bất kỳ, chỉ có thể có một bản sửa đổi của một luồng proxy/luồng dùng chung API được triển khai trong một môi trường, trừ phi các bản sửa đổi có đường dẫn cơ sở khác.

Mặc dù các proxy API và luồng dùng chung được quản lý thông qua các bản sửa đổi, nhưng nếu có bất kỳ nội dung sửa đổi nào được thực hiện đối với một bản sửa đổi hiện có, thì bạn không thể quay lại vì các thay đổi cũ sẽ bị ghi đè.

Kiểm tra và nhật ký

Apigee Edge cung cấp các tính năng Kiểm traNhật ký API, Sản phẩm và tổ chức có thể hữu ích trong các trường hợp khắc phục sự cố. Các tính năng này cho phép bạn xem thông tin như ai đã thực hiện các thao tác cụ thể (tạo, đọc, cập nhật, xoá, triển khai và huỷ triển khai) và thời điểm các thao tác đó được thực hiện trên tài nguyên Edge. Tuy nhiên, nếu bạn thực hiện bất kỳ thao tác cập nhật hoặc xoá nào trên bất kỳ tài nguyên Edge nào, thì nhật ký kiểm tra sẽ không thể cung cấp cho bạn dữ liệu cũ hơn.

Antipattern

Quản lý trực tiếp các tài nguyên Edge (được liệt kê ở trên) thông qua giao diện người dùng Edge hoặc API quản lý mà không cần sử dụng hệ thống kiểm soát nguồn

Có một quan niệm sai lầm rằng Apigee Edge sẽ có thể khôi phục tài nguyên về trạng thái trước đó sau khi sửa đổi hoặc xoá. Tuy nhiên, Edge Cloud không cung cấp tính năng khôi phục tài nguyên về trạng thái trước đó. Do đó, người dùng có trách nhiệm đảm bảo rằng tất cả dữ liệu liên quan đến các tài nguyên Edge đều được quản lý thông qua hệ thống quản lý kiểm soát nguồn, để dữ liệu cũ có thể nhanh chóng được khôi phục trong trường hợp vô tình xoá hoặc trong trường hợp cần khôi phục mọi thay đổi. Điều này đặc biệt quan trọng đối với môi trường phát hành, nơi dữ liệu này là bắt buộc đối với lưu lượng truy cập trong thời gian chạy.

Hãy cùng giải thích điều này bằng một vài ví dụ và loại tác động có thể xảy ra nếu dữ liệu không được quản lý thông qua hệ thống kiểm soát nguồn và bị sửa đổi/xoá một cách cố ý hoặc vô tình:

Ví dụ 1: Xoá hoặc sửa đổi proxy API

Khi một proxy API bị xoá hoặc một thay đổi được triển khai trên một bản sửa đổi hiện có, mã trước đó sẽ không thể khôi phục. Nếu proxy API chứa mã Java, JavaScript, Node.js hoặc Python không được quản lý trong hệ thống quản lý kiểm soát nguồn (SCM) bên ngoài Apigee, thì nhiều công việc và nỗ lực phát triển có thể bị mất.

Ví dụ 2: Xác định các proxy API bằng cách sử dụng các máy chủ ảo cụ thể

Một chứng chỉ trên máy chủ ảo sắp hết hạn và máy chủ ảo đó cần được cập nhật. Việc xác định proxy API nào sử dụng máy chủ ảo đó cho mục đích kiểm thử có thể gặp khó khăn nếu có nhiều proxy API. Nếu các proxy API được quản lý trong một hệ thống SCM bên ngoài Apigee, thì bạn sẽ dễ dàng tìm kiếm kho lưu trữ.

Ví dụ 3: Xoá kho khoá/kho tin cậy

Nếu bạn xoá một kho khoá/kho lưu trữ đáng tin cậy mà một cấu hình máy chủ ảo hoặc máy chủ đích sử dụng, thì bạn sẽ không thể khôi phục kho khoá/kho lưu trữ đáng tin cậy đó, trừ phi bạn lưu trữ thông tin chi tiết về cấu hình của kho khoá/kho lưu trữ đáng tin cậy (bao gồm cả chứng chỉ và/hoặc khoá riêng tư) trong tính năng kiểm soát nguồn.

Tác động

  • Nếu bạn xoá bất kỳ tài nguyên nào trên Edge, thì bạn sẽ không thể khôi phục tài nguyên và nội dung của tài nguyên đó từ Apigee Edge.
  • Các yêu cầu API có thể không thành công do lỗi không mong muốn, dẫn đến tình trạng ngừng hoạt động cho đến khi tài nguyên được khôi phục về trạng thái trước đó.
  • Rất khó để tìm kiếm các mối quan hệ phụ thuộc lẫn nhau giữa các proxy API và các tài nguyên khác trong Apigee Edge.

Phương pháp hay nhất

  • Sử dụng mọi SCM tiêu chuẩn kết hợp với quy trình tích hợp liên tục và triển khai liên tục (CICD) để quản lý các proxy API và luồng dùng chung.
  • Sử dụng mọi SCM tiêu chuẩn để quản lý các tài nguyên Edge khác, bao gồm cả sản phẩm API, bộ nhớ đệm, KVM, máy chủ đích, máy chủ ảo và kho khoá.
    • Nếu có bất kỳ tài nguyên Edge nào hiện có, hãy sử dụng các API quản lý để lấy thông tin chi tiết về cấu hình cho các tài nguyên đó dưới dạng tải trọng JSON/XML và lưu trữ trong hệ thống quản lý kiểm soát nguồn.
    • Quản lý mọi nội dung cập nhật mới cho các tài nguyên này trong hệ thống quản lý kiểm soát nguồn.
    • Nếu cần tạo tài nguyên Edge mới hoặc cập nhật tài nguyên Edge hiện có, hãy sử dụng tải trọng JSON/XML thích hợp được lưu trữ trong hệ thống quản lý kiểm soát nguồn và cập nhật cấu hình trong Edge bằng cách sử dụng API quản lý.

* Bạn không thể xuất KVM đã mã hoá ở dạng văn bản thuần tuý từ API. Người dùng có trách nhiệm lưu giữ hồ sơ về những giá trị được đưa vào KVM đã mã hoá.

Tài liệu đọc thêm