•10 min read

Kỹ thuật Nền tảng: Xây dựng Lộ trình Vàng cho Nhà phát triển

Kỹ thuật Nền tảng: Xây dựng Lộ trình Vàng cho Nhà phát triển

Trong bối cảnh phát triển cloud-native đang thay đổi nhanh chóng, các tổ chức liên tục tìm kiếm các phương pháp cân bằng quyền tự chủ của nhà phát triển với kiểm soát vận hành, bảo mật và tuân thủ. Câu trả lời, ngày càng rõ ràng, là Platform Engineering. Bằng cách trừu tượng hóa sự phức tạp của hạ tầng hiện đại và thiết lập các chuỗi công cụ tự phục vụ, được quản lý cẩn thận—thường được gọi là Nền tảng Phát triển Nội bộ (IDP)—các nhóm platform engineering đang cách mạng hóa cách phần mềm được xây dựng và phân phối. Trọng tâm của mô hình này là khái niệm Golden Path (hay con đường trải nhựa).

Trong bài phân tích chuyên sâu về kỹ thuật này, chúng ta sẽ khám phá cơ chế của platform engineering, kiến trúc của một IDP, và cách xây dựng cũng như thực thi hiệu quả các Golden Path để giảm đáng kể gánh nặng nhận thức trong khi tối đa hóa năng suất của nhà phát triển.

Audio Briefing
0:00 / 0:00

Khủng hoảng Gánh nặng Nhận thức

Để hiểu tại sao platform engineering lại thu hút sự chú ý lớn đến vậy, chúng ta phải xem xét vấn đề mà nó giải quyết. Trong thập kỷ qua, phong trào "shift left" đã yêu cầu các nhà phát triển đảm nhận những trách nhiệm trước đây do các nhóm chuyên biệt xử lý: cấp phát hạ tầng, tạo pipeline CI/CD, quét bảo mật, điều phối container và khả năng quan sát.

Mặc dù "bạn xây dựng nó, bạn vận hành nó" trao quyền cho các nhóm, nhưng nó cũng tạo ra một gánh nặng nhận thức không bền vững. Các nhà phát triển buộc phải trở thành quản trị viên Kubernetes bán thời gian, chuyên gia Terraform và kỹ sư CI/CD, làm phân tán sự tập trung của họ khỏi việc viết logic nghiệp vụ. Ngăn xếp cloud-native hiện đại (Kubernetes, service mesh, distributed tracing, quản lý bí mật, IaC) cực kỳ phức tạp. Việc mong đợi mọi nhà phát triển thành thạo các lĩnh vực này là một anti-pattern.

Advertisement

Platform Engineering và IDP ra đời

Platform engineering coi trải nghiệm của nhà phát triển nội bộ như một sản phẩm. Nhóm nền tảng xây dựng một Nền tảng Phát triển Nội bộ (IDP), một lớp tự phục vụ nằm trên hạ tầng cơ bản (AWS, GCP, Azure, Kubernetes, v.v.) và tích hợp các công cụ của tổ chức vào một quy trình làm việc gắn kết, tiêu chuẩn hóa.

Một IDP không chỉ đơn thuần là một tập hợp các script hay một trang wiki về các thực hành tốt nhất. Nó là một nền tảng hữu hình, thường đi kèm với giao diện người dùng (như Backstage), một API và một CLI, cung cấp các golden path cho các tác vụ phổ biến.

Các thành phần cốt lõi của một IDP hiện đại

  1. Mặt phẳng điều khiển dành cho nhà phát triển (UI/API/CLI): Giao diện mà qua đó các nhà phát triển tương tác với nền tảng. Các công cụ như Backstage của Spotify hoặc các công cụ CLI chuyên biệt cung cấp một cổng thống nhất để tạo dịch vụ mới, xem trạng thái dịch vụ và quản lý hạ tầng.
  2. Điều phối hạ tầng: Công cụ chuyển đổi yêu cầu của nhà phát triển thành tài nguyên thực tế. Điều này thường liên quan đến các quy trình làm việc GitOps (ví dụ: ArgoCD, Flux) hoạt động trên Hạ tầng dưới dạng Mã (Terraform, Pulumi, Crossplane).
  3. Tích hợp & Phân phối Liên tục (CI/CD): Các pipeline tiêu chuẩn hóa, mô-đun (ví dụ: quy trình làm việc có thể tái sử dụng của GitHub Actions, bao gồm GitLab CI, pipeline Tekton) xử lý việc xây dựng, kiểm thử, quét bảo mật và triển khai.
  4. Ngăn xếp Khả năng Quan sát: Tự động hóa công cụ và bảng điều khiển cho việc ghi nhật ký (ví dụ: Loki, ELK), số liệu (Prometheus, Datadog) và truy vết phân tán (OpenTelemetry, Jaeger).
  5. Bảo mật & Quản trị (Guardrails): Các cơ chế thực thi chính sách tự động (ví dụ: OPA Gatekeeper, Kyverno) đảm bảo tất cả các tài nguyên được cấp phát tuân thủ các tiêu chuẩn bảo mật mà không yêu cầu xem xét thủ công.

