Programování

5 hloupých důvodů, proč Heroku nepoužíváte

Russell Smith je spoluzakladatelem a technickým ředitelem společnosti Rainforest QA.

Když řeknu ostatním technickým ředitelům a technikům, že se při řízení našeho podnikání do značné míry spoléháme na Heroku, mají vždy stejnou reakci: Proč? Proč ne AWS? Děláš si srandu? Už jste slyšeli o Google Cloud? Jsi idiot?

To se děje bez problémů. S. Ven. Selhat. Argument obvykle zní asi takto: Proč platit více za PaaS, když si ho můžete postavit sami na Google nebo AWS - a mít ho tak, jak chcete? K tomu říkám: Poppycock. Tito lidé postrádají skutečné výhody PaaS a možná také základní ekonomický smysl.

Heroku intenzivně používáme v Rainforest QA od začátku roku 2012 k provozování naší automatizované služby testování QA. V Heroku nasazujeme téměř vše - pro produkci, staging a QA pro většinu aplikací. Je stabilní, dává ekonomický smysl a přesně vyhovuje našim potřebám.

Zde jsou hlavní argumenty, které slyším proti Heroku, a proč si myslím, že jsou (většinou) klamné.

# 1. Heroku je NIH (zde není vynalezeno)

Pokud to náš tým nedělá s láskou, nemůže to být pro nás dokonalé, proto to není dost dobré. Výchozí v těchto dnech je použití AWS (což je, mimochodem, také NIH), pak najímání lidí, aby sestavili infrastrukturu, která je aktuálně moderní, můj startup je sněhová vločka. Tento způsob myšlení má několik nedostatků:

  • Váš technický tým nemá čas se učit dovednosti a dělat svou práci správně - pokud si nenajmete další lidi, kteří jsou extrémně chytří.
  • Nemůžete najmout další lidi, kteří jsou extrémně chytří. Skvělí lidé jsou velmi drahí, je těžké je najít a pravděpodobně již pracují někde jinde.
  • Zřídka musíte vybudovat infrastrukturu pouze jednou. Když se vaše potřeby změní, budete to muset budovat znovu.
  • Vaše vlastní infrastruktura nebude testována bitvou, dokud ji NEBUDETE otestovat. Nebo spíše, dokud to vaši zákazníci a inženýři nebudou mít. Nedávejte jim to. Prostě ne.

Pokud si myslíte, že můžete najmout ty nejlepší lidi, kteří by dali dohromady vaši infrastrukturu, děláte si legraci. Ale i kdybyste mohli, čas strávený budováním této infrastruktury zřídka, pokud vůbec, posune váš produkt vpřed (pokud samotná infrastruktura není klíčovou součástí vaší nabídky).

Zde je důvod, proč dávám přednost mé trase:

  • Heroku nám umožňuje soustředit se na to, co děláme nejlépe - budování automatizované platformy QA.
  • Mít na vás uvalená některá architektonická omezení, může být ve skutečnosti dobrá věc. Osvobozují vás od volby a paralýzy analýzy.
  • Heroku neustále přidává funkce, které ve skutečnosti jsou dělat posunout náš produkt vpřed.

Zde je jen několik funkcí Heroku, které máme rádi:

  • Vysoká dostupnost Postgres
  • Ve výchozím nastavení je šifrování pro Postgres zapnuté
  • Vypouštění protokolů (standardní způsob shromažďování a předávání protokolů)
  • Zkontrolujte aplikace (které spouští kód v libovolném požadavku na tah GitHub v úplné jednorázové aplikaci na Heroku)
  • Trh doplňků Heroku

