ИТ развој

Престанете да дебагирате системи, почнете да дизајнирате за отпорност

Престанете да дебагирате системи, почнете да дизајнирате за отпорност

Повеќето инциденти во продукциска средина не започнуваат како драматични дефекти. Тие започнуваат како вообичаени претпоставки: зависност ќе одговори брзо, редицата ќе остане мала, поврзувањето со базата на податоци...

Скротување на сложеноста: Практичен дизајн на бази на податоци за непоколебливи перформанси

Скротување на сложеноста: Практичен дизајн на бази на податоци за непоколебливи перформанси

Проблемите со перформансите ретко започнуваат со бавно пребарување. Тие започнуваат со модел на податоци што го прави бавното пребарување неизбежно. Кога апликацијата е млада, примамливо е да се оптимизира ...

Архитектирајте ги вашите API-ја за предвидливо скалирање, не само за функционалност

Архитектирајте ги вашите API-ја за предвидливо скалирање, не само за функционалност

API-то може да биде совршено функционално, а сепак лошо дизајнирано за раст. Враќа JSON, ги поминува тестовите и го поддржува првото издание на производот. Потоа сообраќајот расте, клиентите...

Тајните на перформансите на базите на податоци: Повеќе од индексирање за вистинска брзина

Тајните на перформансите на базите на податоци: Повеќе од индексирање за вистинска брзина

Базата на податоци може да има одлични индекси, а сепак да делува бавно. Тоа е непријатната вистина зад многу истраги за перформансите: индексирањето е важно, но тоа е само едно парч...

Системски дизајн: Дебагирање на вашата архитектура пред да се расипе

Системски дизајн: Дебагирање на вашата архитектура пред да се расипе

Повеќето архитектонски неуспеси не започнуваат со драматичен прекин. Тие започнуваат како мали компромиси што изгледаат безопасни: уште еден синхрон API повик, едно небазирано пребарување, една конта...

Надвор од базата на податоци: Дизајн на шема за непоколеблива брзина на системот

Надвор од базата на податоци: Дизајн на шема за непоколеблива брзина на системот

Бавниот систем ретко се спасува само со паметен индекс. Работата со базата на податоци е важна, но корисниците го доживуваат целото барање: рутирање, автентикација, серилизација, мрежни прескокнувања, кеш...

Архитектонски долг: Како да го отплатите пред да го банкротира вашиот систем

Архитектонски долг: Како да го отплатите пред да го банкротира вашиот систем

Архитектонскиот долг ретко се појавува како драматичен неуспех. Почнува како безопасна кратенка: еден контролер што директно пристапува до базата на податоци, еден заеднички „помошник“ што науч...

Скротување на растот на вашиот API: Стратегии за предвидливо скалирање

Скротување на растот на вашиот API: Стратегии за предвидливо скалирање

API ретко се распаѓа затоа што една крајна точка била лошо напишана. Се распаѓа затоа што растот го менува обликот на системот: повеќе клиенти, повеќе сообраќајни шеми, поголеми збирки на податоци, подолги...

Кога вашиот API-договор ќе стане единствениот извор на вистина за вашиот систем

Кога вашиот API-договор ќе стане единствениот извор на вистина за вашиот систем

Повеќето бекенд-системи не откажуваат затоа што програмерот заборавил како се пишува ендпоинт. Тие откажуваат кога значењето на ендпоинтот тивко се разминува меѓу контролерите, сервисите, да...

Dockerfile-овите не се мртви, само еволуираат

Dockerfile-овите не се мртви, само еволуираат

Dockerfile-от е прогласуван за застарен доволно често за да се квалификува како повторувачки ритуал во индустријата. Се појавува нова алатка за градење, платформа ветува распоредување без конфигурација или тим...

Надвор од базата на податоци: Оптимизирање на вашата шема за вистински перформанси

Надвор од базата на податоци: Оптимизирање на вашата шема за вистински перформанси

Бавниот систем ретко е „базата на податоци“ изолирано. Таа дијагноза е утешна бидејќи му дава на тимот едно место каде да погледне: додадете индекс, зголемете го connection pool-от, tun...

Престанете да бркате грешки, почнете да проектирате робусност

Престанете да бркате грешки, почнете да проектирате робусност

Повеќето заостанати списоци со грешки всушност не се збирки од изолирани грешки. Тие се симптоми на систем што го олеснува создавањето на погрешната состојба, го отежнува нејзиното набљудување и го прави нејзиното кор...

Тесни грла во базата на податоци: Зошто вашата шема ве забавува

Тесни грла во базата на податоци: Зошто вашата шема ве забавува

Бавната база на податоци често се обвинува за „премногу податоци“ или „недостасувачки индекс“. Понекогаш тоа е точно. Почесто, вистинскиот проблем е постар и помалку видлив: шемата престанала да р...

Надвор од CRUD: Архитектирање API-ја за предвидливи перформанси

Надвор од CRUD: Архитектирање API-ја за предвидливи перформанси

CRUD е корисна почетна точка, но е лоша стратегија за перформанси. Создавање, читање, ажурирање и бришење опишуваат што може да прави API; речиси ништо не кажуваат за тоа како се однесува...

Престанете да дебагирате код, почнете да ја дебагирате архитектурата

Престанете да дебагирате код, почнете да ја дебагирате архитектурата

Кога ќе се појави проблем во продукција, првиот инстинкт обично е да се провери линијата што откажала. Исклучокот укажува на контролер, барање или чекор на серијализација, па тоа е ...

Dockerfile-овите се мртви: Прифатете декларативна инфраструктура за подобри системи

Dockerfile-овите се мртви: Прифатете декларативна инфраструктура за подобри системи

Dockerfile-ите не се буквално мртви. Тие сè уште создаваат извонредно голем број продукциски слики, а добро напишан Dockerfile често е најпреносливиот начин да се опише изградба на контејнер...

Системска архитектура: Зошто дизајнот на вашата база на податоци е вистинското тесно грло

Системска архитектура: Зошто дизајнот на вашата база на податоци е вистинското тесно грло

Повеќето проблеми со перформансите не започнуваат со бавна PHP јамка, неефикасна Docker слика или недостасувачко заглавие за кеш. Тие започнуваат порано: со модел на база на податоци што ги прави вообичаените...

Архитектура на отпорни API-ја: Планирање за неочекуваното

Архитектура на отпорни API-ја: Планирање за неочекуваното

Повеќето откажувања на API не се драматични. Тие доаѓаат како бавно барање до базата на податоци, клиент што се обидува повторно премногу агресивно, надворешна услуга што враќа неисправно форматирани податоци или контејнер што се рестар...

Системска архитектура: Планирање за неуспех, не само за успех

Системска архитектура: Планирање за неуспех, не само за успех

Повеќето архитектонски дијаграми раскажуваат утешна приказна. Пристигнува барање, апликацијата го обработува, базата на податоци одговара и корисен резултат се враќа кај корисникот. Тој среќен п...