จาก Outsourcing สู่การพัฒนา (ตอนที่ 2)

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

Планирование

แบ็กเอนด์ปัจจุบันสำหรับผู้ใช้อยู่บน Linux เกือบทุกองค์กรมีเซิร์ฟเวอร์ Windows ซึ่งไม่สามารถพูดถึง Linux ได้ จุดแข็งหลักของ Veliam คือการเชื่อมต่อระยะไกลไปยังเซิร์ฟเวอร์และอุปกรณ์เครือข่ายที่อยู่เบื้องหลัง NAT แต่ฟังก์ชันนี้เชื่อมโยงกันแน่นหนามากกับความจริงที่ว่าเราเตอร์ต้องเป็น Mikrotik และเห็นได้ชัดว่าสิ่งนี้คงไม่เป็นที่พอใจของคนจำนวนมาก ในตอนแรก ฉันเริ่มคิดถึงการเพิ่มการรองรับเราเตอร์จากผู้จำหน่ายทั่วไป แต่ฉันเข้าใจว่านี่เป็นการแข่งขันที่ไม่มีที่สิ้นสุดเพื่อขยายรายชื่อบริษัทที่ได้รับการสนับสนุน ยิ่งไปกว่านั้น ผู้ที่ได้รับการสนับสนุนแล้วอาจมีชุดคำสั่งที่แตกต่างกันสำหรับการเปลี่ยนกฎ NAT จากรุ่นสู่รุ่น หนทางเดียวที่จะออกจากสถานการณ์นี้ดูเหมือนจะเป็น VPN

เนื่องจากเราตัดสินใจที่จะจัดจำหน่ายผลิตภัณฑ์ แต่ไม่ใช่ในรูปแบบโอเพ่นซอร์ส จึงเป็นไปไม่ได้ที่จะรวมไลบรารีต่างๆ ที่มีลิขสิทธิ์แบบเปิด เช่น GPL โดยทั่วไปนี่เป็นหัวข้อแยกต่างหาก หลังจากตัดสินใจขายผลิตภัณฑ์แล้ว ฉันต้องผ่านห้องสมุดครึ่งหนึ่งเนื่องจากเป็น GPL เมื่อพวกเขาเขียนเองเป็นเรื่องปกติ แต่ไม่เหมาะแก่การจำหน่าย VPN แรกที่นึกถึงคือ OpenVPN แต่มันคือ GPL อีกทางเลือกหนึ่งคือใช้ SoftEther VPN ของญี่ปุ่น ใบอนุญาตของเขาอนุญาตให้เขารวมไว้ในผลิตภัณฑ์ของเขา หลังจากสองสามวันของการทดสอบต่างๆ เกี่ยวกับวิธีการรวมเข้าด้วยกันในลักษณะที่ผู้ใช้ไม่จำเป็นต้องกำหนดค่าอะไรเลยและรู้เกี่ยวกับ SoftEther VPN ก็ได้รับต้นแบบ ทุกอย่างเป็นไปตามที่ควรจะเป็น แต่ด้วยเหตุผลบางอย่าง โครงการนี้ยังคงทำให้เราสับสน และในที่สุดเราก็ละทิ้งมันไป แต่โดยธรรมชาติแล้วพวกเขาปฏิเสธหลังจากเสนอทางเลือกอื่นแล้ว ในที่สุด ทุกอย่างก็เสร็จสิ้นบนการเชื่อมต่อ TCP ปกติ การเชื่อมต่อบางอย่างทำงานผ่านผู้ประสานงาน บางส่วนทำงานโดยตรงผ่านเทคโนโลยี Nat Hole Punching (NHP) ซึ่งนำมาใช้ใน Free Pascal เช่นกัน ฉันต้องบอกว่าฉันไม่เคยได้ยินเกี่ยวกับ NHP มาก่อนด้วยซ้ำ และฉันไม่เคยคิดเลยว่ามันเป็นไปได้ที่จะเชื่อมต่ออุปกรณ์เครือข่าย 2 เครื่อง ซึ่งทั้งสองอุปกรณ์อยู่หลัง NAT โดยตรง ฉันศึกษาหัวข้อนี้ เข้าใจหลักการทำงาน และนั่งเขียน เป็นไปตามแผน ผู้ใช้เชื่อมต่อได้ด้วยคลิกเดียวไปยังอุปกรณ์ที่ต้องการด้านหลัง NAT ผ่าน RDP, SSH หรือ Winbox โดยไม่ต้องป้อนรหัสผ่านหรือตั้งค่า VPN ยิ่งไปกว่านั้น การเชื่อมต่อเหล่านี้ส่วนใหญ่จะผ่านผู้ประสานงานของเรา ซึ่งส่งผลดีต่อการ ping และค่าใช้จ่ายในการให้บริการการเชื่อมต่อเหล่านี้

