Apa perbedaan "komputasi awan" dari "klien-server"?

30

Menonton CEO untuk perusahaan "cloud computing" baru menggambarkan perusahaannya pada program TV keuangan hari ini, dia mengatakan sesuatu seperti "Cloud computing lebih unggul daripada komputasi client-server kuno".

Sekarang aku bingung. Dapatkah seseorang tolong jelaskan apa arti "cloud computing" berbeda dengan client-server?

Sejauh yang saya mengerti, komputasi awan lebih merupakan model layanan jaringan, sehingga saya tidak memiliki atau memelihara perangkat keras fisik. "Cloud" adalah semua hal back-end. Tapi saya mungkin masih memiliki aplikasi yang berkomunikasi dengan lingkungan "cloud" itu. Dan jika saya menjalankan situs web menyajikan formulir yang diisi pengguna, menekan tombol pada halaman, dan mengembalikan beberapa laporan yang dihasilkan oleh server web, bukankah itu sama dengan komputasi "cloud"? Dan apakah Anda tidak menganggap browser web saya sebagai "klien"?

Harap perhatikan pertanyaan saya khusus untuk konsep "cloud computing" sehubungan dengan "client-server".

Maaf jika ini pertanyaan yang tidak pantas untuk situs ini; itu yang paling dekat di alam semesta Stack dan ini adalah pertama kalinya saya di sini. Saya seorang timer lama, pemrograman sejak hari-hari mainframe di akhir 70-an.

BellevueBob
sumber
Ini adalah penyederhanaan tapi saya pikir perbedaan utamanya adalah di mana data disimpan. Di server klien, perusahaan ANDA menyimpan data sendiri. Dalam Cloud Computing, data Anda disimpan oleh penyedia aplikasi cloud. Ini memiliki keuntungan karena pengguna aplikasi cloud memiliki sedikit atau tidak ada pemeliharaan di ujungnya dan pengembang aplikasi cloud dapat memperbarui kode dan database mereka tanpa harus khawatir melanggar seseorang 3 revisi perangkat lunak di belakang. Tentu saja downside adalah bahwa pengguna aplikasi menyimpan data mereka di penyimpanan orang lain.
Dunk
3
Singkatnya, dapat dikatakan bahwa Client-Server adalah hype kemarin, sedangkan The Cloud adalah hype saat ini. :-)
JensG
Client-server untuk cloud computing karena kode assembly adalah untuk Excel.
mouviciel
1
Perbedaan antara mengendarai mobil sewaan dan mengendarai mobil milik Anda sendiri. Tidak ada perbedaan sama sekali kecuali Anda tidak perlu khawatir tentang servis!
James Anderson

Jawaban:

28

Sebenarnya, tidak ada 'Cloud'. Tidak dalam arti apa yang CEO itu semburkan. Ada internet, tentu saja. Ada layanan yang dihosting. Ada VPS. Ada sistem pengiriman konten. Kami (orang-orang teknis) telah beradaptasi dengan istilah tersebut untuk referensi model layanan tertentu yang di-host. Tetapi 'Cloud' di media konsumen sebagian besar adalah istilah pemasaran yang diterjemahkan secara bebas sebagai 'internet'. Lebih sering daripada tidak, itu juga berarti 'Saya dapat menagih Anda per bulan'.

Anda benar dalam pikiran Anda bahwa kedua istilah, 'cloud' dan 'client-server' tidak terkait. Memiliki layanan yang dihosting 'di awan' (Saya selalu ingin menambahkan dramatis 'dun-dun-daaaaaaa' setelah menggunakan kalimat itu) tidak membuat aplikasi client-server apalagi client-server-y. Misalnya, 'web' terutama menggunakan model client-server. Browser web adalah klien. Server web adalah server. Bahwa server web di-host 'di cloud' tidak mengubah fakta bahwa browser web / hubungan server web adalah client-server.

