5 alasan bodoh anda tidak menggunakan Heroku

Russell Smith adalah pengasas dan CTO Rainforest QA.

Apabila saya memberitahu CTO dan jurutera lain bahawa kami sangat bergantung pada Heroku untuk menjalankan perniagaan kami, mereka selalu mempunyai reaksi yang sama: Mengapa? Mengapa tidak AWS? Adakah awak bergurau? Adakah anda pernah mendengar mengenai Google Cloud? Adakah anda bodoh?

Ini berlaku tanpa gagal. Dengan. Keluar. Gagal. Argumen biasanya berlaku seperti ini: Mengapa membayar lebih banyak untuk PaaS apabila anda boleh membuatnya sendiri di Google atau AWS — dan memilikinya seperti yang anda mahukan? Yang saya katakan: Poppycock. Orang-orang ini kehilangan faedah sebenar PaaS, dan mungkin juga asas ekonomi.

Kami telah menggunakan Heroku secara meluas di Rainforest QA sejak awal 2012 untuk menjalankan perkhidmatan ujian QA automatik kami. Kami menggunakan hampir semua perkara di Heroku - untuk pengeluaran, pementasan, dan QA untuk kebanyakan aplikasi. Ia stabil, masuk akal dari segi ekonomi, dan tepat sesuai dengan keperluan kita.

Inilah hujah-hujah utama yang saya dengar terhadap Heroku, dan mengapa saya fikir mereka (kebanyakannya) salah.

# 1. Heroku adalah NIH (Tidak Dicipta Di Sini)

Sekiranya tidak disatukan oleh pasukan kami dengan penuh kasih sayang, itu tidak sempurna untuk kami, oleh itu ia tidak cukup baik. Lalai hari ini adalah menggunakan AWS (yang, juga NIH), kemudian mengupah orang untuk mengumpulkan infrastruktur kepingan salji yang baru-baru ini. Garis pemikiran ini mempunyai beberapa kelemahan:

  • Pasukan kejuruteraan anda tidak mempunyai masa untuk belajar kemahiran dan melakukan tugas dengan betul — melainkan jika anda mengambil orang tambahan yang sangat pintar.
  • Anda tidak boleh mengambil orang tambahan yang sangat pintar. Orang hebat sangat mahal, sukar dicari, dan mungkin sudah bekerja di tempat lain.
  • Anda jarang sekali perlu membina infrastruktur hanya sekali. Apabila keperluan anda berubah, anda harus membinanya lagi.
  • Infrastruktur khusus anda tidak akan diuji pertempuran sehingga pertempuran anda mengujinya. Atau lebih tepatnya, sehingga pelanggan dan jurutera anda mempunyai. Jangan biarkan mereka melakukannya. Jangan begitu.

Sekiranya anda fikir anda boleh menyewa orang terbaik untuk mengumpulkan infrastruktur anda, anda bergurau sendiri. Tetapi walaupun anda boleh, masa yang anda habiskan untuk membina infrastruktur ini jarang sekali, jika ada, menggerakkan produk anda ke hadapan (kecuali infrastruktur itu sendiri merupakan bahagian utama dari penawaran anda).

Inilah sebabnya mengapa saya lebih suka laluan saya:

  • Heroku membolehkan kita memfokuskan diri pada perkara terbaik yang kita lakukan — membina platform QA automatik.
  • Mempunyai beberapa batasan seni bina yang dikenakan kepada anda sebenarnya boleh menjadi perkara baik. Mereka membebaskan anda dari kelumpuhan pilihan dan analisis.
  • Heroku sentiasa menambah ciri-ciri yang sebenarnya yang menggerakkan produk kita ke depan.

Berikut adalah beberapa ciri Heroku yang kami sukai:

  • Postgres ketersediaan tinggi
  • Penyulitan untuk Postgres dihidupkan secara lalai
  • Saliran log (cara standard untuk melakukan pengumpulan dan penghantaran log)
  • Semak Aplikasi (yang menjalankan kod dalam mana-mana permintaan tarik GitHub dalam aplikasi lengkap sekali pakai di Heroku)
  • Pasar tambahan Heroku

