JavaRush /Blog Java /Random-VI /May chủ. Chương trình giáo dục dành cho người giả

May chủ. Chương trình giáo dục dành cho người giả

Xuất bản trong nhóm
Dưới đây chúng tôi cung cấp bản dịch phù hợp của bài viết Hướng dẫn về máy chủ dành cho người không chuyên về công nghệ của Kannan Chandrasegaran, một nhà phát triển từ Panopto. Xin lưu ý rằng bài viết dành cho những người mới bắt đầu chưa quen với khái niệm phía máy chủ của ứng dụng và máy chủ. May chủ.  Chương trình giáo dục dành cho người chưa biết gì - 1

Từ cuộc sống công sở

Làm người “không chuyên về công nghệ” trong một công ty CNTT rất khó, tin tôi đi! Các nhà tiếp thị, quản lý bán hàng, kế toán - điều đó không thành vấn đề - thỉnh thoảng họ gặp phải những đồng nghiệp am hiểu về kỹ thuật. Họ có thể là lập trình viên hoặc quản trị viên hệ thống.... Dù thế nào đi nữa, những người "không chuyên về công nghệ" cảm thấy như thể họ đã bị cắt cụt một phần quan trọng trong não. Hoặc họ đáp xuống một hành tinh vô danh có sự sống thông minh không phải hình người. Hoặc…
May chủ.  Chương trình giáo dục dành cho người chưa biết gì - 2
Tất nhiên, đôi khi mọi thứ đều kết thúc tốt đẹp. Ví dụ, một cô gái đi phía trước đang đi dọc hành lang. Không có gì báo trước rắc rối: cô ấy đang đi về bên trái, bạn đang đi về bên phải, và càng nhanh càng tốt... Không, lần này điều đó đã không xảy ra. Bạn đã ngồi vào bàn với cô ấy và cố gắng vượt qua sự im lặng khó xử, bạn hỏi: "Và... chính xác thì bạn làm gì?" Cô ấy bắt đầu nói điều gì đó, nhưng bạn không hiểu ngay cô ấy đang nói về điều gì. Những từ này có vẻ quen thuộc: giao diện người dùng, ứng dụng và - vâng, Facebook là một trang web. Vâng, có các nút, menu... Bằng cách nào đó, bạn đã tìm ra sự phức tạp trong công việc của cô ấy, gật đầu chào tạm biệt cô ấy và con đường của bạn rẽ sang hành lang của một văn phòng lớn.
May chủ.  Chương trình giáo dục dành cho người chưa biết gì - 3
Nhưng sớm hay muộn bạn cũng sẽ không may mắn như vậy: bạn sẽ gặp được một kỹ sư máy chủ. Hoặc một nhà phát triển back-end. Không biết bây giờ bạn sẽ thấy mình đang ở trong khu rừng nào, bạn ngây thơ hỏi câu hỏi tương tự và... nhận được câu trả lời bằng abracadabra. Bạn nghe thấy rất nhiều từ nước ngoài và những suy nghĩ chạy qua đầu bạn: “Có lịch sự không khi hỏi API là gì?”, “Chúng ta sử dụng “cơ sở dữ liệu” mọi lúc, phải không?”, “Cái quái gì vậy? Jason này?” (JSON)??. Người bạn kỹ sư của bạn đang cố gắng nói cho bạn biết về máy chủ, nhưng anh ấy không hiểu bạn khó hiểu bài phát biểu chứa đầy những thuật ngữ chuyên nghiệp của anh ấy như thế nào. Có thể bạn đã từng nghe từ "máy chủ" trước đây nhưng nó được sử dụng trong nhiều ngữ cảnh khác nhau nên thật khó để hiểu ý nghĩa của nó. Vâng, chúng ta hãy cố gắng hiểu thuật ngữ này.

Xuống hang thỏ

Khi một người bình thường (nghĩa là không phải lập trình viên hay quản trị viên) sử dụng một ứng dụng, tất cả những gì anh ta nhìn thấy là giao diện, một hình ảnh phản ứng với một số hành động rõ ràng (thường xuyên nhất). Trên thực tế, những gì người dùng thường hiểu về “ứng dụng” là phần front-end của nó, tức là phần trước, lớp bao bọc mà họ tương tác. Nhưng người dùng biết rất ít về những gì bên trong, tức là điều gì khiến ứng dụng hoạt động. Giả sử bạn gửi tin nhắn cho tôi, chẳng hạn như qua Whatsapp hoặc Viber. Có vẻ như có một tin nhắn đang được gửi từ điện thoại thông minh của bạn tới điện thoại thông minh của tôi. Chúng ta hãy xem xét kỹ hơn về quá trình này. Giả sử bạn gửi tin nhắn cho tôi khi điện thoại của tôi tắt và sau đó bạn tự tắt điện thoại thông minh của mình. Và vì vậy, tôi bật điện thoại lên và vẫn nhận được tin nhắn của bạn, mặc dù điện thoại của chúng ta không hoạt động cùng lúc. Có vẻ như chúng ta đang thiếu một cái gì đó! Đây là “thứ gì đó” mà chúng tôi đã bỏ sót — back-end hoặc máy chủ.
May chủ.  Chương trình giáo dục dành cho người chưa biết gì - 4
Khi các lập trình viên nói về front-end và back-end, họ thường muốn nói đến việc tách phần người dùng của ứng dụng khỏi logic chương trình. Vì vậy, front-end là phần giao diện của ứng dụng và back-end là phần máy chủ của nó.