การถ่ายโอนส่วนเซิร์ฟเวอร์จาก Linux ไปยัง Windows

มีปัญหาหลายประการเมื่อเปลี่ยนมาใช้ Windows ประการแรกคือ wmic ในตัวใน windows ไม่อนุญาตให้คุณทำการสืบค้น WQL และในระบบของเรา ทุกอย่างถูกสร้างขึ้นบนพวกมันแล้ว และยังมีอย่างอื่นอีก แต่ตอนนี้ฉันลืมไปแล้วว่าทำไมพวกเขาถึงเลิกใช้มันในที่สุด อาจมีความแตกต่างระหว่างเวอร์ชัน Windows และปัญหาที่สองคือมัลติเธรด ไม่พบยูทิลิตี้บุคคลที่สามที่ดีภายใต้ใบอนุญาตที่ "ยอมรับได้" สำหรับเรา ฉันจึงเปิดตัว Lazarus IDE อีกครั้ง และฉันก็เขียนยูทิลิตี้ที่จำเป็น อินพุตคือรายการออบเจ็กต์ที่จำเป็นและสิ่งที่ต้องสืบค้นเฉพาะ และฉันได้รับข้อมูลเป็นการตอบกลับ และทั้งหมดนี้อยู่ในโหมดมัลติเธรด ยอดเยี่ยม.

หลังจากที่ฉันตั้งค่า pthreads สำหรับ PHP Windows ฉันคิดว่าทุกอย่างจะเริ่มต้นทันที แต่นั่นไม่ใช่กรณีนี้ หลังจากแก้ไขจุดบกพร่องมาระยะหนึ่ง ฉันก็พบว่า pthreads ดูเหมือนจะใช้งานได้ แต่กลับไม่ทำงานบนระบบของเรา เห็นได้ชัดว่าการทำงานกับ pthreads บน Windows มีความแปลกประหลาด และมันก็เป็นเช่นนั้น ฉันอ่านเอกสารและเขียนไว้ที่นั่นว่าสำหรับ Windows จำนวนเธรดมีจำกัด และเท่าที่ฉันจำได้โดยปริยาย สิ่งนี้กลายเป็นปัญหา เพราะเมื่อฉันเริ่มลดจำนวนเธรดที่แอปพลิเคชันทำงานอยู่ มันจึงทำงานช้ามาก ฉันเปิด IDE อีกครั้งและมีการเพิ่มฟังก์ชันการทำงานสำหรับการกระตุกออบเจ็กต์แบบมัลติเธรดในยูทิลิตี้เดียวกัน มีการสแกนพอร์ตจำนวนมากอยู่แล้วเช่นกัน ที่จริงแล้วหลังจากนี้ความต้องการ pthreads สำหรับ PHP ก็หายไปและไม่ได้ใช้งานอีกต่อไป นอกจากนี้ยังมีการเพิ่มฟังก์ชันการทำงานอีกหลายรายการในยูทิลิตี้นี้และยังคงใช้งานได้จนถึงทุกวันนี้ หลังจากนั้นมีการรวบรวมตัวติดตั้งสำหรับ Windows ซึ่งรวมถึง Apache, PHP, MariaDB, แอปพลิเคชัน PHP และชุดยูทิลิตี้สำหรับการโต้ตอบกับระบบที่เขียนด้วย Free Pascal ในส่วนของตัวติดตั้ง ฉันคิดว่าจะแก้ไขปัญหานี้ได้อย่างรวดเร็ว เพราะ... นี่เป็นสิ่งธรรมดามากและจำเป็นสำหรับซอฟต์แวร์เกือบทุกตัว ฉันดูผิดที่หรืออย่างอื่น แต่ฉันเจอผลิตภัณฑ์ที่ไม่ยืดหยุ่นเพียงพอหรือมีราคาแพงและไม่ยืดหยุ่นอยู่ตลอดเวลา แต่ฉันพบตัวติดตั้งฟรีที่สามารถตอบสนองความต้องการของคุณได้ นี่คือ InnoSetup ฉันเขียนเกี่ยวกับเรื่องนี้ที่นี่เพราะฉันต้องค้นหามันเผื่อว่าฉันจะประหยัดเวลาใครสักคน

การปฏิเสธปลั๊กอินเพื่อประโยชน์ของลูกค้าของคุณ

