5 alasan bodoh Anda tidak menggunakan Heroku

Russell Smith adalah salah satu pendiri dan CTO Rainforest QA.

Ketika saya memberi tahu CTO dan teknisi lain bahwa kami sangat bergantung pada Heroku untuk menjalankan bisnis, mereka selalu memiliki reaksi yang sama: Mengapa? Mengapa bukan AWS? Apakah kamu bercanda? Pernahkah Anda mendengar tentang Google Cloud? Apakah kamu idiot?

Ini terjadi tanpa kegagalan. Dengan. Di luar. Gagal. Argumennya biasanya seperti ini: Mengapa membayar lebih untuk PaaS ketika Anda dapat membuatnya sendiri di Google atau AWS — dan membuatnya sesuai keinginan Anda? Untuk yang saya katakan: Poppycock. Orang-orang ini kehilangan manfaat nyata dari PaaS, dan mungkin beberapa pengertian ekonomi dasar juga.

Kami telah menggunakan Heroku secara ekstensif di Rainforest QA sejak awal 2012 untuk menjalankan layanan pengujian QA otomatis kami. Kami menerapkan hampir semua yang ada di Heroku — untuk produksi, pementasan, dan QA untuk sebagian besar aplikasi. Stabil, masuk akal secara ekonomi, dan sangat sesuai dengan kebutuhan kita.

Berikut adalah argumen utama yang saya dengar untuk menentang Heroku, dan mengapa menurut saya argumen tersebut (kebanyakan) salah.

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

Jika tidak disatukan dengan penuh kasih oleh tim kami, itu tidak bisa sempurna untuk kami, oleh karena itu itu tidak cukup baik. Defaultnya saat ini adalah menggunakan AWS (yang, omong-omong, juga NIH), lalu mempekerjakan orang untuk menyusun infrastruktur yang saat ini keren, my-startup-is-a-snowflake. Garis pemikiran ini memiliki beberapa kekurangan:

  • Tim teknik Anda kekurangan waktu untuk mempelajari keterampilan dan melakukan pekerjaan dengan benar — kecuali Anda mempekerjakan orang tambahan yang sangat pintar.
  • Anda tidak dapat mempekerjakan orang tambahan yang sangat pintar. Orang hebat sangat mahal, sulit ditemukan, dan mungkin sudah bekerja di tempat lain.
  • Anda jarang perlu membangun infrastruktur hanya sekali. Saat kebutuhan Anda berubah, Anda harus membangunnya lagi.
  • Infrastruktur kustom Anda tidak akan diuji pertempuran sampai ANDA SUDAH mengujinya. Atau lebih tepatnya, sampai pelanggan dan teknisi Anda melakukannya. Jangan biarkan mereka seperti itu. Jangan.

Jika Anda merasa dapat mempekerjakan orang-orang terbaik untuk menyusun infrastruktur Anda, Anda bercanda. Tetapi bahkan jika Anda bisa, waktu yang Anda habiskan untuk membangun infrastruktur ini jarang, jika pernah, menggerakkan produk Anda ke depan (kecuali jika infrastruktur itu sendiri adalah bagian inti dari penawaran Anda).

Inilah alasan saya lebih memilih rute saya:

  • Heroku memungkinkan kami fokus pada keahlian kami — membangun platform QA otomatis.
  • Memiliki beberapa batasan arsitektur yang dikenakan pada Anda sebenarnya bisa menjadi hal yang baik. Mereka membebaskan Anda dari kelumpuhan pilihan dan analisis.
  • Heroku terus menambahkan fitur yang benar - benar memajukan produk kami.

Berikut adalah beberapa fitur Heroku yang kami sukai:

  • Postgres ketersediaan tinggi
  • Enkripsi untuk Postgres diaktifkan secara default
  • Log drain (cara standar untuk melakukan pengumpulan dan penerusan log)
  • Tinjau Aplikasi (yang menjalankan kode di semua permintaan penarikan GitHub dalam aplikasi yang lengkap dan sekali pakai di Heroku)
  • Pasar add-on Heroku

Tambahan utama baru-baru ini yang layak disebutkan adalah Heroku Shield, yang memberi kami BAA (perjanjian rekanan bisnis untuk kepatuhan HIPAA dari Salesforce.com. Ini memiliki beberapa masalah tumbuh gigi, tetapi Jika kami membuat sendiri kepatuhan HIPAA, itu akan membutuhkan beberapa insinyur bulan atau lebih kerja. Sebaliknya, para insinyur itu memajukan produk kami dan membuat pelanggan kami lebih bahagia.

# 2. PaaS terlalu mahal

Tapi Heroku sangat mahal! Ini adalah pemikiran kelompok dan mengabaikan biaya untuk menemukan, merekrut, dan melatih orang-orang pengembang hebat untuk membangun dan memelihara infrastruktur kepingan salju Anda. Belum lagi biaya untuk mempertahankan orang-orang ini, menempatkan mereka di kantor, dan menyediakan meja ping pong atau apa pun yang diperlukan untuk membuat mereka senang.

Lalu ada biaya peluang untuk mempekerjakan orang dalam peran pengembang dan sysadmin alih-alih rekayasa produk. Dan biaya tersebut meningkat secara linier seiring skala bisnis Anda. Dengan Heroku, Anda memiliki biaya marjinal yang semakin berkurang.

Dan jangan lupakan biaya tambahan karena kurangnya fokus Anda. Jika Anda berurusan dengan masalah infrastruktur periferal, Anda tidak fokus untuk membuat produk Anda lebih baik.

Membayar Heroku berarti Anda tidak perlu khawatir tentang membangun infrastruktur Anda dan menjaganya tetap tersedia setiap saat — dan biayanya masih sama atau lebih rendah daripada menyewa dan mempertahankan orang-orang operasi tambahan tersebut.

# 3. PaaS terlalu membatasi

Tapi… tapi… kepingan saljuku! Banyak orang mengira aplikasi atau arsitektur mereka memiliki kebutuhan yang unik. Dalam banyak kasus, tidak — dan jika ya, mungkin seharusnya tidak. Namun, saya siap menerima beberapa alasan sah Anda mungkin tidak dapat menggunakan Heroku. Di sini mereka:

  • Anda membutuhkan banyak CPU atau RAM. Heroku tidak akan menskalakan sejauh AWS, dan konfigurasinya sedikit kurang fleksibel. Jika Anda benar-benar membutuhkan ribuan server, AWS (atau bahkan logam kosong) mungkin lebih ekonomis. Tetapi Heroku mendukung beberapa contoh yang cukup besar. Bagi kebanyakan orang, itu sudah lebih dari cukup.
  • Anda membutuhkan server bare-metal atau prosesor khusus. Jika Anda melakukan pembelajaran mesin atau pekerjaan intensif GPU lainnya, Heroku mungkin tidak cocok. Namun, Anda tetap dapat menggunakan pendekatan hibrid seperti yang kami lakukan. Kami menggunakan Heroku, tetapi juga server bare-metal untuk mendapatkan kinerja terbaik untuk platform virtualisasi kami.
  • Anda memerlukan RPC non-HTTP, seperti gRPC. Lalu lintas masuk apa pun yang bukan WebSocket, HTTP, atau HTTPS tidak didukung oleh router Heroku saat ini.
  • Anda tidak dapat bekerja dalam model aplikasi yang didukung. Misalnya, jika Anda memerlukan komunikasi ruas, sehingga sekelompok server aplikasi dapat berperilaku sebagai satu untuk sesuatu seperti Erlang atau Elixir, atau Anda memerlukan penyiapan perutean yang unik, maka Heroku bukan untuk Anda.

Mungkin ada beberapa alasan lain, tetapi seringkali alasan itu tidak penting untuk bisnis Anda. Jika Anda dapat mendesain aplikasi Anda agar sesuai dengan model Heroku, Anda akan mendapatkan banyak keuntungan. Yang utama adalah konsistensi di seluruh aplikasi — dari penerapan, pemantauan, logging, hingga penskalaan.

# 4. Heroku tidak melakukan Docker

Tapi saya harus punya Docker! Jangan khawatir lagi. Sejak awal September, Anda dapat menerapkan image Docker ke Heroku. Bahkan sebelum itu, Heroku menyertakan kemampuan yang agak mirip dengan Docker, memungkinkan Anda untuk mengirim aplikasi Anda ke dalam container. Itu tidak cocok dengan fitur Docker untuk fitur, tetapi Anda dapat menganggap Heroku sebagai versi Docker yang dihosting dan dikelola. Bagaimanapun, kekhawatiran itu sekarang hilang.

# 5. Heroku tidak cukup aman

Tapi Heroku tidak aman! LOL. Kecuali Anda berada dalam industri yang diatur secara ketat, seperti keuangan, atau Anda memerlukan sertifikasi tertentu yang tidak didukung oleh Heroku, ini seharusnya tidak menjadi masalah. Tidak ada alasan untuk percaya bahwa Heroku secara bermakna kurang aman dibandingkan AWS. Ia memiliki seluruh tim yang dikhususkan untuk mengelola keamanan platformnya; Apakah kamu? Plus, Anda akan membuat banyak sekali keputusan saat menjalankan infrastruktur Anda sendiri, yang tidak ada yang akan diuji. Heroku membuat keputusan ini jauh sebelum Anda, dan keputusan tersebut telah diuji pada skala yang hanya dapat dibayangkan oleh kebanyakan perusahaan.

Plus, tidak seperti lingkungan khusus Anda, Heroku konsisten dan seragam. Ini memiliki batas-batas yang ditentukan dengan jelas, yang berarti permukaan serangan Anda akan lebih kecil. Itu juga berarti lebih mudah untuk dipahami, jadi Anda cenderung tidak melakukan sesuatu secara tidak sengaja yang menciptakan kerentanan.

Dan omong-omong, teknisi menyukai lingkungan penerapan yang konsisten, untuk semua jenis alasan selain keamanan. 

Pada akhirnya, setiap perusahaan perlu membuat keputusan terbaik untuk bisnis dan pelanggannya. Tapi ingat, pelanggan tersebut tidak peduli jika Anda menggunakan karya seni mutakhir, buatan sendiri atau PaaS tujuan umum. Mereka peduli bahwa layanan Anda berfungsi, meningkatkannya seiring waktu, dan Anda tidak diretas. Heroku telah bekerja dengan sangat baik untuk kami, dan mungkin juga untuk Anda.

-

Forum Teknologi Baru menyediakan tempat untuk mengeksplorasi dan mendiskusikan teknologi perusahaan yang sedang berkembang secara mendalam dan luas. Pemilihan ini subjektif, berdasarkan pilihan teknologi yang kami yakini penting dan paling menarik bagi pembaca. tidak menerima jaminan pemasaran untuk publikasi dan berhak untuk mengedit semua konten yang dikontribusikan. Kirim semua pertanyaan ke  [email protected] .