Аутсорсингоос хөгжүүлэлт хүртэл (2-р хэсэг)

В өмнөх нийтлэл, Би Veliam-ийг бүтээх, түүнийг SaaS системээр дамжуулан түгээх шийдвэрийн талаар ярилцсан. Энэ нийтлэлд би бүтээгдэхүүнийг орон нутгийн биш, харин олон нийтэд хүргэхийн тулд юу хийх ёстой байсан талаар ярих болно. Хуваарилалт хэрхэн эхэлсэн, ямар асуудал тулгарсан талаар.

Төлөвлөлт

Хэрэглэгчдэд зориулсан одоогийн backend нь Линукс дээр байсан. Бараг бүх байгууллага Windows сервертэй байдаг бөгөөд үүнийг Линуксийн талаар хэлэх боломжгүй юм. Veliam-ийн гол давуу тал нь NAT-ийн ард байгаа серверүүд болон сүлжээний тоног төхөөрөмжтэй алсын зайнаас холболт хийх явдал юм. Гэхдээ энэ функц нь чиглүүлэгч нь Mikrotik байх ёстой гэдэгтэй маш нягт холбоотой байв. Энэ нь олон хүний ​​сэтгэлд нийцэхгүй нь ойлгомжтой. Би эхлээд хамгийн түгээмэл үйлдвэрлэгчдээс чиглүүлэгчийн дэмжлэгийг нэмэх талаар бодож эхэлсэн. Гэхдээ энэ бол дэмжигдсэн компаниудын жагсаалтыг өргөжүүлэх эцэс төгсгөлгүй уралдаан гэдгийг би ойлгосон. Түүнээс гадна, аль хэдийн дэмжигдсэн нь загвараас загвар руу NAT дүрмийг өөрчлөх өөр багц тушаалуудтай байж болно. Нөхцөл байдлаас гарах цорын ганц арга зам бол VPN юм шиг санагдсан.

Бид бүтээгдэхүүнийг түгээхээр шийдсэн боловч нээлттэй эх сурвалж биш учраас GPL зэрэг нээлттэй лицензтэй төрөл бүрийн номын сангуудыг оруулах боломжгүй болсон. Энэ бол ерөнхийдөө тусдаа сэдэв бөгөөд бүтээгдэхүүнээ борлуулах шийдвэр гаргасны дараа би GPL байсан тул номын сангуудын талыг нь үзэх шаардлагатай болсон. Тэд өөрсдөдөө зориулж бичихэд энэ нь хэвийн байсан. Гэхдээ түгээхэд тохиромжгүй. Анхны санаанд орж ирсэн VPN бол OpenVPN юм. Гэхдээ энэ бол GPL. Өөр нэг сонголт бол Японы SoftEther VPN-г ашиглах явдал байв. Түүний лиценз түүнийг бүтээгдэхүүндээ оруулах боломжийг олгосон. Хэрэглэгч юу ч тохируулах шаардлагагүй, SoftEther VPN-ийн талаар мэдэх шаардлагагүй болгохын тулд үүнийг хэрхэн нэгтгэх талаар хэд хоногийн турш янз бүрийн туршилт хийсний дараа прототипийг олж авав. Бүх зүйл байх ёстой шигээ байсан. Гэвч зарим нэг шалтгааны улмаас энэ схем биднийг төөрөгдүүлсээр байгаад эцэст нь бид үүнийг орхисон. Гэвч тэд өөр хувилбар гаргаж ирсний дараа угаасаа татгалзсан. Эцэст нь бүх зүйл ердийн TCP холболтууд дээр хийгдсэн. Зарим холболт нь зохицуулагчаар, зарим нь үнэгүй Паскал хэл дээр хэрэгжсэн Nat Hole Punching (NHP) технологиор шууд ажилладаг. Би өмнө нь NHP-ийн талаар сонсож байгаагүй гэдгээ хэлэх ёстой. NAT-ийн ард байгаа хоёр сүлжээний төхөөрөмжийг холбох боломжтой гэж хэзээ ч бодож байгаагүй. Сэдвээ судалж, ажиллах зарчмыг нь ойлгоод бичээд суулаа. Төлөвлөгөө хэрэгжиж, хэрэглэгч нууц үг оруулах, VPN тохиргоо хийхгүйгээр RDP, SSH эсвэл Winbox-оор дамжуулан NAT-ийн ард байрлах хүссэн төхөөрөмждөө нэг товшилтоор холбогддог. Түүнээс гадна эдгээр холболтуудын ихэнх нь манай зохицуулагчийн хажуугаар дамждаг бөгөөд энэ нь ping болон эдгээр холболтын үйлчилгээний өртөгт сайнаар нөлөөлдөг.