Jadi istilah client-server mendefinisikan hubungan antara dua entitas dalam suatu sistem. Di mana entitas secara fisik dihosting tidak relevan.

Pada dasarnya, Anda benar. Keduanya tidak sebanding.

GrandmasterB
sumber
Setidaknya ada dua jenis clud: Awan tingkat tinggi - tempat manajemen dan pembicaraan tentang - secara teknis dikenal sebagai "uap" atau "asap" (maka istilah "smokeware"), dan awan tingkat rendah - di mana server berada - secara teknis bernama "kabut". Maaf atas sinisme ini.
Emilio Garavaglia
21

"Cloud computing" adalah istilah selimut yang dimaksudkan untuk melakukan dua hal: pertama, untuk mengabstraksi semua kemungkinan penggunaan model klien-server di balik satu istilah, yang bertentangan dengan kasus penggunaan yang lebih spesifik seperti "file server", "server database", "server web", "server aplikasi" dll .; dan kedua, untuk abstrak arsitektur server itu sendiri, dalam hal perangkat keras, topologi, lokasi, dan bahkan kepemilikan.

Dalam model client-server tradisional, yang pasti masih umum digunakan saat ini, klien terhubung ke server yang melakukan pekerjaan tertentu. Server ini dapat meng-host database, atau serangkaian file sharing, atau halaman web. Ketika klien terhubung ke server itu, ada pemahaman implisit tentang jenis komunikasi dan transmisi data yang akan terjadi antara kedua komputer. Mungkin juga ada pemahaman oleh klien, atau pengguna akhir, tentang kemampuan perangkat keras server, dan batasannya. Ini relatif "kopling ketat" antara mesin klien dan servernya dapat menimbulkan masalah bagi sysadmin yang perlu mencatat server untuk pemeliharaan; semua aplikasi tergantung pada sumber daya yang disediakan oleh server ini harus diarahkan ke server lain,

Dalam model cloud, perangkat keras, topologi, pembagian kerja, dan bahkan jumlah mesin aktual yang terlibat semuanya disarikan di belakang satu titik akhir. Analogi ini dapat ditarik ke "aplikasi web" modern, sebagai lawan dari "situs web" generasi lama yang lebih statis. Kita mungkin menebak bahwa ada server aplikasi dan server DB di belakang layar, tetapi kita benar-benar tidak perlu peduli; server web, sebagai bagian dari tugasnya untuk melayani aplikasi lengkap bagi pengguna di luar "edge", menyediakan titik akhir terpadu yang memungkinkan akses terkontrol ke semua data dan layanan yang disediakan oleh mesin lain di balik pintu depan ini.

Hasilnya adalah bahwa, dengan titik akhir tunggal terpapar untuk menyediakan fungsionalitas aplikasi, itu semua yang harus diperhatikan oleh pelanggan aplikasi, bukan dari mana mendapatkan data, ke mana harus memanggil proses aplikasi jarak jauh ini dan itu , dll; itu berarti bahwa administrator dan arsitek dari penyedia layanan dalam cloud ini kurang lebih bebas untuk mengubah mesin, topologi, dan detail implementasi spesifik lainnya dari "layanan cloud" ini tanpa klien yang lebih bijak. Facebook dapat, jika dianggap bijaksana, membangun kembali seluruh sistem penyimpanan data dari awal menggunakan DBMS yang berbeda dan semua server baru, dan selama situs tersebut tetap tersedia selama masa transisi, tidak ada yang akan lebih bijaksana; pada kenyataannya, Facebook melakukan hal itu, berkali-kali,

KeithS
sumber
2
Seperti saya menghargai sinisme di balik pemasaran 'cloud' yang berisi jawaban GrandmasterB, yang ini adalah jawaban nyata.
Eric King
Saya menemukan ini sebagai jawaban terbaik!
Arsal
5

Bagian penting dari "komputasi awan" adalah perangkat manajemen penempatan.

Dalam penyebaran "klasik" orang memesan mesin khusus untuk aplikasi tertentu dan melakukan konfigurasi yang cukup diperbaiki.

