Bài viết được ghim
Một số hình ảnh về Sun* RnD DevOps
Tất cả bài viết
Sau các bài về lý thuyết căng thẳng, bài này mình sẽ đến với một vấn đề tuy không nặng kỹ thuật, hay nặng về lý thuyết nhưng không kém phần quan trọng trong quá trình phát triển phần mềm. Đó chính là check log. Với đa phần mọi người khi dev ở local, ví dụ chạy một app NestJs thì anh em dev thấy log ở ngay trong terminal, nơi chạy lệnh yarn run dev, một cách rất dễ dàng. Khi có lỗi xảy ra, chỉ c...
Đặt vấn đề
Nhiều leader vẫn nghĩ:
“Team ổn vì tôi cảm thấy họ ổn.”
Nhưng thực tế, cảm nhận cá nhân rất dễ lệch, bỏ sót những vấn đề âm thầm. Một team có thể vẫn delivery đúng hạn, nhưng nhiều thành viên ngại lên tiếng, không chủ động, hoặc burnout âm thầm.
Tôi từng tin team đang ổn vì họ hay cười trong cuộc họp. Nhưng thực tế, nhiều người vẫn ngại lên tiếng, không chủ động, và burnout âm th...
Chúng ta thường nghe nói: "Muốn tích hợp AI vào sản phẩm? Chỉ cần gọi API của OpenAI hay Anthropic là xong."
Đó là một lời nói dối ngọt ngào.
Backend truyền thống được xây dựng dựa trên một giả định thiêng liêng và bất di bất dịch: Cùng một Input luôn ra cùng một Output. Đó là thế giới của sự xác định (deterministic).
Nhưng khi AI xuất hiện, giả định này... hoàn toàn sụp đổ.
Lần đầu tiên t...
Xin chào mọi người, tiếp tục trong hành trình làm quen với Kubernetes, trong các bài trước mình đã trình bày về cách deploy ứng dụng lên môi trường k8s. Khi mới làm quen với K8s, nhiều người thường tập trung vào Pod, Deployment, Service, hay Ingress mà hay bỏ quên mất việc cấu hình ứng dụng. Đôi khi chúng ta cần đổi value của biến môi trường, thêm một biến, thay đổi mật khẩu database, bật log đ...
Hiện nay, làn sóng bùng nổ của AI đã kích thích việc ứng dụng rộng rãi các mô hình ngôn ngữ lớn (LLM) như GPT, Copilot,... trong cộng đồng nghiên cứu khoa học, song hạn chế lớn nằm ở việc bối cảnh không đầy đủ và nhiều khía cạnh mang tính chuyên ngành, khoa học trìu tượng, dẫn tới nguy cơ các mô hình LLM tạo ra những kết quả không chính xác hoặc "bịa" ra kết quả. Trong bài viết này, mình sẽ cùn...
Trong kiến trúc Monolith truyền thống, quản lý Transaction (giao dịch) giống như việc bạn đi mua hàng tại tiệm tạp hóa đầu ngõ: Bạn đưa tiền, chủ hàng đưa món đồ. Mọi thứ diễn ra ngay lập tức và tại chỗ. Nếu bạn thiếu một đồng hoặc chủ hàng hết hàng, giao dịch hủy bỏ, tiền vẫn trong túi bạn và hàng vẫn trên kệ. Đó là tính chất ACID thuần túy mà chúng ta luôn tin tưởng.
Nhưng khi bước sang thế ...
- Tổng quan Khi mới bắt đầu với Kubernetes, một trong những câu hỏi khiến nhiều người bối rối nhất là: “Làm sao để người dùng bên ngoài truy cập được vào ứng dụng chạy trong Kubernetes?” Ở bài trước, mình đã nói về service, 1 lớp giúp chúng ta có thể giao tiếp với pod chứa ứng dụng của mình.
Có thể thấy service có nhiệm vụ:
- Gom nhiều Pod lại thành một endpoint logic
- Cung cấp IP ổn định (C...
[IMG]
“AI không sai — chỉ là bạn chưa đặt ra luật cho nó.” (Câu nói mà mình phải lặp lại không dưới 20 lần khi chạy PoC agentic coding cho một dự án backend gần đây.)
Khi bước sang kỷ nguyên Agentic AI và Spec-Driven Development, việc “kêu AI generate code” không còn thú vị nữa. Cái khó giờ nằm ở: Làm sao để AI viết code như một kỹ sư giỏi — đúng convention, đúng chuẩn security, scalable và không ...
Nếu bạn là lập trình viên, kỹ sư dữ liệu, hay đơn giản là người tò mò về cách các hệ thống khổng lồ như Google, Facebook, hay các ứng dụng ngân hàng hoạt động, bạn chắc chắn đã từng nghe đến "ACID" và "BASE".
Khi thiết kế bất kỳ hệ thống nào, chúng ta đều đứng trước một ngã ba đường cơ bản: Bạn muốn hệ thống của mình "Chắc chắn" (như một ngân hàng, không bao giờ được sai một đồng) hay bạn muốn...
Chào mừng đến với vũ trụ Microservices, nơi mọi thứ đều phân tán, phức tạp, và mọi ứng dụng đều cần một bộ phận đưa thư đáng tin cậy. Nếu bạn cảm thấy như đang tổ chức một bữa tiệc lớn mà không biết nên thuê bưu điện truyền thống (với các giao thức nghiêm ngặt) hay một công ty chuyển phát nhanh siêu tốc (chuyên trị data stream không ngừng nghỉ), thì bạn không cô độc.
Hai "ông lớn" RabbitMQ và ...
[IMG]
Nếu bạn từng làm quản lý dự án hay dẫn dắt một phòng ban, hẳn đã có những buổi họp mà cả team ngồi lại, bàn bạc sôi nổi rồi chốt lại bằng những câu hỏi khá quen thuộc: “Mục tiêu của chúng ta là gì? Làm thế nào để biết mình đang đi đúng hướng? Dùng chỉ số gì để đo lường? Và rốt cuộc thế nào mới gọi là thành công?”
Nghe thì đơn giản, nhưng khi công việc ngày càng mở rộng, quy mô dự án tăng dần...
- Giới thiệu Sau bài Triển khai ứng dụng full-stack với k8s cho người mới. Trong đó, mình đã giới thiệu và thực hành với các resource của k8s như Deployment, Service, StatefulSet,..., giúp mọi người có thể thực hành và dựng được 1 app cơ bản, hoàn chỉnh chạy trong cluster từ minikube. Tuy nhiên ở bài viết đó thì chưa có giải thích, đào sâu vào các câu hỏi như là các thành phần giao tiếp với nh...
🤔 Bạn có từng cảm thấy mệt mỏi khi phải viết hàng đống boilerplate code cho Redux? Hay bối rối với Context API phức tạp của React? 😫 Chào mọi người! Hôm nay mình sẽ giới thiệu đến các bạn một cách quản lý state cực kỳ đơn giản và hiệu quả trong Svelte - đó chính là Svelte Stores! 🚀
- Vấn đề của State Management truyền thống Nếu bạn từng làm việc với React hoặc Vue, chắc hẳn đã quen với cảnh ph...
Chào mọi người, hôm nay mình sẽ giới thiệu tới mọi người một tính năng khá hay ho và tiện lợi trong Hasura đó chính là Permission. Một tính năng phân quyền giúp bạn kiểm soát dữ liệu một cách hiệu quả và chi tiết:
- Ai được phép truy cập dữ liệu?
- Có thể xem những cột nào, bản ghi nào?
- Được quyền thêm, sửa, hay xóa dữ liệu hay không?
Giờ hãy bắt đầu thôi nào 👉️👉️👉️
- Hasura và Permission ...
Visual Studio Code (VSCode) là editor phổ biến nhất hiện nay với hơn 70% developer sử dụng thường xuyên (theo survey của Stack Overflow). Điểm mạnh nhất của VSCode là ecosystem extension cực lớn – bạn có thể biến nó thành một IDE full-power, một công cụ viết blog, hoặc thậm chí một môi trường quản lý project.
Trong bài viết này, mình sẽ chia sẻ 9 extension hữu ích nhất mà mình đã dùng nhiều nă...
Thuật ngữ “DevOps” được Patrick Debois đưa ra vào năm 2007, dùng để chỉ việc kết hợp Phát triển (Development) và Vận hành (Operations), mở rộng triết lý Agile nhằm nâng cao toàn bộ quy trình phân phối phần mềm.
Dù đã hơn một thập kỷ trôi qua, nhưng đến nay các tổ chức vẫn có những quan điểm khác nhau về DevOps. Vì thế, chúng tôi đã hỏi ý kiến một số chuyên gia DevOps để lắng nghe chia sẻ của h...
Mở Đầu
Xin chào mọi người 👋 Trong bài viết trước chúng ta đã cùng nhau tìm hiểu Kubernetes (K8s) là gì, mục đích sử dụng và kiến trúc tổng quan của nó.
Để đi sâu hơn, ở bài viết này chúng ta sẽ cùng nhau:
- Cài đặt môi trường Kubernetes trên local (sử dụng Minikube)
- Làm quen với công cụ kubectl – "cây đũa thần" giúp chúng ta điều khiển cluster
- Thực hành chạy thử một Pod cơ bản (ví dụ N...
GIỚI THIỆU
Vào năm 2015, các kỹ sư từ Mozilla, Google, Microsoft và Apple đã cùng nhau khởi động một dự án nhằm cải thiện hiệu năng thực thi code trên trình duyệt.
Họ nhận ra rằng JavaScript – dù rất linh hoạt – nhưng không phù hợp với những tác vụ đòi hỏi hiệu suất cao như game 3D, xử lý video, hay tính toán nặng.
WebAssembly (Wasm) được giới thiệu lần đầu vào 2017, như một định dạng nhị ph...
- 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 ...


























