Оптимизиране на производителността на приложението: Най-добрите инструменти за наблюдение на APM

Не желаем ли всички нашите приложения да се изпълняват безупречно? За съжаление, приложенията са станали толкова сложни, че гарантирането, че работят безпроблемно, е по-сложно от всякога. Съвременните приложения имат няколко нива. Има преден край, който се грижи за взаимодействията на потребителите. Има и бек-енд, който извършва по-голямата част от тежката обработка. И накрая, често има база данни, която да съхранява данните на приложението. Всички тези компоненти, които биха могли да работят на различни машини – и често са, трябва да говорят помежду си. Не само това, но те също трябва да отговарят своевременно на исканията на другия. Но тъй като бек-ендът често обслужва множество предни интерфейси, а базата данни често обслужва множество бек-ендове, нещата могат да се усложнят. Това е, когато производителността на приложението често започва да се влошава. И когато това се случи, трябва да използвате подходящия инструмент, за да наблюдавате ситуацията и да оптимизирате производителността. Това е темата на нашата статия и ние сме на път да прегледаме най-добрите инструменти за оптимизиране на производителността на приложението.

Преди да започнем да прегледаме някои от най-добрите продукти, първо ще поговорим за производителността на приложението. Ще разгледаме какво представлява и защо е толкова важно. След това ще обсъдим оптимизирането на производителността на приложението, какво представлява и какво включва. Ще говорим също за установяване на еталон, който ще ви позволи да измерите влошаването или подобряването на производителността на приложението. След това ще проучим самите инструменти, какво представляват и какво правят, преди най-накрая да прегледаме някои от най-добрите инструменти за оптимизиране на производителността на приложението.

Значението на производителността на приложението

Преди да започнем, важно е всички да сме на една и съща страница относно това, което имаме предвид, когато говорим за производителността на приложението. Въпросът не е само в това колко добре работят Microsoft Word или браузърите Chrome или Firefox. Да, това са приложения и те също могат да страдат от проблеми с производителността, но това, което имаме предвид, е производителността на вътрешни или персонализирани приложения. И така, какво е значението на производителността на приложението? Докато различните хора биха излезли с различни отговори, най-общо казано, това е свързано с производителността. Тези вътрешни или персонализирани приложения служат за цел и, когато тяхната производителност не е налице, производителността страда. Ясно и просто.

Вероятно е още по-важно, ако сте в бизнеса със софтуер като услуга (SaaS), тъй като тези вътрешни и персонализирани приложения се използват за предоставяне на услуги на клиенти. След това ударът в производителността може да накара клиентите да обмислят използването на конкурентни услуги.
Има основно две места, където производителността на приложението може да бъде влошена. Първият е комуникацията между компонентите. С различните нива, които обикновено се изпълняват на различни компютри, комуникацията често се осъществява чрез мрежа и мрежите, както най-вероятно знаете, могат да страдат от всякакви видове влошаване на производителността.

Другото място, където производителността на приложението често може да бъде влошена, е на самите сървъри. Ако, например, беден сървър е претоварен, това може да забави отговора на заявките от предните крайни части, причинявайки проблем с производителността. Същото важи и за заявките от задния сървър към базите данни.

Оптимизиране на производителността на приложението

Оптимизирането на производителността на приложението не е за разлика от отстраняването на проблеми. Първата стъпка е да се определи откъде идва ударът на производителността. След като разберете откъде идва проблемът, решаването му е само въпрос на коригиране на първопричината му. Това прави намирането на основната причина втората стъпка от оптимизиране на производителността на приложението.

След като основната причина за влошаването на производителността на вашето приложение е известна, всичко, което остава, е да я поправите. Например, ако бекенд сървърът е претоварен, може би е време да добавите втори сървър или да го подобрите чрез добавяне на процесорни ядра или памет. По същия начин, ако причината за влошаването е фактът, че мрежата между два компонента е претоварена, причинявайки закъснения, може да е време за надграждане на мрежата. Това обикновено се случва с WAN връзки, където надстройката често е просто телефонно обаждане до доставчика.

  Как да използвате виртуални настолни компютри на Chrome OS

Създаване на еталон за бъдещи сравнения

Повечето приложения започват с приемлива производителност. Въпреки това, нещата често се влошават с течение на времето, тъй като все повече хора използват приложението или когато количеството данни, които обработва, става все по-голямо. Рано или късно – често рано – едно от двете неща непременно ще се случи. Потребителите ще започнат да се оплакват, че приложението не е толкова бързо, колкото е било преди или приложението всъщност ще се забави.

Потребителите не са лъжци, те просто са склонни да имат изкривено възприятие и честно мислят, че приложението е по-бавно, когато всъщност работи добре. Това е мястото, където сравнителният анализ може да бъде полезен. Трябва предварително да измерите ефективността на вашето приложение. След това, когато потребителите се оплакват, можете просто да сравните текущото измерване с оригиналното – еталонния – и да видите дали наистина се е забавило и с колко или да демонстрирате, че все още работи добре. Наличието на еталон и редовното му сравняване с текущата производителност също може да ви помогне да откриете влошаване на производителността, преди потребителите да го забележат.

Относно инструментите

Има всякакви инструменти, които човек може да използва за оптимизиране на производителността на приложението и всички те имат едно общо нещо, трябва по някакъв начин да го измерват или наблюдават. Повечето инструменти за оптимизиране на производителността на приложенията всъщност са инструменти за наблюдение или анализ на производителността на приложенията, тъй като те са това, което ще използвате, за да намерите проблеми с производителността и да измервате резултатите от вашите усилия за оптимизация.

За съжаление повечето такива инструменти няма да се погрижат за действителната оптимизация. Те ще ви помогнат да видите дали и къде съществува проблем с производителността. Някои дори ще предложат начини да го оптимизират, но няма да свършат работата вместо вас. Това има смисъл, има твърде много променливи и приложенията са твърде различни едно от друго, за да се създаде универсален инструмент, който може да коригира проблемите с приложението. Все пак бихте ли искали автоматизиран инструмент, който да променя кода ви?

Най-добрият инструмент за оптимизиране на производителността на приложението

Нашият списък съдържа различни инструменти. Някои са инструменти за наблюдение на производителността на приложенията. Други ще наблюдават производителността на базата данни. Имаме дори пакет, който комбинира тези два инструмента. Противно на други видове инструменти – като инструменти за наблюдение на честотната лента, например, които всички работят почти по същия начин – инструментите за оптимизиране на производителността на приложенията се различават значително по това какво правят и как да работят. Опитахме се да включим добра комбинация от наличните.

1. Пакет за оптимизация на производителността на приложението SolarWinds (безплатна пробна версия)

Първият ни запис не е инструмент, а по-скоро пакет от инструменти от SolarWinds, компания, която прави едни от най-добрите инструменти за мрежово администриране от около 20 години. Той е високо ценен от мнозина и неговият водещ продукт, SolarWinds Network Performance Monitor, постоянно получава най-добрите отзиви като един от най-добрите инструменти за наблюдение на честотната лента на мрежата. Сякаш това не е достатъчно, SolarWinds е известен и със своите безплатни инструменти, по-малки продукти, всеки от които отговаря на специфични нужди на мрежовите администратори. Разширеният калкулатор на подмрежата SolarWinds и Kiwi Syslog Server са два добри примера за тези безплатни инструменти.

Обратно към оптимизирането на производителността на приложенията, предложението на SolarWinds се нарича пакет за оптимизация на производителността на приложения. Това е пакет, който се състои от два отлични инструмента, монитора на сървъра и приложенията и анализатора на ефективността на базата данни. С едно изречение пакетът предоставя пълно стек приложение, база данни, виртуализация и решение за оптимизиране на производителността на сървъра.

Комбинирани заедно, двата инструмента предлагат несравнима гама от полезни функции. Например, анализът на времето за реакция ще ви позволи да видите основната причина за проблемите с отговора на приложението. Освен това историческият анализ и динамичните базови линии ви помагат да забележите проблеми с настройката. Мониторът на сървъра и приложенията SolarWinds се основава на архитектура без агенти, за да ви позволи да следите стотици производствени инстанции с минимално натоварване. Това не е само за вътрешни или персонализирани приложения. Инструментът включва над двеста шаблона за приложения, които да ви помогнат да наблюдавате производителността на приложението извън кутията. Разбира се, имате и възможността да създавате шаблони за вътрешни разработки. С планирането на капацитета на процесора, паметта и диска пакетът ви позволява ефективно да отстранявате неизправности за бързо разрешаване на проблеми.

  Как да използвате функцията за онлайн вграден превод на Outlook

Можете да използвате напълно функционалната 30-дневна пробна версия с тази връзка.

Междувременно, нека разгледаме по-задълбочено всеки от инструментите, включени в пакета за оптимизиране на производителността на приложенията SolarWinds.

1.1 SolarWinds сървър и монитор на приложения (безплатна пробна версия)

Мониторът на сървъра и приложенията SolarWinds е описан от неговия издател като „Сървърен софтуер за наблюдение, създаден за намиране и разрешаване на проблеми с приложенията“. Конкретно, този инструмент ще ви позволи да наблюдавате всяко приложение, всеки сървър, навсякъде. Можете да го използвате за проактивно наблюдение на производителността, капацитета и здравето на приложенията за Linux и Windows в центрове за данни, отдалечени офиси и в облака.

Това е цялостна платформа за мониторинг на сървъри за приложения, системи, хипервизор и SaaS продукти на Microsoft. Освен това е чудесен продукт за наблюдение на облачни инфраструктури. Можете да го използвате, за да наблюдавате и предупреждавате за показателите на инфраструктурата на Azure и AWS. Всичко това се прави в рамките на същото табло за управление като вашите локални приложения и системи. Говорейки за таблото за управление на продукта, то ще ви позволи да наблюдавате над 1200 приложения на доставчици, сървъри, бази данни и съхранение, всичко от един, лесен за използване, адаптивен уеб интерфейс. Инструментът за наблюдение на сървъра SolarWinds Server и Application Monitor осигурява автоматизирано откриване и картографиране на приложения и инфраструктура. Той също така разполага с адаптивни шаблони за наблюдение и предварително изградени сигнали и отчети.

Цените за сървъра SolarWinds и монитора на приложения се базират на броя на наблюдаваните компоненти, възли и обеми, започващи от $2 995 за 150 монитора. Подобно на повечето други продукти на SolarWinds, безплатна 30-дневна пробна версия е достъпна за изтегляне, ако искате да изпробвате продукта, преди да го закупите.

1.2 Анализатор на ефективността на базата данни SolarWinds (безплатна пробна версия)

Анализаторът за ефективност на базата данни SolarWinds следи и анализира вашите SQL екземпляри на база данни, за да помогне за разрешаването на проблеми и оптимизиране на производителността. Използвайки метод за анализ на времето за отговор, той се фокусира върху времето между заявка за заявка и съответния отговор от базата данни и анализира типове изчакване и събития, като помага да се определят тесните места в базите данни.

Този продукт разполага с лесен за използване интерфейс, който може да помогне на администраторите да намират проблеми бързо и лесно. Основният му екран ще ви позволи да преглеждате екземпляри на база данни, времена на чакане, съвети за заявка, натоварване на процесора, памет, диск и сесии. Можете да покажете таблото за управление на тенденциите на конкретен екземпляр на базата данни, което ще ви покаже общото време на чакане за потребителите в течение на един месец в графичен формат. Той също така може да начертае вашия избор на средно или типично време за изчакване през деня. В този изглед всеки цвят на графиката представлява отделен SQL израз. Това, което получавате, е визуално изображение на кое изявление отнема най-дълго време за изпълнение.

Цените за анализатора на ефективността на базата данни SolarWinds започват от $1 995 и варират в зависимост от броя и вида на екземплярите на базата данни за наблюдение. Отново е налична напълно функционална пробна версия, въпреки че тази продължава само 14 дни. Въпреки това, когато изтегляте пробната версия като част от пакета за оптимизиране на производителността на приложенията SolarWinds, ще получите пълен 30-дневен пробен период.

2. Мениджър на приложения ManageEngine

Въпреки че може да не е толкова известно като SolarWinds, ManageEngine все още е друго име, което се радва на отлична репутация сред мрежовите администратори. Както се досещате от името му, ManageEngine Application Manager се занимава с управление на приложения. Това обаче е донякъде подвеждащо име, тъй като е колкото платформа за наблюдение, толкова и инструмент за управление.

  Как да видите историята на клипборда в Microsoft Office

Този инструмент предлага интегриран мониторинг на производителността на приложенията за всички нужди от мониторинг на сървъра и приложенията. Той може да направи това и за основните инфраструктурни компоненти като сървъри на приложения, бази данни, междинен софтуер и компоненти за съобщения, уеб сървъри, уеб услуги, ERP пакети, виртуални системи и облачни ресурси. С няколко думи, това е всеобхватна платформа.

С този инструмент може да се направи много. Например, можете да проследявате времето за реакция на приложението с информация на ниво код за средата за наблюдение на производителността на приложението. Неговата функция за проследяване на транзакции ще ви позволи да откривате бавни транзакции. Той ще наблюдава изпълнението на заявки за база данни и ще проследява транзакциите на заден план.

