View profile

#214 - Các phương pháp Migration điển hình

Grokking Vietnam
Grokking Vietnam
Chào bạn đọc,
Trong số này, chúng ta tìm hiểu về:
  • Các phương án migration tiêu biểu;
  • Tầm quan trọng của Domain-Driven Design (DDD);
  • 15 điều cần nhớ để viết API tốt hơn;
  • Cách Cockroach xây dựng serverless database;
  • Lời giải đề bài tuần trước: Reverse Integer;
  • Đề bài tuần này: Maximum Frequency Stack;
Ngoài ra, Grokking xin chia sẻ về trường hợp của bạn Phạm Hoàng Vũ, một kỹ sư CNTT không may gặp nhiều khó khăn trong cuộc sống. Grokking mong bạn Vũ sẽ nhận được sự hỗ trợ của các bạn đọc gần xa.

Những bài viết hay
Migrations Done Well: Typical Migration Approaches
The Importance of Domain Driven Design
Góc Database
Serverless computing là loại hình kiến trúc đang dần được phổ biến gần đây vì dễ dùng và dễ triển khai, đặc biệt là cho các ứng dụng đơn giản hoặc MVP. Khi sử dụng các dịch vụ Google Cloud Function hay AWS Lambda, chỉ với vài thao tác đơn giản trong 15-20 phút, bạn đã có ngay một API với khả năng tự động scale, tự quản lý bộ nhớ, tự động restart….
Bên cạnh serverless computing, một xu hướng cũng đang bắt đầu phổ biến gần đây là serverless database với các công nghệ điển hình như DynamoDB, Azure Cosmos DB, Google Cloud Datastore, Aurora… Tương tự như serverless computing, sử dụng serverless database sẽ giúp chúng ta tiết kiệm được thời gian và công sức quản trị hệ thống database.
Những dịch vụ serverless database đó được xây dựng như thế nào? Làm thế nào mà họ có thể scale dữ liệu nhanh và hiệu quả như vậy?
Trường hợp của team Cockroach, họ đã thay đổi một số điểm quan trọng trong kiến trúc của cluster CockroachDB, biến nó thành một serverless database service. Tiêu biểu nhất, team Cockroach đã tách tầng query (SQL) và storage (Key-value) ra thành các layer khác nhau và deploy trên các instance khác nhau.
  • Tầng query sẽ tập trung vào việc xử lý câu truy vấn, transaction… và sẽ được phân chia theo tenant.
  • Tầng storage sẽ tập trung vào việc đọc, ghi, partition dữ liệu.
  • Các instance của cả hai tầng query và storage đều được deploy trên Kubernetes, giúp scale dễ dàng hơn.
Mời các bạn cùng đọc bài blog được đăng trên CockroachLabs blog để hiểu thêm về những điều chỉnh này.
(by n^4)
Góc Lập Trình
Đề ra tuần này: Reverse Integer
Lời giải đề bài tuần trước:
Đề bài yêu cầu thiết kế một dạng cấu trúc dữ liệu tương tự như một ngăn xếp, trong đó thao tác pop (lấy dữ liệu ra khỏi ngăn xếp) sẽ lấy dữ liệu theo thứ tự từ phần tử có số lần xuất hiện lớn nhất trong ngăn xếp. Trong trường hợp có 2 phần tử có cùng số lần xuất hiện, thì phần tử được đưa vào ngăn xếp trước sẽ được lấy ra.
Để giải quyết, đầu tiên, ta thử quan sát ví dụ đề bài đưa ra.
  • Push: 5, 7, 5, 7, 4, 5
  • Pop 4 lần → 5, 7, 4, 5
Vì đề bài yêu cầu lấy dữ liệu theo thứ tự từ phần tử có số lần xuất hiện lớn nhất, ta cần tìm một cách để sắp xếp lại dữ liệu được đưa vào ngăn xếp theo số lần xuất hiện của nó. Thử sắp xếp như sau:
  • Push(5): → 1: 5 
Giải thích: các phần tử đã xuất hiện 1 lần: 5
  • Push(7): → 1: 5, 7 
Giải thích: các phần tử đã xuất hiện 1 lần: 5, 7 (Lưu ý: thứ tự này là thứ tự 2 phần tử được đưa vào ngăn xếp)
  • Push(5): → 1: 5 7 và 2: 5