May chủ

Về cơ bản, máy chủ là một máy tính, một máy tính được kết nối Internet và được bật liên tục.
Hai nhiệm vụ chính của máy chủ là lưu trữ và liên lạc dữ liệu.
May chủ.  Chương trình giáo dục dành cho người chưa biết gì - 5
Bạn gửi tin nhắn qua Whatsapp hoặc Viber, ứng dụng trên điện thoại thông minh của bạn sẽ gửi tin nhắn đến máy chủ nơi nó được lưu trữ. Khi Viber được cài đặt trên điện thoại thông minh của tôi kết nối với máy chủ, nó sẽ gửi cho tôi tất cả các tin nhắn được lưu trữ.
Máy chủ là “trạm cơ sở” nơi ứng dụng chạy
Khi một ứng dụng yêu cầu bất kỳ thông tin nào, nó sẽ liên hệ với máy chủ. Khi một ứng dụng cần liên lạc với người dùng khác của ứng dụng đó, máy chủ sẽ cho phép họ liên lạc. Các thuật ngữ máy chủ, back-end và API thường được sử dụng thay thế cho nhau.

Hệ thống lưu trữ hoặc lưu trữ dữ liệu

Nhiệm vụ chính của máy chủ là lưu trữ dữ liệu. Điều này bao gồm các tập tin : hình ảnh, video và tài liệu. Máy chủ lưu trữ chúng theo cách có cấu trúc tương tự như các thư mục trên máy tính của bạn để các ứng dụng có thể truy cập chúng. Thông tin cũng được lưu trữ trên máy chủ . Tất cả các ứng dụng đều chứa thông tin quan trọng đối với hoạt động của chúng.
May chủ.  Chương trình giáo dục dành cho người chưa biết gì - 6
Bạn có thể trình bày thông tin này dưới dạng một tập hợp các bảng. Ví dụ: một ứng dụng cần lưu trữ thông tin về người dùng và mật khẩu của họ để có thể thực hiện xác thực. Ứng dụng của bạn có thể là hướng dẫn về nhà hàng, trong trường hợp đó máy chủ sẽ lưu trữ thông tin về từng nhà hàng. Ngoài thông tin, máy chủ còn ghi lại mối quan hệ giữa các dữ liệu. Ví dụ: người dùng thích một nhà hàng trong ứng dụng trên điện thoại thông minh và máy chủ ghi nhớ kết nối này giữa nhà hàng và người dùng.
May chủ.  Chương trình giáo dục dành cho người chưa biết gì - 7
Điều này cho phép bạn trả lời nhiều câu hỏi. Ví dụ:
  • Có bao nhiêu người dùng thích nhà hàng này?
  • Người dùng này thích nhà hàng nào?
  • Những món ăn nào thu hút nhiều người dùng cùng một lúc?
Thông tin và mối quan hệ giữa dữ liệu được lưu trữ trong cơ sở dữ liệu (DB). Có nhiều loại cơ sở dữ liệu, nhưng tất cả đều là:
  • có thể lưu trữ thông tin
  • có thể lưu trữ mối quan hệ giữa dữ liệu
  • có thể nhận các yêu cầu về thông tin và phản hồi chúng dưới dạng dữ liệu đơn lẻ hoặc một tập hợp dữ liệu, tùy theo yêu cầu.
Có nhiều loại cơ sở dữ liệu, mỗi loại đều có ưu điểm và nhược điểm riêng. Nếu bạn nghe thấy các thuật ngữ như SQL, MySQL, MongoDB, CouchDB, Redis thì hãy biết rằng chúng ta đang nói về cơ sở dữ liệu.

Sự tương tác

Nhiệm vụ chính của máy chủ là tương tác với ứng dụng và các máy chủ khác.
May chủ.  Chương trình giáo dục dành cho người chưa biết gì - 8
Nhiều tác vụ ứng dụng yêu cầu tương tác với máy chủ. Ví dụ: nếu người dùng đang tìm kiếm thứ gì đó, truy vấn tìm kiếm sẽ được gửi đến máy chủ và kết quả sẽ xuất hiện từ đó. Nếu người dùng gửi tin nhắn cho người dùng khác, tin nhắn đó sẽ đến máy chủ trước tiên. Và từ đó nó được gửi đến ứng dụng của người dùng khác, thường ở dạng thông báo đã gửi. Các giao diện mà máy chủ cung cấp để các ứng dụng có thể tương tác với nó thường được gọi là API . Chà, một số chức năng giao diện có thể được liên kết với điểm cuối , chẳng hạn như với tìm kiếm hoặc ủy quyền trên trang web. Đối với những người chưa quen, sự tương tác này có vẻ kỳ lạ. Hai định dạng tương tác phổ biến nhất là JSON và XML.
May chủ.  Chương trình giáo dục dành cho người chưa biết gì - 9
XML ở bên trái, JSON ở bên phải Thoạt nhìn, các định dạng có vẻ khó đọc. Điều quan trọng là phải hiểu rằng máy chủ chỉ là một máy tính, giống như máy tính xách tay hoặc điện thoại thông minh của bạn. Ứng dụng trên điện thoại của bạn chấp nhận đầu vào của người dùng thông qua giọng nói, văn bản, nhận dạng giọng nói hoặc chạm trên màn hình. Ứng dụng xử lý thông tin này và sau đó đưa ra câu trả lời dưới dạng hình ảnh trên màn hình. Điện thoại thông minh là một máy tính tương tác với con người, do đó đầu vào và đầu ra được cung cấp dưới dạng thuận tiện cho con người. Máy chủ là một máy tính chỉ tương tác với các máy tính khác. Một người nhận biết thông tin nhờ vào những thứ như: cỡ chữ, màu chữ và định dạng. Nhưng điều này không có ý nghĩa gì với máy tính.
Tương tác giữa các máy chủ diễn ra ở các định dạng dễ phân tích và hiểu đối với các máy tính khác.

