Hỏi - đáp Nơi cung cấp thông tin nghề nghiệp và giải đáp những thắc mắc thường gặp của bạn

[Technology Newsletter] Giảm áp lực cho Developers cùng Platform Engineering

Khối lượng kiến thức khá lớn mà developers cần nắm rõ vô hình trung đã tạo áp lực cho họ. Giải pháp cho vấn đề này là Platform Engineering - một mô hình mới trong việc chuẩn hoá quá trình xây dựng toolchains và workflows nhằm trao quyền cho các developers khả năng self-service. Đây là một cách để giảm bớt gánh nặng công việc cho các developers, để họ có thể tập trung vào việc mang lại giá trị cho sản phẩm. Đó cũng là một cách để tránh một số sai lầm phổ biến khi triển khai DevOps.
Newsletter này sẽ giúp bạn tìm hiểu Platform Engineering là gì, các vấn đề trong quy trình phát triển phần mềm mà Platform Engineering giải quyết và làm cách nào để biết liệu tổ chức của bạn đã sẵn sàng triển khai nó chưa.
1. Platform Engineering
 
1.1. Platform Engineering là gì?
 
Platform Engineering là một phương pháp tiếp cận công nghệ mới nổi có thể đẩy nhanh quá trình phân phối ứng dụng và làm tăng giá trị kinh doanh. Đây là quá trình xây dựng toolchains và workflows nhằm trao quyền cho các developers khả năng self-service, mở rộng, quan sát theo dõi sản phẩm, bảo mật, tự động hoá. Cho phép họ xử lý độc lập toàn bộ lifecycle của việc phát triển phần mềm. Các toolchains và workflows này kết hợp với nhau được gọi là một platform, với cốt lõi là Internal Developer Platform (IDP).

Nói một cách đơn giản, IDP được tạo thành từ công nghệ và tools mà developer cần để thực hiện công việc của họ. Tất cả các thiết lập được trừu tượng hóa theo nhu cầu của từng developer. Nhiệm vụ tạo và quản lý các platforms này thường được xử lý bởi Platform Engineering team, những người xem các developers là khách hàng nội bộ và platform là sản phẩm phân phối.
  • Internal Developer Platform (IDP): Cung cấp rất nhiều thứ miễn là giúp ích cho lập trình viên trong suốt vòng đời ứng dụng.
  • Self-services: Không cần quy trình hay sự hỗ trợ từ phòng ban nào, lập trình viên có thể dùng ngay vào công việc của mình.
1.2. Tại sao sử dụng Platform Engineering?
 
Platform Engineering đơn giản hóa sự phức tạp của quá trình phát triển phần mềm hiện đại, cho phép sử dụng tài nguyên hiệu quả, độ khả dụng cao, và cải thiện trải nghiệm của developers. Platform chính là nền tảng công nghệ mà từ đó doanh nghiệp có thể nhanh chóng đem lại giá trị cho khách hàng của mình. Platform là thành quả của quá trình Platform Thinking chứ không phải một sản phẩm duy nhất.
1.3. Khi nào Platform Engineering được sử dụng?

  • Platform Engineering được áp dụng cho các hoạt động DevOps hiện đại, đảm bảo tích hợp và triển khai ứng dụng liền mạch.
  • Khi team có từ 20 developers trở lên: Đây là thời điểm thích hợp để cân nhắc việc áp dụng Platform Engineering. Hầu hết các tools liên quan đều phổ biến và bạn có thể đã biết chúng nếu bạn đang làm việc trong DevOps hoặc GitOps. Điều này có nghĩa là chỉ cần training thêm để phát triển và sử dụng Platform Engineering.
  • Khi tổ chức muốn giảm chi phí vận hành: Thúc đẩy văn hóa tự phục vụ và phân phối liên tục. Điều này cho phép các nhóm tập trung vào các hoạt động phát triển cốt lõi, tạo cầu nối giữa các thiết lập hạ tầng phức tạp và các yêu cầu vận hành của các developers, kỹ sư DevOps, quản trị viên Kubernetes và platform engineers.
  • Platform Engineering là một hot tech trend mà bất kỳ tổ chức nào cũng nên áp dụng. Nhu cầu về Platform Engineering đã tồn tại từ lâu và nó giải quyết được nhiều vấn đề của quá trình phát triển phần mềm.
