2 पॉइंट द्वारा GN⁺ 2023-12-23 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • 2020 के lockdown के दौरान web development शुरू करने वाले Varun ने Replit और अपने personal PC से आगे बढ़कर, घर से ही services और experimental projects चलाने के लिए एक homelab बनाया
  • स्कूल के लिए real-time quiz game Quickz, खुद का social media platform, और Scratch community tools जैसे असली users वाले services बढ़ने के साथ self-hosting operations का अनुभव भी बढ़ता गया
  • Windows 10 Pro पर शुरू हुआ पहला server updates और downtime की समस्याओं से जूझा, और नवंबर 2020 में Ubuntu Server पर जाने के साथ Linux·nginx·Docker आधारित संचालन में बदल गया
  • Dell OptiPlex की storage और performance सीमाएँ सामने आने के बाद, मई 2022 में उसने एक used Dell PowerEdge R720XD लेकर Proxmox और Ubuntu Server VM संरचना तक विस्तार किया
  • उसके द्वारा बनाया गया Dock’n’Roll, Replit जैसे तेज deployment flow को अपने hardware और domain पर दोबारा बनाता है, लेकिन homelab में आज़ादी और सीखने के साथ शोर, बिजली और घर बदलने जैसी व्यावहारिक सीमाएँ भी बनी रहती हैं

कमरे के homelab और उस पर चल रही services

  • Varun घर में दो servers चलाता है
    • फ़र्श पर रखा Dell OptiPlex
    • एक छोटी IKEA coffee table पर रखा Dell PowerEdge R720XD
    • दोनों servers लाल और पीले Ethernet cables से जुड़े हैं
  • home server पर experimental projects से लेकर वास्तविक users वाली services तक सब साथ चल रही हैं
    • हज़ारों users वाला उसका खुद का social media platform
    • स्कूल के लिए real-time quiz game Quickz
    • MYP Personal Project demo instance के रूप में flipbook-style animation बनाने और share करने वाला platform
    • Scratch community के लिए search engine जैसे tools
    • दोस्तों के लिए game servers
    • कई Plausible Analytics instances
    • experimental projects बनाने और host करने के लिए Replit-जैसा tool

2020 के lockdown से शुरू हुई self-hosting

  • इसकी शुरुआत 2020 के lockdown के समय हुई, तब Varun 13 साल का था
  • शुरुआत में उसने static HTML websites से web development शुरू किया, और जल्द ही backend वाले ज़्यादा complex apps बनाने लगा
  • शुरुआती web apps, Discord bots, और automation scripts को उसने Replit पर host किया
  • Minecraft server वह अपने personal computer को लगातार चालू रखकर दोस्तों के लिए चलाता था
  • cloud के बजाय home server चुनने की वजह cost saving से ज़्यादा पूरे stack को सीखना था
    • user-facing frontend
    • backend और database
    • और services को वास्तव में deploy करने वाला server operations भी खुद सीखना चाहता था
    • उसका मानना था कि उसके scale पर cloud इस्तेमाल करना शायद ज़्यादा cost-efficient भी हो सकता है

पहला server: Dell OptiPlex और Windows 10 Pro

  • उसने eBay से i7-3770S और 8GB RAM वाला Dell OptiPlex लिया
  • अमेरिका से Switzerland शिप होने के दौरान seller ने शुरुआत में गलत RAM capacity भेज दी, और इसे सुलझाने में कई हफ्ते लग गए
  • familiarity की वजह से उसने शुरू में Windows 10 Pro को ही server operating system के रूप में इस्तेमाल किया
  • घर पर static IPv4 address होने से website hosting आसान और ज़्यादा reliable थी
  • सभी services को उसने Cloudflare के पीछे रखा, और Cloudflare मुफ्त में SSL, DNS, और अनुमानित DDoS protection जैसी सुविधाएँ संभालता था

Windows से Ubuntu Server पर जाना

  • उस समय Windows 10 server चलाने के Varun के लिए कुछ फायदे थे
    • वह पहले से Windows का आदी था
    • personal desktop जैसे environment में test कर सकता था
    • घर में RDP के ज़रिए तेज और अच्छी quality का connection मिल जाता था
    • स्कूल के दिए Chromebook पर web-based access की ज़रूरत होने से वह Chrome Remote Desktop इस्तेमाल कर सकता था
  • लेकिन Windows updates बार-बार downtime लाते थे और windows की layout फिर से सेट करनी पड़ती थी, इसलिए नवंबर 2020 में उसने Ubuntu Server अपना लिया
  • migration से पहले उसे चिंता थी कि कहीं पूरे system की त्वरित समझ खो न जाए, लेकिन Windows में code लिखते समय command line की आदत पड़ जाने से Linux में उसकी adaptation तेज रही
  • शुरुआती Linux setup simple था, लेकिन उसमें कुछ जोखिम भी थे
    • internet पर exposed nginx, port 443 पर self-signed certificate के साथ HTTPS traffic संभालता था और Cloudflare से बाहर की requests को reject करता था
    • वह कई projects चलाता था जिन्हें 24/7 online रखना चाहता था
    • कई projects के लिए एक shared MongoDB instance चलाता था
    • कुछ Minecraft Java servers भी चल रहे थे
    • स्कूल से server access करने के लिए उसने webssh2 expose किया, हालांकि वह खुद मानता है कि यह शायद बहुत secure नहीं था
  • third-party software install करना dependencies और apt repositories जोड़ने की वजह से जल्दी complex हो गया, और Docker installation व execution को सरल बनाने वाला tool बन गया
    • third-party software को वह Docker में चलाता था
    • अपना लिखा code सीधे server पर चलाता था