Серверийн талыг Линуксээс Windows руу шилжүүлж байна

Windows руу шилжихэд хэд хэдэн асуудал гарсан. Эхнийх нь цонхонд суулгасан wmic нь WQL асуулга хийх боломжийг олгодоггүй явдал юм. Манай системд бүх зүйл аль хэдийн тэдэн дээр баригдсан. Мөн өөр зүйл байсан, гэхдээ одоо яагаад тэд үүнийг ашиглахаа больсныг мартсан. Windows хувилбаруудын хоорондох ялгаа байж магадгүй. Хоёрдахь асуудал бол multithreading юм. Бидний хувьд "зөвшөөрөх" лицензийн дагуу гуравдагч талын сайн хэрэглүүрийг олоогүй тул би Lazarus IDE-г дахин эхлүүлсэн. Мөн би шаардлагатай хэрэгслийг бичсэн. Оруулга нь шаардлагатай объектуудын жагсаалт, ямар тодорхой асуулга хийх шаардлагатай байгаа бөгөөд хариуд нь би өгөгдлийг хүлээн авдаг. Мөн энэ бүхэн олон урсгалтай горимд байна. Агуу их.

Би PHP Windows-д зориулсан pthreads тохируулсны дараа бүх зүйл шууд эхэлнэ гэж бодсон ч тийм биш байсан. Хэсэг хугацааны дараа дибаг хийсний дараа pthreads ажиллаж байгаа мэт боловч манай систем дээр ажиллахгүй байгааг би ойлгосон. Windows дээр pthreads-тэй ажиллахад зарим онцлог шинж чанарууд байдаг нь тодорхой болсон. Тэгээд тийм байсан. Би баримт бичгийг уншсан бөгөөд тэнд Windows-ийн хувьд хэлхээний тоо хязгаарлагдмал, миний санаж байгаагаар далд хэлбэрээр бичсэн байсан. Энэ асуудал болсон. Учир нь би програмын ажиллаж буй хэлхээний тоог багасгаж эхлэхэд энэ нь ажлыг маш удаан хийсэн. Би IDE-г дахин нээсэн бөгөөд объектуудын олон урсгалтай пинг хийх функцийг ижил хэрэгсэлд нэмсэн. За, тэнд бас олон порт сканнер байгаа. Үнэндээ үүний дараа PHP-д зориулсан pthread-ийн хэрэгцээ алга болж, үүнийг ашиглахаа больсон. Цаашилбал, энэ хэрэгсэлд хэд хэдэн функц нэмэгдсэн бөгөөд өнөөг хүртэл ажиллаж байна. Үүний дараа Windows-д зориулсан суулгагчийг угсарсан бөгөөд үүнд Apache, PHP, MariaDB, PHP програм өөрөө болон Free Pascal хэл дээр бичигдсэн системтэй харилцах хэрэгслүүд багтсан болно. Суулгагчийн хувьд би энэ асуудлыг хурдан шийднэ гэж бодсон, учир нь ... Энэ нь маш түгээмэл зүйл бөгөөд бараг бүх програм хангамжид шаардлагатай байдаг. Би буруу газар хайж байсан юм уу, эсвэл өөр зүйл хайж байсан. Гэхдээ би хангалттай уян хатан биш, эсвэл үнэтэй, бас уян хатан биш бүтээгдэхүүнтэй байнга тааралддаг. Гэсэн хэдий ч би ямар ч хүслийг хангах боломжтой үнэгүй суулгагчийг олсон. Энэ бол InnoSetup. Би хэн нэгний цагийг хэмнэж магадгүй гэсэн үүднээс үүнийг хайх хэрэгтэй болсон тул энд бичиж байна.

Таны үйлчлүүлэгчийн талд залгаасаас татгалзсан

