5 glupih razloga što ne koristite Heroku

Russell Smith je suosnivač i tehnički direktor Rainforest QA.

Kad kažem ostalim tehničkim direktorima i inženjerima da se u velikoj mjeri oslanjamo na Heroku kako bi vodio naš posao, oni uvijek imaju istu reakciju: Zašto? Zašto ne i AWS? Šališ li se? Jeste li čuli za Google Cloud? Jesi li ti idiot?

To se događa bez greške. S. Van. Iznevjeriti. Argument obično ide otprilike ovako: Zašto platiti više za PaaS kad ga možete sami izraditi na Googleu ili AWS-u - i imati ga baš onako kako želite? Na što kažem: Poppycock. Ovim ljudima nedostaju stvarne koristi od PaaS-a, a možda i neki osnovni ekonomski smisao.

Heroku intenzivno koristimo u Rainforest QA od početka 2012. za pokretanje naše automatizirane usluge testiranja QA. Gotovo sve postavljamo u Heroku - za produkciju, postavljanje i QA za većinu aplikacija. Stabilan je, ima ekonomskog smisla i točno odgovara našim potrebama.

Evo glavnih argumenata koje čujem protiv Herokua i zašto mislim da su (uglavnom) zabludni.

# 1. Heroku je NIH (ovdje nije izumljen)

Ako naš tim to ne sastavi s ljubavlju, to ne može biti savršeno za nas, stoga nije dovoljno dobro. Zadano je danas koristiti AWS (koji je, usput rečeno, također NIH), a zatim angažirati ljude da sastave trenutno modernu, moju start-up-je-pahuljicu infrastrukturu na vrhu. Ova linija razmišljanja ima nekoliko nedostataka:

  • Vašem inženjerskom timu nedostaje vremena za učenje vještina i pravilno obavljanje posla - osim ako ne angažirate dodatne ljude koji su izuzetno pametni.
  • Ne možete zaposliti dodatne ljude koji su izuzetno pametni. Veliki ljudi su vrlo skupi, teško ih je pronaći i vjerojatno već rade negdje drugdje.
  • Rijetko trebate izgraditi infrastrukturu samo jednom. Kad se vaše potrebe promijene, morat ćete sve to iznova graditi.
  • Vaša prilagođena infrastruktura neće biti testirana u bitkama dok je VI NE budete testirali. Ili bolje rečeno, dok to ne učine vaši kupci i inženjeri. Nemojte ih provući kroz to. Samo nemoj.

Ako mislite da možete unajmiti najbolje ljude da slože vašu infrastrukturu, šalite se. Ali čak i kad biste mogli, vrijeme koje potrošite na izgradnju ove infrastrukture rijetko, ako uopće ikad pomiče vaš proizvod (osim ako sama infrastruktura nije glavni dio vaše ponude).

Evo zašto više volim svoju rutu:

  • Heroku nam omogućuje da se usredotočimo na ono što najbolje radimo - na izgradnju automatizirane QA platforme.
  • Imati neka arhitektonska ograničenja koja vam se nameću zapravo može biti dobra stvar. Oslobađaju vas paralize izbora i analize.
  • Heroku stalno dodavanje značajke koje zapravo ne kreću naš proizvod naprijed.

Evo samo nekoliko značajki Heroku koje volimo:

  • Postgres visoke dostupnosti
  • Šifriranje za Postgres uključeno je prema zadanim postavkama
  • Odvodi dnevnika (standardni način prikupljanja i prosljeđivanja dnevnika)
  • Pregledajte aplikacije (koje pokreću kôd u bilo kojem zahtjevu za povlačenje GitHub-a u cjelovitoj aplikaciji za jednokratnu upotrebu na Heroku)
  • Tržište dodataka Heroku