storage की सीमा और PowerEdge R720XD का आगमन

  • करीब एक साल बाद वह Quickz और अपने social media platform जैसे वास्तविक users वाले projects चला रहा था
  • स्कूल में रहते हुए server बंद हो गया, उसने SSH से connect करने की कोशिश की लेकिन disk errors दिखने के बाद system आखिरकार hang हो गया
  • कारण storage खत्म होना था, और घर पहुँचकर उसने कुछ files delete करके थोड़ा समय निकाला
  • मौजूदा Dell OptiPlex का 8GB RAM और i7-3770S बढ़ते usage को संभालने के लिए काफ़ी नहीं था
  • मई 2022 में उसने bug bounty से बचाए पैसे खर्च करके एक used Dell PowerEdge R720XD खरीदा
    • 3TB drives की 3 units
    • 128GB DDR3 RAM
    • बिजली ज़्यादा खाने वाले 2×E5-2690 CPUs
  • खरीदने से पहले उसने space, noise, और power consumption पर काफ़ी विचार नहीं किया था, और iDRAC fan speed को unsupported hack से 10% पर fix करके शोर की समस्या कुछ कम की
  • R720XD में power supplies, CPUs, और NICs दो-दो हैं, और इसमें iDRAC भी है, जो ऐसा mini computer है जिससे server बंद होने पर भी remote management किया जा सकता है
  • शुरुआत में उसने server को living room में TV के पास coffee table पर रखा, और rack व mounting equipment server से भी महँगे निकले

Proxmox और remote access की संरचना

  • नए server पर उसने hypervisor इस्तेमाल करने का फैसला किया और Proxmox चलाया
  • ज़्यादातर resources एक Ubuntu Server VM को दिए गए, और अब सभी services Docker के अंदर व्यवस्थित होकर चलती हैं
  • इस setup की वजह से बाद में services migrate करते समय सब कुछ फिर से configure करने की ज़रूरत नहीं रहती
  • अलग से वह backdoor नाम का एक Xubuntu VM चलाता है, जिसमें Chrome Remote Desktop इस्तेमाल होता है
    • इससे कहीं से भी home network में एक सुविधाजनक workspace तक पहुँचा जा सकता है
    • OpenVPN या WireGuard जैसे VPN भी setup किए जा सकते हैं, लेकिन यह तरीका iPad जैसे सीमित devices और स्कूल के public Wi‑Fi पर भी काम करता है
    • और इसे वह इस मायने में भी बेहतर मानता है कि bots के brute-force attempts की चिंता नहीं करनी पड़ती

Replit अनुभव को खुद बनाना: Dock’n’Roll

  • कई servers होने के बाद भी Replit का तेज experimental flow उसे याद आता रहा
  • Replit एकबारगी projects, experiments, और demos के लिए isolated apps जल्दी शुरू करने में अच्छा था, और web IDE में code लिखते ही उसे तुरंत web पर publish कर देने वाला flow इसकी बड़ी ताकत थी
  • Replit मुफ्त था, लेकिन उसने monetization के लिए features जोड़े; inactive repls users न होने पर inactive हो जाते हैं, और उसकी समझ के मुताबिक मुफ्त public dynamic website hosting अब संभव नहीं रही
  • इसलिए Varun ने अपने hardware और अपने control वाले domain पर Docker आधारित self-hosted Replit clone Dock’n’Roll बनाया
  • Dock’n’Roll एक single-user service है
    • private interface dockn.varun.ch पर वह web apps code करता है
    • output तुरंत *.varunbiniwale.com के तहत publicly accessible हो जाता है
  • इसके components इस प्रकार हैं
    • ExpressJS से बना control panel और VSCode के Monaco Editor पर आधारित web interface
    • project start button, Docker Engine API के ज़रिए image build करता है और container चलाता है
    • project metadata, Redis में store होता है
    • हर container का port 80, Redis से Lua plugin के माध्यम से बात करने वाले OpenResty reverse proxy से होकर :project.varunbiniwale.com पर अपने-आप expose हो जाता है
    • /persisted/ के नीचे की files, container restart होने के बाद भी बनी रहती हैं और web interface से देखी व बदली जा सकती हैं
    • web admin interface को उसके बनाए custom nginx auth proxy से सुरक्षित किया गया है
  • Dock’n’Roll का उपयोग bug hunting में भी होता है
    • blind SSRF और XSS जैसी vulnerabilities खोजने के लिए इस्तेमाल होने वाले random tools वह इसमें host करता है
    • yourip.varunbiniwale.com पर auto-generated images देने वाला एक example भी है