Үйлчлүүлэгчийн хэсэг нь "залгаас" бүхий хөтөч гэж би өмнө нь бичсэн. Тиймээс Chrome шинэчлэгдэж, зохион байгуулалт нь бага зэрэг хазайсан, дараа нь Windows шинэчлэгдэж, custom uri схем алга болсон үе бий. Бүтээгдэхүүний олон нийтэд нээлттэй хувилбар дээр ийм төрлийн гэнэтийн бэлэг байхыг би үнэхээр хүсээгүй. Түүгээр ч барахгүй Windows-ийн шинэчлэлт бүрийн дараа захиалгат uri алга болж эхэлсэн. Майкрософт шаардлагатай хэсэгт өөрийн бус бүх салбарыг устгасан. Түүнчлэн, Google Chrome нь танд тусгай uri-аас програм нээх эсвэл нээхгүй байх сонголтыг санах боломжийг олгодоггүй бөгөөд таныг хяналтын объект дээр дарах бүрт энэ асуултыг асуудаг. Ерөнхийдөө хэрэглэгчийн дотоод системтэй хэвийн харилцах шаардлагатай байсан бөгөөд үүнийг хөтөч нь өгдөггүй. Энэ схемийн хамгийн энгийн сонголт бол олонх нь одоо Electron-ээр дамжуулан хийж байгаа шиг зүгээр л өөрийн хөтөч хийх явдал юм. Гэхдээ олон зүйл Free Pascal хэл дээр, тэр дундаа серверийн хэсэгт бичигдсэн байсан тул бид амьтны хүрээлэн байгуулах биш, үйлчлүүлэгчээ ижил хэлээр хийхээр шийдсэн. Chromium-тай үйлчлүүлэгчийг ингэж бичсэн. Үүний дараа янз бүрийн оосор олж авч эхлэв.

Суллах

Эцэст нь бид системийн нэрийг сонгосон. Орон нутгийн хувилбараас SaaS руу хөрвүүлэх үйл явц явагдаж байх хооронд бид янз бүрийн сонголтуудыг байнга даван туулж байсан. Анх бид зөвхөн дотоодын зах зээлд гарахаар төлөвлөж байсан тул нэр сонгох гол шалгуур нь ".com" бүсэд эзэнгүй эсвэл тийм ч үнэтэй биш домэйн байх явдал байв. Зарим функц/модулиудыг локал хувилбараас Велиам руу шилжүүлээгүй байгаа ч бид тэдгээрийг одоогийн функцээр гаргаж, үлдсэнийг нь шинэчлэлт болгон дуусгахаар шийдсэн. Эхний хувилбарт HelpDesk, Veliam Connector байхгүй байсан тул мэдэгдлийн триггерүүдийн босго болон бусад зүйлийг өөрчлөх боломжгүй байв. Бид кодын тэмдгийн гэрчилгээг худалдан авч, үйлчлүүлэгч болон серверийн хэсгүүдэд гарын үсэг зурсан. Бид бүтээгдэхүүний вэбсайтыг бичиж, програм хангамж, барааны тэмдэг гэх мэтийг бүртгэх журмыг эхлүүлсэн. Ерөнхийдөө бид эхлэхэд бэлэн байна. Хийсэн ажил, магадгүй хэн нэгэн таны бүтээгдэхүүнийг ашиглах болно гэсэн бага зэрэг баяр баясгалан, гэхдээ бид үүнд эргэлзэхгүй байсан. Тэгээд зогс. Мессенжерээр мэдэгдэлгүйгээр зах зээлд орох боломжгүй гэж түнш хэлэв. Энэ нь бусад олон зүйлгүйгээр боломжтой, гэхдээ үүнгүйгээр биш юм. Хэсэг мэтгэлцээний дараа Telegram-тай интеграцчлал нэмэгдсэн нь бидэнд тохирсон. Одоогийн бүх шуурхай мессенжерүүдийн дотроос энэ нь API-д үнэ төлбөргүй нэвтрэх боломжийг олгодог цорын ганц нь бөгөөд ямар ч нарийн төвөгтэй зөвшөөрөл олгох журамгүй юм. Үүнтэй ижил WhatsApp нь үйлчилгээгээ ашигласны төлөө сайн мөнгө авдаг үйлчилгээ үзүүлэгчтэй холбоо барихыг санал болгож байна; жийргэвчгүйгээр нэвтрэхийг хүссэн бүх захидлыг үл тоомсорлосон. За, Viber ... Би үүнийг одоо хэн ашиглаж байгааг мэдэхгүй байна, учир нь ... спам болон зар сурталчилгаа нь графикаас гадуур байна. XNUMX-р сарын сүүлээр найзуудын дунд хэд хэдэн дотоод шалгалт, шалгалтын дараа бүх хүмүүст бүртгэл нээгдэж, програм хангамжийг татаж авах боломжтой болгосон.

Түгээлтийн эхлэл

Бид анхнаасаа л системийн хэрэглэгчдийг байлдааны горимд туршиж үзээд анхны санал хүсэлтээ өгөхийн тулд цөөн тооны хэрэглэгчдэд хэрэгтэй гэдгийг ойлгосон. VK дээр хэд хэдэн худалдаж авсан бичлэгүүд үр дүнд хүрсэн. Эхний бүртгэлүүд ирлээ.

Танай компани алдартай нэргүй үед зах зээлд гарах, үүнтэй зэрэгцэн сервер, ажлын станцаасаа данс оруулах шаардлагатай агентгүй хяналтын функцээр хангах нь маш хэцүү гэдгийг энд хэлэх ёстой. Энэ нь олон хүнийг айлгадаг. Бид анхнаасаа ийм асуудал гарна гэдгийг ойлгож, техникийн болон ёс суртахууны хувьд бэлтгэлтэй байсан. RDP болон SSH нь анхдагчаар шифрлэгдсэн байгаа хэдий ч бүх алсын холболтууд нь AES стандартыг ашиглан манай програм хангамжаар нэмэлт шифрлэгдсэн байдаг. Орон нутгийн серверүүдийн бүх өгөгдлийг HTTPS-ээр дамжуулан клоуд руу шилжүүлдэг. Дансуудыг шифрлэгдсэн хэлбэрээр хадгалдаг. Бүх дэд системүүдийн шифрлэлтийн түлхүүрүүд нь бүх үйлчлүүлэгчдэд зориулагдсан байдаг. Алсын холболтын хувьд сессийн шифрлэлтийн түлхүүрүүдийг ихэвчлэн ашигладаг.

Ийм нөхцөлд хүмүүсийг тайван байлгахын тулд бидний хийж чадах зүйл бол аль болох нээлттэй байж, аюулгүй байдлын талаар ажиллаж, хүмүүсийн асуултад хариулахаас залхахгүй байх явдал юм.

Олон хүмүүсийн хувьд програм хангамжийн тав тухтай байдал, функциональ байдал нь айдсаас давж, бүртгүүлдэг. Зарим хүмүүс VK дээр нийтлэгдсэн нийтлэлдээ энэ программ хангамжийг ашиглах боломжгүй гэж бичжээ Энэ бол тэдний нууц үгийн цуглуулга бөгөөд ерөнхийдөө нэргүй компани юм. Нэгээс олон хүн ийм бодолтой байсан гэж хэлэх ёстой. Олон хүмүүс үйлчилгээ хэлбэрээр ажилладаг сервер дээр бусад өмчийн программ хангамжийг суулгахдаа энэ нь системд бүрэн эрхтэй бөгөөд хууль бус үйлдэл хийхэд данс хэрэггүй гэдгийг ойлгодоггүй (та үүнийг өөрчлөх боломжтой нь тодорхой байна. үйлчилгээг эхлүүлсэн хэрэглэгч, гэхдээ энд ч гэсэн та ямар ч бүртгэл оруулах боломжтой). Үнэндээ хүмүүсийн айдас ойлгомжтой. Сервер дээр програм хангамж суулгах нь энгийн зүйл боловч данс руу нэвтрэх нь бага зэрэг аймшигтай бөгөөд дотно байдаг, учир нь хүмүүсийн тэн хагас нь бүх үйлчилгээнд ижил нууц үгтэй байдаг бөгөөд тест хийхэд зориулж тусдаа данс үүсгэх нь залхуу байдаг. Гэхдээ одоогийн байдлаар хүмүүсийн итгэмжлэл болон бусад зүйлд итгэдэг асар олон тооны үйлчилгээ байдаг. Мөн бид тэдний нэг болохыг эрмэлздэг.

