การพัฒนาซอฟต์แวร์ได้ทุกที่: My Distributed Remote Workplace

เผยแพร่แล้ว: 2022-03-11

การทำงานเป็นฟรีแลนซ์ทางไกลมีประโยชน์มากมาย แต่การตั้งค่าสภาพแวดล้อมการทำงานแบบกระจายอย่างมีประสิทธิภาพอาจเป็นความท้าทายที่แท้จริง แน่นอนว่ามีหลายวิธีที่เราสามารถทำได้ และไม่มีวิธี "ดีที่สุด" เดียวที่จะเหมาะกับทุกคน องค์กรที่ทำงานทางดิจิทัลจากระยะไกลนั้นเป็นเรื่องส่วนตัวอย่างแท้จริง และสิ่งที่ใช้ได้ผลดีสำหรับนักพัฒนาคนหนึ่งอาจไม่ได้ผลดีกับคนอื่นเลย

โดยคำนึงถึงสิ่งนั้น การตั้งค่าที่ฉันนำเสนอที่นี่จึงเป็นสิ่งที่ใช้ได้ดีสำหรับฉันเป็นการส่วนตัว โดยเฉพาะอย่างยิ่งในโครงการระยะไกลที่เกี่ยวข้องกับการพัฒนาและการดูแลระบบ ฉันเชื่อว่าแนวทางนี้มีข้อดีหลายประการ แต่ผู้อ่านแต่ละคนควรพิจารณาวิธีปรับวิธีนี้ให้เหมาะสมที่สุดสำหรับพวกเขา โดยพิจารณาจากความต้องการในการปฏิบัติงานและความชอบส่วนบุคคลร่วมกัน

แนวทางของฉันส่วนใหญ่ขึ้นอยู่กับคุณสมบัติที่นำเสนอโดย SSH และเครื่องมือที่เกี่ยวข้องบน Linux โปรดทราบว่าผู้ใช้ MacOS และระบบที่คล้าย Unix อื่น ๆ สามารถใช้ประโยชน์จากขั้นตอนที่อธิบายไว้ได้เช่นกัน เท่าที่ระบบของพวกเขาสนับสนุนเครื่องมือที่อธิบายไว้

สถานที่ทำงานระยะไกลแบบกระจายของฉัน

มินิเซิร์ฟเวอร์ส่วนตัวของฉัน

ขั้นตอนแรกที่สำคัญในการตั้งค่าของฉันคือเซิร์ฟเวอร์ที่ขับเคลื่อนด้วย Raspberry Pi 2 ในบ้านของฉันเอง ซึ่งเคยโฮสต์ทุกอย่างตั้งแต่ที่เก็บซอร์สโค้ดของฉันไปจนถึงไซต์สาธิต

แม้ว่าฉันจะเดินทางท่องเที่ยว แต่อพาร์ตเมนต์ของฉันทำหน้าที่เป็น "ฐานปฏิบัติการถาวร" ระยะไกลด้วยการเชื่อมต่ออินเทอร์เน็ตที่ดี (100 Mbit/วินาที) และแทบไม่มีเวลาแฝงเพิ่มเติมเลย ซึ่งหมายความว่า จากอพาร์ตเมนต์ของฉัน ฉันถูกจำกัดโดยความเร็วของเครือข่ายปลายทางเท่านั้น การตั้งค่าที่ฉันอธิบายใช้งานได้ดีที่สุดกับการเชื่อมต่อประเภทนี้ แม้ว่าจะไม่ใช่ข้อกำหนดก็ตาม อันที่จริง ฉันยังใช้วิธีนี้ในขณะที่ฉันมีการเชื่อมต่อ ADSL แบนด์วิดท์ที่ค่อนข้างต่ำ โดยส่วนใหญ่ทำงานได้ดี จากประสบการณ์ของฉัน ความต้องการที่แท้จริงเพียงอย่างเดียวคือแบนด์วิดท์ไม่มีการตรวจสอบหรือราคาถูก