Nedavni glavni dodatak koji vrijedi spomenuti je Heroku Shield koji nam daje BAA (ugovor o poslovnom suradniku za usklađenost s HIPAA-om od Salesforce.com. Ima nekih problema sa zubima, ali ako bismo sami trebali izgraditi usklađenost s HIPAA-om, trebalo bi nekoliko inženjera mjesec ili više posla. Umjesto toga, ti inženjeri pomiču naš proizvod naprijed i čine naše kupce sretnijima.

# 2. PaaS je preskup

Ali Heroku je jaaaako skup! Ovo razmišlja o krdu i zanemaruje troškove pronalaska, regrutiranja i obuke sjajnih devops ljudi za izgradnju i održavanje vaše infrastrukture snježnih pahuljica. A da ne spominjemo troškove zadržavanja tih ljudi, smještanja u ured i osiguranja stolova za ping pong ili bilo čega drugog što je potrebno da bi bili sretni.

Potom postoji oportunitetni trošak zapošljavanja ljudi u ulogama devopsa i sysadmina umjesto inženjerstva proizvoda. A ti se troškovi linearno povećavaju kako se vaše poslovanje mijenja. S Herokuom imate sve manje granične troškove.

I ne zaboravite na dodatne troškove vašeg nedostatka fokusa. Ako se bavite pitanjima periferne infrastrukture, niste usredotočeni na poboljšanje svog proizvoda.

Plaćanje Herokua znači da se ne morate brinuti o izgradnji svoje infrastrukture i održavanju njezine dostupnosti u svakom trenutku - a to i dalje košta jednako ili manje nego zapošljavanje i zadržavanje tih dodatnih ljudi.

# 3. PaaS je previše sputavajući

Ali ... ali ... moja pahuljica! Mnogi ljudi misle da njihova primjena ili arhitektura imaju jedinstvene potrebe. U većini slučajeva nema - a ako se dogodi, vjerojatno ne bi trebao. Međutim, spreman sam prihvatiti nekoliko opravdanih razloga zbog kojih možda nećete moći koristiti Heroku. Evo ih:

  • Trebate tone CPU-a ili RAM-a. Heroku se neće skalirati do AWS-a, a konfiguracije su nešto manje fleksibilne. Ako vam zaista trebaju tisuće poslužitelja, AWS (ili čak goli metal) može biti ekonomičniji. Ali Heroku podržava neke prilično znatne primjerke. Većini ljudi to bi trebalo biti više nego dovoljno.
  • Trebate golo-metalne poslužitelje ili specijalne procesore. Ako se bavite strojnim učenjem ili drugim GPU-intenzivnim poslovima, Heroku možda neće odgovarati. Međutim, i dalje možete primijeniti hibridni pristup kao i mi. Koristimo Heroku, ali i golo-metalne poslužitelje kako bismo postigli najbolje performanse za našu platformu za virtualizaciju.
  • Trebate RPC koji nije HTTP, kao što je gRPC. Heroku usmjerivač danas ne podržava bilo koji ulazni promet koji nije WebSocket, HTTP ili HTTPS.
  • Ne možete raditi unutar podržanih modela aplikacija. Na primjer, ako vam je potrebna internode-komunikacija, tako da se grupa poslužitelja aplikacija može ponašati kao jedna za nešto poput Erlanga ili Elixira, ili vam je potrebno jedinstveno postavljanje usmjeravanja, tada Heroku nije za vas.

Postoji možda nekoliko drugih razloga, ali oni često nisu bitni za vaše poslovanje. Ako svoju aplikaciju možete dizajnirati tako da se uklapa u Heroku model, dobit ćete brojne pogodnosti. Glavna je dosljednost među aplikacijama - od postavljanja, nadgledanja, bilježenja do skaliranja.

# 4. Heroku ne radi Docker

Ali moram imati Dockera! Ne brinite više. Od početka rujna na Heroku možete rasporediti Dockerove slike. Čak i prije toga, Heroku je uključivao donekle slične mogućnosti Dockera, omogućujući vam da isporučujete kontejnerirane verzije vaše aplikacije. Nije se podudarao sa značajkom Docker za značajku, ali Heroku biste mogli smatrati hostiranom, upravljanom verzijom Dockera. U svakom slučaju, ta je briga sada nestala.

# 5. Heroku nije dovoljno siguran

Ali Heroku nije siguran! LOL. Osim ako se ne bavite dobro reguliranom industrijom, poput financija, ili ako vam je potrebna posebna potvrda koju Heroku ne podržava, ovo ne bi trebalo predstavljati problem. Nema razloga vjerovati da je Heroku značajno manje siguran od AWS-a. Ima cijeli tim posvećen upravljanju sigurnošću svoje platforme; a ti? Osim toga, donijet ćete hrpu jednokratnih odluka dok razvijate vlastitu infrastrukturu, a niti jedna neće biti testirana. Heroku je ove odluke donio mnogo prije vas i oni su testirani na razini koju većina tvrtki može samo zamisliti.

Osim toga, za razliku od vašeg prilagođenog okruženja, Heroku je dosljedan i ujednačen. Ima granice koje su jasno definirane, što znači da će vaša površina napada biti manja. To također znači da ga je lakše razumjeti, pa je manja vjerojatnost da ćete slučajno učiniti nešto što stvara ranjivost.

Usput, inženjeri vole dosljedno okruženje za implementaciju, iz svih razloga, osim sigurnosti. 

U konačnici, svaka tvrtka mora donijeti najbolju odluku za svoje poslovanje i svoje kupce. Ali ne zaboravite, tim kupcima nije svejedno jeste li na modernom, domaćem umjetničkom djelu ili na PaaS-u opće namjene. Stalo im je do toga da vaša usluga funkcionira, da se s vremenom poboljša i da ne budete hakirani. Heroku je jako dobro uspio za nas, a vjerojatno bi i za vas.

-

New Tech Forum pruža mjesto za istraživanje i raspravu o novonastaloj tehnologiji poduzeća u neviđenoj dubini i širini. Izbor je subjektivan, zasnovan na našem odabiru tehnologija za koje vjerujemo da su važne i da najviše zanimaju čitatelje. ne prihvaća marketinške kolaterale za objavljivanje i zadržava pravo uređivanja cjelokupnog sadržaja. Pošaljite sve upite na  [email protected] .