Бид хаа нэгтээ хулгайлсан гэсэн сэтгэгдэл их байсан. Энэ нь биднийг бага зэрэг гайхшруулсан. За яахав, нэг хүний ​​бодол, гэхдээ ийм сэтгэгдлүүд янз бүрийн хэвлэлд янз бүрийн хүмүүсийн бичсэн байдаг. Эхлээд тэд үүнд хэрхэн хандахаа мэдэхгүй байв. Зарим хүмүүс Орост хэн ч ганцаараа юу ч хийж чадахгүй, харин хулгайлж л чадна гэсэн бодолтой байгаад харамсах уу, эсвэл үүнийг зөвхөн хулгайлж болно гэж боддогдоо баярлах уу.

Одоо бид EV кодын тэмдгийн гэрчилгээ авах процедурыг дуусгалаа. Үүнийг авахын тулд та хэд хэдэн шалгалтыг давж, компанийн талаар олон баримт бичгийг илгээх шаардлагатай бөгөөд тэдгээрийн заримыг нь хуульч баталгаажуулсан байх ёстой. Цар тахлын үед EV Code Sign гэрчилгээ авах нь нийтлэлийн тусдаа сэдэв юм. Уг процедур нь нэг сар үргэлжилсэн. Мөн энэ нь хүлээх сар биш, харин нэмэлт бичиг баримтыг байнга шаардаж байсан. Магадгүй тахал үүнтэй ямар ч холбоогүй байсан бөгөөд процедур нь хүн бүрт маш удаан үргэлжилсэн болов уу? Хуваалцах.

Зарим нь FSTEC гэрчилгээ байхгүй тул бид үүнийг ашиглахгүй гэж хэлдэг. Энэ гэрчилгээг авахын тулд шифрлэлт нь ГОСТ-ийн дагуу байх ёстой бөгөөд бид үүнийг авч чадахгүй, авахгүй гэдгээ тайлбарлах ёстой бөгөөд бид зөвхөн Орос улсад төдийгүй AES програм хангамжийг түгээхээр төлөвлөж байна.

Эдгээр бүх сэтгэгдлүүд нь таныг олон нийтэд мэдэгдэхгүйгээр данс оруулах шаардлагатай бүтээгдэхүүнийг сурталчлах боломжтой гэдэгт эргэлзэж байна. Хэдийгээр энэ талаар маш сөрөг хандлагатай хүмүүс байх болно гэдгийг бид мэдэж байсан. Бүртгэлийн тоо мянга давсан хойноо бодохоо больсон. Ялангуяа дараа нь бүтээгдэхүүнийг туршиж үзээгүй хүмүүсийн сөрөг сэтгэгдэлээс гадна маш таатай тоймууд гарч эхэлсэн. Эдгээр эерэг тоймууд нь бүтээгдэхүүнийг хөгжүүлэх хамгийн том түлхэц болдог гэдгийг хэлэх ёстой.

Ажилчдад алсын зайнаас хандах функцийг нэмж байна

Үйлчлүүлэгчдийн байнга хийдэг ажлуудын нэг бол "Ваняг гэрээсээ компьютертээ хандах боломжийг олгох" юм. Бид Mikrotik дээр VPN-ийг суулгаж, хэрэглэгчдэд зориулсан данс үүсгэсэн. Гэхдээ энэ бол жинхэнэ асуудал юм. Хэрэглэгчид VPN-ээр холбогдохын тулд зааврыг үзэж, алхам алхмаар дагаж мөрдөх боломжгүй. Windows-ийн өөр өөр хувилбарууд. Нэг Windows-д бүх зүйл сайн холбогддог, нөгөөд нь өөр протокол хэрэгтэй. Ерөнхийдөө энэ нь VPN серверийн үүрэг гүйцэтгэдэг сүлжээний төхөөрөмжийг дахин тохируулахтай үргэлж холбоотой байсан бөгөөд бүх ажилчид үүнд хандах боломжгүй байсан бөгөөд энэ нь тохиромжгүй байв.

Гэхдээ бид сервер болон сүлжээний тоног төхөөрөмжтэй алсын зайнаас холбогдох боломжтой болсон. Яагаад бэлэн тээврийг ашиглаж болохгүй гэж, тусдаа жижиг хэрэгсэл хийж, хэрэглэгчдэд зүгээр л холбож өгөх боломжтой. Би зүгээр л хэрэглэгч тэнд ямар нэгэн утгагүй зүйл оруулаагүй эсэхийг шалгахыг хүссэн. Зөвхөн нэг товчлуур "холбох". Гэхдээ энэ хэрэгсэл нь зөвхөн нэг товчлууртай бол хаана холбогдохыг хэрхэн ойлгох вэ? Шаардлагатай программыг сервер дээрээ онлайнаар бүтээх санаа байсан. Системийн администратор "татаж авах товчлол" товчийг дарж, RDP-ээр дамжуулан хүссэн сервер/компьютертэй холбогдох хатуу утастай мэдээлэл бүхий бие даасан хоёртын файлыг бүтээх командыг манай клоуд руу илгээдэг. Ерөнхийдөө үүнийг хийж болно. Гэхдээ энэ нь удаан хугацаа шаарддаг тул администратор эхлээд хоёртын файлыг хөрвүүлж, дараа нь татаж авах хүртэл хүлээх хэрэгтэй болно. Мэдээжийн хэрэг, тохиргоотой хоёр дахь файлыг нэмэх боломжтой, гэхдээ энэ нь аль хэдийн 2 файл бөгөөд энгийн байхын тулд хэрэглэгч нэгийг нь авах шаардлагатай. Нэг файл, нэг товчлуур, суулгагч байхгүй. Google дээр бага зэрэг уншсаны дараа, хэрэв та эмхэтгэсэн ".exe" -ийн төгсгөлд зарим мэдээлэл нэмбэл энэ нь мууддаггүй (за бараг л) гэсэн дүгнэлтэд хүрсэн. Тэнд ядаж дайн, энх тайвныг нэмж болно, энэ нь өмнөх шигээ ажиллах болно. Үүнийг ашиглахгүй байх нь нүгэл болно. Одоо та Veliam Connector гэж нэрлэгддэг программыг зүгээр л шууд клиент дотроос нь задалж, эцэст нь холбогдоход шаардлагатай мэдээллийг нэмж оруулах боломжтой. Мөн програм өөрөө үүнийг юу хийхээ мэддэг. Би яагаад арай өндөр хаалтанд “сайн бараг” гэж бичсэн юм бэ? Учир нь програм нь тоон гарын үсгээ алддаг тул та энэ тав тухыг төлөх ёстой. Гэхдээ энэ үе шатанд ийм тав тухыг хангахын тулд энэ нь бага үнэ гэж бид үзэж байна.

Гуравдагч этгээдийн модулийн лицензүүд

Бүтээгдэхүүнийг зөвхөн өөрсдийн хэрэгцээнд зориулж бус олон нийтэд нээлттэй болгохоор шийдсэний дараа бид шаргуу ажиллаж, манай бүтээгдэхүүнд оруулахыг зөвшөөрөөгүй зарим модулиудыг солих шаардлагатай болсон талаар би дээр бичсэн. Гэвч гарсны дараа маш тааламжгүй зүйлийг санамсаргүйгээр илрүүлсэн. Үйлчлүүлэгчийн талд байсан Veliam сервер нь 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 дахь гүйлгээ ажиллахгүй байсан бөгөөд энэ нь жинхэнэ асуудал байсан. Гэхдээ World Wide Web-ийн өргөн цар хүрээг уншсаны дараа би SQLite дахь гүйлгээг холбохдоо энгийн командыг дамжуулж идэвхжүүлж болохыг ямар ч асуудалгүйгээр олж мэдсэн.

PRAGMA journal_mode=WAL;

Үүний үр дүнд даалгавар дууссан бөгөөд одоо үйлчлүүлэгчийн серверийн хэсэг SQLite дээр ажиллаж байна. Системийн үйл ажиллагаанд ямар нэгэн өөрчлөлт гарсаныг бид анзаараагүй.

Шинэ тусламжийн ширээ