Dalam lingkungan cloud ada lebih atau kurang perangkat keras standar dalam kumpulan dan API yang membuat dan mengonfigurasi mesin virtual di dalamnya dari beberapa bentuk templat. Dengan itu sistem yang salah dapat dengan mudah diganti, ditingkatkan atau diperkecil tergantung pada kebutuhan dan perangkat keras dialokasikan sesuai kebutuhan, een dengan cara otomatis.

Tentu saja admin yang tepat melakukan sebagian besar dari itu sebelumnya, tetapi selain pemasaran murni, ada fondasi API terstandarisasi (Aamzons AWS API yang juga ditawarkan oleh alat-alat seperti Eucalyptus untuk "awan pribadi") dan alat (yaitu boneka) yang muncul.

johannes
sumber
Sebagian besar dari ini adalah tentang "pemasaran" dan bukan teknologi aktual, seperti halnya hoo-haa tentang "Big Data".
BellevueBob
Anda lupa satu aspek besar "pemasaran". Pemasaran bukan hanya "iklan", tetapi juga "harga". Dan di situlah Cloud Computing berbeda dari Client-Server Computing. Ini juga kadang-kadang Utility Computing, karena harganya seperti utilitas (listrik, air ledeng). Tentu saja, model itu juga bukan barang baru, melainkan bagaimana harga mainframe dihargai.
Jörg W Mittag
2

Dalam arsitektur client-server 'tradisional' Anda memiliki sumber daya yang ditetapkan secara statis (atau setidaknya disajikan seperti itu - saya tidak memiliki pengalaman dari periode pra-cloud jadi tolong perbaiki saya jika saya salah dan bergantung pada pemasaran palsu). Server database disebut db.yourcompany.com dan server web Anda berkomunikasi dengannya. Jika Anda ingin menambah sumber daya, Anda dapat menambahkan server web khusus lainnya dan menyediakan penyeimbangan beban dll.

Di sisi lain stres awan telah dilakukan pada abstraksi dari tingkat yang lebih rendah dan menunjukkan bagaimana 'server' dibangun. Pada Misalnya Anda memiliki:

  • HAAS (Perangkat Keras Sebagai Layanan) - klien (perusahaan) mendapatkan komputer yang dihosting di mana mereka dapat menginstal OS yang mereka inginkan. Perbedaannya adalah bahwa mereka tidak benar-benar mendapatkan komputer tetapi mesin virtual di sebuah peternakan. Karena divirtualisasi, mereka tidak perlu peduli dengan detail level yang lebih rendah seperti jumlah daya komputasi, membayar tagihan terlepas dari apakah mesin digunakan, bagaimana terhubung, dll.
  • PAAS (Platform As A Service) - tingkat lebih tinggi - Anda menulis aplikasi yang entah bagaimana berjalan di suatu tempat. Karena API cukup umum, penyedia cloud dapat mengalokasikan sumber daya sesuai permintaan sehingga jika aplikasi Anda terkena slashdotted Anda akan membayar lebih banyak sumber daya daripada menderita DDOS yang tidak berbahaya.
  • SAAS (Perangkat Lunak Sebagai Layanan) - tingkat yang lebih tinggi lagi - Anda tidak menulis aplikasi - Anda menggunakannya. Anda tidak peduli bagaimana penerapannya atau sumber daya apa yang digunakannya. Ini tersedia di mana saja dan kapan saja.

Harap dicatat bahwa sementara dalam banyak kasus tersirat bahwa layanan aktual dialihdayakan ke perusahaan besar (misalnya Amazon atau Google), hal ini tidak perlu terjadi - perusahaan besar atau universitas menyebarkan cloud internal mereka sendiri untuk memungkinkan pengelolaan sumber daya yang lebih mudah. Ini memungkinkan untuk menambahkan sumber daya ke aplikasi yang dijalankannya untuk ditambahkan sesuai kebutuhan. Jika startup internal baru berhasil, mereka tidak perlu khawatir bahwa server kelebihan beban. Namun sebagai ekonomi skala memainkan peran biasanya dilakukan hanya ketika ada persyaratan khusus (misalnya tentang keamanan).