ในฐานะผู้ใช้ที่อยู่อาศัย ฉันมีเราเตอร์เครือข่ายภายในบ้านที่ถูกที่สุดที่ ISP ของฉันสามารถซื้อได้ ซึ่งไม่เพียงพอสำหรับสิ่งที่ฉันต้องทำ ฉันจึงขอให้ ISP ตั้งค่าเราเตอร์เป็น "โหมดบริดจ์" ซึ่งทำหน้าที่เป็นตัวยุติการเชื่อมต่อ โดยเสนอจุดสิ้นสุด PPPoE ให้กับระบบที่เชื่อมต่อเพียงระบบเดียว ซึ่งหมายความว่าอุปกรณ์หยุดทำงานเป็นจุดเชื่อมต่อ WiFi หรือแม้แต่เราเตอร์ที่บ้านทั่วไป งานทั้งหมดเหล่านี้จัดการโดยเราเตอร์ Mikrotik ขนาดเล็กมืออาชีพ RB951G-2HnD มันดำเนินการบริการ NAT สำหรับเครือข่ายท้องถิ่นของฉัน (ซึ่งฉันมีหมายเลข 10.10.10.0/24) และเสนอ DHCP ให้กับอุปกรณ์แบบมีสายและไร้สายที่เชื่อมต่ออยู่ Mikrotik และ Raspberry Pi มีที่อยู่แบบคงที่เนื่องจากใช้ในบริบทที่ต้องการที่อยู่ที่รู้จักกันดี ในกรณีของฉันคือ 10.10.10.1 และ 10.10.10.10 ตามลำดับ

การเชื่อมต่อที่บ้านของฉันไม่มีที่อยู่ IP แบบคงที่ สำหรับจุดประสงค์ของฉัน นี่เป็นเพียงความไม่สะดวกเล็กน้อยในการทำงานจากระยะไกล เนื่องจากเป้าหมายคือการสร้างสภาพแวดล้อมการทำงานส่วนบุคคลหรือ SOHO ไม่ใช่ไซต์ 24/7 (สำหรับผู้ที่ต้องการที่อยู่ IP แบบคงที่สำหรับเซิร์ฟเวอร์ของพวกเขา เป็นที่น่าสังเกตว่าค่าใช้จ่ายของที่อยู่ IP แบบคงที่ได้ลดลงอย่างต่อเนื่องและมีตัวเลือก VPN IP แบบคงที่ราคาไม่แพงพอสมควร) นายหน้า DNS ที่ฉันใช้ Joker.com ให้บริการ DNS แบบไดนามิกฟรีควบคู่ไปกับบริการอื่นๆ ทั้งหมด ดังนั้นโดเมนย่อยของโดเมนส่วนบุคคลของฉันจึงมีชื่อแบบไดนามิก ฉันใช้ชื่อนี้ในการเชื่อมต่อจากภายนอกไปยังเครือข่ายของฉันเอง และ Mikrotik ได้รับการกำหนดค่าให้ส่ง SSH และ HTTP ผ่าน NAT ไปยัง Raspberry Pi ฉันเพียงแค่ต้องพิมพ์สิ่งที่เทียบเท่ากับ ssh mydomain.example.com เพื่อเข้าสู่ระบบเซิร์ฟเวอร์ภายในบ้านส่วนตัวของฉัน

ข้อมูลได้ทุกที่

สิ่งสำคัญอย่างหนึ่งที่ Raspberry Pi ไม่มี คือความซ้ำซ้อน ฉันได้ติดตั้งการ์ดขนาด 32 GB แล้ว และนั่นยังคงมีข้อมูลจำนวนมากที่จะสูญหายในกรณีที่มีบางอย่างเกิดขึ้น เพื่อหลีกเลี่ยงปัญหานั้น และเพื่อให้แน่ใจว่าการเข้าถึงข้อมูลของฉันหากการเข้าถึงอินเทอร์เน็ตในที่พักอาศัยสะดุด ฉันมิเรอร์ข้อมูลทั้งหมดของฉันไปยังเซิร์ฟเวอร์ภายนอกที่เหมือนคลาวด์ เนื่องจากฉันอยู่ในยุโรป มันจึงสมเหตุสมผลสำหรับฉันที่จะรับเซิร์ฟเวอร์ Bare-metal โดยเฉพาะ (เช่น ที่ไม่มีการจำลองเสมือน) ที่เล็กที่สุดจาก Online.net ซึ่งมาพร้อมกับ VIA CPU ระดับล่าง โดยมี RAM 2 GB และ SSHD 500 GB เช่นเดียวกับเซิร์ฟเวอร์ขนาดเล็กของ Raspberry Pi ฉันไม่ต้องการประสิทธิภาพของ CPU ที่สูงหรือแม้แต่หน่วยความจำ ดังนั้นนี่จึงเป็นคู่ที่สมบูรณ์แบบ (นอกจากนี้ ฉันจำเซิร์ฟเวอร์ "ใหญ่" ตัวแรกของฉันที่มี Pentium 3 CPU สองตัวและ RAM 1 GB และน่าจะเร็วกว่า Raspberry Pi 2 ครึ่งหนึ่ง และวิธีที่เราทำสิ่งที่ยอดเยี่ยมกับมัน ซึ่งส่งผลต่อฉัน ความสนใจในการเพิ่มประสิทธิภาพ)