ก่อนหน้านี้ฉันเขียนว่าส่วนของไคลเอนต์เป็นเบราว์เซอร์ที่มี "ปลั๊กอิน" จึงมีหลายครั้งที่ Chrome ได้รับการอัปเดตและเลย์เอาต์ก็บิดเบี้ยวเล็กน้อย จากนั้น Windows ก็ได้รับการอัปเดตและรูปแบบ uri ที่กำหนดเองก็หายไป ฉันไม่อยากมีความประหลาดใจแบบนี้ในผลิตภัณฑ์เวอร์ชันสาธารณะ ยิ่งไปกว่านั้น uri แบบกำหนดเองเริ่มหายไปหลังจากการอัพเดต Windows แต่ละครั้ง Microsoft เพียงลบสาขาที่ไม่ใช่ทั้งหมดในส่วนที่จำเป็น นอกจากนี้ Google Chrome ยังไม่อนุญาตให้คุณจำตัวเลือกที่จะเปิดหรือไม่แอปพลิเคชันจาก uri ที่กำหนดเอง และถามคำถามนี้ทุกครั้งที่คุณคลิกที่วัตถุการตรวจสอบ โดยทั่วไปจำเป็นต้องมีการโต้ตอบตามปกติกับระบบภายในเครื่องของผู้ใช้ซึ่งเบราว์เซอร์ไม่ได้จัดเตรียมไว้ให้ ตัวเลือกที่ง่ายที่สุดในรูปแบบนี้ดูเหมือนจะเป็นเพียงการสร้างเบราว์เซอร์ของคุณเอง อย่างที่หลาย ๆ คนกำลังทำผ่าน Electron แต่มีหลายสิ่งที่เขียนด้วย Free Pascal รวมถึงในส่วนของเซิร์ฟเวอร์ด้วย ดังนั้นเราจึงตัดสินใจสร้างไคลเอนต์ในภาษาเดียวกัน และไม่สร้างสวนสัตว์ นี่คือวิธีการเขียนไคลเอนต์ที่มี Chromium บนเครื่อง หลังจากนั้นก็เริ่มมีสายรัดต่างๆ

รีลิซ

ในที่สุดเราก็เลือกชื่อสำหรับระบบ เราพิจารณาตัวเลือกต่างๆ อย่างต่อเนื่องในขณะที่กระบวนการแปลงจากเวอร์ชันท้องถิ่นเป็น SaaS กำลังดำเนินการอยู่ เนื่องจากในตอนแรกเราวางแผนที่จะเข้าสู่ตลาดภายในประเทศไม่เพียง แต่เกณฑ์หลักในการเลือกชื่อคือการมีโดเมนว่างหรือไม่แพงมากในโซน ".com" ฟังก์ชัน/โมดูลบางอย่างยังไม่ได้ถูกย้ายจากเวอร์ชันท้องถิ่นไปยัง Veliam แต่เราตัดสินใจว่าจะปล่อยฟังก์ชัน/โมดูลเหล่านั้นพร้อมกับฟังก์ชันปัจจุบันและส่วนที่เหลือให้เสร็จสิ้นเป็นการอัปเดต ในเวอร์ชันแรกไม่มี HelpDesk, Veliam Connector เป็นไปไม่ได้ที่จะเปลี่ยนเกณฑ์สำหรับทริกเกอร์การแจ้งเตือนและอีกมากมาย เราซื้อ Code Sign Certificate และลงนามในส่วนของไคลเอนต์และเซิร์ฟเวอร์ เราเขียนเว็บไซต์สำหรับผลิตภัณฑ์ เริ่มขั้นตอนการลงทะเบียนซอฟต์แวร์ เครื่องหมายการค้า ฯลฯ โดยทั่วไปเราพร้อมที่จะเริ่มต้นแล้ว ความอิ่มเอมใจเล็กน้อยจากงานที่ทำเสร็จและความจริงที่ว่าอาจมีคนใช้ผลิตภัณฑ์ของคุณ แม้ว่าเราจะไม่สงสัยในเรื่องนี้ก็ตาม แล้วหยุด. พันธมิตรกล่าวว่าเป็นไปไม่ได้ที่จะเข้าสู่ตลาดหากไม่มีการแจ้งเตือนผ่านทางผู้ส่งสาร เป็นไปได้โดยไม่ต้องมีสิ่งอื่นอีกมากมาย แต่ไม่ใช่หากไม่มีสิ่งนี้ หลังจากการถกเถียงกัน ก็มีการเพิ่มการบูรณาการกับ Telegram ซึ่งเหมาะกับเรา ในบรรดาโปรแกรมส่งข้อความด่วนในปัจจุบันทั้งหมด นี่เป็นโปรแกรมเดียวที่ให้การเข้าถึง API ได้ฟรีและไม่มีขั้นตอนการอนุมัติที่ซับซ้อน WhatsApp เดียวกันนี้แนะนำให้ติดต่อผู้ให้บริการที่เรียกเก็บเงินจำนวนมากสำหรับการใช้บริการ จดหมายทั้งหมดที่ขอเข้าถึงโดยไม่มีปะเก็นจะถูกละเว้น Viber... ตอนนี้ไม่รู้ว่าใครใช้บ้าง เพราะ... สแปมและการโฆษณาอยู่นอกชาร์ต เมื่อปลายเดือนธันวาคม หลังจากการทดสอบภายในและการทดสอบในหมู่เพื่อนๆ หลายครั้ง ทุกคนได้เปิดการลงทะเบียนและซอฟต์แวร์ก็พร้อมให้ดาวน์โหลด