Xây dựng Golden Path

Một Golden Path là một cách tiếp cận có chủ đích, được tài liệu hóa kỹ lưỡng và được hỗ trợ đầy đủ để xây dựng và triển khai một loại ứng dụng cụ thể (ví dụ: một microservice Spring Boot, một frontend React, một worker nền Go). Đó là "con đường trải nhựa" xuyên qua địa hình phức tạp của ngăn xếp công nghệ của tổ chức.

Điều quan trọng là, một golden path không phải là một cái lồng. Các nhà phát triển có thể tự do đi chệch khỏi con đường nếu trường hợp sử dụng của họ yêu cầu, nhưng họ sẽ mất đi những lợi ích của việc cấp phát tự động, bảo mật tích hợp và hỗ trợ từ nhóm nền tảng. Mục tiêu là làm cho golden path trở nên dễ dàng và không có ma sát đến mức các nhà phát triển tự nhiên chọn nó.

Bước 1: Tiêu chuẩn hóa và Scaffolding

Khởi đầu của golden path là khởi tạo dự án. Nền tảng nên cung cấp các template (ví dụ: Backstage Software Templates, Cookiecutter) để tạo cấu trúc kho lưu trữ mới với mọi thứ cần thiết để đưa vào sản xuất:

  • Khung mã nguồn: Cấu trúc thư mục cơ bản và mã boilerplate.
  • Dockerfile: Một image cơ sở được tối ưu hóa, an toàn với các bản dựng multistage phù hợp.
  • Cấu hình CI/CD: Các tệp pipeline được cấu hình sẵn để gọi các quy trình làm việc tiêu chuẩn của tổ chức.
  • Hạ tầng dưới dạng Mã (IaC): Các biểu đồ Helm, lớp phủ Kustomize, hoặc manifest Crossplane định nghĩa cấu trúc triển khai của dịch vụ.
  • Cấu hình Khả năng Quan sát: Các bảng điều khiển, cảnh báo và thiết lập truy vết mặc định.

Với một lệnh duy nhất (ví dụ: idp create web-service --name payment-gateway), nhà phát triển sẽ có một ứng dụng "Hello World" hoạt động đầy đủ, có thể triển khai ngay lập tức, được giám sát và tuân thủ.

Bước 2: Trừu tượng hóa thông qua API nền tảng và CRD

Để che chắn các nhà phát triển khỏi sự phức tạp của hạ tầng, các IDP hiện đại thường tận dụng API Kubernetes làm mặt phẳng điều khiển phổ quát, sử dụng Custom Resource Definitions (CRD).

Thay vì yêu cầu các nhà phát triển viết các Kubernetes Deployments, Services, Ingresses và HorizontalPodAutoscalers thô, nhóm nền tảng cung cấp một lớp trừu tượng cấp cao hơn. Ví dụ, một CRD Microservice tùy chỉnh:

apiVersion: platform.example.com/v1alpha1
kind: Microservice
metadata:
  name: payment-gateway
spec:
  image: registry.example.com/payment-gateway
  replicas: 3
  port: 8080
  public: true
  database:
    type: postgres
    version: "15"

Một bộ điều khiển nền tảng (được viết bằng Go sử dụng Kubebuilder, hoặc sử dụng Crossplane) theo dõi tài nguyên Microservice này và tự động tạo ra các nguyên thủy Kubernetes phức tạp bên dưới, cấp phát cơ sở dữ liệu PostgreSQL thông qua API của nhà cung cấp đám mây, chèn các bí mật cần thiết và cấu hình định tuyến ingress. Nhà phát triển chỉ tương tác với giao diện đơn giản, khai báo.

Bước 3: Guardrails tự động và GitOps

Golden path phải an toàn một cách nội tại. Bằng cách sử dụng phương pháp GitOps, tất cả các thay đổi đối với cấu hình hạ tầng và ứng dụng được quản lý thông qua các pull request.