Nedávným významným přírůstkem, který stojí za zmínku, je Heroku Shield, který nám uděluje BAA (dohoda o přidružení k dodržování HIPAA od společnosti Salesforce.com. Má několik počátečních problémů, ale Pokud bychom měli sami vytvářet shodu s HIPAA, trvalo by to několika technikům měsíc nebo více práce. Místo toho tito inženýři posouvají náš produkt vpřed a činí naše zákazníky šťastnějšími.

# 2. PaaS je příliš drahý

Ale Heroku je moc drahý! Toto je stádové myšlení a ignoruje náklady na hledání, nábor a výcvik skvělých lidí, kteří budují a udržují vaši infrastrukturu sněhové vločky. Nemluvě o nákladech na udržení těchto lidí, jejich umístění v kanceláři a zajištění stolů na ping pong nebo cokoli jiného, ​​co je potřeba k tomu, aby byli šťastní.

Pak jsou tu náklady na příležitost najímat lidi v rolích devops a sysadmin místo produktového inženýrství. A tyto náklady se lineárně zvyšují podle rozsahu vašeho podnikání. S Heroku snižujete mezní náklady ve velkém.

A nezapomeňte na další náklady spojené s nedostatkem soustředění. Pokud se zabýváte záležitostmi periferní infrastruktury, nesoustředíte se na to, jak vylepšit svůj produkt.

Placení Heroku znamená, že si nemusíte dělat starosti s budováním infrastruktury a udržováním její dostupnosti po celou dobu - a stále stojí stejně nebo méně než najímání a udržování těchto dalších zaměstnanců.

# 3. PaaS je příliš omezující

Ale ... ale ... moje vločka! Mnoho lidí si myslí, že jejich aplikace nebo architektura má jedinečné potřeby. Ve většině případů není - a pokud ano, pravděpodobně by neměl. Jsem však připraven přijmout několik legitimních důvodů, proč nebudete moci Heroku používat. Zde jsou:

  • Potřebujete spoustu CPU nebo RAM. Heroku se nebude rozšiřovat až na AWS a konfigurace jsou o něco méně flexibilní. Pokud opravdu potřebujete tisíce serverů, může být AWS (nebo dokonce holý kov) ekonomičtější. Ale Heroku podporuje některé docela značné instance. Pro většinu lidí by to mělo být víc než dost.
  • Potřebujete bare-metal servery nebo speciální procesory. Pokud se věnujete strojovému učení nebo jiné práci náročné na GPU, Heroku nemusí být vhodný. Stále však můžete použít hybridní přístup jako my. Používáme Heroku, ale také bare-metal servery, abychom dosáhli nejlepšího výkonu pro naši virtualizační platformu.
  • Potřebujete RPC bez HTTP, například gRPC. Směrovač Heroku dnes nepodporuje žádný příchozí provoz, který není WebSocket, HTTP nebo HTTPS.
  • V podporovaných aplikačních modelech nemůžete pracovat. Například pokud potřebujete interní komunikaci, aby se skupina aplikačních serverů mohla chovat jako jeden pro něco jako Erlang nebo Elixir, nebo potřebujete jedinečné nastavení směrování, pak Heroku není pro vás.

Může existovat několik dalších důvodů, ale často nejsou pro vaše podnikání zásadní. Pokud můžete svou aplikaci navrhnout tak, aby odpovídala modelu Heroku, získáte mnoho výhod. Hlavní je konzistence mezi aplikacemi - od nasazení přes monitorování, protokolování až po škálování.

# 4. Heroku Dockera nedělá

Ale musím mít Dockera! Už se netrápte. Od začátku září můžete do Heroku nasadit obrázky Dockeru. Ještě předtím zahrnoval Heroku poněkud podobné schopnosti jako Docker, což vám umožnilo dodávat kontejnerovaná sestavení vaší aplikace. To neodpovídá funkci Dockeru pro funkci, ale můžete si myslet, že Heroku je hostovaná spravovaná verze Dockeru. V každém případě je tato obava nyní pryč.

# 5. Heroku není dostatečně bezpečný

Ale Heroku není bezpečný! LOL. Pokud nejste v silně regulovaném odvětví, jako jsou finance, nebo pokud požadujete zvláštní certifikaci, kterou Heroku nepodporuje, neměl by to být problém. Neexistuje žádný důvod se domnívat, že Heroku je významně méně bezpečný než AWS. Má celý tým věnovaný správě zabezpečení své platformy; ano? Navíc budete dělat hromadu jednorázových rozhodnutí při zavádění vlastní infrastruktury, z nichž žádná nebude testována. Heroku učinil tato rozhodnutí dlouho před vámi a byla testována v měřítku, které si většina společností dokáže jen představit.

Na rozdíl od vašeho vlastního prostředí je navíc Heroku konzistentní a jednotné. Má hranice, které jsou jasně definované, což znamená, že váš útočný povrch bude menší. To také znamená, že je snazší pochopit, takže je méně pravděpodobné, že uděláte něco náhodně a vytvoří zranitelnost.

A mimochodem, inženýři milují konzistentní prostředí nasazení, kromě zabezpečení i z nejrůznějších důvodů.

Nakonec musí každá společnost učinit nejlepší rozhodnutí pro své podnikání a své zákazníky. Nezapomeňte však, že těmto zákazníkům je jedno, jestli jste na špičkovém domácím uměleckém díle nebo na univerzálním PaaS. Záleží jim na tom, aby vaše služba fungovala, aby se časem zlepšovala a aby vás neohrožovali. Heroku pro nás fungovalo velmi dobře a pravděpodobně by to bylo i pro vás.

Nové technologické fórum poskytuje místo, kde můžete prozkoumat a diskutovat o nově vznikajících podnikových technologiích v nebývalé hloubce a šíři. Výběr je subjektivní, založený na našem výběru technologií, které považujeme za důležité a pro čtenáře nejzajímavější. nepřijímá marketingové materiály ke zveřejnění a vyhrazuje si právo upravovat veškerý přispěný obsah. Všechny dotazy zasílejte na adresu[email protected].