Dari perspektif pengguna itu transparan dan memiliki tampilan arsitektur client-server. Server web mungkin hidup 'di awan' saat menggunakan HTTP tua biasa. Masalah ide dan solusi memang berjalan kembali ke mainframe 50 - an dan saat ini mereka kembali lebih sebagai kontras dengan PC klien tebal.

Setelah mengatakan bahwa itu mungkin juga menjadi kata kunci dalam kalimat yang diberikan dan menyatakan bahwa perusahaan itu dinamis dan fokus pada kompetensi inti mereka sambil memungkinkan karyawan mereka.

Maciej Piechotka
sumber
1

Dapatkah seseorang tolong jelaskan apa arti "cloud computing" berbeda dengan client-server?

Tergantung perspektif Anda. Untuk bisnis, komputasi awan itu bagus karena (biasanya) memungkinkan Anda untuk lebih fleksibel dengan jumlah mesin yang mendukung layanan Anda. Fleksibilitas itu memungkinkan Anda untuk lebih responsif, yang seharusnya menghemat uang Anda. Bisnis juga dapat memanfaatkan membiarkan penyedia cloud melakukan backup, pemulihan bencana, keamanan fisik, dan semua hal infrastruktur lainnya yang tidak ingin mereka tangani. Ini biasanya mengarah pada penghematan dan peningkatan kualitas.

Dari perspektif konsumen, peningkatan kualitas koneksi dan keandalannya bagus. Beberapa penyedia cloud juga membantu mendistribusikan server mereka untuk membantu latensi konsumen.

Untuk programmer ... ini cukup banyak pemrograman client-server di mana server adalah sulit untuk mencapai dan Anda kadang-kadang perlu menggunakan beberapa API khusus.

Telastyn
sumber
-1

Saya pikir itu adil untuk mengatakan bahwa "cloud computing" dan "client-server" sangat mirip. Dari sudut pandang saya, komputasi awan tampaknya lebih mengandalkan server daripada model "client-server". Secara teori, beberapa bentuk komputasi awan dapat terjadi terlepas dari koneksi klien. Manfaat aplikasi yang hanya berjalan di cloud tanpa komunikasi klien sepertinya tidak terlalu membantu, jadi masuk akal untuk membuat beberapa bentuk komunikasi klien ke server itu.

Pada dasarnya saya pikir sebagian besar bergantung pada di mana mayoritas daya komputasi Anda sedang dilakukan. Server umumnya memiliki spesifikasi yang lebih baik, dalam hal perangkat keras dan daya komputasi, daripada komputer pengguna standar untuk sekadar mengelola banyak koneksi klien dan operasi bersamaan untuk melayani koneksi tersebut. Cloud computing menggunakan ini sebagai keuntungan dengan memindahkan apa yang biasanya menjadi kode yang dijalankan klien ke server dan memungkinkan klien untuk menjadi "bodoh" mungkin. Sehingga membutuhkan lebih sedikit sumber daya pengguna, untuk menangani jenis operasi yang sama.

Mungkin bukan jawaban terbaik, tapi itulah yang saya lihat.

StMotorSpark
sumber
2
Saya tidak setuju. Web menggunakan model klien-server. Browser web adalah klien. Server web adalah server. Bahwa server web mungkin duduk 'di awan' tidak relevan. Kedua istilah itu tidak sebanding.
GrandmasterB
Bagi saya mereka dapat dibandingkan hanya karena saya melihatnya pada dasarnya sama, kecuali di mana mayoritas komputasi dilakukan. "Cloud Computing" dalam pikiran saya adalah sama, kecuali bahwa itu bergantung pada sedikit dukungan komputasi dari klien.
StMotorSpark