Trong quá trình CI, các công cụ như Conftest, Checkov hoặc OPA (Open Policy Agent) đánh giá các manifest dựa trên các chính sách của tổ chức. Chúng có đang sử dụng image cơ sở được phê duyệt không? Các giới hạn tài nguyên có được định nghĩa không? Ứng dụng có đang cố gắng chạy dưới quyền root không?

Nếu nhà phát triển đi theo golden path, các kiểm tra này sẽ tự động vượt qua. Nếu họ đi chệch hướng không đúng cách, pipeline sẽ thất bại nhanh chóng với phản hồi có thể hành động, thực thi tuân thủ mà không cần sự can thiệp của con người.

Thay đổi Văn hóa

Xây dựng công nghệ thường dễ hơn việc thúc đẩy thay đổi văn hóa. Để một IDP thành công, nó phải được coi là một sản phẩm thực sự với các nhà phát triển là khách hàng chính.

  • Ủng hộ nhà phát triển: Nhóm nền tảng phải tích cực quảng bá nền tảng, thu thập phản hồi và ưu tiên các vấn đề gây khó khăn cho nhà phát triển.
  • Tài liệu: Các golden path phải được tài liệu hóa một cách hoàn hảo. Nếu một nhà phát triển không thể tìm ra cách sử dụng con đường trải nhựa, họ sẽ tự xây dựng con đường đất của riêng mình.
  • Phát triển lặp đi lặp lại: Bắt đầu nhỏ. Đừng cố gắng xây dựng một nền tảng nguyên khối hỗ trợ mọi trường hợp ngoại lệ ngay từ ngày đầu tiên. Tập trung vào các trường hợp sử dụng phổ biến nhất, xây dựng một golden path xuất sắc cho những trường hợp đó và lặp lại dựa trên các số liệu (ví dụ: thời gian onboarding, tần suất triển khai).
Advertisement

Kết luận

Platform engineering và việc xây dựng các golden path đại diện cho sự trưởng thành của triết lý DevOps. Bằng cách trừu tượng hóa hạ tầng cơ bản và cung cấp trải nghiệm nhà phát triển tự phục vụ, được quản lý cẩn thận, các tổ chức có thể đồng thời đạt được tốc độ phát triển cao, bảo mật mạnh mẽ và ổn định vận hành. IDP biến hạ tầng từ một nút thắt cổ chai thành một yếu tố hỗ trợ, cho phép các kỹ sư sản phẩm tập trung hoàn toàn vào điều quan trọng nhất: mang lại giá trị kinh doanh thông qua mã.

Golden Path (hay con đường trải nhựa) là một quy trình làm việc có chủ đích, được hỗ trợ và tự động hóa để xây dựng, triển khai và vận hành các dịch vụ phần mềm. Nó cung cấp các template tự phục vụ và pipeline CI/CD để các nhà phát triển có thể đưa mã vào hoạt động mà không cần cấu hình thủ công hạ tầng đám mây cấp thấp.

DevOps là một triết lý văn hóa nhấn mạnh trách nhiệm chung giữa phát triển và vận hành. Platform Engineering xây dựng các sản phẩm nội bộ (Nền tảng Phát triển Nội bộ) đóng gói các thực hành DevOps vào các nền tảng tự phục vụ, giảm gánh nặng nhận thức cho nhà phát triển.

Các số liệu chính bao gồm thời gian onboarding cho các kỹ sư mới, tần suất triển khai, thời gian từ khi bắt đầu đến commit đầu tiên cho các microservice mới, thời gian trung bình để phục hồi (MTTR) và điểm số hài lòng của nhà phát triển.


Bạn cũng có thể thích

Share this article:

Stay Updated

Get the latest posts delivered straight to your inbox.

Free Developer Utilities

Free In-Browser Developer Tools

Clean AI CLI logs, build cron expressions, decode JWTs, and calculate chmod permissions offline.

Explore Tools
Advertisement
Chạy nước rút đám mây 13 ngày: Biến tín dụng GCP sắp hết hạn thành tài sản vĩnh viễn không cần bảo trì
cloud

Chạy nước rút đám mây 13 ngày: Biến tín dụng GCP sắp hết hạn thành tài sản vĩnh viễn không cần bảo trì

Hướng dẫn thực tế để tối đa hóa ROI từ các khoản tín dụng Google Cloud sắp hết hạn, giúp bạn chuyển đổi tài nguyên điện toán tạm thời thành nội dung SEO vĩnh viễn, âm thanh thần kinh và tập dữ liệu được tính toán trước với chi phí sau khi hết hạn bằng không.

Read more