HelpDesk системийг дотоод хувилбараас SaaS хувилбар руу шилжүүлэх шаардлагатай байсан ч зарим өөрчлөлтүүд гарсан. Миний хийхийг хүссэн хамгийн эхний зүйл бол систем дэх хэрэглэгчийн ил тод зөвшөөрлийн үүднээс үйлчлүүлэгчийн домэйнтэй нэгтгэх явдал байв. Одоо HelpDesk руу нэвтэрч системд хүсэлт үлдээхийн тулд хэрэглэгч ширээний компьютер дээрх товчлол дээр дарахад л хөтөч нээгдэнэ. Хэрэглэгч ямар ч итгэмжлэл оруулахгүй. Veliam серверийн нэг хэсэг болох Apache SSPI-д зориулсан модуль нь хэрэглэгчийг домэйн акаунтаар автоматаар зөвшөөрнө. Хэрэглэгч корпорацийн сүлжээнээс гадуур байх үед системд хүсэлт үлдээхийн тулд товчлуур дээр дарж, и-мэйлдээ холбоосыг хүлээн авдаг бөгөөд түүгээр дамжуулан HelpDesk систем рүү нууц үггүйгээр нэвтэрдэг. Хэрэв хэрэглэгч домайнд идэвхгүй болсон эсвэл устгагдсан бол HelpDesk бүртгэл ажиллахаа болино. Тиймээс системийн администратор нь домэйн болон HelpDesk-ийн аль алиных нь бүртгэлийг хянах шаардлагагүй болно. Ажилтан ажлаасаа халагдсан - тэр домэйн дэх дансаа салгаж, тэгээд л тэр системд корпорацийн сүлжээнээс биш, холбоосоор нэвтрэхгүй. Энэхүү интеграци ажиллахын тулд системийн администратор нэг GPO үүсгэх шаардлагатай дотоод сүлжээний бүсэд дотоод сайтыг нэмдэг и Ширээний компьютер дээрх бүх хэрэглэгчдэд товчлолыг түгээдэг.

HelpDesk системд, ядаж өөрсдөдөө зайлшгүй шаардлагатай гэж үздэг хоёр дахь зүйл бол өргөдөл гаргагчтай програмаас нэг товшилтоор шууд холбогдох явдал юм. Түүнчлэн, системийн администратор өөр сүлжээнд байгаа бол холболтууд дамжих ёстой. Аутсорсингийн хувьд энэ нь заавал байх ёстой бөгөөд бүрэн цагийн системийн администраторуудад энэ нь ихэвчлэн маш их шаардлагатай байдаг. Алсын холболтыг маш сайн гүйцэтгэдэг хэд хэдэн бүтээгдэхүүн аль хэдийн бий. Тэгээд бид тэдэнд зориулж интеграци хийхээр шийдсэн. Бид одоо VNC-д нэгдсэн бөгөөд ирээдүйд Radmin болон TeamViewer-ийг нэмэхээр төлөвлөж байна. Алсын дэд бүтцийн холболтод зориулж сүлжээний тээврээ ашиглан бид VNC-ийг NAT-ын ард байрлах алслагдсан ажлын станцуудтай холбосон. Радминтай ижил зүйл тохиолдох болно. Одоо хэрэглэгчтэй холбогдохын тулд програмын өөрөө "өргөдөл гаргагчтай холбогдох" товчийг дарахад л хангалттай. VNC клиент нь таныг нэг сүлжээнд байгаа эсэх, эсвэл гэртээ шаахайтай сууж байгаа эсэхээс үл хамааран өргөдөл гаргагчийг нээж, холбогддог. Нэгдүгээрт, GPO-г ашиглан системийн администратор хүн бүрийн ажлын станц дээр VNC сервер суулгах ёстой.

Одоо бид өөрсдөө шинэ HelpDesk рүү шилжиж, домэйн болон VNC-тэй нэгтгэхийг ашиглаж байна. Энэ нь бидний хувьд маш тохиромжтой. Одоо бид дэмжлэг үзүүлэх үйлчилгээгээ ажиллуулахын тулд гурван жил гаруй ашиглаж байгаа TeamViewer-ийн төлбөрийг төлөхөөс зайлсхийх боломжтой.

Бид цаашид юу хийхээр төлөвлөж байна вэ?

