Nghệ thuật ổn định của hệ thống và tính sẵn sàng cao của một backend (beginer-> junior -> senior -> level 5)

Nội dung bài viết

Video học lập trình mỗi ngày

Lập trình viên đề cập đến hệ thống ai cũng nghĩ về kiến trúc với 3 điều sau. Một tính sẵn sàng cao, hai đồng thời cao, và ba là hiệu suất cao.

3 yếu tố này bắt buộc phải hiểu nếu bạn là một Backend phải xem xét trong quá trình làm việc với dự án. Trong bài viết này, chúng ta sẽ nói những điều này cũng là điều mà chúng ta thường gọi là tính ổn định của hệ thống.

Tâm sự một chút, vì đi vào chủ đề khó... Câu hỏi của một bạn giờ đã là junior.

Lộ trình backend từ (beginer-> junior -> senior -> level 5...)

Thông thường quá trình phát triển dự án của một backend thì có sự bắt đầu từ (beginer-> junior -> senior -> level 5...) thì tất nhiên sẽ có những lộ trình khác nhau thời gian cũng như sự nỗ lực của mỗi cá nhân.

Các anh chị đừng đặt mục tiêu của mình cao và xa. Đừng làm như vậy, tôi đã từng... Khi đặt mục tiêu xa va cao, chỉ khiến chúng ta bị áp lực stress nặng nề mà thôi. Và khi bị điều đó, nó sẽ liên đới nhiều người với cảm xúc của bạn. Chúng ta sẽ mang những tâm trạng đó đi khắp nơi. Chuyện nhỏ hóa to, chuyện to hóa khắp nơi.

Thay vì như vậy hãy đặt nó nhẹ nhàng, tối thiểu. Ví dụ mục tiêu là hoàn thành một dự án cấp doanh nghiệp về backend như thế này. Thì chúng ta chia nhỏ nó ra, ví dụ có 100 modules. Thì mỗi ngày or 2 ngày hãy làm một module. Như hình tôi chia sẻ dưới đây cho các bạn.

Nghệ thuật ổn định của hệ thống và tính sẵn sàng cao của một backend (beginer-> junior -> senior -> level 5)

Ngày một "tạo cấu trúc thư mục dự án", ngày 2 "Tạo module public..."... Như thế, như thế...

Mục tiêu thấp, bạn trải qua, thì mục tiêu đó nó biến mất or chính bạn là người gạch nó đi, tiếp theo là mục tiêu mới. Cứ như thế, ngàn dặm đi bắt đầu một bước chân nhỏ. Kiên trì là sự thành công kinh khủng có thể bạn chưa nhìn thấy đâu. Ngoài ra tôi có tóm tắt nguyên tắc phát triển rộng về một system có nhan đề "Lộ trình trở thành BACKEND Developer TÔI đã quyết tâm khi nhìn thấy kiến trúc của hệ thống này" anh chị bớt chút thời gian ghé qua để tìm hiểu thêm.

Về bài viết này dương nhiên, một bài viết khó có thể nói hết tất cả những kỹ thuật của một dự án. Hoặc bạn có thể tham khảo một dự án eCommerce Backend Api mà chúng tôi đang thiết kế. Còn bài viết này hy vọng nó sẽ trang bị cho bạn những kỹ năng có thể trả lời với những công ty muốn tìm hiểu về hệ thống.

Tính sẵn sàng cao là gì?

Đầu tiên tôi nhớ cách đây không lâu tôi đã nói về định nghĩa là với một cụm từ đó là "Five nines" Tôi nghĩ bạn nên xem lại nó, rất hữu ích cho việc đọc bài viết này nhanh và hiểu nhiều hơn.

Five nines thường được sử dụng trong ngành để định lượng mức độ sẵn có của hệ thống, có thể ảnh hưởng đến phần trăm thời gian hoạt động của một hệ thống.

Ở đó cho phép một năm system được crash bao nhiêu thời gian. Tường mình hơn là ví dụ facebook có yêu cầu là 9999, tức là thời gian ngừng hoạt động hàng năm không được vượt quá 53 phút, trên thực tế, rất khó đạt được mục tiêu này và cần có sự hợp tác của nhiều đối tượng khác nhau trong trường hợp này. Vậy yếu tố nào ảnh hưởng đến sự ổn định của hệ thống thì tôi sẽ nói đến 3 yếu tố chính sau đây.

Hệ thống ổn định cần 3 yếu tố nào?

Bạn ngừng lại một chút đừng có đọc tiếp, hãy thử suy nghĩ xem... 3 yếu tố đó là gì? 1 phút bắt đầu ... Câu trả lời đối với tôi. Chú ý đối với bản thân tôi chính là:

  1. con người (lập trình viên, devops...).
  2. Các công nghệ tham gia dự án.
  3. phần cứng (server, network)

Vậy giả sử hệ thống bị ảnh hưởng đột ngột thì làm thế nào để phản xạ tốt. Thì cũng có 2 vấn đề. Phòng ngừa, phục hồi đưa về trạng thái cũ. Câu hỏi ở đây tiếp tục làm thế nào để một lập trình viên có thể hiểu điều đó ngay khi bắt đầu. Thì tôi sẽ nói về phần thức hai ít hôm nữa..

Có thể bạn đã bị missing