Giải thích: các phần tử đã xuất hiện 1 lần: 5, 7; 2 lần: 5
  • Push(7): → 1: 5 7 và 2: 5 7
  • Push(4): → 1: 5 7 4 và 2: 5 7
  • Push(5): → 1: 5 7 4 và 2: 5 7 và 3: 5
Từ đó, ta thấy thứ tự khi thực hiện pop sẽ là thứ tự từ dưới lên, từ phải qua trái theo cách tổ chức dữ liệu như trên. Ta có thể sử dụng cấu trúc dữ liệu Map<Integer, Stack> để lưu trữ được cách sắp xếp dữ liệu như trên. Đồng thời sử dụng 1 biến max và 1 Map<Integer, Integer> lưu trữ số lần xuất hiện của mỗi phần tử, từ đó có thể xác định được phần tử có số lần xuất hiện lớn nhất trong ngăn xếp với thời gian O(1), dẫn đến thao tác push và pop đều có thể thực hiện với thời gian O(1).
Mời bạn đọc tham khảo một cách cài đặt bằng Java như sau.
(by ndaadn)
Code & Tools
  • Apache YuniKorn: Công cụ hỗ trợ schedule resource để chạy Big Data và ML trên K8S
  • DataHub: Nền tảng metadata cho data stack hiện đại
Chia sẻ
Mẹ ung thư bán hàng rong góp tiền mong hiến thận cứu con là kỹ sư IT
Góc Sponsors
Fossil Việt Nam, tiền thân là Misfit, giữ vị thế là Trung tâm Nghiên cứu và Phát triển Công nghệ Thiết bị đeo thông minh trực thuộc Fossil Group. Từ những ngày đầu thành lập, đội ngũ kỹ sư Việt đã thiết kế và xây dựng hệ sinh thái thiết bị đeo thông minh phục vụ cuộc sống của hàng triệu người toàn cầu. Chúng tôi tự hào là những nhà đổi mới luôn bứt phá giới hạn của công nghệ và thời trang, tập trung phát triển 3 nhóm sản phẩm chủ lực: thiết bị, ứng dụng, và dữ liệu trên đám mây.
ĐIỀU FOSSIL TỰ TIN MANG ĐẾN CHO BẠN?
  • Tham gia nghiên cứu và phát triển Thiết bị đeo thông minh hàng triệu người dùng trên toàn thế giới. Với Fossil, mỗi việc bạn làm đều có thể mang lại thay đổi cho cuộc sống của rất nhiều người.
  • Lộ trình nghề nghiệp đa dạng, bất kể bạn muốn quản lý đội ngũ hay tập trung phát triển chuyên môn kỹ thuật.
  • Cơ hội làm việc và học hỏi từ các kỹ sư Google, Qualcomm, Citizen, v.v.
  • Bảo hiểm sức khỏe cao cấp, thu nhập và phúc lợi cạnh tranh mang đến trải nghiệm làm việc toàn diện nhất.
  • Môi trường làm việc linh hoạt để bạn thỏa sức học hỏi, phát triển và tạo ra tác động tích cực!
Fossil Việt Nam đang mở ra cơ hội với hàng loạt vị trí hấp dẫn 
(Cloud Engineer, Android Engineer, Software Architect), mời bạn tham khảo chi tiết công việc tại ĐÂY.
Kết nối với Fossil Việt Nam
Quotes
“The computer programmer is a creator of universes for which he alone is the lawgiver. No playwright, no stage director, no emperor, however powerful, has ever exercised such absolute authority to arrange a stage or field of battle and to command such unswervingly dutiful actors or troops.”
― Joseph Weizenbaum
Bạn đánh giá nội dung số newsletter này thế nào?
(1 = Rất tệ / 5 = Rất tốt)
👎 1 ——-—— 3 —— 4 —— 5 👍
Đánh giá của các bạn sẽ giúp chúng tôi liên tục cải thiện nội dung Newsletter!
Did you enjoy this issue? Yes No
Grokking Vietnam
Grokking Vietnam

Cảm ơn bạn đã dành thời gian đọc newsletter kỳ này và chúng tôi hi vọng rằng bạn đã khám phá ra một số điều mới mẻ từ các bài viết trên. Các bạn có thể đọc lại các số cũ tại website newsletter.grokking.org

In order to unsubscribe, click here.
If you were forwarded this newsletter and you like it, you can subscribe here.
Created with Revue by Twitter.
Viet Nam