Моделът с набор от надеждни идентификационни данни обслужване
Модел доверен подсистема (или прокси сървър)
Моделът с набор от надеждни идентификационни данни обслужване
Вертикална и хоризонтална мащабиране
Подход за прилагането на мащабирането е критичен аспект на дизайна. Независимо от това дали имате намерение да извърши хоризонтален
мащабиране решения с помощта на балансиране клъстер натоварване или разделена база данни, дизайнът трябва да осигури подкрепа на избрания вариант. Има два основни типа мащабируемост: изправено (голям блок) и
хоризонтални (повече единици).
За вертикално мащабиране на високо натоварване подкрепа се осигурява чрез въвеждането на допълнително оборудване в съществуващите сървъри, като процесори, памет и мрежови карти (мрежови интерфейсни карти, NIC). Тази проста версия не добавя към цената на обслужване и поддръжка, но тя може да бъде рентабилно само до определен момент. Въпреки това, винаги остава възможността за провал, това е рискът. Освен това въвеждането на допълнително оборудване в съществуващите сървъри осигурява желаните резултати не е безкрайна, и получаване на последната 10% от номиналното увеличение на капацитета производителност от един компютър може да бъде много скъпо.
С хоризонтално мащабиране добавите повече сървъри и използвани решения с балансиране на натоварването и свързването в клъстери. В допълнение към възможността за обработване на по-голямо натоварване, лющене омекотява ефекта от откази на оборудване. Ако един сървър не успее, други сървъри в клъстера поема неговата работа. Например, заявленията за слоя на представянето и бизнес ниво може да бъде домакин на множество уеб сървъри с балансиране на натоварването, образувайки уеб ферма. Или, може физически да разделят бизнес логиката на приложението и да го използвате, за да се отдели от средното натоварване балансиран, но в същото време да се поставят на нивото на представителство при балансирането на външното ниво на натоварване. Ако заявлението е ограничен от I / O и трябва да поддържа много голяма база данни, то може да бъде разпределено през множество сървъри на бази данни. Обикновено способността заявление мащабира хоризонтално вече зависи от архитектурата му, отколкото тази на базисната инфраструктура.
Въпроси вертикална скалиране
Вертикална мащабиране чрез увеличаване на процесорна мощ и увеличаване на капацитета за съхранение може да бъде рентабилно решение. Също така в този подход няма нужда от допълнителни разходи за управление, като мащабиране, във връзка с използването на уеб ферми и групиране. На първо място, ние трябва да обмислят възможностите за вертикална мащабиране и тестване на работата поведение, за да се гарантира, че вертикалните мащабиране на решения отговарящи на конкретни критерии и мащабиране осигурява приемливо ниво на производителност за желания брой едновременни потребители. Ние трябва да се разработи план за мащабиране на системата, което ще се отрази неговите перспективи за растеж.
Проектиране с подкрепата хоризонтално мащабиране
Ако на широка основа на решения, не осигуряват необходимата masshtabirumostyu за постигане на пределно допустими стойности за CPU, I / O или паметта, то е необходимо да се извърши мащабиране и въвеждане на допълнителни сървъри. За да се осигури за проектиране на ефективно хоризонтално мащабиране използване приложение на следните практики:
Тесните идентифициращи дестинации и хоризонтално мащабиране. Често пречка е слабо сподели мащабируеми ресурси във вертикална посока. Например, има един-единствен екземпляр на SQL Server, които текат множество сървъри за приложения. В този случай, разделянето на данни по такъв начин, че да могат да бъдат обслужвани от няколко копия на SQL Server, ще даде възможност на котлен камък от решения. Ако има възможност, че пречка ще бъде базата данни на сървъра, помислете за разделяне на данните в проекта, това ще спести много неприятности в бъдеще.
Слабо свързани и многопластов дизайн. Слабо свързани пластове дизайн с ясни интерфейси, които могат да бъдат използвани от разстояние, по-лесно е да се мащабира хоризонтално, отколкото дизайн употреби, тясно свързани с слой с подробни интерфейси. Дизайнът на многослоен ще има естествена разделителна точка, което го прави идеален за хоризонтални скалиране нива граници. Основното нещо е да се идентифицират правилно границите. Така например, бизнес логиката по-лесно да прехвърли на приложения за сървърни ферми с балансиране на средно ниво на натоварване.
Компромиси и последствията от тяхното решение
Ще бъде оценено аспекти на мащабиране, който може да бъде различен за различните слоеве, или нива на типове данни. Идентифициране на необходимите компромиси ще позволи да видите в какви аспекти на гъвкавост там, и това, което не е така. В някои случаи, вертикалната скала с последващо хоризонтално мащабиране с помощта на уеб сървър или сървър за приложения, не е най-добрият подход. Например, можете да зададете 8 процесор сървър, но от съображения за икономичност, най-вероятно, вместо един голям сървър ще се използват няколко по-малки сървъри.
От друга страна, в някои ситуации, в зависимост от ролята и използването на данни, вертикална мащабиране, следвани от хоризонтално мащабиране може да бъде оптимален подход за сървъри на бази данни. Въпреки това, възможността за балансиране на натоварването и срив не са безкрайни, а броят на сървърите, които могат да бъдат обхванати от тези процеси е ограничен. Също така е повлияна от други аспекти, като например разделяне на база данни. В допълнение към техническите проблеми и проблеми с производителността, ние не трябва да забравяме за експлоатацията и управлението и общата стойност на цялата система.
Като правило, оптимизацията на цена и производителност в рамките, наложени от всички други ограничения. Например, с помощта на четири 2-лентов Web
сървър сървър / заявление може да бъде най-добрият вариант от гледна точка на цена и производителност в сравнение с използването на две четири процесорни сървъри. Все пак, за да се счита, както и други ограничения, като например максималния брой сървъри, които могат да бъдат поставени в определена балансиране на натоварването на инфраструктурата, както и консумация на енергия и площта, предоставена в информационния център.
За изпълнението на сървърни ферми и за настаняване на виртуализирани сървъри могат да използват услугата. Този подход ще помогне да се намери най-добрия баланс между ефективност и цена, като същевременно се гарантира максимално използване на ресурсите и възвръщаемост на инвестициите.
Компоненти недържавни
Прилагане на компонентите без да запазвате състояние (не се задържа на междинните държавни компоненти, които могат да бъдат приложени в уеб приложение от страна на клиента) означава способността да се създаде дизайн с най-добрите характеристики за хоризонтално и вертикално мащабиране. За проектиране съзнание трябва да се направи без гражданство много компромиси, но предимствата, предоставени им по отношение на скалируемост, обикновено надвишават евентуалните недостатъци.
Ръководство за разделяне и база данни
Ако приложението работи с много голяма база данни, и има опасения, че операцията на I / O ще се превърне в пречка на системата, преминете разсъждават, разделяне на база данни. Разделяне на база данни в по-късните етапи на проекта обикновено изисква цялостно проектиране редизайн на базата данни и, съответно, мащабни промени всичко кода на приложението. Разделяне осигурява няколко предимства, включително и възможността за изпращане на всички на исканията на една част (по този начин, използването на ресурсите са ограничени до само една част от данните) и възможност за използване на множество секции (по този начин, постига най-добрата възможна едновременната работа и изключителна производителност чрез извличане на данни от множество дискове) ,
Въпреки това, в някои случаи, наличието на множество секции може да има негативни последици. Например, някои операции по-ефективно да изпълняват данни, концентрирани върху един диск.
Прието в сценариите на разполагане, решение за разделяне на склада за данни, се определя до голяма степен от типа на данните. Помислете важни фактори:
Статично референтните данни е само за четене. За този тип данни може да се запази, за няколко копия лесно увеличаване на производителността и мащабируемостта на различни устройства да бъдат поставени на подходящи места. Той има минимално влияние върху дизайна и оптимизацията обикновено се определя съображения. Комбиниране на няколко логически отделни и независими бази данни на един сървър на база данни, дори ако то позволява на размера на дисковото пространство, което може да бъде лошо решение и публикуване на копия на данните по-близо до потребителите могат да бъдат еднакво приемлив подход. Въпреки това, ние не трябва да забравяме, че всяка
репликация изисква използването на механизми за осигуряване на синхронизация система.
Dynamic (често променящите се) лесно sektsioniruemye данни. Тези данни, отнасящи се до конкретен потребител или на сесия, като например система за електронна търговия пазарска кошница, когато потребител на данни не са свързани с потребителски данни Б. Управление на тези данни е малко по-сложни, отколкото статични данни само за четене, но те са сравнително лесно да се оптимизира и разпространява защото те могат да се разделя. Все още няма зависимости между групите до отделните потребители. Важна особеност на тези данни е, че има не е подадена заявка за всички секции: Един потребител поиска съдържанието на кошницата, но не всички кошници, които включват определен продукт. Моля, обърнете внимание, ако следващи заявки могат да се изпращат до друга уеб сървър или сървър за приложения, тези сървъри трябва да имат достъп до съответната секция.
Основни данни. Този основен случай на прилагане на вертикална и хоризонтална мащабирането мащабиране последва. Обикновено този вид повторен данни е нежелателно поради сложността на тяхната синхронизация. Класическата решение за такива данни - за ограничаване на вертикалните възможности за мащабиране (в идеалния случай се запази единствената логическа инстанция на съответната групова) и прилагането на разделяне и разпределение, само ако хоризонталната скала е валидна само за това. Напредъкът и постижения в областта на технологиите на базата данни, като например разпределени разделени гледки, много опростено разделяне, обаче, тя трябва да се използва само когато е абсолютно необходимо. Твърде много размер на базата данни е рядко решаващ фактор в решението, много по-често е доминиран от други съображения, като например кой е собственик на данните, географското разпределение на потребителите, близостта до клиента и достъпността.
Данните забави времето. Някои от данните, използвани в приложенията не изискват незабавна синхронизация, или синхронизиране на всички. Чудесен пример - такива данни онлайн магазини като "С стоката X често купуват Y и Z». Тези данни са получени от основните данни, но не трябва да се актуализират в реално време. Дизайн стратегии за превода данни от големите в sektsioniruemye (динамичен) и след това към статичен, е ключов фактор за изграждане на високо мащабируеми приложения.