ฉันสำรองข้อมูล Raspberry Pi ของฉันไปยังเซิร์ฟเวอร์ที่เหมือนคลาวด์ระยะไกลโดยใช้ rdiff-backup เมื่อพิจารณาจากขนาดสัมพัทธ์ของระบบ ข้อมูลสำรองเหล่านี้จะทำให้ฉันได้รับประวัติแบบไม่จำกัด อีกสิ่งหนึ่งที่ฉันมีบนเซิร์ฟเวอร์ที่เหมือนคลาวด์คือการติดตั้ง ownCloud ซึ่งทำให้ฉันสามารถเรียกใช้บริการส่วนตัวเหมือน Dropbox ได้ ownCloud เนื่องจากผลิตภัณฑ์กำลังมุ่งสู่กรุ๊ปแวร์และการทำงานร่วมกัน ดังนั้นจึงมีประโยชน์มากยิ่งขึ้นหากมีผู้คนใช้งานมากขึ้น ตั้งแต่ฉันเริ่มใช้งาน ฉัน ไม่มี ข้อมูลในเครื่องเลยจริงๆ ที่ไม่ได้สำรองข้อมูลไว้ที่ Raspberry Pi หรือเซิร์ฟเวอร์ที่เหมือนคลาวด์ และส่วนใหญ่สำรองข้อมูลไว้สองครั้ง การสำรองข้อมูลสำรองเพิ่มเติมใดๆ ที่คุณทำได้นั้นเป็นสิ่งที่ดีเสมอ หากคุณให้ความสำคัญกับข้อมูลของคุณ

“เวทย์มนตร์” ของ SSHFS

งานส่วนใหญ่ของฉันในทุกวันนี้เกี่ยวข้องกับการพัฒนาสิ่งต่าง ๆ ที่ไม่เกี่ยวข้องกับเว็บโดยตรง (ฉันรู้น่าตกใจ!) ดังนั้นเวิร์กโฟลว์ของฉันมักจะเป็นไปตามวงจรการแก้ไข-คอมไพล์-รันแบบคลาสสิก ขึ้นอยู่กับสถานการณ์เฉพาะของโปรเจ็กต์ ฉันอาจมีไฟล์นั้นอยู่ในแล็ปท็อปของฉัน ฉันอาจใส่มันไว้ในไดเร็กทอรีที่ซิงค์กับคลาวด์เอง หรือที่น่าสนใจกว่านั้นคือ ฉันอาจวางมันโดยตรงบน Raspberry Pi และใช้มันจากที่นั่น .

ตัวเลือกหลังเป็นไปได้ด้วย SSHFS ซึ่งช่วยให้ฉันเมาต์ไดเร็กทอรีระยะไกลจาก Raspberry Pi ในเครื่องได้ นี่เกือบจะเหมือนกับเวทมนตร์ชิ้นเล็ก ๆ คุณสามารถมีไดเร็กทอรีระยะไกลบนเซิร์ฟเวอร์ ใด ๆ ที่คุณมีสิทธิ์เข้าถึง SSH (ทำงานภายใต้การอนุญาตที่ผู้ใช้ของคุณมีบนเซิร์ฟเวอร์) ติดตั้งเป็นไดเร็กทอรีในเครื่อง

มีไดเร็กทอรีโครงการระยะไกลหรือไม่? ติดตั้งในพื้นที่และไปหามัน หากคุณต้องการเซิร์ฟเวอร์ที่ทรงพลังสำหรับการพัฒนาหรือทดสอบ และ – ด้วยเหตุผลบางอย่างเพียงแค่ไปที่นั่นและใช้ vim ในคอนโซลไม่ใช่ตัวเลือก – ติดตั้งเซิร์ฟเวอร์นั้นในเครื่องและทำทุกอย่างที่คุณต้องการ วิธีนี้ใช้งานได้ดีโดยเฉพาะเมื่อฉันใช้การเชื่อมต่ออินเทอร์เน็ตที่มีแบนด์วิดท์ต่ำ แม้ว่าฉันจะทำงานในโปรแกรมแก้ไขข้อความคอนโซล ประสบการณ์จะดีขึ้นมากหากฉันเรียกใช้โปรแกรมแก้ไขนั้นในเครื่องแล้วจึงโอนไฟล์ผ่าน SSHFS แทน มากกว่าการทำงานผ่านเซสชัน SSH ระยะไกล