Ứng dụng máy chủ

Nếu bạn muốn tạo một ứng dụng chạy trên điện thoại của mình, bạn cũng sẽ cần một ứng dụng chạy trên máy chủ. Các ứng dụng phía máy chủ được tạo bằng các ngôn ngữ và framework lập trình phía máy chủ, các tùy chọn phổ biến là Java , Ruby on Rails , Node.js , PHP , ASP.NET .
May chủ.  Chương trình giáo dục dành cho người chưa biết gì - 10
Bạn có thể nói rằng API là “cánh cửa” của máy chủ của bạn và ứng dụng biết cách gõ cửa chúng. Cơ sở dữ liệu lưu trữ tất cả thông tin của bạn. Và ứng dụng server chính là “bộ não” kết nối mọi thứ lại với nhau. Nó nhận và phản hồi các yêu cầu được gửi tới nó thông qua API, thêm và lấy thông tin từ cơ sở dữ liệu cũng như đưa ra quyết định. Ví dụ: khi ứng dụng người dùng gửi thông tin đăng nhập, yêu cầu sẽ thông qua API, thông tin đăng nhập chính xác sẽ được lưu trữ trong cơ sở dữ liệu. Nhiệm vụ của ứng dụng máy chủ là so sánh chúng và phản hồi tương ứng với ứng dụng sử dụng API.

Phần cứng

May chủ.  Chương trình giáo dục dành cho người chưa biết gì - 11
Khi bạn nghe thấy từ “máy chủ”, bạn có thể tưởng tượng ra hình ảnh này: những chiếc tủ có đèn nhấp nháy trong một căn phòng kín. Có lẽ, để hoàn thiện bức tranh, người duy nhất còn thiếu chính là Tom Cruise, người sẽ từ trên trần nhà đi xuống và trộm thứ gì đó. Nhiều công ty lớn sở hữu máy chủ riêng và toàn bộ trung tâm dữ liệu (những căn phòng khổng lồ với những chiếc tủ nhấp nháy). Facebook và Google có hàng trăm máy chủ trên khắp thế giới. Khi bạn điều hành một dịch vụ lớn với hàng triệu người dùng, việc chạy máy chủ của riêng bạn có thể rẻ hơn đáng kể và mang lại hiệu suất tốt hơn. Thay vì duy trì máy chủ của riêng họ, nhiều nhà phát triển sử dụng dịch vụ đám mây. Các dịch vụ như Amazon Web Services, Azure và Digital Ocean cung cấp khả năng sử dụng “máy chủ ảo”. Các dịch vụ này sở hữu và bảo trì phần cứng, đồng thời nhà phát triển chỉ cần tải ứng dụng máy chủ lên đó. Một số nhà cung cấp dịch vụ cung cấp phần phụ trợ dưới dạng dịch vụ, cho phép bạn có một phần phụ trợ đơn giản mà không cần phải tự viết ứng dụng phụ trợ.

Có phải tất cả các ứng dụng đều cần phần phụ trợ không?

Hầu hết các ứng dụng bạn quen thuộc đều có thành phần phụ trợ. Tất nhiên, bạn có thể tìm thấy các chương trình không có phần máy chủ. Ví dụ: một số ứng dụng năng suất. Một cách dễ dàng để tìm hiểu xem một ứng dụng có back-end hay không như thế này:
Nếu bạn chuyển sang Chế độ trên máy bay, ứng dụng có còn hoạt động không?
Nếu câu trả lời là “không”, điều này có nghĩa là ứng dụng chắc chắn có máy chủ phụ trợ.
May chủ.  Chương trình giáo dục dành cho người chưa biết gì - 12
Tôi hy vọng bây giờ bạn đã hiểu back-end của một ứng dụng là gì. Có thể lần tới khi bạn gặp những người lập trình viên đồng nghiệp của mình, bạn sẽ không chỉ hiểu họ đang nói về điều gì mà còn có thể sử dụng "Jason" chết tiệt nào đó trong cuộc trò chuyện của mình.
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION