PaaS, CaaS, atau FaaS? Bagaimana memilih

Bayangkan berjalan ke toko bahan makanan yang mengkhususkan diri pada hamburger — semua jenis hamburger, tapi hanya hamburger. Ketika datang ke hamburger, pilihan toko tidak terbatas. 

Jika Anda seorang koki hamburger, pergilah ke lorong pertama untuk menemukan pilihan daging sapi, ayam, dan protein lainnya, bersama dengan semua keju, jenis roti, sayuran, bumbu, dan bahan-bahan lain yang mungkin Anda inginkan untuk membuat hamburger Anda sendiri dan sisi. Bahkan ada pilihan piring dan wadah untuk mengemas makanan.

Jika Anda kekurangan waktu, keterampilan, atau minat untuk merakit sendiri hamburger, pergilah ke lorong dua tempat Anda dapat membeli salah satu hamburger-in-a-kit. Bersamaan dengan pilihan klasik, ada kit untuk burger organik, pilihan vegan, dan bahkan diet keto. Ikuti saja petunjuk di kit, dan Anda akan mendapatkan satu burger yang enak.

Juga ditampilkan dalam seri ini:

  • Kontainer berbaris ke arus utama ()
  • Container dan Kubernetes: 3 kisah sukses transformasional (CIO)
  • Kubernetes bertemu dengan dunia nyata ()
  • Hal-hal penting yang perlu diketahui tentang jaringan kontainer (Jaringan Dunia)
  • Bagaimana Visa membangun solusi keamanan kontainer (CSO) sendiri
  • Kontainer di desktop? Anda bertaruh - di Windows 10X (Computerworld)

Baru setelah itu, saat Anda berdiri di antrean kasir, bos Anda menelepon. Dia bilang Anda perlu membuat 300 burger dari berbagai jenis dalam dua jam sebelum makan siang. Plus, selain membuat burger, Anda harus menjalankan proses untuk menyajikannya dan mendapatkan bayaran. Anda harus berhati-hati karena beberapa pelanggan menginginkan pesanan khusus dan yang lain akan mencoba memotong antrean dan mencuri makan siang mereka.

Terakhir, akan ada pemeriksaan kesehatan dan keselamatan saat makan siang, jadi apa pun yang Anda lakukan sebaiknya patuhi peraturan. Dan maaf, Anda hanya akan memiliki beberapa orang yang bekerja dengan Anda, dan mereka juga memiliki sedikit pengalaman dengan jenis operasi ini.

Membuat burger awan

Memilih di antara arsitektur cloud sangat mirip dengan operasi hamburger darurat ini, dan dalam banyak hal, jauh lebih rumit. Pengembang, insinyur, arsitek, dan pemimpin TI memiliki banyak platform, kinerja, peraturan, dan pertimbangan lainnya saat mempertimbangkan arsitektur awan mana yang akan dioperasionalkan.

Arsitektur mana yang akan menawarkan pengalaman yang lebih baik bagi pelanggan dan menghasilkan produk berkualitas lebih tinggi? Mana yang akan lebih mudah untuk dioperasikan dan mencapai tenggat waktu Anda? Jalur mana yang akan menangani masalah dukungan, kepatuhan, dan keamanan dengan lebih baik? Terakhir, pendekatan mana yang dapat Anda terapkan dengan biaya terendah? 

Insinyur dapat memilih opsi container-as-a-service (CaaS) dan mengemas aplikasi, yang setara dengan chef yang membuat dan mengoperasikan makanannya melalui lorong satu. Jika mereka tidak memiliki keahlian itu, opsi platform-as-a-service (PaaS) sama dengan memilih kit di lorong dua dan mengikuti petunjuk dan batasan dalam menggunakannya.

Baik CaaS maupun PaaS tidak memenuhi kebutuhan Anda? Nah, Anda dapat membangun semuanya dari bawah ke atas (infrastruktur sebagai layanan, atau IaaS) atau menerapkan fungsi ke lingkungan tanpa server (berfungsi sebagai layanan, atau FaaS).

FaaS adalah jenis komputasi tanpa server yang dirancang untuk merespons satu tugas. Misalnya, FaaS dapat digunakan untuk mengotentikasi pengguna, melakukan pemeriksaan ejaan pada tubuh teks, atau melakukan komputasi matematis.

Jelas, ada banyak opsi arsitektur untuk menghosting, mengonfigurasi, mengelola, dan menerapkan kode ke cloud. Segalanya menjadi lebih rumit ketika mempertimbangkan penawaran produk yang berbeda. Opsi PaaS termasuk Azure App Service, AWS Elastic Beanstalk, Google App Engine, Red Hat OpenShift, dan Salesforce's Heroku, hanya untuk beberapa nama. Jika Anda menjelajahi solusi CaaS, maka Amazon, Google, dan Amazon masing-masing memiliki layanan Kubernetes yang dikelola dengan akronimnya sendiri (masing-masing EKS, GKE, dan AKS). Plus, ada opsi lain dari orang-orang seperti VMware, IBM, Oracle, Rackspace, dan lainnya.

Tentu saja, ada lebih banyak opsi tanpa server. Azure Tanpa Server memiliki fungsi tanpa server, pod Kubernetes, dan lingkungan aplikasi. AWS saat ini memiliki opsi tanpa server yang lebih luas dan memecah tanpa server menjadi kategori fungsional untuk komputasi, penyimpanan, penyimpanan data, proxy API, dan banyak lagi. Google Cloud mengambil definisi tanpa server yang paling luas dan mencakup layanan seperti BigQuery dan AutoML.

Pertimbangan utama CaaS, PaaS, FaaS, dan tanpa server

Ada beberapa pertimbangan saat meninjau arsitektur cloud yang berbeda ini. 

  • Target audiens - Opsi PaaS dan FaaS pertama-tama menargetkan pengembang dengan membuat solusi mudah dikonfigurasi dan diintegrasikan dengan pipeline CI / CD untuk penerapan. Penampung membuat parameter lingkungan operasi dan konfigurasi platform, sehingga alat ini umumnya ditargetkan untuk operator dan administrator sistem.
  • Konfigurasi versus kelincahan - Secara umum CaaS adalah opsi yang paling dapat dikonfigurasi, memberi operator fleksibilitas paling besar untuk memilih platform dan konfigurasi untuk dimasukkan ke dalam kontainer. Opsi PaaS dan FaaS fokus pada ketangkasan dan membantu pengembang menyebarkan dan menguji kode lebih cepat.
  • Beberapa solusi PaaS memiliki pendapat  - solusi PaaS dan FaaS berdasarkan desain telah dipilih sebelumnya, yang berarti Anda sudah terkunci pada pilihan platform dan opsi konfigurasi mereka. Solusi ini direkayasa berdasarkan pendapat perancang tentang apa yang diinginkan pengembang, praktik terbaik, dan karakteristik kinerja target. Untuk operator yang lebih menyukai lebih banyak fleksibilitas atau lebih banyak kontrol, PaaS atau FaaS yang beropini mungkin terlalu membatasi. 
  • Keterampilan dan kurva pembelajaran - Sebuah generalisasi yang adil adalah bahwa solusi CaaS memiliki kurva pembelajaran yang lebih curam dan membutuhkan lebih banyak keterampilan daripada solusi PaaS dan FaaS.
  • Vendor lock-in - Solusi CaaS umumnya dikembangkan di Kubernetes dan portabel di berbagai opsi cloud hosting. Meskipun solusi PaaS dan FaaS dapat direkayasa dengan Kubernetes sebagai fondasinya, mereka biasanya tidak mengekspos lapisan Kubernetes kepada pengguna akhir dan sebagai gantinya menyajikan konfigurasi yang lebih disederhanakan. Konfigurasi ini adalah hak milik dari solusi PaaS dan FaaS, dan seringkali dirancang untuk berjalan hanya di satu cloud. Beberapa pemimpin TI merasa ini bermasalah dan benar-benar khawatir akan terkunci ke vendor cloud. 

Pertanyaan untuk memandu penelitian dan pembuatan prototipe Anda

Saat menghadapi begitu banyak pilihan, beberapa organisasi akan melakukan sedikit penelitian dan pembuatan prototipe dan memilih jalur yang paling cepat berjalan. Yang lain akan menginvestasikan waktu, energi, dan uang yang signifikan untuk opsi penelitian, berkonsultasi dengan pakar, dan memilih opsi untuk implementasi yang kuat.

Kedua pendekatan tersebut lebih baik daripada organisasi Anda menjadi lumpuh karena banyaknya pilihan, tidak memilih, dan tidak ke mana-mana. Dalam dunia yang serba cepat di mana setiap perusahaan berusaha mendapatkan keuntungan teknis, bersikap terlalu konservatif dan mempertahankan status quo hanya akan menghambat peluang bisnis. 

Jadi, saya berkonsultasi dengan para ahli untuk mengidentifikasi beberapa pertanyaan kunci yang akan membantu mempersempit pilihan dan lapangan bermain:

  1. Apakah Anda tim kecil dengan hanya sedikit aplikasi? Dalam kasus ini, Anda harus mempertimbangkan PaaS yang lebih sederhana dan opsi tanpa server di mana Anda bisa mendapatkan sebagian besar platform yang diperlukan yang telah dikonfigurasi sebelumnya dan tanpa menginvestasikan banyak waktu dan keahlian. DJ Navarrete, direktur arsitektur platform di AvidXchange, menyarankan, “Untuk perusahaan kecil hingga menengah yang mungkin memerlukan lebih banyak dukungan manajemen perubahan agar berhasil, dan mereka yang ingin meningkatkan kematangan, stabilitas, dan kecepatan dengan cepat, PaaS menarik karena menawarkan jalur yang lebih cepat menuju implementasi dan peningkatan efisiensi. "
  2. Apakah Anda memiliki payload episodik tetapi masih perlu ditingkatkan jika diperlukan? Cakupannya bisa menjadi layanan mikro atau fungsi tetapi juga bisa berkembang menjadi aplikasi dan database lengkap. Kasus penggunaan ini cocok untuk komputasi tanpa server, di mana Anda hanya membayar untuk penggunaan yang diperlukan.
  3. Apakah Anda memiliki kewajiban kepatuhan atau standar peraturan yang memaksa Anda untuk melaporkan opsi atau pengaturan dasar tertentu dalam wadah eksekusi, aplikasi, database, sistem operasi, atau infrastruktur? Wayne Anderson, arsitek keamanan dan kepatuhan untuk Microsoft's Modern Workplace Center of Excellence, mengatakan ini adalah alasan penting mengapa opsi tanpa server dikesampingkan. PCI dan persyaratan kepatuhan lainnya umumnya diinterpretasikan oleh departemen hukum atau auditor sebagai persyaratan bukti pengaturan lingkungan komputasi.
  4. Apakah Anda memanfaatkan banyak platform khusus atau aplikasi lama? Dalam kasus ini, mungkin sulit untuk menemukan opsi PaaS komersial yang kompatibel. Pada saat yang sama, mengembangkan container dapat menyederhanakan penerapan dan manajemen dependensi.
  5. Apakah Anda organisasi atau perusahaan besar yang beroperasi di berbagai cloud dan dengan berbagai aplikasi dan platform data dalam produksi? Organisasi ini dapat memilih untuk melakukan standarisasi pada container karena memberikan fleksibilitas paling besar dalam mendukung berbagai platform dan opsi konfigurasi. Tanpa server mungkin masih menjadi pertimbangan jika kepatuhan bukan merupakan faktor. Perusahaan dapat menjauh dari opsi PaaS jika mereka memiliki keterampilan dan kapasitas yang cukup untuk mengembangkan berbagai opsi di Kubernetes. Organisasi dengan skala dan keterampilan teknis yang memadai, seperti Shopify, mungkin memilih untuk merekayasa PaaS mereka sendiri dengan Kubernetes dan container sebagai fondasinya.
  6. Apakah Anda mengembangkan layanan mikro dan melakukan standarisasi pada arsitektur layanan mikro berbasis cloud? Mark Heath menyarankan bahwa kontainer atau FaaS adalah pilihan yang baik, seperti halnya fungsi hosting dalam kontainer. Heath mengatakan bahwa fungsi tanpa server mungkin lebih mudah dikonfigurasi dan lebih murah untuk didukung, sementara container dapat menyederhanakan pengembangan lokal dan memberikan lebih banyak opsi untuk mengamankan titik akhir. 
  7. Konsultan cloud Sarbjeet Johal senang mengetahui apakah Anda sedang membangun platform, aplikasi, atau layanan, dan apakah audiens internal perusahaan, eksternal atau pelanggan, atau konsumsi mesin. Mengetahui jenis aplikasi dan jenis pengguna akhir membantu Anda mengantisipasi kebutuhan dan persyaratan di masa mendatang. Misalnya, Johal mengatakan, “Untuk aplikasi eksternal, Anda ingin mencatat lebih banyak kontrol akses, volume data mungkin meningkat tak terduga, dan aplikasi mungkin memiliki umur yang lebih panjang dibandingkan dengan aplikasi internal. Jika layanan atau platform dapat digunakan oleh mesin, Anda mungkin memerlukan beberapa pengukuran. " Meramalkan peta jalan dan kebutuhan masa depan harus membantu mempromosikan beberapa opsi dan menyingkirkan yang lain.

Setelah Anda mempersempit pilihan, praktik terbaiknya adalah melakukan pembuktian konsep. Anda tidak memasak burger untuk 300 tanpa menguji resepnya.