ต้องการเปรียบเทียบหลายไดเร็กทอรี /etc บนเซิร์ฟเวอร์ระยะไกลที่แตกต่างกันหรือไม่? ไม่มีปัญหา. เพียงใช้ SSHFS เพื่อเมาต์แต่ละรายการในเครื่องแล้วใช้ diff (หรือเครื่องมืออื่นใดที่เกี่ยวข้อง) เพื่อเปรียบเทียบ

หรือบางทีคุณอาจต้องดำเนินการกับไฟล์บันทึกขนาดใหญ่ แต่คุณไม่ต้องการติดตั้งเครื่องมือแยกวิเคราะห์บันทึกบนเซิร์ฟเวอร์ (เนื่องจากมีการขึ้นต่อกันเป็นพันล้าน) และการคัดลอกบันทึกนั้นไม่สะดวกไม่ว่าจะด้วยเหตุผลใดก็ตาม อีกครั้งไม่ใช่ปัญหา เพียงเมานต์ไดเร็กทอรีบันทึกระยะไกลในเครื่องผ่าน SSHFS และเรียกใช้เครื่องมือใดก็ได้ที่คุณต้องการ แม้ว่าจะเป็นไฟล์ขนาดใหญ่ หนักหน่วง และขับเคลื่อนด้วย GUI ก็ตาม SSH รองรับการบีบอัดแบบทันทีและ SSHFS ใช้งานได้ ดังนั้นการทำงานกับไฟล์ข้อความจึงค่อนข้างเป็นมิตรกับแบนด์วิดท์

เพื่อจุดประสงค์ของฉัน ฉันใช้ตัวเลือกต่อไปนี้ในบรรทัดคำสั่ง sshfs :

sshfs -o reconnect -o idmap=user -o follow_symlinks -C server.example.com:. server

นี่คือสิ่งที่ตัวเลือกบรรทัดคำสั่งเหล่านี้ทำ:

  • -o reconnect - บอก sshfs ให้เชื่อมต่อจุดปลาย SSH อีกครั้ง ถ้ามันพัง สิ่งนี้สำคัญมาก เนื่องจากโดยค่าเริ่มต้น เมื่อการเชื่อมต่อขาดหาย จุดต่อเชื่อมอาจล้มเหลวกะทันหันหรือหยุดทำงาน (ซึ่งฉันพบว่าพบได้บ่อยกว่า) สำหรับฉันแล้วดูเหมือนว่านี่ควรเป็นตัวเลือกเริ่มต้น
  • -o idmap=user - บอก sshfs ให้แมปผู้ใช้ระยะไกล (เช่น ผู้ใช้ที่เรากำลังเชื่อมต่อด้วย) ให้เหมือนกับผู้ใช้ในเครื่อง เนื่องจากคุณสามารถเชื่อมต่อผ่าน SSH ด้วยชื่อผู้ใช้ตามอำเภอใจ สิ่งนี้ "แก้ไข" เพื่อให้ระบบภายในคิดว่าผู้ใช้เหมือนกัน สิทธิ์การเข้าถึงและการอนุญาตบนระบบระยะไกลจะมีผลตามปกติสำหรับผู้ใช้ระยะไกล
  • -o follow_symlinks - ในขณะที่คุณสามารถมีจำนวนของระบบไฟล์ระยะไกลที่เมาท์ได้ตามใจชอบ แต่ฉันพบว่าสะดวกกว่าที่จะเมาต์ไดเร็กทอรีระยะไกลเพียงไดเร็กทอรีโฮมไดเร็กทอรีหลักของฉัน และในนั้น (ในเซสชัน SSH ระยะไกล) ฉันสามารถสร้าง symlink ไปยังไดเร็กทอรีที่สำคัญได้ ที่อื่นบนระบบรีโมต เช่น /srv หรือ /etc หรือ /var/log ตัวเลือกนี้ทำให้ sshfs แก้ไขลิงก์ระยะไกลลงในไฟล์และไดเร็กทอรี ทำให้คุณสามารถติดตามไปยังไดเร็กทอรีที่เชื่อมโยงได้
  • -C - เปิดการบีบอัด SSH วิธีนี้มีประสิทธิภาพโดยเฉพาะอย่างยิ่งกับไฟล์ข้อมูลเมตาและไฟล์ข้อความ ดังนั้นจึงเป็นอีกสิ่งหนึ่งที่ดูเหมือนว่าจะเป็นตัวเลือกเริ่มต้น
  • server.example.com:. - นี่คือจุดสิ้นสุดระยะไกล ส่วนแรก ( server.example.com ในตัวอย่างนี้) คือชื่อโฮสต์ และส่วนที่สอง (หลังโคลอน) คือรีโมตไดเร็กทอรีที่จะเมาต์ ในกรณีนี้ ฉันได้เพิ่ม “.” เพื่อระบุไดเร็กทอรีเริ่มต้นที่ผู้ใช้ของฉันสิ้นสุดหลังจากเข้าสู่ระบบ SSH ซึ่งเป็นโฮมไดเร็กทอรีของฉัน
  • server - ไดเร็กทอรีในเครื่องที่จะต่อเชื่อมระบบไฟล์ระยะไกล