homelab की वर्तमान स्थिति और आगे की सीमाएँ

  • Varun का कहना है कि उसका homelab शायद थोड़ा ज़्यादा हो गया है, लेकिन यह ऐसा environment है जो उसका अपना है और उसे पसंद है
  • उसका मानना है कि graduation के बाद जब वह college के लिए shift करेगा, तब शायद servers साथ नहीं ले जाएगा, और वह अपने parents के घर में hardware लगातार चलाने का बोझ भी नहीं छोड़ना चाहता
  • self-hosting हर किसी के लिए सही नहीं है, लेकिन अगर कोई tinkerer है और उसके परिणामों को संभालने के लिए तैयार है, तो छोटे स्तर पर self-hosting आज़माना सार्थक हो सकता है
  • servers खुद चलाकर उसने बहुत कुछ सीखा, और अपने control में tools और projects चलाने की जगह होने से उसे आज़ादी महसूस होती है
  • यह setup कभी-कभी stress भी देता है और हमेशा सबसे practical तरीका भी नहीं है, लेकिन इससे उसे बहुत सी ऐसी skills मिलीं जिन्हें किसी और तरीके से सीखना मुश्किल होता

1 टिप्पणियां

 
GN⁺ 2023-12-23
Hacker News टिप्पणियाँ
  • मैं भी छोटा homelab रखने वाला 16 साल का हूँ :)
    पहले मैं सारी services cloud पर चलाता था, लेकिन घर पर 1G/1G connection लगने के बाद और यह पता चलने पर कि charity shops decommissioned enterprise equipment या landfill से निकला hardware सस्ते में बेचती हैं, मैंने खुद physical server चलाकर देखने का फैसला किया
    अभी मैं Proxmox को 2 machines और 1 NAS, 14 spinning disks पर चला रहा हूँ, और Minecraft server, personal programming projects, vulnerability scanner, Telegram bot, दोस्तों के लिए VPS, Android और macOS builds के लिए virtual machines, storage, हाल ही में जोड़े गए 1050 Ti पर machine learning school projects, और school CTF competition infrastructure तक host कर रहा हूँ
    वैसे मैं Italy से हूँ

    • मैं भी Italian हूँ, 16 साल की उम्र में self-taught coding सीखी थी और अब 34 साल का हूँ। ज़ाहिर है, मैं तुम्हारे level के आसपास भी नहीं था
      बाद में physics पढ़ी, PhD की, neural networks से जुड़ा postdoc भी किया, लेकिन मुझे सबसे महत्वपूर्ण लगा अपने पुराने जैसे युवा लोगों को inspire करना, और इस साल से Italy लौटकर high school teacher बन गया हूँ
      स्कूल में after-school Python course भी तैयार कर रहा हूँ, इसलिए अगर तुम Milan से ज़्यादा दूर नहीं हो और students से बात करने में रुचि हो, तो इस बारे में सोच सकते हो। आगे के लिए शुभकामनाएँ
    • Internet की सचमुच शानदार बात यही है। वरना ये दो 16 साल के लोग एक-दूसरे को कैसे ढूँढ पाते?
      या फिर उन्हें एक ही high school में पढ़ना पड़ता
    • तुम्हारे parents शायद इन devices को लगातार चलाने का बिजली बिल काफी उठा रहे होंगे। खासकर अगर services से revenue नहीं आ रहा है
      किसी भी तरह, तुम्हारी रुचियों को support करने वाले परिवार को सलाम
    • बहुत बढ़िया। मैं भी machine learning से जुड़े काम के लिए कहीं कोई पुराना graphics card जोड़ने की सोच रहा हूँ, लेकिन पहले तरीका पता करना होगा :)
    • जानना चाहूँगा कि बिजली बिल कौन भरता है। दो servers से ऐसा लगता है कि महीने का करीब 50–100 dollars आ सकता है
  • जब मैं 2001 में 16 साल का था, तो summer job से बचाए पैसे से Herbert Schildt की "Teach Yourself C", एक video card और Sony Trinitron खरीदा था
    Chapter 5 के अंत तक Herb multidimensional arrays के बारे में अजीब तरह से बात करने लगे, और जब देखा कि अगला chapter literally magic और nonsense जैसे pointers पर है, तो मैं overwhelmed हो गया और Plan B, यानी rockstar बनना, चुन लिया। Programming बहुत मुश्किल थी
    जो सीखा, उसका इस्तेमाल TI-82 में programs डालकर maths exams में cheating करने के लिए किया
    कुछ साल बाद college के पहले semester में एक advisor ने सलाह दी कि major को एक semester टालकर कई interesting subjects try करूँ, और वह सचमुच बचाने वाला साबित हुआ
    पहली Java book खरीदी और उसमें जुट गया; वह C book से काफी अधिक approachable लगी, और जब पहली class में गया तो मैं पहले ही course का पूरा हिस्सा पढ़ चुका था
    इस तरह उस रास्ते पर मेरी यात्रा शुरू हुई जिसे मैंने समझा था कि छोड़ दिया है, और जो अब 15 साल से ज्यादा समय से जारी है
    आज भी guitar बजाता हूँ और मज़ा लेता हूँ, लेकिन जानता हूँ कि musician के रूप में मैं technician के रूप में जितना अच्छा हूँ उससे बेहतर नहीं हो पाऊँगा

    • Pointers वह turning point थे जिसने मुझे learning और self-improvement से प्यार करना सिखाया
      teenager रहते C सीखते समय याद है कि हर material चेतावनी देता था कि pointers से चीज़ें अजीब और कठिन हो जाती हैं
      शुरू में वे रहस्यमय लगे, लेकिन winter break था, और मैंने तय किया कि समझ आने तक लगा रहूँगा। याद नहीं कि कुछ घंटे लगे, कुछ दिन या पूरा हफ्ता, लेकिन जैसे ही बात समझ आई, बेहद satisfaction मिला और उसके बाद लगा कि कुछ भी कर सकता हूँ
      मशहूर तौर पर कठिन Dark Souls series के director Hidetaka Miyazaki के interview में पढ़ा था कि guitar बजाते हुए barre chords सीखते समय उन्हें भी ऐसा ही अनुभव हुआ था, और उन्होंने बड़े hurdle को पार करने की उस संतुष्टि को games में शामिल किया
      यह वाकई बहुत powerful feeling है
    • 80s के अंत में undergraduate रहते C pointers ने मुझे काफी समय तक बहुत confuse किया, और teachers भी ज्यादा मदद नहीं कर पाए
      आखिर जब समझ आया कि pointer बस memory address है, तो बहुत सा confusion एक simple concept में ढह गया। मेरे दिमाग में कैसा महसूस हुआ था, यह आज भी याद है
      आसपास के classmates में भी कई लोगों को ऐसा ही अनुभव हुआ, और सब उसे पार नहीं कर पाए
      इसलिए फिर सोचता हूँ: लोगों को C pointers समझना इतना मुश्किल क्यों लगता है? Concept, यानी indirection की वजह से, & और *, arrays को pointers की तरह handle करने वाली notation की वजह से, या किसी और वजह से?
      University से पहले मैंने peek और poke commands से VIC और SID chips manipulate करने और assembly language लिखने में काफी मेहनत की थी, और C से पहली मुलाकात के समय वह background शायद बुरा नहीं था। भले ही उस समय connections तुरंत समझ में नहीं आए हों। आजकल इसका equivalent क्या होगा, यह भी सोचता हूँ
    • teenager रहते programming पर बात करने वाला कोई नहीं था, इसलिए Freenode पर भटकते हुए ##C मिला था, यह याद है
      उस समय programming languages की basic समझ थी, लेकिन लगभग beginner था, और मैंने पूछा कि C में argument printer (null) से असंबंधित चीज़, यानी envp, क्यों print कर रहा है
      Channel में एक बहुत ही helpful व्यक्ति ने धैर्य से मुझे pointers की basics समझने तक guide किया, और यह करीब 16 साल पहले की बात है। नाम अब याद नहीं, लेकिन उस समय मदद करने वाले व्यक्ति का आभारी हूँ
    • High school में K&R पढ़ते समय malloc implement करने वाले हिस्से पर अटक गया था
      Pointers linked list समझने के लिए जरूरी थे, इसलिए टिक गया, लेकिन उस data structure को 1980s में एक बार इस्तेमाल किया और उसके बाद कभी नहीं
    • मैंने programming शुरुआत में सीधे hexadecimal (Z80) और octal (PDP11) में input करके शुरू की थी, इसलिए C तक पहुँचते-पहुँचते memory indirection natural लगती थी
      CPU नीचे से कैसे काम करता है, यह समझने में निश्चित रूप से फायदा है। हालांकि आजकल की अधिकांश programming के लिए यह जरूरी है या नहीं, इस पर बहस हो सकती है
  • महंगे racks की बात करने वाले paragraph के बगल में Ikea table पर server रखा होना अच्छा लगा। सोचता हूँ क्या उन्हें Lack Rack के बारे में पता था: https://web.archive.org/web/20230131031301/https://wiki.eth0...

    • पता है। बस अभी तक सारे dimensions नापकर सही screws और table खोजने का समय नहीं मिला
  • एक मज़ेदार तथ्य। जब मैं 16 साल का था, तब 200 डॉलर का home server लेना 5 डॉलर का Digital Ocean VPS लेने से कहीं ज़्यादा आसान था
    यहाँ की online shopping service Allegro असल में Amazon और eBay के मिश्रण जैसी है, और थोड़ी-सी fee देने पर cash on delivery खुशी-खुशी स्वीकार कर लेती थी
    Sign up करने के लिए शायद 18 साल का होना ज़रूरी रहा होगा, लेकिन Poland में ऐसी पाबंदियों की असल में किसी को परवाह नहीं थी और age verification भी नहीं था
    इसके उलट cloud services के लिए debit card या credit card चाहिए होता था, जिसे parents की दखल के बिना बनवाना मुश्किल या बिल्कुल असंभव था
    Bitcoin और cryptocurrencies के बारे में बहुत कुछ बुरा कहा जा सकता है, लेकिन किशोरों के अधिकारों के नज़रिए को जितना भी रेखांकित किया जाए कम है

    • Sign up की उम्र 18 नहीं, 13 साल है
      और parents की consent हो तो 13 साल का बच्चा भी online payment वाले debit card के साथ free bank account खोल सकता है। यह कोई नई चीज़ भी नहीं है; 15 साल पहले मेरे पास भी ऐसा था
    • क्या आपका मतलब है कि आप parents द्वारा बच्चों की संपत्ति को control करने के पक्ष में नहीं हैं?
  • बढ़िया किया। ऐसा लगता है कि hardware और operating system की basics, और कभी-कभी basics से भी आगे की चीज़ें सीखने वाले लोग लगातार कम हो रहे हैं
    यह knowledge PaaS पर काम करते समय भी बहुत valuable है। उदाहरण के लिए, NT4 के दौर से IIS और 1.x के दौर से Apache संभालने का experience Azure Web Sites की problems diagnose करने में बहुत मदद करता है

    • Industry में सचमुच काम करने वाले लोगों को भी कई बार यह नहीं पता होता
      करीब 10 साल पहले जब मैं data center में काम करता था, तो एक server में RAM जैसे hardware को replace करना था। उस server का इस्तेमाल करने वाली team का lead server room से करीब 50 yards दूर कई सालों से बैठता था, और उसने पूछा कि क्या वह replacement देख सकता है
      उसने कहा कि उसने server के अंदर कभी नहीं देखा था, इसलिए curious था; सुनकर तो ऐसा लगा कि शायद उसने अपने घर के PC के अंदर भी कभी नहीं देखा था। यह सच में shocking था
      उस समय procedures बहुत सख्त भी नहीं थे, इसलिए किसी भी दिन दर्जनों लोगों में से किसी एक से tour के लिए कहता तो बिना सवाल दिखा देता। Office cubicles के आसपास भी अलग-अलग वजहों से servers पड़े रहते थे
      उस दिन से पहले उसने बस कभी इसके बारे में सोचा ही नहीं था
    • ज़्यादातर लोगों के पास खुद assemble किया हुआ PC तक नहीं होता। Internal structure की समझ बहुत कम होती है, और hardware news या articles भी पर्याप्त नहीं पढ़ते
      ऐसे PC भी professional rack servers नहीं होते, लेकिन server के तौर पर इस्तेमाल किए जा सकते हैं, और फिर भी configuration चाहिए होता है
      यह basic understanding और learning experience काफी हद तक गायब हो रहा है। वह दिन दूर नहीं जब frontend developers को HTML और CSS लगभग न पता हो, सिर्फ React आता हो
  • जब मैंने used rackmount server देखा तब मैं 16 साल का नहीं था, लेकिन काफी young था—शायद 21 का
    2012 में Dallas, TX में मैं सालाना 30,000 डॉलर पर, health insurance के बिना, लगभग गुज़ारे लायक एक बेहद खराब job कर रहा था
    Video encoding experiments के लिए laptop से थोड़ा ज़्यादा powerful कुछ चाहिए था, लेकिन जो काम करना चाहता था उसके लिए पर्याप्त तेज़ computer खरीदने के पैसे नहीं थे। करीब 25 साल की उम्र तक मैं खास saving भी नहीं कर पाया था
    अचानक impulse में Craigslist पर “fast cheap computer” के अलग-अलग phrases search किए और आखिरकार “server” खोजने लगा
    तब पता चला कि पुराने मगर अभी भी usable rackmount Dell servers लगभग मुफ्त जैसे दाम पर मिल सकते हैं, और एक seller करीब 250 डॉलर में 16 cores और 32GB RAM वाले दो Dell rack servers बेच रहा था
    मैं किसी तरह उन्हें खरीद सका, कार चलाकर गया और उठा लाया; उसी ने अगले 12 सालों तक मेरे career की दिशा लगभग तय कर दी

    • Rackmount servers की hidden costs होती हैं। एक तो यह कि आपको drones के झुंड जैसी आवाज़ के पास बैठना पड़ता है, और दूसरी replacement parts की enterprise pricing
      Dell मेरे लिए कुल मिलाकर ठीक रहा, लेकिन backplane और दूसरे parts तुरंत replace करने पड़े ऐसे मौके भी आए
    • सदी के मोड़ के आसपास मैं Solaris contract work में specialize करता था, इसलिए उस समय मेरी homelab ज़्यादातर eBay से खरीदे गए पुराने Sun Enterprise equipment से बनी थी
      https://en.wikipedia.org/wiki/Sun_Enterprise#Entry-level_ser...
      मेरे पास E450 भी था, यहाँ वाले जैसा: [https://en.wikipedia.org/wiki/File:SUN_Ultra_Enterprise_450....](https://en.wikipedia.org/wiki/File:SUN_Ultra_Enterprise_450.JPG)
      इसके अलावा कई छोटे devices और workstations भी थे, और अगर याद सही है तो एक समय E220R भी था। पता नहीं वे सारी पुरानी चीज़ें आखिर कहाँ गईं
      खैर, potential customers से मिलने से पहले interview prep, यानी किसी खास technology को फिर से polish करने में वे बहुत useful थे, और general development या packaging work के लिए भी अच्छे थे
    • मुझे curious है कि आपने, उदाहरण के लिए, दो 8-core desktops क्यों नहीं इस्तेमाल किए
  • अगर भारी मात्रा में I/O—जैसे SAS/SATA स्टोरेज या पुराने PCIe कार्ड—की ज़रूरत न हो, तो बड़े, शोरगुल वाले और ज्यादा बिजली खाने वाले servers से बचना उम्मीद से कहीं ज्यादा आसान है
    उसी कीमत पर मिलने वाले Mini/Micro form factor OEM PC आम तौर पर कहीं ज्यादा नई generation के hardware के साथ आते हैं। 3rd-gen i7 के बजाय 8th-gen i5 मिल सकता है, और कुल performance भी काफी बेहतर होती है
    hosting और maintenance भी कहीं ज्यादा आसान है: ISP modem के पास plug कर दो और भूल जाओ

    • मेरे पास एक पुरानी Skylake HP Elite SFF machine है
      बिना किसी modification के इसमें दो 3.5-inch drives और एक 2.5-inch drive लग सकती है, और CPU की heat सीधे पीछे निकालने वाले ducted design तथा 80 Plus Platinum efficiency वाले power supply की वजह से हमेशा चालू रहने वाली machine के तौर पर इसकी value for money बहुत अच्छी है
    • “plug कर दो और भूल जाओ” बिल्कुल वही था जो मैं 16 साल की उम्र में नहीं चाहता था
      मेरे पास भी server था, लेकिन HP ML form factor में था, इसलिए pizza-box type की तुलना में कम शोर करता था। ECC भी काफी अहम है, और असली hardware RAID सीखने का अच्छा अनुभव है
    • अगर सच में बहुत सारे SATA disks इस्तेमाल करने हैं, तो कई R720XD को मात देना मुश्किल है
      मेरे पास इनका एक छोटा सा cluster है, और अगर 1) CPU disable कर दें, 2) बचे हुए CPU को undervolt पर चलाएं, और 3) raw IPMI byte sequences से अपना fan controller बना लें, तो वे असल में इतने शोरगुल वाले या बिजली-खाऊ नहीं रहते
      PB के हिसाब से cost के मामले में यह बड़े storage के सबसे अच्छे समाधानों में से एक है। मेरे पास कई NUC और single-board computers भी हैं, लेकिन उनका use-case साफ तौर पर अलग है
      कभी न कभी surplus Isilon cluster एक-दो खरीदकर सचमुच बड़े storage की league में पहुंचने का इरादा है। खाली समय में Ceph से जूझना झंझट लगता है
    • router के लिए OpnSense चलाने को मैं एक पुराना Skylake computer इस्तेमाल करते-करते रह गया था
      उसकी जगह $100 का fanless Intel N100 micro computer खरीदा, जो सिर्फ 7W खाता है और performance लगभग वैसी ही है। बिजली बिल में बचत से इसकी कीमत वसूल हो जाएगी
      जबकि i5-6600K खास तौर पर ज्यादा बिजली खाने वाला भी नहीं था
    • एक समय Intel motherboard और Atom CPU का combination file server के तौर पर इस्तेमाल किया था, लेकिन आखिर upgrade करना पड़ा। Atom chip सच में बहुत खराब थी
      बाद में Skylake Pentium पर गया, और वह कहीं बेहतर चला
  • मैं भी पहले ऐसा ही बच्चा था। मेरे पास खुद assemble किया हुआ ultra-high-end PC था—समय का अंदाज़ा देने के लिए, वह $6,000[0] से भी काफी ज्यादा का था, और नए-नए आए 486DX50 पर आधारित था
    motherboard RAM पूरी capacity तक लगाई थी, शायद 16MB रही होगी, हालांकि याद धुंधली है। Turtle Beach Wave Table Synth sound card और 16-inch CRT पर 1152x1024 चलाने वाला video card भी था
    दो 9600 modems, और बाद में दो 16.8K modems के साथ multi-node BBS चलाता था
    अगर उस PC और उससे पहले के 10 साल पुराने 8088 से छेड़छाड़ का अनुभव न होता, तो बहुत संभव है कि मैं software developer न बनता
    मैंने पड़ोस के एक बच्चे के लिए gaming PC बनाया था, और 4 साल में उसे अनजाने में ही बेहद सक्षम geek बनते देखा
    games में थोड़ा भी ज्यादा frame rate निकालने के लिए settings tweak करना, firmware updates, video card drivers, software updates, और “मुझे PC पर game खेलना है” कहने से पैदा होने वाली हर तरह की अफरातफरी से जूझते-जूझते बहुत सारा ज्ञान अपने-आप जमा हो जाता है
    4 साल तक उस बच्चे से बात नहीं हुई थी, फिर हाल ही में मिला तो हैरान रह गया। सबसे पहले उसने जेब से Flipper Zero निकाला और उससे की गई तमाम पागलपन भरी चीज़ों के बारे में बताया
    वह उन किसी भी systems admin जितना सक्षम था जिनसे मैंने बात की है, लेकिन उसे खुद पता भी नहीं कि उसके पास ये skills हैं
    यह इतना अच्छा अनुभव था कि मैंने अपने बेटे को भी console से आगे बढ़ाने के लिए एक ठीक-ठाक gaming laptop दिलाया, और पिछले एक साल में वही चीज़ हुई
    इस साल मेरी दो साल छोटी बेटी desktop बनवाने की ज़िद कर रही है, तो उसे एक शानदार Christmas और पूरे साल की learning और frustration मिलने वाली है :)
    हां, और हमारे परिवार ने भी इस साल Flipper Zero खरीदा। पड़ोस के बच्चे को सारा मज़ा अकेले तो नहीं लेने दे सकते
    [0] दूसरे लोगों के computers assemble करके मैंने वह पैसा इकट्ठा किया था

    • software career के 25 साल बाद भी मुझे सच में हैरानी होती है कि मेरी team के software engineers में से कितने कम लोगों के पास अपना computer है
      मौजूदा team में यह आधे से भी कम है। वहीं मैं अजीब इंसान हूं जिसके पास work laptop के अलावा gaming PC, gaming laptop PC, और general-purpose MBP तक कई machines हैं
      मेरे बेटे का भी कुछ ऐसा ही अनुभव रहा। उसने computers सीखने में कभी बहुत interest नहीं दिखाया, लेकिन PC assemble करने में मदद करना चाहता था, और अब वह अपने दोस्तों का tech support बन गया है
    • HN पर कई लोगों की तरह मेरी भी मिलती-जुलती कहानी है
      कई साल तक अपने “homelab” में 10BASE2 coaxial cable बिछाकर खेलता रहा, फिर समझ आया कि लोग सचमुच मेरे खिलौना-जैसे प्रयोगों के लिए पैसे देते हैं
      बेशक वह पैसा फिर वापस homelab के खिलौनों में ही चला गया
      अब मेरे कई दोस्त बच्चे वाले हैं, और उनमें से कुछ teenage में हैं। काफी समय से मन में एक चिंता थी कि उन बच्चों की technical knowledge बस Wi-Fi password पूछने और apps में मज़ाकिया videos जैसी चीज़ें देखने तक सीमित है
      पूछो बड़े होकर क्या बनना चाहते हो, तो कहते हैं “influencer”। उनका सबसे technical काम internet न चलने पर “router” reboot करना है, और दूसरा diagnostic step है चिल्लाना कि internet नहीं चल रहा
      वे अच्छे बच्चे हैं और मैं उन्हें दोष नहीं दे रहा, लेकिन चिंता थी कि हमारी generation के जाने के बाद भी रोशनी जलाए रखने वाला कोई होगा या नहीं
      हमारे समय में computer इस्तेमाल करने और internet से जुड़ने की entry barrier बड़ी थी, लेकिन उसी वजह से technical talent के विस्फोट का फायदा भी मिला
      इसलिए यह सुनना सच में अच्छा है कि अब भी ऐसे geeky बच्चे हैं जो अंदर झांककर देखते हैं
    • मैंने भी कुछ साल बाद बिल्कुल यही रास्ता अपनाया
      मां के Gateway पर games चलाने की कोशिश करते-करते Pentium D वाला पहला PC बनाया, फिर eBay पर लगातार hardware खरीदने-बेचने और parts बदलने का शौक लगा, और आखिर में electrical engineering degree तक पहुंच गया
      video games, PC से छेड़छाड़ और overclocking न होती, तो electrical engineering degree भी नहीं होती
    • जानना चाहूंगा कि उस बच्चे ने Flipper Zero से कौन-सी cool चीज़ें कीं
    • बच्चों की उम्र क्या है, यह जानने की उत्सुकता है
  • बधाई। जब मैं 16 साल का था, मेरे पास सिर्फ 486DX2-66, 28.8K modem और UPS था
    दूसरे किशोरों और दिल से किशोर लोगों के लिए, अगर वे यह करना चाहें: eBay पर used enterprise servers देखें। HP, Lenovo, Dell, Supermicro आम तौर पर चुनने लायक brands होते हैं
    खरीदने से पहले, उस खास model के spec documents, drivers और firmware ढूंढकर पक्का करें कि चीज पूरी और इस्तेमाल लायक है, या उसे वाजिब खर्च में पूरा किया जा सकता है
    अगर XenServer या VMware ESXi के साथ कई virtual machines चलाने की योजना है, तो खरीदने से पहले operating system की hardware compatibility list (HCL) में compatibility जांच लें
    1U servers से बचना बेहतर है। वे 2U या उससे बड़े servers की तुलना में छोटे और कम लंबाई वाले fans को बहुत तेज चलाते हैं, इसलिए ज्यादा शोर करते हैं
    CPU कम से कम आपके अपने computer जितना तेज होना चाहिए। वरना वह बहुत महंगा paperweight या बड़ा “Raspberry PI” बन सकता है: https://www.cpubenchmark.net
    Dell, Lenovo, HP servers में AMD CPU के साथ एक फंदा है कि वे vendor-locked हो सकते हैं। हालांकि कभी-कभी seller locked CPU बहुत सस्ते में बेचता है, तब वह deal समझ में आ सकती है
    ECC RAM। दोस्त दोस्त को non-ECC RAM चलाने नहीं देते: https://cr.yp.to/hardware/ecc.html
    SSD इस्तेमाल करना बेहतर है। spinning disks storage के लिए हैं, operating system के लिए नहीं: https://web.archive.org/web/20110831080738/http://buyafuckin...
    अगर हो सके तो iLO या iDRAC जैसी remote management सुविधा वाला ऐसा hardware लें जिसका license पहले से हो
    मिलने पर वह शायद गंदा होगा और उस पर खरोंचें भी होंगी, इसलिए उसे बाहर खोलकर compressed air से साफ करना चाहिए
    bonus points: माता-पिता को मनाकर garage में 19-inch patch panel और half rack लगवाना :]

    • ये सारी सलाहें बस “हो तो अच्छा” वाली हैं। किसी पुराने desktop या laptop से भी यही काम आसानी से किया जा सकता है
      मैंने लंबे समय तक homelab किया है, और used server hardware खरीदने या ढूंढने के बजाय पुराने desktop parts से भरा rackmount system इस्तेमाल किया है। यह जरूरी नहीं है
      ECC RAM भी सस्ते में मिल जाए और CPU support करे तो उपयोगी है, लेकिन मेरे अनुभव में इसे problem के रूप में कुछ ज्यादा बढ़ा-चढ़ाकर बताया जाता है
      हालांकि 2U या 3/4U hardware खरीदने वाली बात से सहमत हूं। उनमें काफी बड़े fans लग सकते हैं, इसलिए वे ज्यादा शांत होते हैं
  • 90s की शुरुआत में किशोर होने पर जब मुझे अपना पहला computer मिला, तो सबसे चौंकाने वाली बात यह थी कि हर computer server है
    computer का rack form factor में होना जरूरी नहीं था, न ही महंगा होना जरूरी था। बस Winsock और TCP/IP चाहिए था, और बस इतना ही। मेरा computer internet के दूसरे computers जैसा ही था
    इसलिए यह लेख बढ़िया है, लेकिन Node-based app चलाकर internet पर उपलब्ध कराने में hardware का लगभग कोई लेना-देना नहीं है, इसलिए काश hardware पर जोर थोड़ा कम होता
    static IP भी जरूरी नहीं, बस dynamic DNS समझ लेना है :)

    • दूसरे शब्दों में, P2P file sharing के peak वाले दौर में ज्यादातर 16 साल के बच्चों के कमरे में सचमुच server होता था
    • इसने मुझे Germany के पहले online railway route planner की कहानी फिर से ढूंढने का मन करा दिया
      वह इसे बनाने वाले व्यक्ति का खुद लिखा हुआ लेख था; 90s में जब Deutsche Bahn online नहीं था, तब भी route information CD-ROM पर थी
      किसी ने उस CD-ROM data को लेकर एक tool बनाया, जो दो stations के बीच route query करने पर जवाब देता था
      query करने का तरीका दिलचस्प था: आप उसके university email address पर mail भेजते, और “server”, जो असल में कमरे के कोने में रखा PC था, हर 5 मिनट में email fetch करता, query process करता और result email से वापस भेज देता
      अफसोस, अब Google और DDG बेकार हो चुके हैं, इसलिए पिछली बार जब मैंने यह कहानी ढूंढने की कोशिश की थी तो इसमें सचमुच बहुत समय लगा था
    • ऐसे use case के लिए मैं server-grade machine की बजाय non-server-grade machine पसंद करूंगा
      modern single board computer भी काफी सक्षम home server बन सकता है, और वह कहीं छोटा, शांत, सस्ता और कम बिजली खाने वाला होता है
    • किशोर उम्र में मुझे मिली सबसे शानदार tech चीजों में से एक extra पुराना desktop था
      शुरुआत में मैंने FreeBSD install किया और बाद में Linux, और घर में अपनी Unix machine होना कमाल का लगा
      वह powerful नहीं थी, memory या storage भी ज्यादा नहीं था, लेकिन वह मेरी थी और मैं उसके साथ जो चाहूं कर सकता था
      मैंने IRC bot चलाया, और अपने लिखे बेढंगे Perl scripts वाला web server चलाया। network card लगाने के बाद वह घर का dial-up router भी बन गई
      उस machine से छेड़छाड़ करते हुए मैंने वाकई बहुत कुछ सीखा, और vim से बाहर निकल पाने की मेरी क्षमता का श्रेय मैं उसी machine को देता हूं
    • 1999 में जब मैंने पहली बार open source software release किया, तो apartment के cable modem connection और dynamic DNS के जरिए उसे अपनी desktop Linux machine से सीधे host किया
      उसे Freshmeat[1] पर डाला, और dinner खाते हुए sofa पर बैठकर Apache logs को scroll होते देखता रहा। मेरे career की सबसे शानदार feelings में से एक थी
      [1] https://en.wikipedia.org/wiki/Freecode