Bài viết được ghim
Một số hình ảnh về Sun* RnD DevOps
Tất cả bài viết
- Giới thiệu tổng quan về Tilt Chào mọi người,
Sau bài viết hướng dẫn làm quen với k8s, mình đã gặp phải một vấn đề khá "đau đầu": vòng lặp phát triển (development loop) quá chậm và tốn thời gian. Mỗi khi chỉnh sửa một vài dòng code, lại phải lặp đi lặp lại một chuỗi các thao tác thủ công (build lại image, đẩy lên registry, update k8s yaml, kubectl apply,...) , và điều này thực sự làm giảm nă...
[IMG]
Có hôm đang làm dở task, tôi quay lại Slack để tìm đoạn trao đổi hôm trước với anh dev backend — mất đúng 20 phút. Thread hôm đó dài cả cây số, toàn reaction với sticker, thi thoảng mới có vài comment có nội dung kỹ thuật. Đọc xong, tôi quên luôn việc mình định làm ban đầu là gì.
Mà cũng không phải lần đầu. Cứ mỗi lần có bạn mới vào channel, tôi lại phải ngồi tổng hợp lại thông tin, lục lại ...
MCP là gì? Tại sao chọn MCP Framework? Trong kỷ nguyên số, nhu cầu truyền thông dữ liệu giữa các thiết bị và hệ thống backend ngày càng cao. MCP (Message Communication Protocol) xuất hiện như một giao thức tối ưu dành cho việc truyền dữ liệu nhị gọn, dễ triển khai, và dễ tích hợp.
MCP Framework - một dự án mở nguồn trên GitHub do QuantGeekDev phát triển - giúc lập trình viên nhanh chóng xây dự...
GitHub Actions là một công cụ CI/CD tích hợp sẵn trong GitHub, giúp tự động hóa các công việc như kiểm tra mã nguồn, xây dựng, triển khai ứng dụng và nhiều tác vụ khác. Với sự phát triển không ngừng của phần mềm và độ phức tạp ngày càng tăng của hệ thống, việc quản lý nhiều workflows trong GitHub trở thành một thách thức lớn đối với các nhóm phát triển. Khi đó, GitHub Actions Controller ra đời ...
Mở Đầu Hello mọi người 😄, lâu rồi mình mới lại viết bài. Hôm nay mình muốn chia sẻ với mọi người về một chủ đề rất quen thuộc nhưng cũng rất dễ bị "lơ là" – đó là vòng đời của một dự án phần mềm outsource. Nếu bạn đang làm việc trong môi trường outsource thì chắc chắn đã từng nghe tới các giai đoạn như bidding, kickoff, phát triển, bàn giao,... Nhưng liệu chúng ta có thực sự hiểu rõ từng giai đ...
NestJS đã và đang chứng tỏ sức mạnh của mình trong việc xây dựng các ứng dụng backend hiệu quả nhờ vào kiến trúc mô-đun rõ ràng. Tuy nhiên, khi dự án của bạn không còn chỉ là một API đơn thuần mà bắt đầu phình to với nhiều thành phần phức tạp, việc quản lý tất cả trong một cấu trúc project đơn lẻ sẽ dần bộc lộ những giới hạn.
Đây chính là lúc mô hình Mono Repo tỏa sáng.
Bài viết này sẽ cùng b...
Trong hành trình phát triển phần mềm, việc viết code đúng chưa bao giờ là đủ – điều quan trọng hơn là đảm bảo rằng mỗi thay đổi đều không gây ra lỗi ngoài ý muốn. Đó là lý do vì sao Unit Test và Test Coverage đã trở thành hai yếu tố thiết yếu trong các dự án phần mềm hiện đại.
Unit Test là gì và vì sao quan trọng?
Unit Test là các đoạn kiểm thử nhỏ, viết ra để xác nhận rằng một đơn vị chức nă...
Giới thiệu Chào mừng các bạn trở lại với phần tiếp theo của hành trình tìm hiểu về AI Agents!
Ở Phần 1, chúng ta đã cùng nhau làm quen với những khái niệm cốt lõi: từ việc định nghĩa AI Agent là gì, phân biệt chúng rõ ràng với các AI assistants quen thuộc, cho đến việc nhìn lại chặng đường "tiến hóa" đầy ấn tượng của chúng qua các thập kỷ. Chúng ta cũng đã tìm hiểu về các loại AI Agent phổ biế...
Giới thiệu Trong bài chia sẻ này, chúng ta sẽ cùng nhau tìm hiểu về AI Agents. Đây không chỉ là phiên bản tiếp theo của chatbots hay các AI assistants đơn giản như Siri hay Alexa. AI agents là các chương trình phần mềm được thiết kế để nhận thức môi trường của chúng, đưa ra quyết định dựa trên suy luận và kiến thức, và thực hiện hành động để đạt được các mục tiêu cụ thể, thường xuyên học hỏi và...
Mở đầu: Tiếp tục hành trình gỡ rối Kubernetes
Chào mừng anh em quay trở lại với series "Xử lý lỗi Kubernetes"!
Ở Phần 1, chúng ta đã cùng nhau "bóc tách" 5 lỗi phổ biến liên quan đến quá trình khởi tạo và cấu hình Pod, bao gồm CrashLoopBackOff, ImagePullBackOff, Pod Pending, PodInitializing, và CreateContainerConfigError. Đó là những vấn đề nền tảng mà hầu hết anh em DevOps/SRE đều gặp phải k...
Mở đầu
Chắc hẳn nhiều người trong chúng ta đều đồng ý rằng Kubernetes (K8s) đã và đang thay đổi cuộc chơi trong việc quản lý và vận hành ứng dụng containerized. Sức mạnh của nó là không thể phủ nhận: khả năng tự động hóa, co giãn linh hoạt, và quản lý tài nguyên hiệu quả. Tuy nhiên, đi kèm với sức mạnh đó là một độ phức tạp không hề nhỏ. Dù bạn là một kỹ sư dày dạn kinh nghiệm hay mới bắt đầu ...
- Giới thiệu Lời mở đầu
Trong thế giới phát triển phần mềm hiện đại, việc quản lý và triển khai các ứng dụng container hóa ngày càng trở nên quan trọng. Kubernetes nổi lên mạnh mẽ, giúp tự động hóa, mở rộng quy mô và quản lý các ứng dụng này một cách hiệu quả. Tuy nhiên, việc tiếp cận Kubernetes ban đầu có thể khá choáng ngợp với nhiều khái niệm và cấu hình phức tạp.
Bài viết này được tạo ra...
[IMG]
Tưởng là nhân vật phụ, ai ngờ là trụ cột hệ thống.
Ngày xửa ngày xưa (tầm vài năm trước), mình cũng từng nghĩ reverse proxy chỉ là một “thằng chuyển phát nhanh”, kiểu nhận request từ client rồi quăng cho backend. Hết chuyện. Nhưng không! Thực ra nó giống như một ông quản gia toàn năng, vừa đón khách, vừa bảo vệ cửa, lại biết chia việc cho đầu bếp, quản lý lịch hẹn, thậm chí còn biết giả vờ l...
Giới thiệu
Trong các hệ thống backend hiện đại, việc xử lý các tác vụ bất đồng bộ là một nhu cầu thiết yếu. Các tác vụ như gửi email, xử lý ảnh, tạo báo cáo PDF, gửi notification, hoặc đồng bộ dữ liệu thường không nên thực hiện trực tiếp trong quá trình phản hồi client. Điều này ảnh hưởng đến hiệu suất và trải nghiệm người dùng. Để giải quyết vấn đề này, chúng ta sử dụng queue – một hàng đợi c...
Ở Phần 1, chúng ta đã tạo một agent đơn giản bằng NestJS kết hợp LangChain và Gemini. Agent đó đã có thể nhận câu hỏi và phản hồi nhờ sức mạnh của LLM. Tuy nhiên, nó vẫn còn một số hạn chế:
- Không nhớ gì về các cuộc trò chuyện trước đó.
- Prompt chưa được tổ chức tốt, khó quản lý khi phức tạp hơn.
- Không thể thực hiện hành động nào ngoài việc sinh văn bản.
Trong Phần 2 này, chúng ta sẽ nâng...
Chào mừng các bạn đến với series xây dựng AI Agent! Trong phần đầu tiên này, chúng ta sẽ cùng nhau khám phá cách kiến tạo một hệ thống AI Agent mạnh mẽ bằng sự kết hợp giữa NestJS, một framework Node.js tiến bộ, và LangChain, thư viện hàng đầu cho việc phát triển ứng dụng dựa trên mô hình ngôn ngữ lớn (LLM). Đặc biệt, chúng ta sẽ tích hợp Gemini, một LLM tiên tiến từ Google, làm "bộ não" xử lý ...
- Giới thiệu Trong bài viết trước, Làm quen với github action, chúng ta đã cùng khám phá các định nghĩa, cách hoạt động, cách tạo và sử dụng GitHub Actions. Qua đó, hẳn bạn đã quen thuộc với khái niệm Runner - môi trường thực thi các job trong workflow của chúng ta, mặc định là các GitHub-Hosted runners do chính GitHub cung cấp.
Sự tiện lợi của GitHub-Hosted runners là không thể phủ nhận, ví ...
“Làm cái này chắc đơn giản thôi mà?” – Một câu nói quen thuộc từ Product Owner (PO), và sau đó là... một quả bom full-stack được quăng vào sprint.
- “Quăng bom” nghĩa là gì? Trong môi trường Agile, có một hiện tượng phổ biến mà dân dev hay gọi đùa nhau là “bị quăng bom” – tức là:
Nhận một yêu cầu tưởng chừng “nhẹ nhàng”, nhưng khi bắt tay vào làm thì vỡ ra đủ thứ: migrate DB, refactor code, ...
Giới thiệu
Slack Bot là một công cụ hữu ích giúp tự động hóa các tác vụ và tăng cường tương tác trong không gian làm việc Slack. Với khả năng lắng nghe sự kiện, phản hồi tin nhắn, thực thi các lệnh tùy chỉnh (Slash Commands), bot có thể trở thành trợ thủ đắc lực cho đội nhóm của bạn. Trong bài viết này, chúng ta sẽ cùng nhau xây dựng một Slack Bot đơn giản nhưng đầy đủ chức năng cơ bản bằng Ne...