เริ่มจำหน่าย

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

ต้องบอกว่าการเข้าสู่ตลาดเมื่อบริษัทของคุณไม่มีชื่อที่มีชื่อเสียง และในขณะเดียวกันก็มีฟังก์ชันการตรวจสอบแบบไม่ใช้เอเจนต์ซึ่งคุณต้องป้อนบัญชีจากเซิร์ฟเวอร์และเวิร์กสเตชันของคุณนั้นเป็นเรื่องยากมาก สิ่งนี้ทำให้ผู้คนจำนวนมากกลัว เราเข้าใจตั้งแต่แรกแล้วว่าเรื่องนี้จะมีปัญหาและเตรียมพร้อมทั้งทางเทคนิคและทางศีลธรรม การเชื่อมต่อระยะไกลทั้งหมด แม้ว่า RDP และ SSH จะถูกเข้ารหัสไว้ตามค่าเริ่มต้นแล้วก็ตาม ยังได้รับการเข้ารหัสเพิ่มเติมโดยซอฟต์แวร์ของเราโดยใช้มาตรฐาน AES ข้อมูลทั้งหมดจากเซิร์ฟเวอร์ภายในจะถูกถ่ายโอนไปยังคลาวด์ผ่าน HTTPS บัญชีจะถูกจัดเก็บในรูปแบบที่เข้ารหัส คีย์การเข้ารหัสสำหรับระบบย่อยทั้งหมดเป็นคีย์เฉพาะสำหรับไคลเอ็นต์ทั้งหมด สำหรับการเชื่อมต่อระยะไกล โดยทั่วไปจะใช้คีย์การเข้ารหัสเซสชัน

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

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

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

ขณะนี้เราได้ดำเนินการขั้นตอนการขอใบรับรองป้ายรหัส EV เสร็จสิ้นแล้ว ในการขอรับมัน คุณจะต้องผ่านการตรวจสอบหลายชุดและส่งเอกสารจำนวนหนึ่งเกี่ยวกับบริษัท ซึ่งบางส่วนต้องได้รับการรับรองโดยทนายความ การได้รับใบรับรอง EV Code Sign ระหว่างการแพร่ระบาดเป็นหัวข้อแยกต่างหากสำหรับบทความ ขั้นตอนนี้ใช้เวลาหนึ่งเดือน และไม่ใช่เดือนแห่งการรอคอย แต่เป็นการขอเอกสารเพิ่มเติมอย่างต่อเนื่อง บางทีการระบาดใหญ่อาจไม่เกี่ยวอะไร และขั้นตอนนี้ใช้เวลานานมากสำหรับทุกคนใช่ไหม แบ่งปัน.

บางคนบอกว่าเราจะไม่ใช้เพราะไม่มีใบรับรอง FSTEC เราต้องอธิบายว่าเราไม่สามารถรับได้ และจะไม่รับ เพราะเพื่อให้ได้ใบรับรองนี้ การเข้ารหัสต้องเป็นไปตาม GOST และเราวางแผนที่จะเผยแพร่ซอฟต์แวร์ไม่เฉพาะในรัสเซียและใช้ AES

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

เพิ่มฟังก์ชันการเข้าถึงระยะไกลสำหรับพนักงาน

งานที่พบบ่อยอย่างหนึ่งของลูกค้าคือ “ให้ Vanya เข้าถึงคอมพิวเตอร์ของเขาจากที่บ้าน” เรายกระดับ VPN บน Mikrotik และสร้างบัญชีสำหรับผู้ใช้ แต่นี่เป็นปัญหาที่แท้จริง ผู้ใช้ไม่สามารถดูคำแนะนำและปฏิบัติตามทีละขั้นตอนเพื่อเชื่อมต่อผ่าน VPN Windows รุ่นต่างๆ ใน Windows เครื่องหนึ่ง ทุกอย่างเชื่อมต่อได้ดี ส่วนอีกเครื่องหนึ่งจำเป็นต้องใช้โปรโตคอลที่แตกต่างกัน โดยทั่วไปสิ่งนี้มักจะเกี่ยวข้องกับการกำหนดค่าอุปกรณ์เครือข่ายใหม่ซึ่งทำหน้าที่เป็นเซิร์ฟเวอร์ VPN และพนักงานบางคนไม่สามารถเข้าถึงได้และสิ่งนี้ไม่สะดวก

แต่เรามีการเชื่อมต่อระยะไกลไปยังเซิร์ฟเวอร์และอุปกรณ์เครือข่ายอยู่แล้ว ทำไมไม่ใช้การขนส่งสำเร็จรูปและสร้างยูทิลิตี้ขนาดเล็กแยกต่างหากที่คุณสามารถมอบให้กับผู้ใช้เพื่อเชื่อมต่อได้ ฉันแค่อยากให้แน่ใจว่าผู้ใช้ไม่ได้ป้อนข้อมูลที่ชัดเจนที่นั่น เพียงปุ่มเดียว "เชื่อมต่อ" แต่ยูทิลิตี้นี้จะเข้าใจได้อย่างไรว่าจะเชื่อมต่อที่ไหนหากมีเพียงปุ่มเดียว? มีแนวคิดที่จะสร้างแอปพลิเคชันที่จำเป็นทางออนไลน์บนเซิร์ฟเวอร์ของเรา ผู้ดูแลระบบคลิกปุ่ม “ทางลัดการดาวน์โหลด” และคำสั่งจะถูกส่งไปยังระบบคลาวด์ของเราเพื่อสร้างไบนารีแต่ละรายการพร้อมข้อมูลแบบเดินสายสำหรับการเชื่อมต่อกับเซิร์ฟเวอร์/คอมพิวเตอร์ที่ต้องการผ่าน RDP โดยทั่วไปสิ่งนี้สามารถทำได้ แต่ใช้เวลานานผู้ดูแลระบบจะต้องรอก่อนจนกว่าไบนารีจะคอมไพล์แล้วจึงดาวน์โหลด แน่นอนว่าคุณสามารถเพิ่มไฟล์ที่สองด้วยการกำหนดค่าได้ แต่ไฟล์นี้มี 2 ไฟล์แล้ว และเพื่อความเรียบง่ายที่ผู้ใช้ต้องการ ไฟล์เดียว ปุ่มเดียว และไม่มีตัวติดตั้ง หลังจากอ่านบน Google เพียงเล็กน้อยฉันก็ได้ข้อสรุปว่าหากคุณเพิ่มข้อมูลบางอย่างต่อท้าย ".exe" ที่คอมไพล์แล้วมันก็จะไม่แย่ลง (เกือบแล้ว) อย่างน้อยคุณสามารถเพิ่มสงครามและสันติภาพที่นั่นได้ และมันจะได้ผลเหมือนเดิม มันจะเป็นบาปที่จะไม่ใช้ประโยชน์จากสิ่งนี้ ตอนนี้คุณสามารถคลายแพ็กแอปพลิเคชันได้ทุกที่ทุกเวลาในไคลเอนต์โดยตรง ด้วยวิธีที่เรียกว่า Veliam Connector และเพียงเพิ่มข้อมูลที่จำเป็นสำหรับการเชื่อมต่อในตอนท้าย และแอปพลิเคชันเองก็รู้ว่าต้องทำอย่างไร เหตุใดฉันจึงเขียน "เกือบแล้ว" ในวงเล็บสูงขึ้นเล็กน้อย เพราะคุณต้องจ่ายเงินเพื่อความสะดวกนี้เนื่องจากแอปพลิเคชันสูญเสียลายเซ็นดิจิทัล แต่ในขั้นตอนนี้เราเชื่อว่านี่เป็นราคาเล็กๆ ที่จะจ่ายเพื่อความสะดวกดังกล่าว

สิทธิ์การใช้งานโมดูลของบุคคลที่สาม

ฉันได้เขียนไว้ข้างต้นแล้วว่าหลังจากที่มีการตัดสินใจที่จะเผยแพร่ผลิตภัณฑ์สู่สาธารณะ ไม่ใช่แค่เพื่อการใช้งานของเราเองเท่านั้น เราต้องทำงานอย่างหนักและมองหาโมดูลทดแทนบางโมดูลที่ไม่อนุญาตให้รวมตัวเราไว้ในผลิตภัณฑ์ของเรา แต่หลังจากได้รับการปล่อยตัวก็มีการค้นพบสิ่งที่ไม่พึงประสงค์โดยไม่ได้ตั้งใจ Veliam Server ซึ่งอยู่ฝั่งไคลเอ็นต์ รวม MariaDB DBMS ไว้ด้วย และได้รับอนุญาตจาก GPL ใบอนุญาต GPL บอกเป็นนัยว่าซอฟต์แวร์ต้องเป็นโอเพ่นซอร์ส และหากผลิตภัณฑ์ของเรามี MariaDB ซึ่งมีใบอนุญาตนี้ ผลิตภัณฑ์ของเราจะต้องอยู่ภายใต้ใบอนุญาตนี้ แต่โชคดีที่วัตถุประสงค์ของใบอนุญาตนี้เป็นแบบโอเพ่นซอร์ส ไม่ใช่การลงโทษผู้ที่ทำผิดพลาดโดยไม่ได้ตั้งใจในศาล หากผู้ถือลิขสิทธิ์มีข้อเรียกร้อง จะต้องแจ้งให้ผู้ละเมิดทราบเป็นลายลักษณ์อักษรและต้องยุติการละเมิดภายใน 30 วัน เราค้นพบความผิดพลาดของเราเองและไม่ได้รับจดหมายใด ๆ และเริ่มพิจารณาทางเลือกในการแก้ปัญหาทันที วิธีแก้ปัญหาชัดเจน - เปลี่ยนไปใช้ SQLite ฐานข้อมูลนี้ไม่มีข้อจำกัดด้านลิขสิทธิ์ เบราว์เซอร์สมัยใหม่ส่วนใหญ่ใช้ SQLite และโปรแกรมอื่นๆ อีกมากมาย ฉันพบข้อมูลบนอินเทอร์เน็ตว่า SQLite ถือเป็น DBMS ที่แพร่หลายที่สุดในโลกเนื่องจากเบราว์เซอร์ แต่ฉันไม่ได้มองหาข้อพิสูจน์ ดังนั้นข้อมูลนี้จึงไม่ถูกต้อง ฉันเริ่มศึกษาถึงอันตรายของการเปลี่ยนมาใช้ SQLite

สิ่งนี้กลายเป็นงานที่ไม่สำคัญเมื่อไคลเอนต์มีเซิร์ฟเวอร์หลายร้อยเซิร์ฟเวอร์ติดตั้งด้วย MariaDB และข้อมูลในนั้น คุณสมบัติบางอย่างของ MariaDB ไม่มีใน SQLite ตัวอย่างเช่น ในโค้ดที่เราใช้คำสั่งเช่น

Select * FROM `table` WHERE `id`>1000 FOR UPDATE

โครงสร้างนี้ไม่เพียงแต่ทำการเลือกจากตาราง แต่ยังล็อคข้อมูลแถวด้วย และยังมีอีกหลายการออกแบบที่ต้องเขียนใหม่ แต่นอกเหนือจากข้อเท็จจริงที่ว่าเราต้องเขียนคำค้นหาจำนวนมากใหม่แล้ว เรายังต้องมีกลไกที่เมื่ออัปเดตเซิร์ฟเวอร์ Veliam ของไคลเอ็นต์ จะต้องย้ายข้อมูลทั้งหมดไปยัง DBMS ใหม่และลบอันเก่าออก นอกจากนี้ ธุรกรรมใน SQLite ใช้งานไม่ได้และนี่คือปัญหาที่แท้จริง แต่หลังจากอ่านความกว้างใหญ่ของเวิลด์ไวด์เว็บแล้ว ฉันพบว่าไม่มีปัญหาใด ๆ ที่สามารถเปิดใช้งานธุรกรรมใน SQLite ได้โดยส่งคำสั่งง่าย ๆ เมื่อทำการเชื่อมต่อ

PRAGMA journal_mode=WAL;

เป็นผลให้งานเสร็จสมบูรณ์ และตอนนี้ส่วนเซิร์ฟเวอร์ของไคลเอนต์ทำงานบน SQLite เราไม่สังเกตเห็นการเปลี่ยนแปลงใด ๆ ในการทำงานของระบบ

โปรแกรมช่วยเหลือใหม่

จำเป็นต้องย้ายระบบ HelpDesk จากเวอร์ชันภายในไปเป็นเวอร์ชัน SaaS แต่มีการเปลี่ยนแปลงบางอย่าง สิ่งแรกที่ฉันต้องการทำคือการผสานรวมกับโดเมนของลูกค้าในแง่ของการอนุญาตผู้ใช้ที่โปร่งใสในระบบ ตอนนี้ เพื่อเข้าสู่ระบบ HelpDesk และฝากคำขอไว้ในระบบ ผู้ใช้เพียงแค่คลิกที่ทางลัดบนเดสก์ท็อปและเบราว์เซอร์จะเปิดขึ้นมา ผู้ใช้ไม่ได้ป้อนข้อมูลประจำตัวใด ๆ โมดูลสำหรับ Apache SSPI ซึ่งเป็นส่วนหนึ่งของ Veliam Server จะอนุญาตผู้ใช้ภายใต้บัญชีโดเมนโดยอัตโนมัติ หากต้องการฝากคำขอไว้ในระบบเมื่อผู้ใช้อยู่นอกเครือข่ายองค์กร เขาคลิกที่ปุ่มและได้รับลิงก์ในอีเมลซึ่งเขาใช้เข้าสู่ระบบ HelpDesk โดยไม่ต้องใช้รหัสผ่าน หากผู้ใช้ถูกปิดใช้งานหรือถูกลบในโดเมน บัญชี HelpDesk ก็จะหยุดทำงานด้วยเช่นกัน ดังนั้นผู้ดูแลระบบจึงไม่จำเป็นต้องตรวจสอบบัญชีทั้งในโดเมนและ HelpDesk เอง พนักงานลาออก - เขายกเลิกการเชื่อมต่อบัญชีของเขาในโดเมน และเพียงเท่านี้ เขาจะไม่เข้าสู่ระบบที่ไม่ใช่จากเครือข่ายองค์กร ไม่ใช่ผ่านลิงก์ เพื่อให้การผสานรวมนี้ทำงานได้ ผู้ดูแลระบบจำเป็นต้องสร้าง GPO หนึ่งรายการ เพิ่มไซต์ภายในให้กับโซนอินทราเน็ต и กระจายทางลัดไปยังผู้ใช้ทั้งหมดบนเดสก์ท็อป.

สิ่งที่สองที่เราถือว่าจำเป็นอย่างยิ่งสำหรับระบบ HelpDesk อย่างน้อยก็เพื่อตัวเราเองคือการเชื่อมต่อกับผู้สมัครโดยตรงจากแอปพลิเคชันในคลิกเดียว นอกจากนี้ การเชื่อมต่อจะต้องผ่านหากผู้ดูแลระบบอยู่ในเครือข่ายอื่น สำหรับการจ้างบุคคลภายนอก สิ่งนี้ถือเป็นข้อบังคับ สำหรับผู้ดูแลระบบเต็มเวลาก็มักจะจำเป็นเช่นกัน มีผลิตภัณฑ์หลายอย่างที่ทำงานการเชื่อมต่อระยะไกลได้อย่างดีเยี่ยม และเราตัดสินใจที่จะทำการบูรณาการให้พวกเขา ขณะนี้เราได้บูรณาการสำหรับ VNC แล้ว และในอนาคตเราวางแผนที่จะเพิ่ม Radmin และ TeamViewer ด้วยการใช้การขนส่งเครือข่ายของเราสำหรับการเชื่อมต่อโครงสร้างพื้นฐานระยะไกล เราทำให้ VNC เชื่อมต่อกับเวิร์กสเตชันระยะไกลที่อยู่เบื้องหลัง NAT สิ่งเดียวกันนี้จะเกิดขึ้นกับ Radmin ตอนนี้ ในการเชื่อมต่อกับผู้ใช้ คุณเพียงแค่คลิกปุ่ม "เชื่อมต่อกับผู้สมัคร" ในแอปพลิเคชันเท่านั้น ไคลเอนต์ VNC จะเปิดและเชื่อมต่อกับผู้สมัคร ไม่ว่าคุณจะอยู่ในเครือข่ายเดียวกันหรือสวมรองเท้าแตะอยู่ที่บ้านก็ตาม ขั้นแรก ผู้ดูแลระบบที่ใช้ GPO จะต้องติดตั้ง VNC Server บนเวิร์กสเตชันของทุกคน

ตอนนี้พวกเราเองกำลังเปลี่ยนไปใช้ HelpDesk ใหม่และใช้การผสานรวมกับโดเมนและ VNC ซึ่งสะดวกมากสำหรับเรา ตอนนี้เราสามารถหลีกเลี่ยงการจ่ายเงินให้กับ TeamViewer ซึ่งเราใช้มามากกว่าสามปีเพื่อให้บริการสนับสนุนของเราแล้ว

เราวางแผนที่จะทำอะไรต่อไป?