Tambahan penting baru-baru ini yang perlu disebutkan adalah Heroku Shield, yang memberi kita BAA (perjanjian rakan perniagaan untuk pematuhan HIPAA dari Salesforce.com. Ia mempunyai beberapa masalah, tetapi jika kita membina kepatuhan HIPAA sendiri, memerlukan beberapa jurutera sebulan atau lebih kerja. Sebaliknya, jurutera tersebut memajukan produk kami dan menjadikan pelanggan kami lebih bahagia.

# 2. PaaS terlalu mahal

Tetapi Heroku sangat mahal! Ini adalah pemikiran yang menggembirakan dan mengabaikan kos mencari, merekrut, dan melatih para pemuja yang hebat untuk membina dan menyelenggara infrastruktur kepingan salji anda. Belum lagi kos mengekalkan orang-orang ini, meletakkan mereka di pejabat, dan menyediakan meja ping pong atau apa sahaja yang diperlukan untuk membuat mereka bahagia.

Maka ada kos peluang untuk menggaji orang dalam peranan devops dan sysadmin dan bukannya kejuruteraan produk. Dan kos tersebut meningkat secara linear mengikut skala perniagaan anda. Dengan Heroku, anda mengurangkan kos marginal pada skala besar.

Dan jangan lupa kos tambahan kekurangan tumpuan anda. Sekiranya anda berurusan dengan infrastruktur periferal, anda tidak fokus untuk menjadikan produk anda lebih baik.

Membayar Heroku bermaksud anda tidak perlu bimbang untuk membina infrastruktur anda dan sentiasa menyediakannya setiap masa — dan ia tetap memerlukan kos yang sama atau kurang daripada mengambil dan mengekalkan orang-orang tambahan itu.

# 3. PaaS terlalu mengekang

Tetapi ... tetapi ... kepingan salji saya! Sebilangan besar orang berpendapat bahawa aplikasi atau seni bina mereka mempunyai keperluan unik. Dalam kebanyakan kes, tidak - dan jika ya, mungkin tidak. Namun, saya bersedia untuk menerima beberapa alasan yang sah anda mungkin tidak dapat menggunakan Heroku. Di sini mereka:

  • Anda memerlukan banyak CPU atau RAM. Heroku tidak akan skala sejauh AWS, dan konfigurasi sedikit kurang fleksibel. Sekiranya anda memerlukan ribuan pelayan, AWS (atau bahkan logam kosong) mungkin lebih menjimatkan. Tetapi Heroku menyokong beberapa contoh yang cukup besar. Bagi kebanyakan orang, semestinya lebih daripada cukup.
  • Anda memerlukan pelayan logam kosong atau pemproses khas. Sekiranya anda melakukan pembelajaran mesin atau kerja intensif GPU yang lain, Heroku mungkin tidak sesuai. Namun, anda masih boleh menggunakan pendekatan hibrid seperti yang kami lakukan. Kami menggunakan Heroku, tetapi juga pelayan bare-metal untuk mendapatkan prestasi terbaik untuk platform virtualisasi kami.
  • Anda memerlukan RPC bukan HTTP, seperti gRPC. Sebarang trafik masuk yang bukan WebSocket, HTTP, atau HTTPS tidak disokong oleh penghala Heroku hari ini.
  • Anda tidak dapat bekerja dalam model aplikasi yang disokong. Sebagai contoh, jika anda memerlukan komunikasi dalaman, sehingga sekumpulan pelayan aplikasi dapat berperilaku sebagai satu untuk sesuatu seperti Erlang atau Elixir, atau anda memerlukan penyediaan penghalaan yang unik, maka Heroku bukan untuk anda.

Mungkin ada beberapa sebab lain, tetapi selalunya ia tidak penting untuk perniagaan anda. Sekiranya anda dapat merancang aplikasi anda agar sesuai dengan model Heroku, anda akan mendapat banyak faedah. Yang utama adalah konsistensi di seluruh aplikasi - dari penyebaran, pemantauan, penebangan, hingga penskalaan.

# 4. Heroku tidak melakukan Docker

Tetapi saya mesti mempunyai Docker! Jangan risau lagi. Sejak awal September, anda boleh menyebarkan gambar Docker ke Heroku. Bahkan sebelum itu, Heroku menyertakan kemampuan yang agak serupa dengan Docker, yang membolehkan anda menghantar sekitar aplikasi anda yang terkontena. Itu tidak sesuai dengan ciri Docker untuk ciri, tetapi anda boleh menganggap Heroku sebagai versi Docker yang dihoskan dan dikendalikan. Walau apa pun, kebimbangan itu kini hilang.

# 5. Heroku tidak cukup selamat

Tetapi Heroku tidak selamat! LOL. Kecuali anda berada dalam industri yang sangat terkawal, seperti kewangan, atau anda memerlukan sijil tertentu yang tidak disokong oleh Heroku, ini seharusnya tidak menjadi masalah. Tidak ada alasan untuk percaya bahawa Heroku kurang selamat daripada AWS. Ia mempunyai seluruh pasukan yang dikhaskan untuk menguruskan keselamatan platformnya; Adakah awak? Selain itu, anda akan membuat banyak keputusan sekali sahaja semasa anda mengembangkan infrastruktur anda sendiri, tidak ada yang akan diuji. Heroku membuat keputusan ini jauh sebelum anda, dan mereka telah diuji pada skala yang dapat dibayangkan oleh kebanyakan syarikat.

Selain itu, tidak seperti persekitaran khas anda, Heroku konsisten dan seragam. Ia mempunyai batas yang ditentukan dengan jelas, yang bermaksud permukaan serangan anda akan menjadi lebih kecil. Itu juga bermaksud lebih mudah difahami, jadi anda cenderung melakukan sesuatu secara tidak sengaja yang menimbulkan kerentanan.

Dan dengan cara itu, jurutera menyukai persekitaran penggunaan yang konsisten, untuk semua jenis alasan selain keselamatan. 

Pada akhirnya, setiap syarikat perlu membuat keputusan terbaik untuk perniagaan dan pelanggannya. Tetapi ingat, pelanggan tersebut tidak peduli jika anda menggunakan karya seni yang canggih atau buatan sendiri atau PaaS tujuan umum. Mereka peduli bahawa perkhidmatan anda berfungsi, ia bertambah baik dari masa ke masa, dan anda tidak akan diretas. Heroku telah bekerja dengan baik untuk kami, dan ini mungkin berlaku untuk anda.

-

Forum Teknologi Baru menyediakan tempat untuk meneroka dan membincangkan teknologi perusahaan yang baru muncul dalam kedalaman dan luas yang belum pernah terjadi sebelumnya. Pemilihannya bersifat subjektif, berdasarkan pilihan teknologi yang kami anggap penting dan paling menarik bagi pembaca. tidak menerima jaminan pemasaran untuk penerbitan dan berhak untuk mengedit semua kandungan yang disumbangkan. Hantarkan semua pertanyaan ke  [email protected] .