1.4. Platform Engineering được được triển khai như thế nào?
Thông qua sự kết hợp của các công nghệ chính như Kubernetes, cơ sở hạ tầng dưới dạng mã (IaC), CI/CD, service meshes và các công cụ quan sát.

2. Kiến trúc của Platform Engineering và IDP
 
Cấu trúc của Platform Engineering là một sơ đồ minh họa các thành phần, công cụ, và quy trình. Sơ đồ này giúp trực quan hóa cách các thành phần khác nhau tương tác và tích hợp với nhau để hỗ trợ phát triển và triển khai phần mềm hiệu quả.

Diagram of platform engineering. (Source: Gartner)

Sơ đồ này giúp các platform engineers, developers, và các bên liên quan khác hiểu rõ hơn về cấu trúc và quy trình của platform engineering, từ đó cải thiện sự phối hợp và hiệu quả trong công việc.
  • Product and Service Teams: bao gồm các developers và chuyên gia vận hành, những người tạo ra và duy trì các sản phẩm và dịch vụ phần mềm. Các đội này thường phải chịu tải lớn nhất từ sự phức tạp của hạ tầng.
  • Platform Teams là những nhóm chuyên môn với kiến thức về hạ tầng, phát triển và quản lý sản phẩm, chịu trách nhiệm xây dựng và duy trì nền tảng developers nội bộ. Mục tiêu của họ là đơn giản hóa quá trình phát triển bằng cách quản lý các phức tạp hạ tầng cơ bản.
  • Digital Platform: tham chiếu đến một IDP, một bộ công cụ và dịch vụ hợp nhất được thiết kế để hợp lý hóa quy trình phát triển phần mềm. IDP cung cấp cho các developers một môi trường tự động, đơn giản và tự phục vụ để xây dựng, kiểm thử và triển khai ứng dụng..
  • Platform Services: bao gồm nhiều chức năng khác nhau được cung cấp thông qua mô hình 'X-as-a-Service'.
  • Platform Tools: được mô tả như các công cụ dùng để phát triển IDP. Ví dụ như Spotify Backstage..
  • Reusable Components là các yếu tố chuẩn hóa, mô-đun mà các nhóm có thể sử dụng lặp đi lặp lại trong các dự án và ứng dụng khác nhau.
  • Knowledge Management là chìa khóa trong việc tổ chức và tập trung hóa thông tin kỹ thuật, các thực tiễn tốt nhất và tài liệu. Điều này cho phép các developers và đội nhóm dễ dàng truy cập và chia sẻ kiến thức, đồng thời khám phá và sử dụng các dịch vụ và sản phẩm nội bộ.

Internal Developer Platform (IDP)