โดยเฉพาะอย่างยิ่ง ถ้าคุณใช้การเชื่อมต่ออินเทอร์เน็ตที่มีแบนด์วิดท์ต่ำหรือไม่เสถียร คุณต้องใช้ SSHFS กับการตรวจสอบสิทธิ์คีย์สาธารณะ/ส่วนตัวของ SSH และตัวแทน SSH ในพื้นที่ ด้วยวิธีนี้ คุณจะไม่ถูกถามถึงรหัสผ่าน (ไม่ว่าจะเป็นรหัสผ่านระบบหรือรหัสผ่านคีย์ SSH) เมื่อใช้ SSHFS และ คุณสมบัติการเชื่อมต่อใหม่จะทำงานตามที่โฆษณาไว้ โปรดทราบว่าหากคุณไม่ได้ตั้งค่าตัวแทน SSH เพื่อให้รหัสปลดล็อคตามความจำเป็นภายในเซสชันของคุณ คุณสมบัติการเชื่อมต่อใหม่มักจะล้มเหลว เว็บเต็มไปด้วยบทช่วยสอนเกี่ยวกับคีย์ SSH และสภาพแวดล้อมเดสก์ท็อปที่ใช้ GTK ส่วนใหญ่ที่ฉันได้ลองเริ่มใช้ Agent ของตนเอง (หรือ "กระเป๋าเงิน" หรือสิ่งที่พวกเขาเลือกที่จะเรียก) โดยอัตโนมัติ

เคล็ดลับ SSH ขั้นสูงบางอย่าง

การมีจุดคงที่บนอินเทอร์เน็ตซึ่งสามารถเข้าถึงได้จากระยะไกลจากทุกที่ในโลก และอยู่ในการเชื่อมต่อแบนด์วิธสูง สำหรับฉันมันคือระบบ Raspberry Pi ของฉัน และอาจเป็น VPS ทั่วไปก็ได้ ลดความเครียดและช่วยให้คุณทำ ทุกสิ่งด้วยการแลกเปลี่ยนและการขุดข้อมูล

ต้องการ nmap ด่วนและคุณเชื่อมต่อผ่านเครือข่ายโทรศัพท์มือถือหรือไม่? เพียงแค่ทำจากเซิร์ฟเวอร์นั้น ต้องการคัดลอกข้อมูลอย่างรวดเร็วและ SSHFS นั้นเกินความสามารถหรือไม่ แค่ใช้ SCP ธรรมดา

