5 глупави причини да не използвате Heroku

Ръсел Смит е съосновател и главен технически директор на Rainforest QA.

Когато казвам на други технически директори и инженери, че разчитаме силно на Heroku, за да управляваме бизнеса си, те неизменно имат същата реакция: Защо? Защо не AWS? Шегуваш ли се? Чували ли сте за Google Cloud? Идиот ли си?

Това се случва безотказно. С. Вън. Неуспешно. Аргументът обикновено звучи по следния начин: Защо да плащате повече за PaaS, когато можете да го изградите сами в Google или AWS - и да го имате точно както искате? На което казвам: Poppycock. Тези хора пропускат реалните ползи от PaaS, а може би и някакъв основен икономически смисъл.

Използваме Heroku широко в Rainforest QA от началото на 2012 г., за да стартираме нашата автоматизирана услуга за тестване на QA. Разполагаме почти всичко в Heroku - за производство, постановка и QA за повечето приложения. Той е стабилен, има икономически смисъл и точно отговаря на нашите нужди.

Ето основните аргументи, които чувам срещу Heroku, и защо мисля, че са (най-вече) грешни.

# 1. Heroku е NIH (не е изобретено тук)

Ако не е обединено с любов от нашия екип, то не може да бъде идеално за нас, следователно не е достатъчно добро. По подразбиране в наши дни е да се използва AWS (който между другото също е NIH), след което да се наемат хора, които да обединят в момента модерната инфраструктура на my-startup-is-a-snowflake отгоре. Този ред на мисли има няколко недостатъка:

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

Ако смятате, че можете да наемете най-добрите хора, които да обединят вашата инфраструктура, вие се шегувате. Но дори и да можете, времето, което отделяте за изграждането на тази инфраструктура, рядко, ако изобщо изобщо, движи вашия продукт напред (освен ако самата инфраструктура не е основна част от вашето предложение).

Ето защо предпочитам моя маршрут:

  • Heroku ни позволява да се съсредоточим върху това, което правим най-добре - изграждането на автоматизирана QA платформа.
  • Налагането на някои архитектурни ограничения, наложени на вас, всъщност може да бъде нещо добро. Те ви освобождават от парализата на избора и анализа.
  • Heroku постоянно добавя функции, които всъщност се движат нашия продукт напред.

Ето само няколко от характеристиките на Heroku, които обичаме:

  • Postgres с висока наличност
  • Шифроването за Postgres е включено по подразбиране
  • Дренажни канали (стандартен начин за събиране и препращане на регистрационни файлове)
  • Преглед на приложения (които изпълняват кода във всяка заявка за изтегляне на GitHub в пълно приложение за еднократна употреба на Heroku)
  • Пазарът на добавки Heroku

Неотдавнашно важно допълнение, което си струва да се спомене, е Heroku Shield, което ни дава BAA (споразумение за бизнес асоцииране за съответствие с HIPAA от Salesforce.com. Има някои проблеми с никненето на зъби, но ако сами трябва да изградим съответствие с HIPAA, ще са необходими няколко инженери месец или повече работа. Вместо това тези инженери движат нашия продукт напред и правят нашите клиенти по-щастливи.

# 2. PaaS е твърде скъп

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

След това има алтернативни разходи за наемане на хора в ролята на devops и sysadmin вместо продуктово инженерство. И тези разходи се увеличават линейно в зависимост от мащаба на вашия бизнес. С Heroku имате намалени пределни разходи в мащаб.

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

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

# 3. PaaS е твърде ограничаващ

Но ... но ... моята снежинка! Много хора смятат, че тяхното приложение или архитектура имат уникални нужди. В повечето случаи не го прави - а ако го направи, вероятно не би трябвало. Готов съм обаче да приема няколко законни причини, поради които може да не можете да използвате Heroku. Ето ги и тях:

  • Трябват ви тонове CPU или RAM. Heroku няма да се мащабира до AWS, а конфигурациите са малко по-малко гъвкави. Ако наистина имате нужда от хиляди сървъри, AWS (или дори гол метал) може да е по-икономичен. Но Heroku поддържа някои доста значителни екземпляри. За повечето хора би трябвало да е повече от достатъчно.
  • Нуждаете се от голи метални сървъри или специални процесори. Ако правите машинно обучение или друга GPU-интензивна работа, Heroku може да не е много подходящ. Все пак можете да използвате хибриден подход като нас. Използваме Heroku, но също така и голи метални сървъри, за да постигнем най-доброто представяне за нашата платформа за виртуализация.
  • Нуждаете се от не-HTTP RPC, като gRPC. Всеки входящ трафик, който не е WebSocket, HTTP или HTTPS, не се поддържа от рутера Heroku днес.
  • Не можете да работите в рамките на поддържаните модели на приложения. Например, ако имате нужда от междувъзлова комуникация, така че група сървъри за приложения да може да се държи като такава за нещо като Erlang или Elixir, или се нуждаете от уникална настройка на маршрутизация, тогава Heroku не е за вас.

Може да има няколко други причини, но често те не са от съществено значение за вашия бизнес. Ако можете да проектирате приложението си така, че да се побере в модела Heroku, получавате много предимства. Основната е последователността на приложенията - от внедряването, мониторинга, регистрирането и мащабирането.

# 4. Heroku не прави Docker

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

# 5. Heroku не е достатъчно сигурен

Но Heroku не е сигурен! LOL. Освен ако не сте в силно регулирана индустрия, като финансите, или не се нуждаете от специално сертифициране, което не се поддържа от Heroku, това не би трябвало да е проблем. Няма причина да вярваме, че Heroku е по-малко защитен от AWS. Той има цял екип, посветен на управлението на сигурността на своята платформа; ти Освен това ще вземете много еднократни решения, докато разработвате собствена инфраструктура, нито една от които няма да бъде тествана. Heroku взе тези решения много преди вас и те бяха тествани в мащаб, който повечето компании могат само да си представят.

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

И между другото, инженерите обичат постоянна среда за внедряване, поради всякакви причини освен сигурността. 

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

-

Форумът New Tech предоставя място за изследване и обсъждане на нововъзникващите корпоративни технологии в безпрецедентна дълбочина и широчина. Изборът е субективен, базиран на нашия избор на технологиите, които смятаме, че са важни и представляват най-голям интерес за читателите. не приема маркетингово обезпечение за публикуване и си запазва правото да редактира цялото съдържание. Изпращайте всички запитвания на  [email protected] .