paint-brush
Load Balancing Primitives-ის დეკოდირებამიერ@fairday
39,946 საკითხავი
39,946 საკითხავი

Load Balancing Primitives-ის დეკოდირება

მიერ Aleksei4m2024/02/26
Read on Terminal Reader
Read this story w/o Javascript

Ძალიან გრძელი; Წაკითხვა

როდესაც თქვენი სისტემის მასშტაბირებას ახდენთ გაზრდილი ტრაფიკისა და მომხმარებლების დასაკმაყოფილებლად, შეგიძლიათ აირჩიოთ ვერტიკალური მასშტაბირება, რომელიც ზრდის სერვერის სიმძლავრეს და ჰორიზონტალურ სკალირებას, რომელიც მოიცავს სერვერების დუბლირებას. მიუხედავად იმისა, რომ ვერტიკალური სკალირება უფრო მარტივია, მას აქვს შეზღუდვები, როგორიცაა აპარატურის შეზღუდვები. ჰორიზონტალური მასშტაბირება დატვირთვის ბალანსირებით გთავაზობთ მოქნილობას, მაგრამ მოითხოვს მოქალაქეობის არმქონეობის მართვას და სტრატეგიების გამოყენებას. L4 და L7 დატვირთვის ბალანსერების გაგება აუცილებელია, L4 უფრო უსაფრთხო და ეფექტურია, ხოლო L7 გთავაზობთ ინტელექტუალურ მარშრუტიზაციას ეფექტურობის ხარჯზე. სწორი მიდგომის არჩევა დამოკიდებულია სისტემის მოთხოვნებზე და უსაფრთხოებისა და შესრულების მოსაზრებების დაბალანსებაზე.

People Mentioned

Mention Thumbnail
featured image - Load Balancing Primitives-ის დეკოდირება
Aleksei HackerNoon profile picture
0-item


როდესაც თქვენი სისტემა იზრდება, ტრეფიკი იზრდება, უფრო და უფრო მეტი მომხმარებელი იყენებს თქვენს პროდუქტებს, სერვერები იწყებენ უფრო ნელა რეაგირებას, შეფერხების დრო აიძულებს თქვენს ბიზნესს დაზარალდეს, შემდეგ კი დაიწყებთ სკალირებაზე ფიქრს.


არსებობს სკალირების ორი ძირითადი სტრატეგია - ვერტიკალური და ჰორიზონტალური.


ვერტიკალური მასშტაბირება აპირებს სისტემის სიმძლავრის გაზრდას, ჩვეულებრივ, მეტი CPU და RAM-ის დამატებით თქვენს სერვერებზე.


ამის საპირისპიროდ, ჰორიზონტალური სკალირება ფოკუსირებულია თქვენი სერვერების დუბლირებაზე (ან კლონირებაზე) რესურსების აუზში.


მეტი ამათზე:


ვერტიკალური სკალირება

ვერტიკალური სკალირება საუკეთესო ვარიანტია დაბალი ტრაფიკის სისტემისთვის, რადგან ეს არის ყველაზე ხელმისაწვდომი მიდგომა ზრდის დასამუშავებლად დამატებითი სირთულის დანერგვის გარეშე. თქვენ არ გჭირდებათ ზრუნავდეთ რესურსების ჯგუფისთვის სტრატეგიების დანერგვაზე, რესურსების აუზის ელასტიურობაზე, თქვენი სერვერის მოქალაქეობის არარსებობაზე, განაწილებულ ქეშიზე და ა.შ.


თუმცა, ვერტიკალურ სკალირებას სერიოზული ნაკლი აქვს

  1. ტექნიკის ლიმიტი, რადგან რესურსების დამატება უსასრულოდ შეუძლებელია
  2. წარუმატებლობისა და ზედმეტობის ნაკლებობა ზრდის გახანგრძლივებული შეფერხების და მონაცემთა დაკარგვის რისკს


ჰორიზონტალური სკალირება

ჰორიზონტალური მასშტაბირება გამორიცხავს ამ პრობლემებს თქვენი აპლიკაციის სერვერების კლონირებით და ისეთი კომპონენტის ჩაშენებით, როგორიცაა Load balancer .


დატვირთვის ბალანსერი ანაწილებს ტრაფიკს თქვენს სერვერებზე კონკრეტული ალგორითმების გამოყენებით, როგორიცაა:


  1. მრგვალი რობინი
  2. შეწონილი მრგვალი რობინი
  3. IP ჰეშზე დაფუძნებული მიდგომები
  4. უმცირესი კავშირის მეთოდი
  5. ყველაზე ნაკლები შეწონილი კავშირის მეთოდი
  6. უმცირესი რეაგირების მეთოდი და მრავალი სხვა.


მიუხედავად ამისა, მას აქვს რამდენიმე ნაკლი:


  1. სერვერები უნდა იყოს მოქალაქეობის არმქონე
  2. სესიები უნდა გაგრძელდეს მონაცემთა ცენტრალიზებულ მაღაზიაში
  3. უფრო რთული სტრატეგიების დანერგვა შეიძლება საჭირო გახდეს
  4. დატვირთვის ბალანსერი შეიძლება გახდეს შესრულების შეფერხება, თუ ის არასწორად არის კონფიგურირებული და რესურსები არ არის საკმარისი
  5. ის სისტემას დამატებით სირთულეს ანიჭებს და წარმოადგენს წარუმატებლობის პოტენციურ ერთ წერტილს, რომელიც მოითხოვს მარცხის სტრატეგიების გამოყენებას.


L4 / L7 დატვირთვის ბალანსერი

იმისთვის, რომ ინტერნეტში ორი მოწყობილობა ერთმანეთთან დაუკავშირდეს, ფუძემდებლური სისტემები უნდა დაიცვან კონკრეტული პროტოკოლები. ყველამ გაიგო OSI მოდელის შესახებ, რომელიც აღწერს შვიდ ფენას, რომლებსაც კომპიუტერული სისტემები იყენებენ ქსელში კომუნიკაციისთვის. მიუხედავად იმისა, რომ თანამედროვე ინტერნეტი ეფუძნება უმარტივეს TCP/IP პროტოკოლის სტეკის მოდელს, OSI მოდელი ფართოდ გამოიყენება, რადგან ის ეხმარება ვიზუალიზაციას და კომუნიკაციას, თუ როგორ მუშაობს ქსელები და ეხმარება ქსელის პრობლემების იზოლირებასა და აღმოფხვრაში.


ინდუსტრიის დატვირთვის დაბალანსების გადაწყვეტილებების უმეტესობა იყენებს ტერმინებს L4 და L7, სადაც L4 ეხება სატრანსპორტო ფენას OSI მოდელში და L7 ეხება განაცხადის ფენას.


L4 დატვირთვის ბალანსერი კვლავ არის L2/L3, რადგან ის იყენებს მონაცემებს ქვედა ფენებიდან, როგორიცაა IP მისამართი და პორტის ნომერი.


L4 დატვირთვის ბალანსერის ძირითადი უპირატესობები

  • ის უფრო უსაფრთხო და ეფექტურია, რადგან მონაცემთა შინაარსი არ არის მიღებული მარშრუტიზაციის გადაწყვეტილების მიღებისას

  • იგივე TCP კავშირი ინახება კლიენტსა და სერვერს შორის, რაც ხელს უშლის დატვირთვის ბალანსერზე ხელმისაწვდომი TCP კავშირების ლიმიტის გადაჭარბებას.


L4 დატვირთვის ბალანსერის ძირითადი უარყოფითი მხარეები

  • ინტელექტუალური მარშრუტიზაცია შეუძლებელია, რადგან შინაარსი არ არის გაშიფრული
  • სახელმწიფო პროტოკოლი დამატებით სირთულეს მოაქვს
  • რუქა საჯარო და კერძო მისამართებს შორის
  • არ არის ქეშირება, რადგან კონტენტი მიუწვდომელია ამ დონეზე
  • შეუძლებელია მიკროსერვისების არქიტექტურისთვის გამოყენება, რადგან ტრაფიკის გადამისამართება მიუწვდომელია url ბილიკის მიხედვით


მეორეს მხრივ, L7 დატვირთვის ბალანსერი მუშაობს აპლიკაციის დონეზე OSI მოდელში


L7 დატვირთვის ბალანსერის ძირითადი უპირატესობები

  • ჭკვიანი გადაწყვეტილებების მიღება შესაძლებელია URL ბილიკის, სათაურების, შინაარსის საფუძველზე

  • ქეშირება


L7 დატვირთვის ბალანსერის ძირითადი უარყოფითი მხარეები

  • დამატებითი ზედნადები ორი TCP კავშირის შენარჩუნების გამო, ერთი კლიენტსა და დატვირთვის ბალანსერს შორის, მეორე დატვირთვის ბალანსერსა და სერვერს შორის. ასევე, გასათვალისწინებელია დატვირთვის ბალანსერის TCP კავშირის ლიმიტი
  • ნაკლებად უსაფრთხოა, რადგან დატვირთვის ბალანსერმა უნდა იცოდეს სერთიფიკატები, რათა შეძლოს მონაცემების გაშიფვრა და მარშრუტიზაციის გადაწყვეტილებების მიღება


დასკვნა

დატვირთვის ბალანსერი სასიცოცხლო კომპონენტია, როდესაც ჰორიზონტალური სკალირება გამოიყენება მაღალი ტრაფიკის სისტემებისთვის. არსებობს ორი ძირითადი ტიპის დატვირთვის ბალანსერი L4 და L7.


  1. L4 დატვირთვის ბალანსერი ბევრად უფრო უსაფრთხო და ეფექტურია ჭკვიანი გადაწყვეტილებების მიღების შეზღუდვების გამო

  2. L7 დატვირთვის ბალანსერი მუშაობს ისე, რომ უზრუნველყოფს გონივრული მარშრუტიზაციის გადაწყვეტილებებს ეფექტურობისა და უსაფრთხოების ხარჯების გამო


შესაბამისი ტიპის არჩევა დამოკიდებულია სისტემის მოთხოვნებზე და ყურადღებით უნდა იქნას განხილული უსაფრთხოების პრინციპების გამოყენებისა და შესრულების შეფერხებების აღმოფხვრის გონივრული ბალანსით.