Điểm mấu chốt của Platform Engineering chính là Platform as a Product – Platform chính là sản phẩm hoàn chỉnh. Nơi mà đội ngũ platform engineers (có thể bao gồm cả các kỹ sư DevOps/SRE) cùng nhau phát triển sản phẩm dựa trên nhu cầu của người dùng cuối (thông thường là developer/QA…) để xây dựng Golden Path (https://tanzu.vmware.com/golden-paths) cho các developers. IDP đóng vai trò là trung tâm quản lý toàn bộ vòng đời ứng dụng.

Golden Path example diagram. (Source: Google)
Tạo mẫu và tùy chỉnh: Những tùy chỉnh trong Platform engineering được thực hiện thông qua việc tạo mẫu, cho phép các đội xác định và tái sử dụng các cấu hình trên các dự án khác nhau. Việc tạo mẫu đảm bảo sự nhất quán trong các cấu hình trong khi vẫn cho phép thích ứng với các yêu cầu cụ thể của dự án. Thông qua hệ thống mẫu chuẩn hóa nhưng linh hoạt, Platform engineering thúc đẩy một cách tiếp cận cân bằng giữa việc duy trì các tiêu chuẩn vận hành và đáp ứng các nhu cầu đặc thù của dự án. 
Một ví dụ tiêu biểu về việc tạo mẫu như vậy là các mẫu phần mềm trong Spotify's Backstage, danh mục phần mềm mã nguồn mở phổ biến nhất. Theo mặc định, danh mục phần mềm có thể tải các bộ khung mã, thêm các biến vào mẫu, và xuất bản các mẫu lên các nền tảng như GitHub hoặc GitLab, cho phép đội nền tảng chuẩn bị các mẫu dự án phần mềm điển hình. Các ví dụ được cung cấp bởi Backstage có thể được tìm thấy tại https://demo.backstage.io
Các thành phần chính của một IDP bao gồm:
  • Quản lý cấu hình ứng dụng: Tự động điều phối các tài nguyên trong các nền tảng container như Kubernetes và các tài nguyên bên ngoài như cơ sở dữ liệu.
  • Điều phối hạ tầng: Tích hợp toàn diện với toàn bộ hạ tầng và cho phép các tích hợp tùy chỉnh khi cần.
  • Quản lý triển khai: Tự động hóa quá trình triển khai, bao gồm tích hợp liên tục và hỗ trợ gỡ lỗi mở rộng.
  • Kiểm soát truy cập dựa trên vai trò (RBAC): Quản lý quyền người dùng dựa trên vai trò của họ trong tổ chức.
  • Quản lý môi trường: Tự động hóa việc tạo và cấu hình môi trường, cho phép khả năng tự phục vụ.
3. Phân tích thị trường

3.1. Nền tảng phần cứng (Hardware Platform)

Thị trường nền tảng phần cứng đang chứng kiến sự tăng trưởng mạnh mẽ, được thúc đẩy bởi nhu cầu ngày càng tăng về các thiết bị công nghệ cao, IoT, và hệ thống nhúng. Các công ty lớn như Intel, AMD, và NVIDIA đang dẫn đầu trong việc phát triển các nền tảng phần cứng tiên tiến. Thị trường này cũng đang mở rộng với sự phát triển của các thiết bị thông minh và công nghệ 5G, hứa hẹn mang lại những đột phá mới trong các lĩnh vực như xe tự lái, y tế từ xa, và thành phố thông minh.
3.2. Nền tảng phần mềm (Software Platform)
 
Nền tảng phần mềm đang trở thành trọng tâm của chuyển đổi số, với sự bùng nổ của các dịch vụ đám mây, phần mềm như một dịch vụ (SaaS), và các ứng dụng enterprise. Các nền tảng như Microsoft Azure, AWS, và Google Cloud đang cung cấp các giải pháp toàn diện cho các doanh nghiệp. Đặc biệt, các nền tảng mã nguồn mở như Kubernetes đang ngày càng được ưa chuộng, tạo điều kiện cho các doanh nghiệp triển khai và quản lý ứng dụng một cách linh hoạt và hiệu quả.
3.3. Nền tảng marketing kỹ thuật Số (Digital Marketing Platform)
 
Thị trường nền tảng marketing kỹ thuật số đang tăng trưởng nhanh chóng khi các doanh nghiệp chuyển đổi từ các chiến lược marketing truyền thống sang kỹ thuật số. Các nền tảng như Google Ads, Facebook Ads, và HubSpot cung cấp các công cụ mạnh mẽ để quản lý chiến dịch, tối ưu hóa quảng cáo, và phân tích dữ liệu khách hàng. Sự phát triển của các công nghệ như AI và machine learning đang cách mạng hóa cách tiếp cận marketing, cho phép phân tích hành vi người dùng, dự đoán xu hướng, và cá nhân hóa trải nghiệm khách hàng.
3.4. Nền tảng dữ liệu khách hàng (Customer Data Platform)
Nền tảng dữ liệu khách hàng đang trở thành yếu tố then chốt trong chiến lược kinh doanh của nhiều doanh nghiệp, đặc biệt là trong bối cảnh cá nhân hóa và trải nghiệm khách hàng ngày càng quan trọng. Các nền tảng như Salesforce Customer 360, Adobe Experience Platform, và Segment cung cấp các giải pháp để thu thập, lưu trữ, và phân tích dữ liệu khách hàng từ nhiều nguồn khác nhau. Điều này giúp các doanh nghiệp tối ưu hóa các chiến dịch marketing, tăng cường dịch vụ khách hàng, và ra quyết định kinh doanh dựa trên dữ liệu thực tế.
3.5. Nền tảng trí tuệ nhân tạo (AI Platform)

Thị trường nền tảng trí tuệ nhân tạo đang bùng nổ với tốc độ chưa từng có, được thúc đẩy bởi sự phát triển nhanh chóng của các công nghệ học máy, xử lý ngôn ngữ tự nhiên, và robot. Các nền tảng AI như IBM Watson, Google AI, và Microsoft Azure AI cung cấp các công cụ và dịch vụ để phát triển, triển khai, và quản lý các ứng dụng AI trong nhiều lĩnh vực khác nhau. Nhu cầu về tự động hóa, phân tích dữ liệu nâng cao, và cá nhân hóa đang thúc đẩy sự tăng trưởng của thị trường này, mang lại Cơ hội lớn cho các doanh nghiệp trong việc cải thiện hiệu quả hoạt động, tăng cường trải nghiệm khách hàng, và đổi mới sản phẩm và dịch vụ.
4. TMA và Cơ hội cho các mảng platform

4.1. Nền tảng phần mềm (Software Platform)
 
  • Cơ hội: TMA có thể cung cấp dịch vụ phát triển và triển khai các nền tảng phần mềm toàn diện, từ các ứng dụng enterprise đến các giải pháp SaaS và đám mây.
  • IDP: Tích hợp các công nghệ tiên tiến như AI, machine learning, và blockchain để tạo ra các giải pháp phần mềm đột phá.
  • Lợi ích: Tăng tốc độ phát triển, đảm bảo tính nhất quán và chất lượng cao, và dễ dàng tích hợp với các hệ thống hiện có của khách hàng.
4.2. Nền tảng dữ liệu khách hàng (Data Platform)
 
  • Cơ hội: TMA có thể phát triển các nền tảng dữ liệu khách hàng, giúp doanh nghiệp thu thập, lưu trữ, và phân tích dữ liệu khách hàng từ nhiều nguồn.
  • IDP: Tạo ra các giải pháp dữ liệu toàn diện, tích hợp với các hệ thống hiện có của khách hàng để cung cấp cái nhìn 360 độ về khách hàng.
  • Lợi ích: Tăng cường khả năng phân tích dữ liệu, cải thiện trải nghiệm khách hàng, và đưa ra các quyết định kinh doanh chính xác hơn.
4.3. Nền tảng trí tuệ nhân tạo (AI Platform)
  • Cơ hội: TMA có thể phát triển và triển khai các nền tảng AI, giúp doanh nghiệp tận dụng công nghệ AI để tự động hóa, phân tích dữ liệu nâng cao, và cá nhân hóa trải nghiệm khách hàng.
  • IDP: Cung cấp các giải pháp AI tùy chỉnh, tích hợp với các hệ thống hiện có để mang lại giá trị cao nhất cho khách hàng.
  • Lợi ích: Rút ngắn thời gian phát triển mô hình, đảm bảo tính chính xác và hiệu quả của các giải pháp AI, và dễ dàng tích hợp với các hệ thống khác của khách hàng.
5. Tổng kết
 
Hy vọng bài viết đã cung cấp cho bạn cái nhìn toàn diện về các khía cạnh quan trọng của Platform Engineering và IDP. Hiểu biết và tích hợp các công nghệ này sẽ giúp bạn tối ưu hóa quy trình phát triển phần mềm, tận dụng các Cơ hội thị trường và đáp ứng nhu cầu ngày càng cao của ngành công nghệ. 
Đối với TMA, bằng cách xây dựng các IDP chuyên biệt cho từng nền tảng, TMA không chỉ nâng cao hiệu quả và chất lượng sản phẩm mà còn tạo ra các giải pháp tùy chỉnh đáp ứng nhu cầu đa dạng của khách hàng. Điều này giúp TMA duy trì vị thế cạnh tranh và mở rộng thị phần trong các ngành công nghiệp quan trọng.