Аль нь дээр вэ – Oracle эсвэл Redis эсвэл платформын сонголтыг хэрхэн зөвтгөх вэ

"Энэ зайлшгүй шаардлагатай" гэж тэр хэнд ч хандсангүй чангаар хэлэв. - Энэ зайлшгүй шаардлагатай! Энэ нь яг ийм зүйл юм: компанийн гол үүрэг бол хувьцаа эзэмшигчдийн ашиг сонирхлын үүднээс ашиг олох явдал юм. За, бодоод үз дээ! Тэд юунаас ч айдаггүй!

Юлий Дубов, "Бага муу"

Ийм гарчиг хараад та энэ нийтлэлийг тэнэглэл эсвэл өдөөн хатгалга гэж аль хэдийн шийдсэн байх. Гэхдээ дүгнэлт хийх гэж яарах хэрэггүй: томоохон корпорациудын ажилтнууд, ялангуяа төрийн оролцоотой корпорацууд өөр өөр платформуудыг, тэр дундаа огт өөр платформуудыг, жишээлбэл, гарчигт байгаа платформуудыг харьцуулах шаардлагатай болдог.

Аль нь дээр вэ – Oracle эсвэл Redis эсвэл платформын сонголтыг хэрхэн зөвтгөх вэ

Мэдээжийн хэрэг, хэн ч DBMS-ийг ийм байдлаар харьцуулдаггүй, учир нь тэдний давуу болон сул талууд сайн мэддэг. Дүрмээр бол зарим програмын асуудлыг шийддэг платформуудыг харьцуулах шаардлагатай. Өгүүлэлд би Хабр уншигчдад танил болсон сэдэв болгон мэдээллийн сангийн жишээг ашиглан энэ тохиолдолд ашигладаг аргачлалыг харуулах болно. Тэгэхээр,

Хүсэл тэмүүлэл

Боловсролын төсөл эсвэл хоббитой төсөл эхлүүлэх үед платформ сонгох сэдэл нь маш олон янз байж болно: "энэ бол миний хамгийн сайн мэддэг платформ", "би үүнийг ойлгохыг сонирхож байна", "хамгийн сайн баримт бичиг энд байна" ... Арилжааны компаний хувьд би хэдийг төлөх вэ, энэ мөнгөөр ​​юу авах вэ гэсэн шалгуур нь адилхан.

Мэдээжийн хэрэг та бага төлж, илүү ихийг авахыг хүсдэг. Гэсэн хэдий ч та юу илүү чухал болохыг шийдэх хэрэгтэй - бага төлөх эсвэл илүү ихийг авах, зангилаа бүрт жин оноох хэрэгтэй. Бидэнд хямд гэхээсээ илүү чанартай шийдэл чухал гэж бодъё, бид 40% -ийг "Зардал" зангилаа, 60% -ийг "Боломж" зангилаанд хуваарилдаг.

Аль нь дээр вэ – Oracle эсвэл Redis эсвэл платформын сонголтыг хэрхэн зөвтгөх вэ

Томоохон корпорацуудад ихэвчлэн эсрэгээрээ байдаг - зардлын жин 50% -иас доош буудаггүй, магадгүй 60% -иас дээш байдаг. Загварын жишээн дээр хамгийн чухал зүйл бол аливаа эх зангилааны хүүхдийн зангилааны нийт жин 100% байх ёстой.

Таслах нөхцөл

Вэб сайт db-engines.com Мэдээллийн сангийн удирдлагын 500 орчим систем байдаг. Мэдээжийн хэрэг, хэрэв та маш олон сонголтоос зорилтот платформыг сонговол арилжааны төсөл биш харин тойм нийтлэл гарч ирж магадгүй юм. Сонголт хийх орон зайг багасгахын тулд захын шалгуурыг томъёолсон бөгөөд хэрэв платформ нь эдгээр шалгуурыг хангаагүй бол үүнийг тооцохгүй.

Таслах шалгуур нь технологийн онцлогтой холбоотой байж болно, жишээлбэл:

  • ACID баталгаа;
  • харилцааны өгөгдлийн загвар;
  • SQL хэлний дэмжлэг (энэ нь "харилцааны загвар"-тай ижил биш гэдгийг анхаарна уу);
  • хэвтээ масштабын боломж.

Ерөнхий шалгуур байж болно:

  • Орос улсад арилжааны дэмжлэг авах боломжтой;
  • нээлттэй эх сурвалж;
  • Харилцаа холбоо, олон нийтийн харилцааны яамны бүртгэлд платформ байгаа эсэх;
  • зарим үнэлгээнд платформ байгаа эсэх (жишээлбэл, db-engines.com үнэлгээний эхний зуунд);
  • зах зээл дээр мэргэжилтнүүд байгаа эсэх (жишээлбэл, hh.ru вэбсайт дээрх намтар дахь платформын нэрийг хайж олох үр дүнд үндэслэн).

Эцсийн эцэст, аж ахуйн нэгжийн онцлог шинж чанарууд байж болно:

  • ажилтнуудын мэргэжилтнүүдийн бэлэн байдал;
  • Бүх дэмжлэг дээр суурилсан хяналтын систем X эсвэл нөөцлөх Y системтэй нийцтэй байх ...

Хамгийн гол нь захын шалгуурын жагсаалт байдаг. Эс бөгөөс "Яагаад та Z платформыг сонгоогүй юм бэ, энэ бол хамгийн шилдэг нь гэдгийг би мэднэ" гэж хэлэх удирдлагын онцгой итгэлийг хүлээсэн шинжээч (эсвэл "шинжээч") байх нь дамжиггүй.

Зардлын тооцоо

Шийдлийн өртөг нь лицензийн зардал, дэмжлэгийн зардал, тоног төхөөрөмжийн зардлаас бүрдэх нь ойлгомжтой.

Хэрэв системүүд нь ойролцоогоор ижил ангилалтай бол (жишээлбэл, Microsoft SQL Server ба PostgreSQL) бол хялбар болгох үүднээс бид хоёр шийдлийн тоног төхөөрөмжийн хэмжээ ойролцоогоор ижил байна гэж үзэж болно. Энэ нь тоног төхөөрөмжийг үнэлэхгүй байх боломжийг танд олгоно, ингэснээр маш их цаг хугацаа, хүчин чармайлтыг хэмнэх болно. Хэрэв та огт өөр системүүдийг (Oracle ба Redis-ийг гэх мэт) харьцуулах шаардлагатай бол зөв үнэлэхийн тулд хэмжээсийг (тоног төхөөрөмжийн хэмжээг тооцоолох) хийх шаардлагатай байгаа нь ойлгомжтой. Байгаагүй системийн хэмжээг тогтоох нь үнэхээр талархалгүй ажил тул тэд ийм харьцуулалтаас зайлсхийхийг хичээдэг. Үүнийг хийхэд хялбар байдаг: захын нөхцөлд өгөгдлийн алдагдлыг тэглэх ба харилцааны загвар бичдэг, эсвэл эсрэгээр - секундэд 50 мянган гүйлгээний ачаалал.

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

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

Зөв харьцуулах чухал цэг бол дэмжлэгийн ижил нөхцөл юм. Жишээлбэл, Oracle-ийн дэмжлэг нь жилийн лицензийн үнийн 22% -ийг төлдөг боловч PostgreSQL-ийн дэмжлэгийг төлөх шаардлагагүй. Ингэж харьцуулах нь зөв үү? Үгүй ээ, учир нь өөрөө засах боломжгүй алдаа нь огт өөр үр дагавартай байдаг: эхний тохиолдолд тусламжийн мэргэжилтнүүд танд үүнийг хурдан засахад туслах болно, харин хоёр дахь тохиолдолд төслийг хойшлуулах эсвэл дуусгах хугацаа хойшлуулах эрсдэлтэй. систем нь тодорхойгүй хугацаатай.

Та тооцооллын нөхцлийг гурван аргаар тэнцүүлж болно.

  1. Oracle-ийг дэмжлэггүйгээр ашигла (бодит байдал дээр ийм зүйл болохгүй).
  2. PostgreSQL-ийн дэмжлэгийг худалдаж аваарай - жишээлбэл, Postgres Professional-аас.
  3. Тусламж дутмагтай холбоотой эрсдэлийг анхаарч үзээрэй.

Жишээлбэл, эрсдэлийн тооцоо дараах байдалтай байж болно: мэдээллийн санд ноцтой алдаа гарсан тохиолдолд системийн зогсолт нь ажлын 1 өдөр болно. Уг системийг ашигласнаар жилд 40 тэрбум төгрөгийн ашиг олох, ослын түвшин 1/400, ингэснээр дэмжлэг үзүүлэхгүй байх эрсдэл жилд 100 орчим сая төгрөг байхаар тооцоолж байна. Мэдээжийн хэрэг, "төлөвлөсөн ашиг" болон "тооцоолсон ослын давтамж" нь виртуал үнэ цэнэ боловч ийм загвартай байх нь байхгүй байснаас хамаагүй дээр юм.

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

Бүх тооцооны эцэст А платформын ашиглалтын зардал 5 жил 800 сая төгрөг, В платформ ашиглалтын зардал 650 сая төгрөг, С платформ ашиглалтын зардал 600 сая төгрөг болж байна гэж бодъё. С платформ ялагчийн хувьд үнийн дүнгээр бүтэн оноо авдаг бол А ба В платформууд хэд дахин илүү үнэтэй байхтай нь харьцуулахад арай бага оноо авдаг. Энэ тохиолдолд - 0.75 ба 0.92 оноо.

Боломжийн үнэлгээ

Боломжийн үнэлгээг олон бүлэгт хуваадаг бөгөөд тэдгээрийн тоо нь зөвхөн үнэлгээг хийж буй хүний ​​төсөөллөөр хязгаарлагддаг. Хамгийн оновчтой сонголт бол эдгээр чадварыг ашиглах багуудад чадвараа хуваах явдал юм; Бидний жишээнд эдгээр нь хөгжүүлэгчид, администраторууд, мэдээллийн аюулгүй байдлын ажилтнууд юм. Эдгээр функцүүдийн жинг 40:40:20 гэж тараасан гэж үзье.

Хөгжлийн функцууд нь:

  • өгөгдөл боловсруулахад хялбар;
  • масштаблах;
  • хоёрдогч индекс байгаа эсэх.

Шалгууруудын жагсаалт, тэдгээрийн жин нь маш субъектив юм. Ижил асуудлыг шийдэж байгаа ч гэсэн эдгээр жагсаалт, зүйлийн жин, хариулт нь танай багийн бүрэлдэхүүнээс хамааран ихээхэн ялгаатай байх болно. Жишээлбэл, Facebook нь MySQL-г өгөгдөл хадгалахдаа ашигладаг бөгөөд Instagram нь Кассандра дээр бүтээгдсэн. Эдгээр програмуудыг хөгжүүлэгчид ийм хүснэгтүүдийг бөглөсөн байх магадлал багатай юм. Марк Цукерберг бүрэн хэмжээний харилцааны загварыг сонгосон бөгөөд үүнийгээ хэрэглүүр хуваах шаардлагаар төлж байсан бол Кевин Систром платформ ашиглан масштабыг бий болгож, өгөгдөлд нэвтрэх хялбар байдлыг золиосолжээ.

Захиргааны чиг үүрэгт дараахь зүйлс орно.

  • нөөцлөх системийн боломжууд;
  • хяналт тавихад хялбар;
  • чадавхийг удирдах хялбар байдал - диск ба зангилаа;
  • өгөгдлийг хуулбарлах чадвар.

Асуултууд нь тоон хэлбэрээр бичигдсэн байх ёстойг анхаарна уу. Та тодорхой функцийг хэрхэн үнэлэх талаар санал нийлж болно. Жишээлбэл, Oracle DBMS-д нийлүүлсэн хэрэгслүүдийн жишээн дээр нөөцлөх хэрэгслүүдийг үнэлэхийг оролдъё.

Хэрэгсэл
сэтгэгдэл
үнэлгээ

imp/exp
Өгөгдлийг байршуулж, ачаалж байна
0.1

нөөцлөлтийг эхлүүлэх/дуусгах
Файлуудыг хуулж байна
0.3

RMAN
Нэмэлт хуулбарлах чадвар
0.7

ZDLRA
Зөвхөн өсөн нэмэгдэж буй хуулбарлах, цэг хүртэл хамгийн хурдан сэргээх
1.0

Үнэлгээний тодорхой шалгуур байхгүй бол хэд хэдэн шинжээчээс үнэлгээ өгөхийг хүсэх, дараа нь тэдгээрийг дундажлах нь зүйтэй.

Эцэст нь бид мэдээллийн аюулгүй байдлын функцуудыг жагсаав.

  • нууц үгийн удирдлагын бодлого байгаа эсэх;
  • гадаад баталгаажуулалтын хэрэгслийг холбох чадвар (LDAP, Kerberos);
  • хандалтын үлгэр жишээ;
  • аудит хийх чадвар;
  • диск дээрх өгөгдлийг шифрлэх;
  • сүлжээгээр дамжуулах үед шифрлэлт (TLS);
  • администратороос өгөгдөл хамгаалах.

Гүйцэтгэлийн туршилт

Таны хийгээгүй ачааллын туршилтын үр дүнг аргумент болгон ашиглахгүй байхыг би тусад нь анхааруулж байна.

Нэгдүгээрт, туршиж буй програмуудын өгөгдлийн бүтэц, ачааллын профайл нь таны шийдэх гэж буй асуудлаас эрс ялгаатай байж болно. Ойролцоогоор 10-15 жилийн өмнө мэдээллийн сангийн борлуулагчид TPC тестийн үр дүнг гайхуулах дуртай байсан бол одоо хэн ч эдгээр үр дүнг нухацтай авч үзэхгүй байх шиг байна.

Хоёрдугаарт, системийн гүйцэтгэл нь кодыг анх ямар платформд зориулж бичсэн, ямар төхөөрөмж дээр туршилт хийсэн зэргээс ихээхэн хамаардаг. Би Oracle-ыг PostgreSQL-тэй харьцуулсан олон тестийг үзсэн. Үр дүн нь нэг тогтолцооны болзолгүй давуу байдлаас нөгөө системийн болзолгүй давуу байдал хүртэл хэлбэлздэг.

Эцэст нь, гуравдугаарт, та хэн шалгалт өгсөн талаар юу ч мэдэхгүй. Мэргэшсэн чадвар нь хоёулаа чухал бөгөөд үйлдлийн систем болон платформыг тохируулах чанар, түүнчлэн урам зоригт нөлөөлдөг бөгөөд энэ нь туршилтын үр дүнд бусад бүх хүчин зүйлсээс илүү нөлөөлдөг.

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

үр дүн

Эцэст нь, хийсэн бүх ажлын үр дүн нь бүх тооцоог нэгтгэж, үржүүлж, нэгтгэсэн хүснэгт байх ёстой.

Аль нь дээр вэ – Oracle эсвэл Redis эсвэл платформын сонголтыг хэрхэн зөвтгөх вэ

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

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

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