- Varun, người bắt đầu học phát triển web trong đợt phong tỏa năm 2020, đã đi từ Replit và PC cá nhân đến việc xây dựng một homelab để tự vận hành dịch vụ và các dự án thử nghiệm tại nhà
- Khi các dịch vụ có người dùng thực tế tăng lên, như Quickz — trò chơi đố vui thời gian thực cho trường học, nền tảng mạng xã hội tự xây dựng, và công cụ cho cộng đồng Scratch, kinh nghiệm vận hành self-hosting của cậu cũng lớn dần
- Máy chủ đầu tiên chạy Windows 10 Pro gặp vấn đề cập nhật và downtime; đến tháng 11/2020, cậu chuyển sang Ubuntu Server và chuyển sang vận hành dựa trên Linux, nginx, Docker
- Sau khi lộ rõ giới hạn về lưu trữ và hiệu năng của Dell OptiPlex, tháng 5/2022 cậu mua Dell PowerEdge R720XD cũ và mở rộng sang cấu trúc Proxmox cùng VM Ubuntu Server
- Dock’n’Roll do cậu tự làm tái hiện luồng triển khai nhanh kiểu Replit trên phần cứng và domain riêng, nhưng homelab cũng để lại các ràng buộc thực tế như tiếng ồn, điện năng và chuyện chuyển nhà, bên cạnh tự do và học hỏi
Homelab trong phòng và các dịch vụ đang vận hành
- Varun vận hành hai máy chủ tại nhà
- Dell OptiPlex đặt trên sàn
- Dell PowerEdge R720XD đặt trên một bàn cà phê IKEA nhỏ
- Hai máy chủ được nối với nhau bằng cáp Ethernet màu đỏ và vàng
- Trên máy chủ tại nhà có cả dự án thử nghiệm lẫn dịch vụ có người dùng thực tế
- Nền tảng mạng xã hội tự xây dựng với hàng nghìn người dùng
- Quickz, trò chơi đố vui thời gian thực cho trường học
- Nền tảng tạo và chia sẻ hoạt ảnh kiểu flipbook, là instance demo cho MYP Personal Project
- Các công cụ như công cụ tìm kiếm cho cộng đồng Scratch
- Máy chủ game cho bạn bè
- Nhiều instance Plausible Analytics
- Công cụ tương tự Replit để tạo và host các dự án thử nghiệm
Self-hosting bắt đầu từ đợt phong tỏa năm 2020
- Điểm khởi đầu là thời kỳ phong tỏa năm 2020, khi Varun 13 tuổi
- Ban đầu cậu học phát triển web bằng các website HTML tĩnh, rồi nhanh chóng bắt đầu làm các ứng dụng phức tạp hơn cần backend
- Các web app, bot Discord và script tự động hóa giai đoạn đầu được host trên Replit
- Máy chủ Minecraft được cung cấp cho bạn bè bằng cách để máy tính cá nhân chạy liên tục
- Lý do chọn máy chủ tại nhà thay vì cloud gần với việc học toàn bộ stack hơn là tiết kiệm chi phí
- Frontend hướng tới người dùng
- Backend và cơ sở dữ liệu
- Cậu muốn tự học cả việc vận hành máy chủ thực sự để đưa dịch vụ lên chạy
- Cậu cho rằng ở quy mô của mình, dùng cloud có thể hiệu quả hơn về chi phí
Máy chủ đầu tiên: Dell OptiPlex và Windows 10 Pro
- Cậu mua được Dell OptiPlex với i7-3770S và RAM 8GB trên eBay
- Trong quá trình gửi từ Mỹ sang Thụy Sĩ, người bán ban đầu gửi sai dung lượng RAM, và mất vài tuần để giải quyết
- Vì quen thuộc, ban đầu cậu tiếp tục dùng Windows 10 Pro làm hệ điều hành máy chủ
- Nhà cậu có địa chỉ IPv4 tĩnh, giúp việc host website dễ hơn và ổn định hơn
- Tất cả dịch vụ đều đặt sau Cloudflare, và Cloudflare xử lý miễn phí SSL, DNS cùng các chức năng được cho là bảo vệ DDoS
Chuyển từ Windows sang Ubuntu Server
- Vào thời điểm đó, vận hành máy chủ Windows 10 có một số lợi thế với Varun
- Cậu đã quen với Windows
- Có thể kiểm thử trong môi trường tương tự desktop cá nhân
- Ở nhà có thể dùng RDP với kết nối nhanh và chất lượng tốt
- Trên Chromebook do trường cấp, cậu có thể dùng Chrome Remote Desktop vì cần truy cập qua web
- Khi Windows Update liên tục gây downtime và phải sắp xếp lại các cửa sổ, tháng 11/2020 cậu chuyển sang Ubuntu Server
- Trước khi chuyển, cậu lo sẽ mất cảm giác nắm bắt nhanh toàn bộ hệ thống, nhưng nhờ đã quen dòng lệnh khi viết code trên Windows, việc thích nghi với Linux diễn ra nhanh chóng
- Cấu hình Linux ban đầu đơn giản nhưng cũng kèm theo rủi ro
- nginx phơi ra Internet xử lý lưu lượng HTTPS trên cổng 443 bằng chứng chỉ tự ký và từ chối các request không qua Cloudflare
- Chạy nhiều dự án muốn duy trì online 24/7
- Vận hành một instance MongoDB dùng chung cho các dự án
- Chạy vài máy chủ Minecraft Java
- Cậu phơi webssh2 để truy cập máy chủ từ trường, nhưng chính cậu cũng thừa nhận nó có thể rất không an toàn
- Việc cài phần mềm bên thứ ba nhanh chóng trở nên phức tạp do phụ thuộc và phải thêm kho apt; Docker trở thành công cụ đơn giản hóa cài đặt và chạy
- Phần mềm bên thứ ba được chạy bằng Docker
- Code tự viết được chạy trực tiếp trên máy chủ
Giới hạn lưu trữ và việc đưa PowerEdge R720XD vào dùng
- Khoảng một năm sau, cậu vận hành các dự án có người dùng thực tế như Quickz và nền tảng mạng xã hội tự xây dựng
- Khi cậu đang ở trường, máy chủ bị dừng; cậu thử kết nối SSH nhưng sau khi xuất hiện lỗi đĩa thì cuối cùng bị khóa
- Nguyên nhân là thiếu dung lượng lưu trữ, và khi về nhà cậu xóa một số tệp để câu giờ
- Dell OptiPlex hiện có bắt đầu khó đáp ứng mức sử dụng tăng lên với RAM 8GB và i7-3770S
- Tháng 5/2022, cậu dùng tiền dành dụm từ bug bounty để mua Dell PowerEdge R720XD cũ
- 3 ổ 3TB
- RAM DDR3 128GB
- CPU 2×E5-2690 tiêu thụ nhiều điện
- Trước khi mua, cậu chưa cân nhắc đủ về không gian, tiếng ồn và điện năng tiêu thụ; cậu giảm một phần vấn đề tiếng ồn bằng một cách hack không được hỗ trợ để cố định tốc độ quạt iDRAC ở 10%
- R720XD có hai bộ nguồn, hai CPU, hai NIC, và cả iDRAC mang tính chất như một máy tính mini cho phép quản lý từ xa ngay cả khi máy đã tắt
- Ban đầu cậu đặt máy chủ trên bàn cà phê cạnh TV trong phòng khách, còn rack và thiết bị lắp đặt thì đắt hơn chính chiếc máy chủ
Proxmox và cấu trúc truy cập từ xa
- Trên máy chủ mới, cậu quyết định dùng hypervisor và chạy Proxmox
- Phần lớn tài nguyên được cấp cho VM Ubuntu Server, và toàn bộ dịch vụ giờ được sắp xếp chạy trong Docker
- Cấu trúc này tạo ra sự linh hoạt để sau này chuyển dịch vụ mà không cần cấu hình lại mọi thứ
- Riêng một VM Xubuntu tên
backdoorđược vận hành với Chrome Remote Desktop- Có thể truy cập một không gian làm việc tiện lợi trong mạng gia đình từ bất cứ đâu
- Cũng có thể thiết lập VPN như OpenVPN hoặc WireGuard, nhưng cách này hoạt động cả trên thiết bị bị hạn chế như iPad và Wi-Fi công cộng ở trường
- Cậu cũng xem việc không phải lo các nỗ lực brute-force của bot là một lợi thế
Dock’n’Roll tự triển khai trải nghiệm Replit
- Dù đã có nhiều máy chủ, luồng thử nghiệm nhanh của Replit vẫn là điều cậu thấy thiếu
- Replit rất phù hợp để nhanh chóng dựng các app biệt lập cho dự án dùng một lần, thử nghiệm và demo; điểm mạnh là viết code trong web IDE rồi lập tức công khai trên web
- Replit từng miễn phí nhưng đã đưa vào các tính năng để kiếm tiền; các repl không hoạt động sẽ bị vô hiệu hóa nếu không có người dùng, và cậu hiểu rằng việc host website động công khai miễn phí cũng không còn khả thi
- Varun tạo Dock’n’Roll, một bản clone Replit self-hosted dựa trên Docker, để dùng phần cứng riêng và domain do mình trực tiếp kiểm soát
- Dock’n’Roll là dịch vụ một người dùng
- Cậu code web app trong giao diện riêng tư
dockn.varun.ch - Sản phẩm có thể được truy cập công khai ngay dưới
*.varunbiniwale.com
- Cậu code web app trong giao diện riêng tư
- Các thành phần gồm
- Bảng điều khiển làm bằng ExpressJS và giao diện web dựa trên Monaco Editor của VSCode
- Nút khởi động dự án dùng Docker Engine API để build image và chạy container
- Metadata của dự án được lưu trong Redis
- Cổng 80 của mỗi container được tự động phơi ra dưới dạng
:project.varunbiniwale.comqua reverse proxy OpenResty giao tiếp với Redis bằng plugin Lua - Các tệp dưới
/persisted/vẫn được giữ sau khi container khởi động lại và có thể xem, sửa trong giao diện web - Giao diện quản trị web được bảo vệ bằng custom nginx auth proxy do cậu tự làm
- Dock’n’Roll cũng được dùng cho bug hunting
- Host các công cụ tùy ý dùng để tìm lỗ hổng như blind SSRF và XSS
- Có ví dụ cung cấp ảnh được tạo tự động tại
yourip.varunbiniwale.com
Hiện trạng của homelab và các ràng buộc phía trước
- Varun nhận định homelab của mình có thể hơi quá mức, nhưng đó là môi trường cậu tự sở hữu và yêu thích
- Cậu cho rằng một ngày nào đó, khi tốt nghiệp và chuyển đi học đại học, rất có thể cậu sẽ không mang máy chủ theo, và cũng không muốn đặt gánh nặng tiếp tục chạy phần cứng ở nhà bố mẹ
- Self-hosting không phù hợp với tất cả mọi người, nhưng nếu là người thích mày mò và sẵn sàng chịu trách nhiệm với hậu quả, thì việc thử self-hosting ở quy mô nhỏ là đáng cân nhắc
- Việc tự vận hành máy chủ đã giúp cậu học được nhiều điều, và cậu cảm thấy tự do khi có một nơi để chạy công cụ và dự án dưới quyền kiểm soát của mình
- Cấu hình này đôi khi gây căng thẳng và có thể không phải cách thực dụng nhất, nhưng nó giúp cậu có được nhiều kỹ năng mà nếu theo cách khác thì khó học được
1 bình luận
Ý kiến trên Hacker News
Mình cũng là một đứa 16 tuổi có homelab nhỏ :)
Trước đây mình đưa mọi dịch vụ lên cloud, nhưng sau khi nhà có đường truyền 1G/1G và phát hiện các cửa hàng từ thiện bán rẻ thiết bị doanh nghiệp bị thải loại hoặc phần cứng lấy từ bãi chôn lấp, mình quyết định thử tự vận hành server vật lý
Hiện mình đang chạy Proxmox trên 2 máy và 1 NAS, với 14 ổ đĩa quay, host server Minecraft, các dự án lập trình cá nhân, trình quét lỗ hổng, bot Telegram, VPS cho bạn bè, máy ảo để build Android và macOS, kho lưu trữ, dự án máy học ở trường bằng chiếc 1050 Ti mới thêm gần đây, và cả hạ tầng cho cuộc thi CTF của trường
Nhân tiện, mình ở Ý
Sau đó mình học vật lý, làm nghiên cứu sinh tiến sĩ rồi postdoc về mạng nơ-ron, nhưng điều mình thấy quan trọng nhất là truyền cảm hứng cho những người trẻ giống mình ngày xưa, và từ năm nay mình đã quay về Ý để trở thành giáo viên trung học
Mình cũng đang chuẩn bị một khóa Python sau giờ học ở trường, nên nếu bạn ở không xa Milan và có hứng thú nói chuyện với học sinh, bạn có thể cân nhắc. Chúc bạn mọi điều tốt đẹp phía trước
Hoặc chắc họ phải học cùng một trường trung học
Dù thế nào thì cũng vỗ tay cho gia đình đã ủng hộ sở thích của bạn
Năm 2001, khi mình 16 tuổi, mình dùng tiền kiếm được từ việc làm hè để mua cuốn "Teach Yourself C" của Herbert Schildt, một card video và một chiếc Sony Trinitron
Đến cuối chương 5, Herb bắt đầu nói về mảng đa chiều theo cách kỳ quặc, rồi thấy chương tiếp theo đúng nghĩa là phép thuật và những thứ nhảm nhí gọi là con trỏ, mình bị choáng và quyết định chuyển sang kế hoạch B, tức là trở thành rockstar. Lập trình quá khó
Những gì học được thì mình dùng để nạp chương trình vào TI-82 nhằm gian lận trong bài kiểm tra toán
Vài năm sau, trong học kỳ đầu đại học, một cố vấn khuyên mình hoãn chọn ngành một học kỳ và thử học nhiều môn mình quan tâm, và đó thật sự là cứu cánh
Mình mua cuốn Java đầu tiên và bắt đầu nghiền ngẫm, thấy dễ tiếp cận hơn sách C rất nhiều; đến buổi học đầu tiên thì mình đã đọc hết phạm vi của cả khóa
Thế là bắt đầu một hành trình kéo dài hơn 15 năm cho đến nay trên con đường mình từng nghĩ đã bỏ cuộc
Giờ mình vẫn chơi guitar và thấy vui, nhưng mình biết con người nhạc sĩ trong mình sẽ không tiến xa hơn con người kỹ sư
Mình còn nhớ khi học C thời thiếu niên, tài liệu nào cũng cảnh báo rằng từ phần con trỏ trở đi sẽ trở nên kỳ lạ và khó
Ban đầu nó chỉ có vẻ huyền bí, nhưng lúc đó là kỳ nghỉ đông, và mình quyết bám cho đến khi hiểu. Không nhớ là vài giờ, vài ngày hay cả tuần, nhưng khoảnh khắc hiểu ra thì cảm giác thỏa mãn khủng khiếp, và sau đó mình thấy như mình có thể làm được bất cứ thứ gì
Mình từng đọc một cuộc phỏng vấn với Hidetaka Miyazaki, đạo diễn của series Dark Souls nổi tiếng khó, trong đó ông nói mình có trải nghiệm tương tự khi chơi guitar và học hợp âm barré, rồi đưa cảm giác thỏa mãn khi vượt qua một chướng ngại lớn vào game
Đó là một cảm giác thật sự mạnh mẽ
Cuối cùng, khi nhận ra con trỏ chỉ là địa chỉ bộ nhớ, rất nhiều sự rối rắm sụp đổ thành một khái niệm đơn giản. Mình vẫn nhớ cảm giác trong đầu lúc đó
Nhiều bạn cùng khóa quanh mình cũng có trải nghiệm tương tự, và không phải ai cũng vượt qua được
Vì vậy mình lại tò mò. Tại sao mọi người thấy con trỏ C khó hiểu đến vậy? Là do khái niệm, tức tham chiếu gián tiếp, do ký hiệu
&và*, do cách xem mảng như con trỏ, hay vì lý do khác?Trước đại học, mình đã bỏ nhiều công sức dùng lệnh
peekvàpokeđể điều khiển chip VIC và SID, rồi viết assembly, nên khi lần đầu gặp C, nền tảng đó có lẽ không tệ. Dù lúc ấy mình chưa nhận ra ngay mối liên hệ. Mình cũng tò mò tương đương của ngày nay là gìKhi đó mình có cảm giác cơ bản về ngôn ngữ lập trình nhưng gần như là người mới, và hỏi tại sao trình in tham số trong C lại in ra thứ không liên quan đến
(null), tức làenvpMột người rất tử tế trong kênh đã kiên nhẫn dẫn dắt mình hiểu những điều cơ bản về con trỏ, chuyện đó đã khoảng 16 năm trước. Mình không còn nhớ tên nữa, nhưng cảm ơn người đã giúp mình khi ấy
mallocMình cố chịu với con trỏ vì cần nó để hiểu danh sách liên kết, nhưng cấu trúc dữ liệu đó mình chỉ dùng một lần vào thập niên 1980 rồi sau đó không dùng nữa
Hiểu CPU hoạt động ở tầng thấp nhất rõ ràng có lợi thế. Tất nhiên, việc đó có thật sự cần thiết cho phần lớn lập trình ngày nay hay không thì còn gây tranh cãi
Mình thích việc cạnh đoạn nói về những rack đắt tiền lại có server đặt trên bàn Ikea. Không biết bạn có biết Lack Rack không: https://web.archive.org/web/20230131031301/https://wiki.eth0...
Một sự thật thú vị. Khi tôi 16 tuổi, kiếm một máy chủ tại nhà giá 200 đô la dễ hơn nhiều so với kiếm một VPS Digital Ocean giá 5 đô la
Dịch vụ mua sắm trực tuyến Allegro ở đây về cơ bản giống như Amazon cộng eBay, và họ sẵn sàng chấp nhận thanh toán khi nhận hàng chỉ với một khoản phí nhỏ
Có lẽ phải 18 tuổi mới được đăng ký, nhưng ở Ba Lan chẳng ai thực sự để ý đến hạn chế đó, và cũng không có xác minh tuổi
Trong khi đó, dịch vụ đám mây cần thẻ ghi nợ hoặc thẻ tín dụng, thứ mà nếu không có cha mẹ can thiệp thì không thể làm được, hoặc hoàn toàn bất khả thi
Có thể nói nhiều điều không hay về Bitcoin và tiền mã hóa nói chung, nhưng góc nhìn về quyền của thanh thiếu niên thì nhấn mạnh bao nhiêu cũng không đủ
Và nếu có sự đồng ý của cha mẹ, trẻ 13 tuổi cũng có thể mở tài khoản ngân hàng miễn phí kèm thẻ ghi nợ dùng được để thanh toán trực tuyến. Đây không phải chuyện mới; 15 năm trước tôi cũng đã có rồi
Làm tốt lắm. Tôi có cảm giác ngày càng ít người học các kiến thức cơ bản, và đôi khi là vượt cơ bản, về phần cứng và hệ điều hành
Kiến thức như vậy vẫn rất có giá trị ngay cả khi làm việc với PaaS. Ví dụ, kinh nghiệm xử lý IIS từ thời NT4 và Apache từ thời 1.x giúp ích rất nhiều khi chẩn đoán sự cố Azure Web Sites
Khoảng 10 năm trước, khi tôi làm ở trung tâm dữ liệu, chúng tôi phải thay một phần cứng như RAM của một máy chủ. Người phụ trách nhóm dùng máy chủ đó đã ngồi nhiều năm ở cách phòng máy chủ chừng 50 yard, và hỏi liệu có thể xem việc thay thế không
Anh ấy nói tò mò vì chưa từng thấy bên trong máy chủ, thậm chí nghe như còn chưa từng thấy bên trong PC ở nhà. Điều đó thật sự gây sốc
Hồi đó quy trình cũng không quá chặt, nên chỉ cần bất kỳ ngày nào nhờ một trong vài chục người cho tham quan là họ sẽ cho xem mà không hỏi gì. Quanh các vách ngăn văn phòng cũng có máy chủ nằm lăn lóc vì đủ lý do
Chỉ là trước ngày hôm đó anh ấy chưa từng nghĩ đến chuyện đó
Những PC như vậy tuy không phải máy chủ rack chuyên dụng, nhưng vẫn có thể dùng làm máy chủ và vẫn cần cấu hình
Rất nhiều hiểu biết nền tảng và trải nghiệm học hỏi kiểu này đang biến mất. Chẳng còn xa nữa sẽ có lập trình viên frontend hầu như không biết HTML và CSS, chỉ biết React
Tôi không phải 16 tuổi khi phát hiện ra máy chủ rackmount cũ, nhưng cũng còn khá trẻ, có lẽ 21 tuổi
Năm 2012, tôi đang làm một công việc tồi tệ ở Dallas, TX, lương 30 nghìn đô la một năm, không có bảo hiểm y tế, gần như chỉ đủ sống
Để thử nghiệm mã hóa video, tôi cần thứ gì đó mạnh hơn laptop một chút, nhưng không có tiền mua một máy tính đủ nhanh cho việc mình muốn làm. Tới khoảng 25 tuổi tôi cũng không tiết kiệm được bao nhiêu
Trong một phút bốc đồng, tôi tìm trên Craigslist các cụm kiểu “máy tính nhanh và rẻ”, rồi cuối cùng tìm đến “server”
Và tôi phát hiện có thể mua những máy chủ Dell dạng rackmount đã cũ nhưng vẫn dùng được với giá gần như cho không; có một người bán hai máy chủ rack Dell 16 lõi và 32GB RAM với giá khoảng 250 đô la
Tôi vừa đủ khả năng mua, nên lái xe tới lấy về, và việc đó gần như đã định hướng sự nghiệp của tôi trong 12 năm sau đó
Dell nhìn chung khá ổn với tôi, nhưng cũng có lúc phải thay ngay backplane và các bộ phận khác
https://en.wikipedia.org/wiki/Sun_Enterprise#Entry-level_ser...
Tôi cũng có một chiếc E450, tương tự cái ở đây: [https://en.wikipedia.org/wiki/File:SUN_Ultra_Enterprise_450....](https://en.wikipedia.org/wiki/File:SUN_Ultra_Enterprise_450.JPG)
Ngoài ra còn có vài thiết bị nhỏ và workstation khác, nếu nhớ không nhầm thì có lúc tôi cũng có một chiếc E220R. Tôi không biết tất cả đống đồ cũ đó giờ đã đi đâu
Dù sao chúng rất hữu ích để chuẩn bị phỏng vấn trước khi gặp khách hàng tiềm năng, tức là mài lại một số kỹ năng cụ thể, và cũng tốt cho phát triển thông thường hay công việc đóng gói
Nếu không cần lượng I/O lớn, chẳng hạn như thiết bị lưu trữ SAS/SATA hay các card PCIe đời cũ, thì việc tránh dùng những máy chủ to, ồn và ngốn điện đơn giản hơn nhiều so với tưởng tượng
Các PC OEM dạng Mini/Micro trong cùng tầm giá thường đi kèm phần cứng đời mới hơn hẳn. Thay vì i7 thế hệ 3, có khi mua được i5 thế hệ 8, và hiệu năng tổng thể cũng tốt hơn nhiều
Việc hosting và bảo trì cũng dễ hơn nhiều: chỉ cần cắm gần modem của ISP rồi quên nó đi là được
Không cần mod gì cũng nhét được hai ổ 3.5 inch và một ổ 2.5 inch; nhờ thiết kế ống dẫn nhiệt CPU thổi thẳng ra phía sau và bộ nguồn hiệu suất 80 Plus Platinum, nó có hiệu quả chi phí rất tốt cho một máy bật liên tục
Tôi cũng từng có server, nhưng là form factor HP ML nên ít ồn hơn dạng hộp pizza. ECC cũng khá quan trọng, và RAID phần cứng thật sự là một trải nghiệm học hỏi tốt
Tôi có một cụm nhỏ; nếu 1) vô hiệu hóa CPU, 2) chạy CPU còn lại ở điện áp thấp, và 3) tự làm bộ điều khiển quạt bằng chuỗi byte IPMI thô, thì thực ra chúng không ồn hay tốn điện đến thế
Đây là một trong những giải pháp lưu trữ dung lượng lớn có chi phí trên mỗi PB tốt nhất. Tôi cũng có vài NUC và máy tính single-board, nhưng mục đích sử dụng rõ ràng khác nhau
Một ngày nào đó tôi định mua một hai cụm Isilon dư thừa để đạt tới cảnh giới lưu trữ dung lượng lớn thật sự. Tôi lười vật lộn với Ceph trong thời gian rảnh
Thay vào đó tôi mua một máy vi tính siêu nhỏ Intel N100 không quạt giá 100 USD, chỉ ăn 7W mà hiệu năng gần như tương đương. Tiền tiết kiệm điện sẽ hoàn vốn cho nó
Dù i5-6600K cũng không phải loại đặc biệt tốn điện
Sau đó tôi chuyển sang Skylake Pentium, và nó chạy tốt hơn nhiều
Tôi cũng từng là một đứa như vậy. Tôi có một chiếc PC cao cấp tự lắp; để nói cho thấy thời đó, nó đắt hơn nhiều so với 6.000 USD[0], và dùng 486DX50 vừa mới ra mắt
Tôi cắm tối đa RAM cho bo mạch chủ, có lẽ là 16MB nhưng ký ức đã mờ. Nó còn có card âm thanh Turtle Beach Wave Table Synth và card video chạy được 1152x1024 trên CRT 16 inch
Tôi vận hành một BBS nhiều node bằng hai modem 9600, rồi sau đó là hai modem 16.8K
Nếu không có trải nghiệm mày mò chiếc PC đó và chiếc 8088 đã 10 năm tuổi trước đó, rất có thể tôi đã không trở thành lập trình viên phần mềm
Tôi từng lắp một PC chơi game cho cậu bé hàng xóm, và trong 4 năm đã chứng kiến cậu ấy vô thức trở thành một geek cực kỳ có năng lực
Khi bạn tinh chỉnh thiết lập để vắt thêm chút frame rate trong game, vật lộn với cập nhật firmware, driver card video, cập nhật phần mềm, và đủ thứ hỗn loạn mà câu “muốn chơi game trên PC” kéo theo, kiến thức sẽ tích lũy rất nhiều một cách tình cờ
Sau 4 năm không nói chuyện, gần đây tôi gặp lại cậu ấy và rất bất ngờ. Việc đầu tiên là cậu ấy rút Flipper Zero từ túi ra và kể đủ chuyện điên rồ đã làm với nó
Cậu ấy có năng lực chẳng kém bất kỳ sysadmin nào tôi từng nói chuyện, nhưng bản thân lại không biết mình có những kỹ năng đó
Trải nghiệm đó quá hay nên tôi cũng mua cho con trai mình một laptop gaming tử tế để chuyển từ console sang, và trong năm qua chuyện tương tự đã xảy ra
Năm nay cô con gái nhỏ hơn hai tuổi cứ nài tôi lắp cho một desktop, nên con bé sắp có một Giáng sinh tuyệt vời cùng một năm học hỏi và bực bội :)
À, và năm nay gia đình tôi cũng mua Flipper Zero. Không thể để cậu bé hàng xóm độc chiếm niềm vui được
[0] Tôi kiếm số tiền đó bằng cách lắp máy tính cho người khác
Trong đội hiện tại là chưa đến một nửa. Trong khi đó tôi lại là kẻ kỳ quặc có nhiều máy ngoài laptop công việc: PC gaming, laptop PC gaming, và cả MBP đa dụng
Con trai tôi cũng có trải nghiệm tương tự. Nó chưa từng tỏ ra quá hứng thú với việc học máy tính, nhưng lại muốn giúp lắp PC, và giờ đã trở thành người hỗ trợ kỹ thuật cho bạn bè
Sau vài năm giăng cáp đồng trục 10BASE2 quanh “homelab” của mình để nghịch, tôi nhận ra rằng người ta thật sự trả tiền cho trò chơi đồ chơi của tôi
Tất nhiên số tiền đó lại đổ hết vào đồ chơi homelab
Giờ tôi có nhiều bạn bè đã có con, một số đứa đang tuổi teen. Một thời gian tôi cứ lo trong lòng, vì kiến thức công nghệ của chúng chỉ dừng ở mức hỏi mật khẩu Wi-Fi và xem mấy video nhảm trong app
Khi hỏi lớn lên muốn làm gì, chúng trả lời “influencer”. Hành động kỹ thuật nhất là reboot “router” khi mạng không vào được, và bước chẩn đoán thứ hai là la lên rằng Internet hỏng
Chúng là những đứa trẻ tuyệt vời và tôi không có ý trách móc, nhưng tôi từng lo không biết sau khi thế hệ chúng tôi biến mất, liệu còn ai giữ cho đèn tiếp tục sáng không
Thời chúng tôi, rào cản để dùng máy tính và truy cập Internet rất cao, nhưng nhờ vậy cũng có lợi là nhân tài kỹ thuật bùng nổ
Vì thế nghe tin vẫn còn những đứa trẻ geek thích nhìn vào bên trong thật sự rất mừng
Từ việc cố chơi game trên chiếc Gateway của mẹ, tôi đã tự lắp chiếc PC đầu tiên bằng Pentium D, rồi thành sở thích liên tục mua bán phần cứng trên eBay để thay linh kiện, và cuối cùng đi tới bằng kỹ sư điện
Nếu không có video game, không mày mò PC và ép xung, thì cũng đã không có bằng kỹ sư điện
Chúc mừng. Hồi 16 tuổi tôi chỉ có 486DX2-66, modem 28.8K và UPS
Với những thiếu niên khác, và cả những người chỉ còn trẻ trong tâm hồn, muốn làm được chuyện này: hãy tìm server doanh nghiệp đã qua sử dụng trên eBay. HP, Lenovo, Dell, Supermicro thường là các thương hiệu đáng chọn
Trước khi mua, nên tìm tài liệu thông số, driver, firmware của mẫu cụ thể để kiểm tra xem đó có phải là món đồ đầy đủ và dùng được không, hoặc có thể hoàn thiện với chi phí hợp lý không
Nếu định chạy nhiều máy ảo bằng XenServer hoặc VMware ESXi, hãy kiểm tra tính tương thích trong danh sách tương thích phần cứng (HCL) của hệ điều hành trước khi mua
Tốt nhất nên tránh server 1U. Vì phải quay những quạt nhỏ và ngắn hơn 2U trở lên ở tốc độ rất cao, nên chúng ồn hơn
CPU tối thiểu phải nhanh bằng chiếc máy tính bạn đang có. Nếu không, nó có thể thành một cục chặn giấy rất đắt tiền hoặc một “Raspberry PI” cỡ lớn: https://www.cpubenchmark.net
Có một cái bẫy là CPU AMD trong server Dell, Lenovo, HP đôi khi bị khóa theo nhà cung cấp. Tuy vậy, đôi khi người bán bán CPU bị khóa với giá rất rẻ nên vẫn có thể đáng cân nhắc
ECC RAM. Là bạn bè thì không để bạn mình dùng RAM không ECC: https://cr.yp.to/hardware/ecc.html
Nên dùng SSD. Đĩa quay là để lưu trữ, không phải để chạy hệ điều hành: https://web.archive.org/web/20110831080738/http://buyafuckin...
Nếu có thể, hãy kiếm thiết bị đã có sẵn license cho tính năng quản lý từ xa như iLO hoặc iDRAC
Khi nhận được, có lẽ nó sẽ bẩn và có vết xước, nên hãy mở ngoài trời và vệ sinh bằng khí nén
Điểm thưởng: thuyết phục bố mẹ cho lắp patch panel 19 inch và half rack trong gara :]
Tôi đã làm homelab trong thời gian dài, và thay vì mua hay săn phần cứng server cũ, tôi dùng hệ thống rackmount nhét đầy linh kiện desktop cũ. Không nhất thiết phải có
ECC RAM cũng hữu ích nếu mua được rẻ và CPU hỗ trợ, nhưng theo kinh nghiệm của tôi, mức độ vấn đề này có phần bị thổi phồng
Dù vậy tôi đồng ý với lời khuyên mua thiết bị 2U hoặc 3/4U. Chúng có thể gắn quạt lớn hơn nhiều, nên yên tĩnh hơn
Khi còn là thiếu niên đầu thập niên 90 và có chiếc máy tính đầu tiên, điều gây sốc nhất với tôi là mọi máy tính đều là server
Máy tính không cần phải có form factor dạng rack, cũng không cần đắt tiền. Chỉ cần Winsock và TCP/IP là đủ, thế là xong. Máy tính của tôi cũng giống như mọi máy tính khác trên Internet
Vì vậy bài viết này rất hay, nhưng để chạy một ứng dụng nền Node và cung cấp nó ra Internet thì phần cứng hầu như không liên quan, nên tôi ước phần nhấn mạnh vào phần cứng ít hơn một chút
Cũng không cần IP tĩnh, chỉ cần tìm hiểu DNS động là được :)
Đó là bài do chính người tạo ra nó viết; vào thời thập niên 90, khi Deutsche Bahn chưa có mặt trực tuyến, thông tin tuyến đường vẫn có trên CD-ROM
Một người đã lấy dữ liệu từ CD-ROM đó và tạo ra một công cụ cho phép truy vấn lộ trình giữa hai ga rồi trả kết quả
Cách truy vấn rất thú vị: bạn gửi email đến địa chỉ email đại học của anh ấy, rồi “server”, thực ra là chiếc PC ở góc phòng, cứ 5 phút lại lấy email về, xử lý truy vấn và gửi kết quả lại qua email
Đáng tiếc là bây giờ Google và DDG đã trở nên vô dụng, nên lần trước khi tôi cố tìm câu chuyện này, tôi đã mất rất nhiều thời gian
Một máy tính bo mạch đơn hiện đại cũng hoàn toàn có thể trở thành home server đủ năng lực, lại nhỏ hơn, yên tĩnh hơn, rẻ hơn nhiều và tiêu thụ ít điện hơn
Ban đầu tôi cài FreeBSD, sau đó là Linux, và việc có máy Unix của riêng mình ở nhà thật đáng kinh ngạc
Nó không mạnh, cũng không có nhiều bộ nhớ hay dung lượng lưu trữ, nhưng nó là của tôi và tôi có thể làm bất cứ gì mình muốn
Tôi chạy bot IRC, vận hành web server chứa những script Perl lộn xộn do tôi viết. Sau khi gắn card mạng, nó còn đóng vai trò router quay số cho cả nhà
Tôi đã học được rất nhiều khi mày mò chiếc máy đó, và tôi cho rằng khả năng thoát vim của mình là nhờ chiếc máy ấy
Tôi đăng nó lên Freshmeat[1], rồi vừa ăn tối vừa ngồi trên sofa nhìn log Apache cuộn qua. Đó là một trong những cảm giác tuyệt nhất trong sự nghiệp của tôi
[1] https://en.wikipedia.org/wiki/Freecode