Tìm kiếm
40 kết quả cho “Rails”. Tìm không phân biệt dấu.
- Fear-free PostgreSQL migrations for Rails Bài tóm tắt · GoCardless · 2020
…s://gocardless.com/blog/fear-free-postgresql-migrations-for-rails/) Năm bài là ước lượng (xem year note ). Nối tiếp . Bối cảnh - Postgres là database mặc định của GoCardless, đứng…
- This Rocket Ain't Stopping - Achieving Zero Downtime for Rails to Golang API Migration Bài tóm tắt · Grab · 2016
…com/zero-downtime-migration) Bối cảnh - Grab đang chuyển từ Rails + NodeJS sang kiến trúc service toàn Go . Một phần mục tiêu là về tổ chức: chuyển các kỹ sư Rails sang các team Go…
- Designing Experimentation Guardrails Bài tóm tắt · Airbnb · 2021
…edium.com/airbnb-engineering/designing-experimentation-guardrails-ed6a976ec669) Bối cảnh - Mỗi tuần hàng nghìn thí nghiệm online chạy song song trên Airbnb, mỗi thí nghiệm theo dõi…
- Superuser Gateway: Guardrails for Privileged Command Execution Bài tóm tắt · Uber · 2026
…gốc](https://www.uber.com/us/en/blog/superuser-gateway-guardrails/) Bối cảnh - Data platform của Uber dùng GCS, OCI và HDFS. Một nhóm nhỏ engineer thỉnh thoảng cần quyền superuser…
- Navigating Fair Housing Guardrails in LLMs Bài tóm tắt · Zillow · 2024
…c](https://www.zillow.com/tech/navigating-fair-housing-guardrails-in-llms/) Bối cảnh - Zillow thử trợ lý hội thoại bằng LLM cho người tìm nhà. Rủi ro riêng của bất động sản: luật F…
- Caching Without Marshal Part 1: Marshal from the Inside Out Bài tóm tắt · Shopify · 2022
…wiki giữ phần sự cố và lý do. Bối cảnh - Mọi loại cache của Rails (trang, partial, query, low-level) dùng chung read / write trên Rails.cache , và mọi backend (monolith lõi của Sho…
- Integrating Neo4j Into Your Stack Bài tóm tắt · Doximity · 2022
…m trên SQL. Họ dùng Neo4j cho đồ thị quan hệ, cạnh ứng dụng Rails. - Trước đây ghi vào Neo4j nằm trong luồng web: upsert node lỗi thì rollback cả transaction web của user. Thay đổi…
- Debugging Production with Event Logging Bài tóm tắt · Zillow · 2018
…master. 2. Job được xếp hàng trong callback after save của Rails, chạy trước khi transaction commit ; worker nhanh thì đọc dữ liệu cũ. 3. Job "index lại khi lỗi kết nối" ghi thẳng…
- Monolith và microservices — đi và quay lại Chủ đề Thành viên
Lúc nào nên tách hệ thống thành nhiều service, và cái giá của việc đó là gì? Các nguồn hiện có cho thấy đây không phải đường một chiều.
- Migration không downtime Chủ đề Thành viên
Hệ thống đang chạy thật (gọi xe, chat, thiết kế) không được dừng, nhưng phải đổi ngôn ngữ, database hoặc hạ tầng bên dưới.
- Thử nghiệm A/B và nền tảng experimentation Chủ đề Thành viên
Khi nhiều team cùng thay đổi một sản phẩm, "ship rồi xem metric" không còn trả lời được thay đổi nào gây ra gì. Thí nghiệm có đối chứng trả lời được, nhưng ở quy mô lớn nó thành một hệ thống: gán người dùng vào biến thể…
- Deploy và release an toàn Chủ đề Thành viên
Phần lớn sự cố bắt đầu bằng một thay đổi: code mới, cấu hình mới, hạ tầng mới. Khi hệ thống và tổ chức lớn lên, câu hỏi là làm sao đưa thay đổi lên production thường xuyên mà vẫn giới hạn được thiệt hại khi có lỗi.
- Đổi ngôn ngữ và runtime Chủ đề Thành viên
Ngôn ngữ ban đầu được chọn để làm nhanh. Khi lớn lên, nó có thể thành nút thắt về hiệu năng, latency, hoặc tổ chức code. Có ba hướng: tối ưu runtime đang dùng, cải tiến dần, hoặc viết lại có phạm vi.
- Cache và invalidation Chủ đề Thành viên
Cache là cách rẻ nhất để một DB chịu được lượng đọc tăng nhiều lần. Vì vậy nó xuất hiện ngay từ giai đoạn đầu (Instagram 2011, Facebook 2004–2010). Cái giá đến sau, và lặp lại ở hầu hết các nguồn:
- Event-driven, message queue và Kafka Chủ đề Thành viên
Khi một hệ có nhiều bên cần biết "có gì vừa xảy ra" (đơn hàng đổi trạng thái, tin đăng được sửa, ticket được cập nhật), gọi đồng bộ từng bên một làm producer phải biết mọi consumer, và một consumer chậm kéo chậm cả…
- Nền tảng nội bộ cho service (đường ray chung) Chủ đề Thành viên
Tách hệ thống thành nhiều phần (service, hoặc component trong một monolith) giải được bài toán tổ chức. Nhưng nếu mỗi team tự làm RPC, retry, log, metric, contract theo cách riêng, thì ta chỉ đổi một kiểu hỗn loạn lấy…
- Xác thực và phân quyền (authn/authz) Chủ đề Thành viên
Ở monolith, mỗi dữ liệu thường chỉ có một đường vào, nên kiểm tra quyền nằm ngay đó: một hàm hasaccess?, một API mỗi resource. Khi hệ thống tách thành nhiều service, nhiều client, nhiều loại token, cả hai nửa đều vỡ:
- Airbnb Công ty Thành viên
Airbnb chuyển từ một ứng dụng Rails khổng lồ sang SOA, và lộ ra chi phí test: deep integration test cho mọi service không scale, nên họ chuyển sang tháp test + CD có canary analysis . Năm 2025 với ba trụ sản phẩm, data…
- Grab Công ty Thành viên
Dùng AWS từ ngày đầu (MyTeksi 2012: Rails trên EC2 + RDS MySQL) và theo Grab chỉ cần dưới 10 kỹ sư vận hành nhờ managed service . Năm 2016 họ chuyển API hành khách từ Rails sang Go theo từng endpoint bằng shadow…
- Shopify Công ty Thành viên
Năm 2015 không còn mua được DB to hơn nên Shopify shard, rồi phát hiện thao tác lặp mọi shard làm mất cô lập lỗi. Kiến trúc pod (mỗi request chỉ chạm một tập datastore cô lập, Pod Mover dời pod sang DR) ra đời .…
- Under Deconstruction: The State of Shopify's Monolith Bài tóm tắt · Shopify · 2020
…on theo chức năng hơn cohesion theo bảng dữ liệu (thói quen Rails). - SOLID ở mức class là nền cho thiết kế tốt ở mức component. - Công cụ: - Component chuyển thành Rails Engines .…
- How We Partitioned Airbnb's Main Database in Two Weeks Bài tóm tắt · Airbnb · 2015
…15, DB MySQL chính (trên RDS, còn từ thời Airbnb là một app Rails) phải giảm tải. Airbnb chọn tách dọc theo chức năng thay vì shard ngang (theo bài, đồng ý với Asana và Percona rằn…
- Doximity Công ty Thành viên
Mọi app Rails dùng Kafka qua gem nội bộ dox-messaging. Năm 2022 họ thay ruby-kafka (heartbeat chung thread, gây rebalancing storm) bằng rdkafka trên librdkafka mà giữ nguyên interface; qua đợt segfault khi rollout,…
- GitHub Công ty Thành viên
Rails + một MySQL; sau đó tách vài tính năng, thêm replica, ProxySQL; nhưng lõi vẫn là cluster mysql1 được scale dọc liên tục. Từ 2019 họ tách ảo bằng schema domain + linter rồi dời vật lý bằng Vitess hoặc write-cutover…
- Partitioning GitHub's relational databases to handle scale Bài tóm tắt · GitHub · 2021
…ses-scale/) Bối cảnh - Hơn 10 năm trước GitHub bắt đầu bằng Rails + một MySQL . - Các bước tiến hoá trước 2019: tách vài tính năng (ví dụ statuses) sang DB riêng; thêm read replica…
- GoCardless Công ty Thành viên
Công ty thanh toán chạy Postgres trên bare-metal. Hai bài cho thấy hai mặt của độ tin cậy DB: một migration schema "vô hại" gây 15 giây downtime vì hàng đợi khoá , và một lần primary hỏng mà Pacemaker không promote…
- New Tweets per second record, and how! Bài tóm tắt · Twitter · 2013
…". - Hiện trạng sau 2010: - Một trong những cài đặt Ruby on Rails lớn nhất thế giới, ~200 kỹ sư cùng sửa một codebase monolith (từ kết nối DB tới render và public API). - Tweet lưu…
- Unlocking Horizontal Scalability in Our Web Serving Tier Bài tóm tắt · Airbnb · 2016
…y-in-our-web-serving-tier-d907449cdbcf) Bối cảnh - Monolith Rails chạy trên nhiều web server, nói chuyện với vài service Java; dữ liệu lõi trong MySQL trên RDS, đã tách database th…
- Dynein: Building a Distributed Delayed Job Queueing System Bài tóm tắt · Airbnb · 2019
…uỷ được job. - Hệ cũ: một cụm Resque trung tâm của monolith Rails, chạy trên một instance Redis : at-most-once (có thể mất job), giới hạn bởi RAM và mạng một máy, một job xấu làm đ…
- Building an Effective Test Pipeline in a Service Oriented World Bài tóm tắt · Airbnb · 2020
…6968c513c6bd) Bối cảnh - Airbnb đang chuyển từ một ứng dụng Rails khổng lồ sang SOA . Các luồng nghiệp vụ quan trọng từng nằm trong monorepo nay nằm ở nhiều service: REST + DB, Kaf…
- Himeji: A Scalable Centralized System for Authorization at Airbnb Bài tóm tắt · Airbnb · 2021
…mar) từng làm Zanzibar ở Google. Bối cảnh - Ở thời monolith Rails, mỗi resource có một API duy nhất để đọc dữ liệu, và kiểm tra quyền nằm trong API đó, nên rất dễ quản lý. - Khi tá…
- Taking our Ruby & Kafka stack to the next level Bài tóm tắt · Doximity · 2022
…-our-ruby-kafka-stack-to-the-next-level) Bối cảnh - Mọi app Rails ở Doximity nói chuyện với Kafka qua gem nội bộ dox-messaging , vốn bọc ruby-kafka : API thân thiện hơn, ép best pr…
- How we scaled async workload processing at GitLab.com using Sidekiq Bài tóm tắt · GitLab · 2020
…/2020/06/24/scaling-our-use-of-sidekiq/) Bối cảnh - GitLab (Rails) xử lý việc nền bằng Sidekiq trên Redis. Lịch sử: 2013 mỗi worker class một queue, không ai quản; 2016 gom theo tí…
- Incident review: API and Dashboard outage on 10 October 2017 Bài tóm tắt · GoCardless · 2017
…mote replica khi primary hỏng và quản lý VIP (IP ảo) mà app Rails kết nối tới. Tự động hoá này đã chạy tốt suốt 2 năm. Diễn biến - 10/10/2017, 15:09–16:59 (BST): API và dashboard s…
- Debugging the Postgres query planner Bài tóm tắt · GoCardless · 2019
Năm 2019, DB Postgres chính của GoCardless khoảng 2 TB. Bảng paymenttransitions (mỗi lần payment đổi trạng thái là một dòng, mô hình state machine bằng Statesman) có gần nửa tỉ dòng.
- Driving Southeast Asia Forward with AWS Bài tóm tắt · Grab · 2017
…(có Hồ Chí Minh). Thay đổi chính - Bắt đầu (2012): Ruby on Rails trên EC2 + RDS MySQL + VPC. Dùng AWS từ ngày đầu. - Sau đó: từ một ứng dụng monolith sang kiến trúc microservices.…
- How we seamlessly migrated high volume real-time streaming traffic with zero data loss and duplication Bài tóm tắt · Grab · 2024
Grab tách phần đọc và phần ghi của một backend service thành hai service riêng để scale độc lập.
- Counter Service: How we rewrote it in Rust Bài tóm tắt · Grab · 2025
Phần lớn microservice của Grab viết bằng Go, nằm trong một monorepo. Rust vào dần: vài CLI, rồi một reverse proxy cho model serving (Catwalk). Câu hỏi tiếp theo là ROI của việc viết lại một service Go.
- Scaling Grab's Data Lake: Our journey to Apache Iceberg adoption Bài tóm tắt · Grab · 2026
Data lake của Grab: hàng petabyte, hàng tỉ object trên S3, phục vụ cả metric gần thời gian thực lẫn batch lớn qua hai nền tảng nội bộ (Slide cho batch, Hugo cho ingest từ hệ online). Nhiều năm, phần lớn bảng là Hive…
- Data Mesh at Grab (Part III): Operationalizing data reliability with automated DPIs Bài tóm tắt · Grab · 2026
Grab chuyển từ một đội Data Engineering trung tâm sang data mesh: các team tự publish data product, được chứng nhận (chủ sở hữu, tài liệu, lineage, kiểm chất lượng) qua Hubble (metadata, lineage), Genchi (quan sát chất…