Мениджърът на приложения ManageEngine се предлага в няколко издания. Има безплатно издание с ограничени функции, както и платени версии Professional и Enterprise. Цените започват от $945 и подробности могат да бъдат получени, като се свържете с ManageEngine. Налична е и безплатна 30-дневна пробна версия.

3. AppDynamics APM

Appdynamics, който сега е част от Cisco, разполага с страхотен инструмент за управление на производителността на приложенията, който се нарича просто Appdnamics APM. Този отличен инструмент автоматично ще открива, картографира и визуализира вашите критични клиентски пътувания през всяка приложна услуга и инфраструктурен компонент. Той предоставя на управленските екипи единен източник на информация, за да се съсредоточи върху ефективността от край до край в контекста на клиентското изживяване, вместо да наблюдава отделните услуги.

Този инструмент използва машинно обучение, за да научи какво е нормална производителност, като ефективно изгражда своя собствена базова линия на производителността на приложението. Позволява на инструмента да ви предупреждава, когато производителността не е нормална. Има директна интеграция със ServiceNow, PagerDuty и Jira, така че да можете незабавно да бъдете предупредени и да коригирате проблемите, преди клиентите да ги забележат.

Друга страхотна функция е непосредствената автоматизирана диагностика на ниво код на инструмента. Неговите дълбоки диагностични възможности ви позволяват да идентифицирате основната причина до отделния ред код. Вашият екип няма да се налага да преглежда регистрационни файлове, спестявайки ценно време на разработчиците.

Appdynamics APM се предлага в няколко версии. Най-основният се нарича APM Pro. APM Advanced добавя функции за видимост на сървъра и видимост на мрежата. Най-високото ниво се нарича APM Peak и включва всички функции от APM Advanced плюс мониторинг на бизнес ефективността, анализ на транзакции и бизнес пътувания. Цените могат да бъдат получени, като се свържете с Appdynamics и е налична 30-дневна пробна версия.

4. Dynatrace

Dynatrace е базиран на облак софтуер като услуга (SaaS), който може автоматично да открива, решава и оптимизира приложения. Откриването и картографирането на сложна екосистема от приложения е просто въпрос на инсталиране на Dynatrace OneAgent. Инструментът ще ви даде прецизен изглед на целия ви стек от приложения, от производителността на приложенията, облачната инфраструктура и потребителското изживяване. Това ще ви помогне без усилие да откривате проблеми, заедно с тяхното въздействие върху бизнеса и основната причина.

Dynatrace твърди, че има най-широкото покритие на всяко решение за наблюдение по отношение на поддържани езици, архитектури на приложения, облак, локален или хибриден, корпоративни приложения, SaaS мониторинг и др. Инструментът автоматично открива и наблюдава динамични микросервизи, работещи в контейнери. Показва ви как се представят, как комуникират помежду си и ви помага бързо да откривате лошо работещи микроуслуги.

Цените за Dynatrace не са лесно достъпни и очевидно могат да бъдат получени само чрез първо регистриране за безплатния 15-дневен пробен период. След това е само въпрос на инсталиране на агента на вашите сървъри и можете да наблюдавате в рамките на 5 минути.

5. Нов Relic APM

На последно място в нашия списък New Relic APM е базирана на облак SaaS софтуерна аналитична платформа, която предлага управление на производителността на приложенията и реален мониторинг на потребителите. Работи както с облачни, така и с внедрени в центъра за данни уеб приложения, внедрени в Ruby, Java, .NET, Python, PHP и Node.js. Продуктът предлага и решения за мобилно наблюдение за iOS и Android приложения.

Нови Relic APM монитори от предния край до инфраструктурния слой. Той поддържа локални, облачни и хибридни настройки. Инструментът ще проследява всяка промяна във всичките ви приложения и услуги с точна яснота и пълен контекст. С подбран потребителски интерфейс, който ви дава един-единствен, изчерпателен изглед на целия ви стек от приложения, няма да се налага да прескачате между инструменти и персонализирани изгледи. Всичко се намира лесно в един панел.

New Relic APM се предлага в две версии, Essentials, започващи от $75/месец и Pro, започващи от $149/месец, като последният предлага разширени функции като по-дълго време на задържане, карти на услуги, проследяване на внедряването и SLA отчети. Налична е безплатна 14-дневна пробна версия на всяка версия.