อีกสถานการณ์หนึ่งที่คุณอาจพบว่าตัวเองต้องเผชิญกับเราที่คุณมีสิทธิ์เข้าถึง SSH ไปยังเซิร์ฟเวอร์ แต่พอร์ต 80 (หรืออื่น ๆ ) ของเซิร์ฟเวอร์นั้นถูกไฟร์วอลล์ไปยังเครือข่ายภายนอกที่คุณเชื่อมต่อ ในการแก้ไขปัญหานี้ คุณสามารถใช้ SSH เพื่อส่งต่อพอร์ตนี้ไปยังเครื่องในพื้นที่ของคุณ แล้วเข้าถึงผ่าน localhost วิธีที่น่าสนใจยิ่งกว่านั้นคือการใช้โฮสต์ที่คุณเชื่อมต่อผ่าน SSH เพื่อส่งต่อพอร์ตบนเครื่อง อื่น ซึ่งอาจอยู่หลังไฟร์วอลล์เดียวกัน ตัวอย่างเช่น ถ้าคุณมีโฮสต์ต่อไปนี้:

  • 192.168.77.15 - โฮสต์ในเครือข่ายท้องถิ่นระยะไกลหลังไฟร์วอลล์ ซึ่งคุณต้องเชื่อมต่อกับพอร์ต 80
  • foo.example.com - โฮสต์ที่คุณมีสิทธิ์เข้าถึง SSH ซึ่งสามารถเชื่อมต่อกับโฮสต์ด้านบนได้
  • ระบบท้องถิ่นของคุณ localhost

คำสั่งให้ส่งต่อพอร์ต 80 บน 192.168.77.15 ไปยัง localhost:8080 ผ่านเซิร์ฟเวอร์ foo.example.com SSH จะเป็น:

ssh -L 8080:192.168.77.15:80 -C foo.example.com

อาร์กิวเมนต์ -L ระบุพอร์ตท้องถิ่นและที่อยู่ปลายทางและพอร์ต อาร์กิวเมนต์ -C เปิดใช้งานการบีบอัด ดังนั้นคุณจึงสามารถประหยัดแบนด์วิดท์ได้อีกครั้ง และในตอนท้าย คุณเพียงแค่พิมพ์ชื่อโฮสต์ SSH คำสั่งนี้จะเปิดเซสชันเชลล์ SSH ธรรมดาไปยังโฮสต์ และนอกเหนือจากนั้น ให้ฟังบนพอร์ต localhost 8080 ซึ่งคุณสามารถเชื่อมต่อได้

หนึ่งในเทคนิคที่น่าประทับใจที่สุดที่ SSH พัฒนาขึ้นในช่วงไม่กี่ปีที่ผ่านมาคือความสามารถในการสร้างอุโมงค์ VPN จริง สิ่งเหล่านี้แสดงว่าเป็นอุปกรณ์เครือข่ายเสมือนทั้งสองด้านของการเชื่อมต่อ (สมมติว่ามีการตั้งค่าที่อยู่ IP ที่เหมาะสม) และสามารถอนุญาตให้คุณเข้าถึงเครือข่ายระยะไกลราวกับว่าคุณอยู่ที่นั่นจริง (ข้ามไฟร์วอลล์) ด้วยเหตุผลทางเทคนิคและความปลอดภัย การดำเนินการนี้ต้องมีการเข้าถึงรูทบนเครื่องทั้งสองเครื่องที่เชื่อมต่อกับอุโมงค์ข้อมูล ดังนั้นจึงสะดวกน้อยกว่าการใช้การส่งต่อพอร์ตหรือ SSHFS หรือ SCP อันนี้สำหรับผู้ใช้ขั้นสูงที่สามารถค้นหาบทช่วยสอนเกี่ยวกับวิธีการทำได้อย่างง่ายดาย

สำนักงานระยะไกลได้ทุกที่

คุณสามารถทำงานต่อไปได้แม้ในขณะที่คุณรอรถที่ช่าง

คุณสามารถทำงานต่อไปได้แม้ในขณะที่คุณรอรถที่ช่าง
ทวีต

คุณไม่จำเป็นต้องทำงานจากที่แห่งเดียว คุณสามารถทำงานได้จริงจากทุกที่ที่มีการเชื่อมต่ออินเทอร์เน็ตได้ปานกลางโดยใช้เทคโนโลยีและเทคนิคที่ฉันได้อธิบายไว้ (รวมถึงระหว่างรอรถของคุณที่ช่างเครื่อง) ติดตั้งระบบต่างประเทศบน SSH, พอร์ตส่งต่อ, เจาะอุโมงค์, เพื่อเข้าถึงเซิร์ฟเวอร์ส่วนตัวของคุณหรือข้อมูลบนคลาวด์จากระยะไกล ในขณะที่มองเห็นชายหาดที่อาบแดด หรือดื่มกาแฟที่เป็นมิตรกับสิ่งแวดล้อมระดับฮิปสเตอร์ในเมืองที่มีหมอกหนา แค่ทำมัน!