Бид бүтээгдэхүүнээ гаргахдаа төлбөртэй тариф хийгээгүй, зүгээр л үнэгүй тарифыг 50 хяналтын объектоор хязгаарласан. Таван арван сүлжээний төхөөрөмж, сервер нь хүн бүрт хангалттай байх ёстой гэж бид бодсон. Тэгээд л хязгаараа нэмэх хүсэлт ирж эхэлсэн. Бид бага зэрэг цочирдсон гэж хэлэхэд юу ч хэлэхгүй. Ийм олон сервертэй компаниуд манай программ хангамжийг үнэхээр сонирхож байна уу? Ийм хүсэлт гаргасан хүмүүст бид хязгаарлалтыг үнэ төлбөргүй сунгасан. Тэдний хүсэлтийн дагуу бид зарим нэгнээс нь яагаад ийм их зүйл хэрэгтэй байна, үнэхээр ийм олон сервер, сүлжээний тоног төхөөрөмжтэй юу гэж асуусан. Системийн администраторууд системийг бидний огт төлөвлөөгүй байдлаар ашиглаж эхэлсэн нь тогтоогдсон. Бүх зүйл энгийн болсон - манай програм хангамж нь зөвхөн серверүүд төдийгүй ажлын станцуудыг хянаж эхэлсэн. Тиймээс хязгаарлалтыг өргөжүүлэх хүсэлт их ирдэг. Одоо бид төлбөртэй тарифыг аль хэдийн нэвтрүүлсэн бөгөөд хязгаарыг бие даан өргөтгөх боломжтой.

Серверүүд бараг үргэлж RAID массив дахь хадгалах систем эсвэл локал дисктэй ажилладаг. Тэгээд бид эхлээд бүтээгдэхүүнээ тэдэнд зориулж хийсэн. Мөн SMART мониторинг нь энэ ажилд сонирхолтой биш байсан. Гэвч хүмүүс ажлын станцуудыг хянах программ хангамжийг тохируулсан болохыг харгалзан үзээд SMART мониторингийг хэрэгжүүлэх хүсэлтүүд гарч ирэв. Бид удахгүй хэрэгжүүлнэ.

Veliam Connector гарч ирснээр корпорацийн сүлжээнд VPN сервер байрлуулах, RDGW хийх, эсвэл RDP-ээр холбогдоход шаардлагатай машинууд руу портуудыг дамжуулах шаардлагагүй болсон. Олон хүмүүс манай системийг зөвхөн эдгээр алсын холболтод ашигладаг. Veliam Connector нь зөвхөн Windows үйлдлийн системд зориулагдсан бөгөөд компанийн зарим хэрэглэгчид MacOS үйлдлийн системтэй гэрийн зөөврийн компьютерээс ажлын станц эсвэл корпорацийн сүлжээний терминал руу холбогддог. Системийн администратор хэд хэдэн хэрэглэгчдийн улмаас дамжуулалт эсвэл VPN-ийн асуудал руу буцаж очихоос өөр аргагүй болсон байна. Тиймээс бид одоо MacOS-д зориулсан Veliam Connector-ийн хувилбарыг хийж дуусгаж байна. Apple-ийн дуртай технологийн хэрэглэгчид нэг товшилтоор компанийн дэд бүтцэд холбогдох боломжтой болно.

Олон тооны системийн хэрэглэгчидтэй болохоор хүмүүст юу хэрэгтэй, юу илүү тохиромжтой байх талаар толгойгоо гашилгах шаардлагагүй гэдэг нь надад үнэхээр таалагдаж байна. Өөрсдөө хүслээ бичдэг болохоор ойрын ирээдүйд хийх бүтээн байгуулалтын төлөвлөгөө их бий.

Үүний зэрэгцээ бид одоо уг системийг англи хэл рүү хөрвүүлж, гадаадад түгээх ажлыг эхлүүлэхээр төлөвлөж байна. Бид бүтээгдэхүүнээ гадаадад хэрхэн түгээхээ хараахан мэдэхгүй байгаа тул сонголтуудыг хайж байна. Магадгүй дараа нь энэ талаар тусдаа нийтлэл гарах байх. Магадгүй энэ өгүүллийг уншсан хэн нэгэн шаардлагатай векторыг санал болгох боломжтой, эсвэл тэр өөрөө үүнийг хэрхэн хийхийг мэддэг, мэддэг бөгөөд түүний үйлчилгээг санал болгох болно. Бид таны тусламжид талархах болно.

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх