เกือบสี่ปีที่แล้ว เราเริ่มออกแบบระบบเมลแบบกระจายใหม่ล่าสุดที่เรียกว่า Mailion ซึ่งออกแบบมาเพื่อการสื่อสารในองค์กร โซลูชันของเราสร้างขึ้นบนสถาปัตยกรรมไมโครเซอร์วิส Cloud Native ซึ่งสามารถทำงานร่วมกับผู้ใช้มากกว่า 1 รายในเวลาเดียวกัน และจะพร้อมที่จะครอบคลุมความต้องการขององค์กรขนาดใหญ่ 000%
ในระหว่างการทำงานกับ Mailion ทีมงานได้เติบโตขึ้นหลายครั้ง และปัจจุบันมีนักพัฒนาเกือบ 70 คนที่เกี่ยวข้องกับผลิตภัณฑ์นี้ เรามาไกลจากแนวคิดและต้นแบบแรกๆ สู่ขั้นนำร่องเวอร์ชันเชิงพาณิชย์ ถึงเวลาบอก Habr ว่าเรากำลังสร้างผลิตภัณฑ์ประเภทใด วิธีจัดเรียงและทำงานของระบบอีเมล เทคโนโลยีที่เราใช้ และเหตุใดโซลูชันของเราจึงเป็นอนาคตของการสื่อสารองค์กร ไปกันเถอะ!
ฮาเบอร์ สวัสดี! ฉันชื่อ Anton Gerasimov เป็นหัวหน้าแผนกพัฒนาที่ศูนย์พัฒนามอสโกของบริษัท
ขณะนี้การพัฒนาของเราอยู่ในช่วงเบต้า แต่ในไม่ช้า ตามแผนของเรา ภายในสิ้นปี 2020 การพัฒนาจะเข้าสู่สถานะการนำร่องของผลิตภัณฑ์เชิงพาณิชย์
บทความนี้ส่วนใหญ่ประกอบด้วยข้อมูลทั่วไป - เป็นไปไม่ได้เลยที่จะครอบคลุมผลิตภัณฑ์ซอฟต์แวร์ที่ซับซ้อนในสิ่งพิมพ์เดียว ฉันวางแผนที่จะสร้างบทความชุดที่มีเรื่องราวเกี่ยวกับเทคโนโลยีที่สำคัญ ในระหว่างนี้ เพื่อความสะดวกของคุณ ฉันขอนำเสนอเนื้อหาต่อไปนี้:
ระบบเมลขององค์กรคืออะไร?
คำตอบที่ง่ายและชัดเจนสำหรับคำถามนี้คือเครื่องมืออีเมลและปฏิทิน แต่ปีศาจอย่างที่คุณทราบก็อยู่ในรายละเอียด
ดังนั้นเราจึงสร้างเมลยุคใหม่ที่มีฟังก์ชันการตั้งเวลาขั้นสูง ซึ่งมุ่งเน้นไปที่ส่วนองค์กรและบริษัทขนาดใหญ่ เรามุ่งมั่นที่จะทำงานร่วมกับโครงสร้างเชิงพาณิชย์และภาครัฐขนาดใหญ่ ซึ่งสามารถมีงานได้ตั้งแต่ 30 ถึงหลายแสนตำแหน่ง
ระบบของเราใช้หลักการของโซลูชันแพลตฟอร์ม เราต่อยอดแนวคิด Unified Communications และนำเสนอเครื่องมือเดียวสำหรับการทำงานกับเมล ปฏิทิน และเอกสารภายในระบบเดียว พร้อมความสามารถในการเพิ่มฟังก์ชันการทำงานของโซลูชันโดยการเชื่อมต่อโมดูลและส่วนประกอบเพิ่มเติม อย่างไรก็ตาม ส่วนขยายสามารถพัฒนาได้ไม่เพียงแต่โดยเราเท่านั้น แต่ยังรวมถึงพันธมิตรของเราด้วย ชุดเครื่องมือ SDK ที่ค่อนข้างกว้างจะได้รับการเผยแพร่เพื่อจุดประสงค์นี้ด้วย
ใครต้องการจดหมายอีกและทำไม?
ธุรกิจขนาดใหญ่ก่อให้เกิดแนวโน้มที่น่าสนใจ - องค์กรต่างๆ กำลังประสบกับความต้องการฟีเจอร์การทำงานร่วมกัน นี่ไม่เพียงแค่เกี่ยวกับการโต้ตอบโดยตรงของพนักงานผ่านการถ่ายโอนบางสิ่งเท่านั้น แต่ยังเกี่ยวกับการแบ่งปันการเข้าถึงกล่องจดหมายและกล่องบทบาท ความสามารถในการทำงานกับผู้เข้าร่วมกลุ่มใหญ่ และการมีอยู่ของฟังก์ชันต่างๆ ขององค์กร
ฟังก์ชันทั่วไปขององค์กรคือกลไกการเรียกคืนอีเมล ซึ่งเป็นที่ต้องการสูงในบริษัทขนาดใหญ่ แต่ในทางปฏิบัติแล้วไม่ได้ใช้ทั้งในกลุ่ม B2C หรือในธุรกิจขนาดเล็ก ประเด็นก็คือในหมู่ผู้ใช้กลุ่มเล็ก ๆ โอกาสของความต้องการดังกล่าวค่อนข้างน้อยและต้นทุนของความผิดพลาดก็น้อยกว่ามาก ยิ่งไปกว่านั้น เป็นไปไม่ได้เลยที่จะใช้ฟังก์ชันนี้นอกระบบเมลขององค์กร แม้แต่ใน Google Mail ก็ไม่มีการตอบกลับจดหมายในรูปแบบที่ผู้ใช้ Exchange คุ้นเคย สาเหตุของปัญหาอยู่ที่การออกแบบโปรโตคอลเมลจากทศวรรษที่ 80 ของศตวรรษที่ผ่านมา
เราได้จัดการสนทนากลุ่มหลายสิบกลุ่ม สัมภาษณ์ผู้ใช้หลายร้อยราย และใช้เวลาหลายพันชั่วโมงในการระบุสถานการณ์การใช้งานเมลทั่วไป สิ่งนี้ช่วยให้เราสามารถศึกษาความต้องการของผู้ใช้ที่มีศักยภาพและลักษณะเฉพาะของกระบวนการทางธุรกิจของพวกเขาอย่างรอบคอบ จากข้อมูลที่ได้รับ เราตัดสินใจพัฒนาสถาปัตยกรรมที่จะช่วยให้ขยายขนาดตามปริมาณโหลดที่ต้องการได้ หากจำเป็น ในมุมมองของเรา ไม่มีขีดจำกัดเลย แต่ในขณะนี้ เราเข้าใจวิธีการรับรองการทำงานของบริษัทที่จ้างผู้ใช้หลายแสนคน
สิ่งที่ซ่อนอยู่ภายใต้ประทุน
ผลิตภัณฑ์ของเราประกอบด้วยโซลูชันอีเมล เครื่องมือกำหนดเวลา สมุดที่อยู่ และการดูเอกสารเชิงโต้ตอบโดยใช้โซลูชันการจัดการเอกสาร MyOffice ของเราเอง
เนื่องจากเรากำลังพูดถึงโซลูชันระดับองค์กร เครื่องมือค้นหาที่ครบครันจึงเป็นส่วนสำคัญของอีเมลขององค์กรเช่นกัน โซลูชันของเราสามารถทำการค้นหาทางสัณฐานวิทยาแบบครบวงจรในทุกส่วนประกอบ นอกจากนี้ ระบบเมลทั้งหมดยังใช้พื้นที่จัดเก็บข้อมูลของตัวเอง ซึ่งได้รับการปรับให้เหมาะสมสำหรับการทำงานร่วมกันด้วย
อะไรคือความแตกต่างระหว่างระบบเมล MyOffice
ผู้อ่าน Habr ซึ่งมีประสบการณ์กับโซลูชัน MyOffice อยู่แล้ว รู้ว่า MyOffice Mail ปรากฏเป็นส่วนหนึ่งของผลิตภัณฑ์เชิงพาณิชย์ และคำถามก็เกิดขึ้น - อะไรคือความแตกต่างจากระบบเมลขององค์กร Mailion ที่ทีมของฉันทำงานอยู่?
พวกเราที่ MyOffice ตัดสินใจว่าเพื่อตอบสนองความต้องการของบริษัทขนาดต่างๆ จำเป็นต้องสร้างระบบเมลระดับองค์กรสองระบบ ผลิตภัณฑ์ MyOffice Mail มีไว้สำหรับองค์กรที่มีผู้ใช้นับพันหรือหลายหมื่นคน สำหรับโครงสร้างที่ใหญ่ขึ้น ควรใช้ Mailion ซึ่งเป็นผลิตภัณฑ์ MyOffice ใหม่ซึ่งสร้างขึ้นบนสถาปัตยกรรมไมโครเซอร์วิส Cloud Native ซึ่งมีความสามารถในการปรับขนาดและความทนทานต่อข้อผิดพลาดอย่างที่ไม่เคยมีมาก่อน
เมื่อเลือกผลิตภัณฑ์ ลูกค้าจะต้องตัดสินใจล่วงหน้าเกี่ยวกับกลยุทธ์ในการพัฒนาบริษัทของตนต่อไป สำหรับองค์กรใดๆ การใช้ระบบเมลเป็นโครงการที่ซับซ้อนซึ่งไม่จำเป็นต้องเปลี่ยนโซลูชันหนึ่งด้วยอีกโซลูชันหนึ่งอย่างรวดเร็ว ดังนั้นควรคำนึงถึงน้ำหนักบรรทุกสูงสุดที่เป็นไปได้ เกณฑ์ความทนทานต่อความเสียหาย และเกณฑ์การซ่อมแซมตัวเอง รวมถึงปัจจัยการกระจายทางภูมิศาสตร์ล่วงหน้า
ระบบเมล MyOffice ทั้งสองระบบมีความแตกต่างกันโดยพื้นฐาน พวกมันถูกสร้างขึ้นโดยใช้กลุ่มเทคโนโลยีที่แตกต่างกัน และเครื่องมือสำหรับแต่ละระบบจะถูกเลือกตามเป้าหมายและวัตถุประสงค์ของเซ็กเมนต์ที่จะใช้งานระบบเมล เรามีวิสัยทัศน์ผลิตภัณฑ์ร่วมกันเกี่ยวกับสิ่งที่ควรนำเสนอในระบบเมล รวมถึงการซิงโครไนซ์ในแนวทางการออกแบบ แต่นี่เป็นผลิตภัณฑ์สองรายการที่ออกแบบมาสำหรับผู้ใช้ที่แตกต่างกัน
อะไรคือความท้าทายที่นักพัฒนาต้องเผชิญ
นอกจากนี้ในข้อความ ฉันจะพูดถึง Mailion ระบบเมลองค์กรใหม่เท่านั้น
เราได้ทำการวิจัยอย่างละเอียดและวิเคราะห์ข้อดีและข้อเสียของโซลูชันอีเมลที่มีอยู่ ประสบการณ์ที่สั่งสมมาของผู้เชี่ยวชาญของเรา ซึ่งในอดีตเกี่ยวข้องโดยตรงกับการสร้างระบบที่มีภาระงานสูง ทำให้เราสามารถระบุปัญหาหลักของผลิตภัณฑ์ที่รู้จักกันดีได้อย่างรวดเร็ว นั่นคือ ประสิทธิภาพของดิสก์อินพุตและเอาต์พุต (IO)
เราสามารถพูดได้ว่างานเร่งดำเนินการ IO กลายเป็นความท้าทายหลักที่เราเผชิญ จำเป็นต้องมุ่งเน้นไปที่การแก้ปัญหางานเฉพาะของเรา และเราเริ่มสร้างและพัฒนาระบบจัดเก็บข้อมูลไบนารีของเราเอง วิธีนี้มีองค์ประกอบทางเศรษฐกิจที่ชัดเจนมาก - เราไม่เพียงต้องจัดเก็บข้อมูลเท่านั้น แต่ยังต้องดำเนินการอินพุตและเอาต์พุตของดิสก์จำนวนมากด้วย
การตัดสินใจดังกล่าวไม่ใช่เรื่องง่าย เราพิจารณาผลิตภัณฑ์ระดับองค์กรจำนวนมากที่มุ่งเป้าไปที่การจัดเก็บข้อมูล และไม่พบผลิตภัณฑ์ใดที่พร้อมและเหมาะสมกับความต้องการของเรา ท้ายที่สุดเราไม่เพียงต้องจัดเก็บข้อมูลเท่านั้น แต่ยังต้องทำงานร่วมกับข้อมูลเหล่านี้อย่างต่อเนื่องและไม่ได้อยู่ในโหมดเอกสิทธิ์ที่เข้าถึงได้สำหรับผู้ใช้รายเดียว แต่ต้องมั่นใจในความเป็นไปได้ในการทำงานร่วมกันของผู้ใช้หลายหมื่นคน
ดังนั้นเราจึงได้พิจารณาแล้วว่าเกณฑ์องค์กรที่สำคัญที่สุดสำหรับเราคือการทำงานกับข้อมูลจำนวนมาก
ความเชื่อถือได้
ยิ่งไปกว่านั้น นี่ไม่ใช่เรื่องของการจัดเก็บมากนักเท่ากับงานประมวลผลและการเข้าถึงข้อมูลนี้อย่างรวดเร็ว จำเป็นต้องมีตัวบ่งชี้ความน่าเชื่อถือสูง - เวลาของการทำงานต่อเนื่องของโซลูชันทั้งหมดควรอยู่ที่ระดับ 99,9% อย่างไรก็ตาม ระบบเมลจะต้องเป็นอิสระในการตัดสินใจที่ถูกต้องเกี่ยวกับการจัดการการตีกลับ ด้วยวิธีนี้เท่านั้นจึงเป็นไปได้ที่จะบรรลุถึงความล้มเหลวที่สามารถทำให้กระบวนการทางธุรกิจของบริษัทใดบริษัทหนึ่งเป็นอัมพาตได้
ความอดทนต่อความผิดพลาด
เราได้จัดทำชุดมาตรการที่ใช้กับแต่ละส่วนประกอบ และเลือกแนวทางเพื่อให้แน่ใจว่าทนทานต่อข้อผิดพลาด โดยเฉพาะอย่างยิ่ง ระบบเมลขององค์กรใช้องค์ประชุมข้อมูล การจองบริการ และการควบคุมภาวะไร้สัญชาติ ตลอดจนกลไกการกำหนดเส้นทางและองค์ประชุมตามฉันทามติของตัวเอง
เกณฑ์สำหรับความทนทานต่อข้อผิดพลาดสูงคือการมีอยู่ในแต่ละองค์ประกอบของกลไกสำหรับการทดสอบตัวเอง Mailion วิเคราะห์อย่างต่อเนื่องว่าฟังก์ชันนี้หรือฟังก์ชันนั้นทำงานอย่างถูกต้องหรือไม่ถูกต้อง ไม่ว่าบล็อกนี้หรือบล็อกนั้นทำงานอย่างถูกต้องหรือไม่ นี่เป็นวิธีหนึ่งในการรักษาตนเองของระบบในกรณีที่เกิดความล้มเหลว ข้อมูลไม่ควรสูญหาย การแก้ปัญหาควรเข้าสู่สถานะที่สอดคล้องกันในที่สุด
ต้องเข้าใจว่าเป็นไปไม่ได้ที่จะคาดการณ์เหตุการณ์ที่เป็นไปได้ทั้งหมดในชีวิตโดยทั่วไป - คุณไม่สามารถหลอกลวงฟิสิกส์ได้ แต่เรายึดมั่นในแนวทางการออกแบบดังกล่าวซึ่งช่วยให้เราสามารถพูดด้วยความมั่นใจในระดับสูงพอสมควรเกี่ยวกับการจัดการอุบัติเหตุที่ถูกต้องในบางรูปแบบ นอกจากนี้เรายังมีทีมทดสอบขนาดใหญ่ที่พยายามทำลายบางสิ่งในผลิตภัณฑ์อยู่ตลอดเวลา และบางครั้งพวกเขาก็ประสบความสำเร็จ จากข้อเท็จจริงนี้ เหตุการณ์ได้เริ่มต้นขึ้น ซึ่งเราศึกษาโดยละเอียด และสร้างกลไกใหม่เพื่อขจัดปัญหาดังกล่าวบนพื้นฐานของเหตุการณ์ดังกล่าว
ระบบตอบสนองต่อการขัดข้องอย่างไร
ตลาดมักถามคำถาม - จะเกิดอะไรขึ้นกับระบบหากสูญเสียการเชื่อมต่อกับโหนดใดโหนดหนึ่งอย่างกะทันหัน? คำขอดังกล่าวมีความเกี่ยวข้องอย่างยิ่งหากคุณวางแผนที่จะใช้โซลูชันที่มีการกระจายทางภูมิศาสตร์
เมื่อออกแบบการติดตั้งดังกล่าวจำเป็นต้องคำนึงถึงความต้องการของลูกค้าและเกณฑ์ความน่าเชื่อถือของเขาด้วย เป็นความผิดพลาดที่จะถือว่าการเชื่อมต่อกับเครือข่ายข้อมูลเหมือนกันทุกที่ ในระบบองค์กร แม้แต่ความเร็วของสัญญาณผ่านไฟเบอร์ก็เป็นสิ่งสำคัญที่ต้องพิจารณา
หากลูกค้าต้องการความน่าเชื่อถือสูง เราจะแนะนำให้ติดตั้งในศูนย์ข้อมูลหลายแห่ง ซึ่งจะเชื่อมต่อกันด้วยสายสื่อสารเฉพาะ
อย่างไรก็ตาม ไม่สามารถตัดสถานการณ์ของไฟฟ้าดับโดยสิ้นเชิงในโหนดใดโหนดหนึ่งของระบบเมลได้ ในกรณีนี้ การทำงานกับข้อมูลหลักของส่วนนี้จะถูกระงับ แต่ส่วนที่เหลือจะทำงานเหมือนกับไม่มีอะไรเกิดขึ้น ระบบจะแจ้งให้ผู้ดูแลระบบทราบถึงการสูญเสียโหนด และพนักงานจะต้องดำเนินการตามความเหมาะสมหลายประการ
นอกจากนี้ ระบบเมลของเราสามารถกำหนดค่าในลักษณะที่ทำการจองภายในศูนย์ข้อมูลได้ วิธีการนี้จะรับประกันความสามารถในการทำงานในกรณีที่สูญเสียโหนดหลายตัวภายในศูนย์ข้อมูล และจะไม่มีใครสังเกตเห็นการสูญเสียของโหนดใดโหนดหนึ่ง ยกเว้นระบบการตรวจสอบ เมื่อเหตุการณ์ดังกล่าวเกิดขึ้น โหลดจะถูกกระจายใหม่ ดังนั้นเมื่อออกแบบระบบเมล สิ่งสำคัญคือต้องคำนึงถึงระยะขอบ - มีส่วนประกอบใดบ้างและองค์ประกอบใดที่สามารถ "สูญหาย" จากอุบัติเหตุได้
อิสรภาพ
ไม่มีระบบที่เชื่อถือได้อย่างแน่นอนและความล้มเหลวไม่ทางใดก็ทางหนึ่ง แต่สามารถเกิดขึ้นได้ ดังนั้น เมื่อออกแบบระบบเมล สิ่งสำคัญคือต้องจัดให้มีความสามารถในการระบุตำแหน่งความล้มเหลวได้อย่างรวดเร็ว ซึ่งจะช่วยให้สามารถกำจัดความล้มเหลวเหล่านั้นได้ภายในระยะเวลา SLA ที่กำหนด นอกจากนี้ ความล้มเหลวควรถูกกำจัดโดยระบบด้วยตัวเอง ในขณะเดียวกันก็ลดการแทรกแซงของผู้ดูแลระบบและบริการบำรุงรักษาให้เหลือน้อยที่สุด
ใช้งานง่าย
แน่นอนว่าระบบขนาดใหญ่ไม่สามารถต้องการความสนใจจากพนักงานที่มีคุณสมบัติสูงได้ แต่แง่มุมหนึ่งที่เราพิจารณาเมื่อออกแบบก็คือ ระบบควรง่ายต่อการจัดการ และไม่ต้องใช้ความสามารถเฉพาะใดๆ
ประสิทธิภาพทางเศรษฐกิจ
แน่นอนว่าในการทำงานกับระบบขององค์กรดังกล่าวจำเป็นต้องมีการฝึกอบรมพนักงาน - ท้ายที่สุดแล้วเรากำลังพูดถึงเรื่องขนาดใหญ่มาก ดังนั้นเมื่อสร้างผลิตภัณฑ์ของเรา เราจึงมุ่งเน้นไปที่การลดต้นทุนรวมในการเป็นเจ้าของระบบ สำหรับธุรกิจใดๆ สิ่งสำคัญคือต้องตรวจสอบประสิทธิภาพของการใช้จ่ายและพยายามหลีกเลี่ยงการอัดฉีดเงินเป็นค่าใช้จ่ายในการดำเนินงานอย่างไม่สิ้นสุด
การกระจายอำนาจ
เพื่อให้บรรลุหลักการที่ฉันพูดถึงก่อนหน้านี้ จำเป็นต้องมีการกระจายระบบอย่างสมบูรณ์ - แนวทางแบบรวมศูนย์จะถูกจำกัดโดยเงื่อนไขการใช้งานฮาร์ดแวร์เสมอ
แน่นอนคุณสามารถซื้อเซิร์ฟเวอร์ขนาดใหญ่เครื่องเดียวและลองใส่แอปพลิเคชันและบริการทั้งหมดลงไปได้ แต่ยิ่งระบบมีขนาดใหญ่ การออกแบบทั้งหมดก็จะยิ่งซับซ้อนมากขึ้น และความน่าเชื่อถือของระบบดังกล่าวก็ลดลงอย่างต่อเนื่อง ท้ายที่สุดแล้ว เซิร์ฟเวอร์เดียวก็หมายถึงจุดล้มเหลวเพียงจุดเดียว และยิ่งเรารวมศูนย์การทำงานมากเท่าไร เราก็ยิ่งต้องพึ่งพาจุดศูนย์กลางนั้นมากขึ้นเท่านั้น
ข้อกำหนดต่าง ๆ ของระบบ
เมื่อเราพูดถึงระบบเมลขององค์กรที่ซับซ้อน เราต้องเข้าใจว่าไม่มี "การกำหนดค่าขั้นต่ำสำหรับงาน" หัวใจสำคัญของการใช้งานขนาดใหญ่คืองานออกแบบที่จริงจังเสมอ ช่วยให้คุณสามารถเชื่อมโยงความต้องการของธุรกิจเฉพาะและการกำหนดค่าระบบเมลที่เหมาะสมที่สุด
ระบบเมลขององค์กรเป็นเครื่องมือที่ยืดหยุ่นซึ่งสามารถปรับแต่งตามพารามิเตอร์จำนวนมากได้ เราทำการทดสอบโหลดตามวิธีการของเราเอง ซึ่งช่วยให้เราสามารถจำลองโหลดโดยอาศัยการวิเคราะห์เกณฑ์พื้นฐานหลายสิบเกณฑ์และเกณฑ์ที่เป็นไปได้หลายร้อยรายการ
เราสามารถพูดได้ว่าเมื่อเตรียมโครงการดำเนินงานเป็นการคำนวณที่จะแสดงความเข้มข้นของงานของผู้ใช้ในกระบวนการทางธุรกิจที่มีอยู่ขององค์กร ในเวลาเดียวกัน มีการวิเคราะห์พารามิเตอร์อินพุตจำนวนมาก และขึ้นอยู่กับโหลดที่เป็นไปได้ การตัดสินใจเกี่ยวกับจำนวนพลังการประมวลผลที่ต้องการ - จากคอมพิวเตอร์เครื่องหนึ่งไปยังห้องคอมพิวเตอร์ทั้งหมด
ดังนั้นการพูดถึงการกำหนดค่าขั้นต่ำบางอย่างจึงไม่ถูกต้องทั้งหมด โดยเฉพาะอย่างยิ่ง เรายังมีแท่นสาธิตที่ทำงานบนเครื่องเพียงเครื่องเดียวด้วย แต่เราเข้าใจดีว่างานในส่วนองค์กรต้องมีการติดตั้งบนเครื่องเสมือนหลายสิบหรือหลายร้อยเครื่อง
กองเทคโนโลยี
เมื่อสร้างผลิตภัณฑ์ เราให้ความสำคัญเป็นพิเศษกับความบริสุทธิ์ของใบอนุญาตของโค้ด มาตรฐานคุณภาพสูงได้รับการตั้งค่าและบังคับใช้ที่ MyOffice ซึ่งกำหนดให้เราต้องพัฒนาผลิตภัณฑ์ด้วยตนเองอย่างเต็มที่ โดยมีส่วนร่วมกับโค้ดภายนอกน้อยที่สุด
รหัสส่วนใหญ่ของ Mailion เป็นการพัฒนาภายในองค์กร ซึ่งเป็นรหัสที่เราเป็นเจ้าของทั้งหมด และเราสามารถเปลี่ยนแปลงและแก้ไขได้ตามต้องการ รหัสส่วนใหญ่สำหรับระบบเมลของเราเขียนเองในภาษา Go (Golang) นอกจาก Go แล้ว เรายังใช้ C++ และ Java Script ES6 สำหรับ web part อีกด้วย
ส่วนที่เหลืออีก 5% เรียกว่า "ส่วนประกอบหนัก" เช่น ฐานข้อมูล ซึ่งรวมถึง RethinkDB, ArangoDB และ Redis ในบรรดาเทคโนโลยีที่สำคัญ ฉันยังสังเกต gRPC ซึ่งเป็นระบบการเรียกขั้นตอนระยะไกลที่ใช้เป็นกลไกเดียวสำหรับการโต้ตอบผ่าน API ซึ่งเป็นส่วนสำคัญ
สินค้าทำมาจากอะไร
ระบบเมลขององค์กรไม่ใช่ "เซิร์ฟเวอร์ในสุญญากาศ" ผลิตภัณฑ์ของเราประกอบด้วยส่วนประกอบประมาณ 70 รายการและบริการ 45 รายการที่รองรับระบบเมล องค์ประกอบทั้งหมดเหล่านี้เขียนขึ้นตั้งแต่เริ่มต้นและเป็นการพัฒนาของ MyOffice เอง
ส่วนที่มองเห็นได้ชัดเจนที่สุดของระบบคือเซิร์ฟเวอร์ที่ซับซ้อน ซึ่งจัดเตรียมพื้นที่เก็บข้อมูล เมล ปฏิทินและระบบค้นหา และเว็บไคลเอ็นต์ นอกจากนี้ เรายังพัฒนาแอปพลิเคชันสำหรับผู้ใช้หลายรายการ และวางแผนที่จะเสนอ "ธินไคลเอนท์" ใหม่ให้กับผู้ใช้ของเราโดยใช้เทคโนโลยีเว็บไคลเอ็นต์ของเราภายในเวลาที่เปิดตัวเชิงพาณิชย์
ความเข้ากันได้ของระบบเมล
Mailion ทำงานตามโปรโตคอลมาตรฐาน ในการเริ่มใช้โซลูชันของเรา คุณเพียงแค่ต้องตั้งค่าแอปพลิเคชันไคลเอนต์และทำงานกับแอปพลิเคชันเหล่านั้นต่อไปในสภาพแวดล้อมที่คุ้นเคย ตัวอย่างเช่น คุณสามารถใช้แอปพลิเคชันไคลเอนต์ที่มาพร้อมกับ MyOffice Mail
นอกจากนี้ เพื่อความสะดวกของผู้ใช้ เราได้สร้างปลั๊กอินพิเศษที่ช่วยให้เปลี่ยนจาก Exchange ได้อย่างราบรื่น ด้วยความช่วยเหลือ ผู้ใช้จะสามารถทำงานกับ MS Outlook ต่อไปได้เมื่อเปลี่ยนเมลเซิร์ฟเวอร์ - พวกเขาจะไม่สังเกตเห็นด้วยซ้ำว่ามีบางอย่างเปลี่ยนแปลงไปในการโต้ตอบตามปกติกับเครื่องมือสื่อสาร ปลั๊กอินดังกล่าวช่วยให้คุณถ่ายโอนผู้ใช้จากระบบเมลเก่าได้อย่างราบรื่นโดยไม่หยุดการทำงานของทั้งองค์กร สิ่งนี้สำคัญอย่างยิ่งหากคุณต้องการเปลี่ยนเครื่องมือสำหรับผู้ใช้หลายแสนคน
ความง่ายในการบริหารงาน
คุณสมบัติของระบบเมลองค์กรของเราคือผู้ดูแลระบบต้องมีส่วนร่วมน้อยมาก เมื่อออกแบบ เราพยายามค้นหาสมดุลระหว่างความเป็นไปได้ในการปรับแต่งและความซับซ้อนของการจัดการ เพื่อให้บรรลุเป้าหมายนี้ เราจำเป็นต้องดำเนินการวิจัยจำนวนมากเกี่ยวกับรูปแบบพฤติกรรมของผู้ดูแลระบบระบบองค์กรที่ซับซ้อน
อย่างที่ผมได้กล่าวไว้ก่อนหน้านี้ ทีมของเราประกอบด้วยผู้เชี่ยวชาญที่มีคุณสมบัติสูง ซึ่งแต่ละคนมีประสบการณ์ด้านการบริหารที่แข็งแกร่ง ดังนั้นเมื่อพัฒนาระบบ เราจึงพยายามถ่ายทอดประสบการณ์ไปยังความต้องการของผู้ใช้เมื่อต้องจัดการผลิตภัณฑ์ที่ซับซ้อน กล่าวคือ เมื่อทราบถึงปัญหาที่อาจเกิดขึ้นแล้ว เราก็เล็งเห็นแนวทางในการแก้ไขในระดับการออกแบบสถาปัตยกรรมล่วงหน้า
ตัวอย่างเช่น
- มีการแยกส่วนประกอบของระบบออกเป็นคอนเทนเนอร์ รวมถึงคอนเทนเนอร์โครงสร้างพื้นฐาน ซึ่งช่วยให้เราเพิ่มระดับความปลอดภัย กำหนดค่าการเข้าถึงระหว่างส่วนประกอบต่างๆ ได้อย่างยืดหยุ่น และยังช่วยให้เรารวมรายการใหม่ได้อย่างรวดเร็วในรายการระบบและแพลตฟอร์มที่รองรับที่เป็นที่ต้องการ ตามธุรกิจ
- แนวทางเดียวในการพัฒนาและการปรับใช้ รูปแบบการกำหนดค่าเดียวสำหรับส่วนประกอบทั้งหมดช่วยให้งานที่เข้าใจได้และมีประสิทธิภาพมากขึ้น และลดต้นทุนการสนับสนุน
- โปรแกรมติดตั้งระบบของตัวเอง ซึ่งใช้เครื่องมือปรับใช้ตามปกติ ช่วยให้คุณสามารถจัดการการติดตั้งจากส่วนกลาง มีความยืดหยุ่นและเข้าใจได้
สถาปัตยกรรมไมโครเซอร์วิสที่มีการแบ่งความรับผิดชอบที่ชัดเจนของตรรกะทางธุรกิจระหว่างบริการต่างๆ ช่วยให้เข้าใจโครงร่างของระบบและสนับสนุนได้อย่างมีประสิทธิภาพมากขึ้น - ส่วนโครงสร้างพื้นฐานของระบบจะขึ้นอยู่กับโซลูชันที่คุ้นเคย โดยใช้แนวปฏิบัติที่ดีที่สุด และยังช่วยให้สามารถบูรณาการกับระบบที่มีอยู่ในองค์กร ซึ่งช่วยให้การทดสอบระบบภายในบริษัทง่ายขึ้น
- เพื่อจุดประสงค์นี้ จะมีการจัดเตรียมระบบที่ใช้ปัญญาประดิษฐ์ไว้ในสถานที่จัดเก็บ ซึ่งจะสามารถระบุความล้มเหลวที่อาจเกิดขึ้นและจัดการอุปกรณ์ได้อย่างอิสระ
การออกแบบที่ทันสมัย
ต้องใช้เวลาหลายพันชั่วโมงคนในการสร้างการออกแบบผลิตภัณฑ์ ก่อนการพัฒนา ภารกิจคือการทำให้อินเทอร์เฟซทันสมัย - ใช้งานง่ายและใช้งานง่าย เป็นเรื่องยุ่งยากเมื่อคุณออกแบบระบบองค์กรที่จำเป็นต้องมีคุณลักษณะเฉพาะจำนวนหนึ่งเป็นค่าเริ่มต้น
แน่นอนว่าการออกแบบไม่สามารถ "แกะสลักด้วยหิน" หรืออนุมัติให้ลงนามและประทับตราได้ - มันเป็นเครื่องมือที่มีชีวิต มีการพัฒนาและปรับปรุงอยู่ตลอดเวลา ตลอดระยะเวลาสี่ปี เราได้เปลี่ยนแปลงการออกแบบหลายครั้ง แต่ไม่มีการเปลี่ยนแปลงอุดมการณ์ที่รุนแรง หลักการสำคัญของการสร้างสายผลิตภัณฑ์ขององค์กรทั้งหมดคือการสร้างระบบการออกแบบที่เป็นสากล
เมื่อออกแบบการออกแบบระบบเมลขององค์กร เราให้ความสำคัญเป็นพิเศษกับการพัฒนาสามประเด็นสำคัญ ได้แก่ ความสามารถในการปรับตัว ความสม่ำเสมอ และความสามารถในการปรับให้เข้ากับเอกลักษณ์องค์กรของลูกค้า
การปรับตัว
คุณสมบัติการออกแบบของอินเทอร์เฟซของระบบเมลขององค์กร Mailion คือความสามารถในการแสดงผลบนอุปกรณ์ที่มีหน้าจอทุกขนาด องค์ประกอบภาพทั้งหมดได้รับการวาดขึ้นอย่างระมัดระวัง โดยปรับขนาดได้อย่างถูกต้องเมื่อทำงานบนอุปกรณ์เคลื่อนที่ และเหมาะอย่างยิ่งสำหรับการควบคุมด้วยนิ้วบนหน้าจอสัมผัส นอกจากนี้ เมื่อขนาดของหน้าต่างแอปพลิเคชันเปลี่ยนไป เค้าโครงคอลัมน์ก็จะถูกเปลี่ยนเช่นกัน ขนาดของคอลัมน์จะถูกเลื่อนตามสัดส่วน ตามหลักการอย่างเคร่งครัดของแนวคิดของแอปพลิเคชันอินเทอร์เน็ตที่หลากหลาย
ความสม่ำเสมอ
การออกแบบระบบเมลขององค์กร Mailion นั้นใช้แนวทางที่เป็นระบบ เราได้พัฒนาทิศทางนี้มาตั้งแต่ต้นปี 2017 เมื่อการพูดถึงระบบการออกแบบไม่ทันสมัยเท่าในปัจจุบัน ระบบการออกแบบคือชุดของกฎและเครื่องมือสำหรับการดำเนินการด้วยภาพและทางเทคนิค ซึ่งสะท้อนถึงปรัชญาของผลิตภัณฑ์และมีการพัฒนาอย่างต่อเนื่อง เราแนะนำสิ่งนี้เพื่อทำให้การสื่อสารระหว่างการพัฒนาและการออกแบบง่ายขึ้น
การปรับแต่งเอกลักษณ์องค์กร
การออกแบบของเราคือ "กิ้งก่า" ที่สามารถปรับให้เข้ากับเอกลักษณ์องค์กรของลูกค้าได้ สีขององค์ประกอบอินเทอร์เฟซทั้งหมดถูกกำหนดผ่านตัวแปร ดังนั้น ด้วยการเปลี่ยนชุดพื้นฐานของสีหลายๆ สี คุณสามารถเปลี่ยนสีแอปพลิเคชันทั้งหมดได้ในคราวเดียว
แบบอักษรยังถูกกำหนดผ่านตัวแปร: อินเทอร์เฟซสามารถใช้แบบอักษรองค์กรของบริษัทลูกค้าได้ หากจัดทำโดยหนังสือแบรนด์ของลูกค้า ในเวลาเดียวกัน แบบอักษรที่แตกต่างกันสามารถมีขนาดตัวอักษรที่แตกต่างกันได้ และเราจะคำนึงถึงเรื่องนี้ด้วย ตัวอย่างเช่น PT Sans ขนาด 16 ดูเล็กกว่า Roboto ในขนาด 16 อย่างเห็นได้ชัด ดังนั้นเราจึงปรับขนาดของบล็อกข้อความให้เหมาะกับคุณลักษณะของแบบอักษรเฉพาะ
เราจะอุทิศบทความแยกต่างหากให้กับโครงสร้างของไลบรารีสีของเราและลักษณะเฉพาะของการทำงานกับแบบอักษร
ปพลิเคชันโทรศัพท์มือถือ
แอปพลิเคชันบนมือถือเป็นส่วนสำคัญของระบบเมลสมัยใหม่ ผู้ใช้ควรสามารถทำงานได้จากทุกที่และทุกเวลา
ตอนนี้เราเพิ่งสร้างแนวคิดของแอปพลิเคชันมือถือขององค์กร พวกเขาควรคำนึงถึงความแตกต่างในการทำงานของระบบเมล MyOffice และเสนอแนวทางที่แตกต่างกันในการใช้ระบบอีเมลและปฏิทินในองค์กร
แผงสื่ออัจฉริยะ
การสนทนากลุ่มของเราแสดงให้เห็นว่าผู้ใช้พบว่าอินเทอร์เฟซของระบบอีเมลที่คุ้นเคยนั้นยุ่งยาก ผู้ตอบแบบสอบถามที่เราสัมภาษณ์ตั้งข้อสังเกตว่าการทำงานกับกิจกรรมในปฏิทินและไฟล์แนบนั้นยากเป็นพิเศษ เราพยายามที่จะบรรลุอินเทอร์เฟซที่ตอบสนองและเพิ่มประสิทธิภาพการทำงาน - เพื่อทำให้ผลิตภัณฑ์ของเราน่าใช้
แผงสื่อซึ่งเป็นเครื่องมือการทำงานร่วมกันแบบใหม่ จัดระเบียบข้อมูลทั้งหมดเกี่ยวกับการสนทนาและให้การเข้าถึงรายชื่อผู้เข้าร่วมการสนทนา ลิงก์ และเวอร์ชันของเอกสารที่เคยส่งได้ทันที
เครื่องมือนี้ช่วยในสถานการณ์ที่ผู้ใช้ต้องทำงานกับโพสต์ขนาดใหญ่ที่มีโพสต์หลายร้อยรายการ มันมักจะเกิดขึ้นที่คุณจะต้องค้นหาเอกสารหรือรูปภาพที่อยู่ในนั้นเพียงอันเดียว แผงสื่อจะสร้างรายการของรายการทั้งหมดในเธรดอีเมลและแสดงในที่เดียว เป็นผลให้การค้นหาวัตถุที่ต้องการง่ายขึ้นมาก
การ จำกัด
ความต้องการระบบเมลขององค์กรไม่ได้เกิดขึ้นเฉพาะกับผู้ใช้ชาวรัสเซียเท่านั้น MyOffice ดำเนินนโยบายการเข้าสู่ตลาดต่างประเทศอย่างสม่ำเสมอ ดังนั้นปัญหาของการแปลผลิตภัณฑ์จึงได้รับความสนใจค่อนข้างมาก
ในผลิตภัณฑ์ของเรา ความจำเป็นในการแปลเป็นภาษาต่างประเทศนั้นถูกวางไว้ตั้งแต่เริ่มต้นที่ระดับส่วนพื้นฐานของระบบ ในตัวมันเองการเพิ่มภาษาใหม่ไม่ใช่ปัญหาใหญ่สำหรับเรา - นี่เป็นงานที่เข้าใจได้อย่างสมบูรณ์ซึ่งเรารู้วิธีแก้ไข
ขณะนี้ผู้ใช้สามารถใช้ภาษารัสเซียและอังกฤษได้แล้ว ในรุ่นถัดไป เราจะเพิ่มการรองรับภาษาที่ผลิตภัณฑ์ MyOffice ทำงาน — ฝรั่งเศส สเปน โปรตุเกส และอื่นๆ — ให้กับระบบเมลขององค์กร ในบางประเด็น มันง่ายกว่าสำหรับเรามากกว่าเพื่อนร่วมงานจากแผนกใกล้เคียง เนื่องจากสำหรับระบบเมลและปฏิทิน จำเป็นต้องคำนึงถึงตัวอักษรและลักษณะเฉพาะของการทำงานกับวันที่และเวลาเท่านั้น - โชคดีที่เราไม่มีสูตร เช่นเดียวกับในตัวแก้ไขสเปรดชีต
ใช่แล้ว เรากำลังรับสมัครอยู่!
ผลิตภัณฑ์ของเราใช้เวลาหลายร้อยปีในการผลิต และด้วยความปรารถนาทั้งหมดของฉัน ฉันจะไม่สามารถบอกทุกอย่างในคราวเดียวภายในกรอบของบทความเดียวได้ อย่างไรก็ตาม ฉันหวังว่าเอกสารฉบับนี้จะเป็นจุดเริ่มต้นในการทำความรู้จักกับผลิตภัณฑ์ของเรา ดังที่ได้กล่าวไว้ข้างต้น ฉันวางแผนที่จะพูดคุยในรายละเอียดเพิ่มเติมเกี่ยวกับทั้งโซลูชันและคุณลักษณะต่างๆ ต่อไป ตลอดจนแนวทางการพัฒนาของเรา .
หากปราศจากความสุภาพเรียบร้อย ฉันจะบอกด้วยว่าทุกวันนี้จำนวนบริษัทที่พัฒนาระบบเมลดังกล่าวทั่วโลกมีเพียงไม่กี่แห่ง นี่เป็นงานวิศวกรรมที่ซับซ้อนมาก โดยต้องใช้ทั้งความเข้าใจอย่างลึกซึ้งในความต้องการของลูกค้าองค์กร และการวิเคราะห์กระบวนการทางธุรกิจขององค์กรขนาดใหญ่อย่างละเอียด แนวโน้มการออกแบบและการพัฒนาสมัยใหม่ รวมถึงผู้เชี่ยวชาญที่มีความสามารถจำนวนพอสมควร ระบบเมลของเรามีการพัฒนาทุกวัน
ตอนนี้เราใกล้จะเปิดให้บริการแล้ว
ที่มา: will.com