เมื่อเราเปิดตัวผลิตภัณฑ์ เราไม่ได้เรียกเก็บภาษีใดๆ แต่เพียงจำกัดภาษีฟรีไว้ที่ออบเจ็กต์การตรวจสอบ 50 รายการ เราคิดว่าอุปกรณ์เครือข่ายและเซิร์ฟเวอร์ห้าโหลน่าจะเพียงพอสำหรับทุกคน แล้วคำขอก็เริ่มเข้ามาเพื่อเพิ่มขีดจำกัด การจะบอกว่าเราตกใจเล็กน้อยก็คือไม่พูดอะไร บริษัทที่มีเซิร์ฟเวอร์จำนวนมากสนใจซอฟต์แวร์ของเราจริงๆ หรือไม่? เราขยายขีดจำกัดฟรีสำหรับผู้ที่ส่งคำขอดังกล่าว เพื่อตอบสนองต่อคำขอของพวกเขา เราได้ถามบางคนว่าทำไมพวกเขาถึงต้องการมากขนาดนี้ พวกเขามีเซิร์ฟเวอร์และอุปกรณ์เครือข่ายจำนวนมากจริงๆ หรือไม่ และปรากฎว่าผู้ดูแลระบบเริ่มใช้ระบบในลักษณะที่เราไม่ได้วางแผนไว้เลย ทุกอย่างกลายเป็นเรื่องง่าย - ซอฟต์แวร์ของเราเริ่มตรวจสอบไม่เพียงแต่เซิร์ฟเวอร์ แต่ยังรวมถึงเวิร์กสเตชันด้วย จึงมีคำขอมากมายให้ขยายขอบเขต ตอนนี้เราได้แนะนำภาษีที่ต้องชำระแล้วและสามารถขยายขีดจำกัดได้อย่างอิสระ

เซิร์ฟเวอร์มักจะทำงานร่วมกับระบบจัดเก็บข้อมูลหรือดิสก์ภายในเครื่องในอาร์เรย์ RAID และในตอนแรกเราก็สร้างผลิตภัณฑ์ให้พวกเขา และการตรวจสอบแบบ SMART ก็ไม่น่าสนใจสำหรับงานนี้ แต่เมื่อคำนึงถึงความจริงที่ว่าผู้คนได้ดัดแปลงซอฟต์แวร์สำหรับการตรวจสอบเวิร์กสเตชัน คำขอจึงปรากฏขึ้นสำหรับการดำเนินการตรวจสอบ SMART เราจะดำเนินการเร็วๆ นี้

ด้วยการถือกำเนิดของ Veliam Connector ทำให้ไม่จำเป็นต้องปรับใช้เซิร์ฟเวอร์ VPN ในเครือข่ายองค์กร หรือทำ RDGW หรือเพียงแค่ส่งต่อพอร์ตไปยังเครื่องที่จำเป็นสำหรับการเชื่อมต่อผ่าน RDP หลายๆ คนใช้ระบบของเราสำหรับการเชื่อมต่อระยะไกลเหล่านี้เท่านั้น Veliam Connector ใช้งานได้กับ Windows เท่านั้น และผู้ใช้ในบริษัทบางรายเชื่อมต่อจากแล็ปท็อปที่บ้านที่ใช้ MacOS ไปยังเวิร์กสเตชันหรือเทอร์มินัลบนเครือข่ายองค์กร และปรากฎว่าผู้ดูแลระบบยังคงถูกบังคับให้กลับสู่ปัญหาการส่งต่อหรือ VPN เนื่องจากผู้ใช้หลายคน ดังนั้นเราจึงเสร็จสิ้นการสร้าง Veliam Connector สำหรับ MacOS เวอร์ชันหนึ่งแล้ว ผู้ใช้เทคโนโลยี Apple ที่พวกเขาชื่นชอบจะมีโอกาสเชื่อมต่อกับโครงสร้างพื้นฐานขององค์กรได้ในคลิกเดียว

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

ในขณะเดียวกัน เรากำลังวางแผนที่จะเริ่มแปลระบบเป็นภาษาอังกฤษและเผยแพร่ไปยังต่างประเทศ เรายังไม่รู้ว่าจะจำหน่ายผลิตภัณฑ์ไปนอกประเทศของเราอย่างไร เรากำลังหาทางเลือก บางทีอาจมีบทความแยกต่างหากเกี่ยวกับเรื่องนี้ในภายหลัง บางทีคนที่อ่านบทความนี้จะสามารถแนะนำเวกเตอร์ที่ต้องการได้หรือตัวเขาเองรู้และรู้วิธีการทำเช่นนี้และจะเสนอบริการของเขา เราอยากจะขอบคุณความช่วยเหลือของคุณ.

ที่มา: will.com

เพิ่มความคิดเห็น