Ulasan: IBM Bluemix meningkatkan Cloud Foundry

Ketika saya meninjau Cloud Foundry PaaS (platform sebagai layanan) musim panas lalu, saya berkonsentrasi pada implementasi open source, Pivotal, dan ActiveState. Dalam ulasan ini, saya akan melihat IBM Bluemix, PaaS multitenanted yang dihosting di SoftLayer, yang menggabungkan Cloud Foundry dengan UI online yang ditingkatkan dan layanan dari IBM dan pihak ketiga.

Layanan paling khas di Bluemix didasarkan pada Watson, sistem kognitif yang menyediakan pemrosesan bahasa alami, pembuatan dan evaluasi hipotesis, dan pembelajaran dinamis. Beberapa layanan dan integrasi lain di Bluemix mengisi celah dalam versi open source Cloud Foundry - misalnya, penskalaan otomatis, seluler, data besar, dan layanan integrasi perusahaan.

Perhatikan bahwa celah telah diisi tanpa mem-forking kode Cloud Foundry. Faktanya, Bala Rajaraman, CTO Bluemix, telah memberi tahu saya: "Kami tidak akan bercabang." Program baris perintah konfigurasi aplikasi cf yang saya instal untuk Cloud Foundry dan Pivotal CF open source sama dengan yang untuk Bluemix. Program baris perintah konfigurasi bosh PaaS yang saya instal untuk Cloud Foundry open source sama dengan yang digunakan teknisi Bluemix secara internal - tetapi pengguna Bluemix tidak perlu mempelajari omong kosong, karena maksud IBM dengan Bluemix adalah untuk melindungi pengguna dari administrasi PaaS, fokus pada layanan, dan izinkan pengguna untuk membuat aplikasi.

Saya menyetujui sikap ini. Sebagai seorang pengembang, saya merasa belajar bosh itu sebuah perjuangan, dan saya merasa tugas berat dalam mengonfigurasi PaaS harus diserahkan kepada operasi. Bagi saya, janji PaaS dan devops adalah konfigurasi dan pengelolaan infrastruktur yang tidak rumit untuk membantu membangun dan menerapkan perangkat lunak. Membuat pengembang menghabiskan sebagian besar waktunya pada kebutuhan operasional yang diperlukan untuk menyiapkan PaaS mengalahkan tujuan dasar memiliki PaaS. Pada saat yang sama, saya menyukai kemampuan untuk menjalankan satu VM "microcloud" PaaS secara pribadi di laptop untuk eksperimen, itulah sebabnya saya juga melihat nilai ActiveState Stackato dan image PaaS VM yang dapat diunduh.

Karena Bluemix dibangun di atas Cloud Foundry yang tidak dimodifikasi, Bluemix berbagi semua arsitektur Cloud Foundry: Droplet, DEA (Droplet Execution Agents), buildpack, dan sebagainya, yang berjalan di mesin virtual. Bagian Cloud Foundry ditampilkan dalam kotak VM biru muda di kiri bawah diagram arsitektur di bawah (Gambar 1).

Bluemix berbagi lebih banyak daripada arsitektur Cloud Foundry: Bluemix berbagi buildpack dan layanan Cloud Foundry yang tersedia di implementasi Cloud Foundry lainnya, sambil menambahkan beberapa miliknya sendiri. Kami akan memecah semua ini menjadi boilerplate, yang dikenal di tempat lain sebagai mulai cepat atau toko aplikasi; runtime, dikenal di tempat lain sebagai buildpacks; dan layanan. Bluemix mencakup layanan untuk Watson, seluler, pengembang, Web dan aplikasi, integrasi, manajemen data, data besar, keamanan, analisis bisnis, dan IoT (Internet of things). Saya akan mensurvei semuanya di bawah ini.

Berbagai pihak dapat mendukung layanan Bluemix: IBM, komunitas, atau perusahaan pihak ketiga. Layanan eksperimental gratis, tidak stabil, dan dapat berubah yang mungkin tidak kompatibel dengan versi sebelumnya. Jadi, mereka tidak direkomendasikan untuk produksi. Layanan beta gratis, tetapi belum diuji secara ekstensif di alam liar. Semua layanan Watson saat ini diklasifikasikan sebagai beta.

Pelat bluemix

Seperti yang Anda lihat pada Gambar 2, Bluemix saat ini menawarkan 13 paket "boilerplate" atau quick-start yang berbeda. Meskipun sebagian besar memiliki cita rasa IBM, itu tidak selalu buruk.

Beberapa boilerplate yang ditawarkan mungkin memerlukan penjelasan. Misalnya, Internet of Things Foundation Starter menyediakan lapisan data NoSQL JSON Cloudant (kompatibel dengan CouchDB) dan aplikasi Node-RED yang dihosting di SDK untuk runtime Node.js. Node-RED adalah alat untuk menghubungkan perangkat keras, API, dan layanan online. Node-RED Starter serupa, tetapi didukung komunitas.

Java Cache Web Starter menggabungkan Liberty untuk Java, profil WebSphere ringan, layanan DataCache, dan layanan Pemantauan dan Analisis. Pada level gratis, DataCache hanya 50MB, dan layanan Pemantauan dan Analisis tidak memiliki pemantauan dan diagnostik kinerja yang lebih dalam.

Boilerplate Cloud Seluler menggabungkan Node.js, Keamanan Aplikasi Seluler, pesan IBM Push, dan Data Seluler (dengan back end Cloudant multitenant). Ini termasuk SDK untuk Android, iOS, dan JavaScript. Pada level gratis, itu dibatasi pada penyimpanan 2GB, 1 juta pemberitahuan push sebulan, dan 375GB-jam per bulan. MobileFirst Services Starter serupa, tetapi menyertakan pemberitahuan push dan keamanan khusus untuk iOS 8.

Tiga pemodelan Web Pemodelan Pengguna memasangkan layanan Pemodelan Pengguna Watson dengan runtime dan beberapa kode sampel. Pemodelan Pengguna Watson menggunakan analitik linguistik untuk mengekstrak serangkaian kepribadian dan ciri sosial dari cara seseorang berkomunikasi, dengan tujuan untuk mempersonalisasikan komunikasi.

Vaadin adalah kerangka kerja aplikasi Web sumber terbuka untuk aplikasi Internet yang kaya. Vaadin starter menjalankan kerangka kerja di Liberty untuk Java dan menggunakan database DB2.

Bluemix runtime, alias buildpacks

Pemilihan runtime yang ditawarkan pada Bluemix mencakup tujuh buildpack bernama yang ditunjukkan pada Gambar 3, ditambah buildpack lain yang disetujui untuk Cloud Foundry. Enam dari runtime yang ditampilkan seharusnya sudah tidak asing lagi bagi Anda; ketujuh, Sinatra, adalah DSL (bahasa khusus domain) untuk membuat aplikasi Web di Ruby dengan cepat dan dengan sedikit usaha.

Buildpack PHP mendukung PHP 5.4, 5.5, dan 5.6; Nginx 1.5, 1.6, dan 1.7; dan Apache HTTPD 2.4. Versi Python yang didukung dalam buildpack PHP adalah 2.6.6, yang sebenarnya tidak terbaru. Buildpack Python, di sisi lain, mendukung selusin versi Pypy, serta beberapa lusin versi masing-masing dari Python 2 dan Python 3.

Buildpack komunitas untuk Cloud Foundry mencakup runtime Clojure, Haskell, Mono, dan Erlang. Praktis satu-satunya bahasa server aplikasi populer yang kompatibel dengan Linux yang saya tidak temukan didukung di Cloud Foundry adalah Perl.

Layanan Watson

Tujuh layanan Watson yang saat ini ditawarkan di Bluemix (Gambar 4) adalah Ekspansi Konsep, Identifikasi Bahasa, Terjemahan Mesin, Resonansi Pesan, Tanya Jawab, Ekstraksi Hubungan, dan Pemodelan Pengguna. Semuanya masih dalam versi beta. Saya menjelaskan Pemodelan Pengguna sebelumnya. Saya akan menutupi sisanya di sini.

Ekspansi Konsep menganalisis teks dan menafsirkan maknanya berdasarkan penggunaan dalam konteks lain yang serupa. Misalnya, ini dapat menafsirkan "Apel Besar" sebagai "Kota New York". Ini dapat digunakan untuk membuat kamus kata-kata dan konsep terkait sehingga eufemisme, bahasa sehari-hari, atau frasa yang tidak jelas dapat lebih dipahami dan dianalisis. Layanan Bluemix beta gratis ini memiliki kumpulan data dan domain yang telah ditentukan sebelumnya, jadi tidak berguna untuk produksi.

Layanan Identifikasi Bahasa mendeteksi bahasa di mana teks ditulis. Ini membantu menginformasikan langkah selanjutnya seperti terjemahan, suara ke teks, atau analisis langsung. Layanan ini dapat digunakan bersama dengan layanan Terjemahan Mesin. Saat ini, layanan tersebut dapat mengidentifikasi 25 bahasa.

Layanan Terjemahan Mesin mengubah input teks dalam satu bahasa menjadi bahasa tujuan bagi pengguna. Terjemahan tersedia dalam bahasa Inggris, Portugis Brasil, Spanyol, Prancis, dan Arab.

Layanan Message Resonance menganalisis draf konten dan menilai seberapa baik konsep tersebut dapat diterima oleh audiens target tertentu. Analisis ini didasarkan pada konten yang ditulis oleh audiens target itu sendiri, seperti penggemar tim olahraga tertentu atau orang tua baru. Meskipun versi mendatang akan memungkinkan pengguna menyediakan data komunitas mereka sendiri, analisis hari ini hanya dapat dilakukan terhadap orang-orang yang aktif dalam diskusi komputasi awan atau komputasi awan; hal ini membuat layanan beta tidak berguna untuk produksi di domain selain komputasi awan.

Layanan Tanya Jawab menginterpretasikan dan menjawab pertanyaan pengguna secara langsung berdasarkan sumber data primer (brosur, halaman Web, manual, catatan) yang telah dipilih dan dikumpulkan ke dalam tubuh data atau "korpus." Layanan mengembalikan tanggapan kandidat dengan tingkat kepercayaan terkait dan tautan ke bukti pendukung. Data terkini di Bluemix berfokus pada industri perjalanan dan perawatan kesehatan, menjadikannya tidak berguna untuk domain lain.

Ekstraksi Relasi mem-parsing kalimat menjadi berbagai komponennya dan mendeteksi hubungan antar komponen. Ia dapat memproses istilah-istilah baru (seperti nama orang-orang di feed berita) yang belum pernah dianalisis sebelumnya melalui analisis kontekstual. Komponen kalimat meliputi part of speech (kata benda, kata kerja, kata sifat, konjungsi) dan fungsi (subjek, objek, predikat). Layanan tersebut memetakan hubungan antar komponen sehingga pengguna atau mesin analitik dapat lebih mudah memahami arti kalimat dan dokumen individual.

Layanan beta dioptimalkan untuk artikel berita atau teks terkait berita lainnya dalam bahasa Inggris atau Spanyol, melalui API terpisah; Anda tidak dapat menggunakannya untuk domain sewenang-wenang dan berharap mendapatkan jawaban yang bagus. Seperti yang Anda lihat pada Gambar 5, tidak selalu memberikan jawaban yang baik bahkan untuk artikel berita; mungkin, setelah Anda dapat menyediakan set pelatihan Anda sendiri, Anda akan dapat menyesuaikan layanan ke domain yang Anda minati.

Secara keseluruhan, layanan beta Watson di Bluemix terlihat menggiurkan, tetapi mereka belum siap untuk prime time. Ini konsisten dengan cara mereka disajikan.

Layanan seluler dan aplikasi

Kami telah membahas enam dari delapan layanan seluler yang tersedia di Bluemix. Yang lainnya adalah Jaminan Kualitas Seluler, yang memungkinkan pengujian aplikasi seluler, validasi pengguna, dan umpan balik kualitas yang efisien dengan analisis sentimen; distribusi build over-the-air; pelaporan kerusakan otomatis; dan pelaporan bug dalam aplikasi dan umpan balik pengguna. Dan ada Twilio, layanan suara, perpesanan, dan VoIP pihak ketiga.

Ada 19 Web dan layanan aplikasi di Bluemix. Itu terlalu banyak untuk dibahas di sini, tetapi beberapa di antaranya patut disebutkan. RapidApps adalah layanan beta dengan fungsi terbatas yang mengklaim memungkinkan Anda "mengembangkan aplikasi Web dan seluler yang berpusat pada data dengan cepat menggunakan alat visual - tanpa coding". RapidApps seharusnya ditujukan untuk analis bisnis; tampaknya masih jauh dari matang pada saat ini, tetapi bisa menjadi menarik di masa depan.

Layanan Aturan Bisnis mengambil aturan bahasa natural yang Anda buat di Rule Designer dan mengeksekusinya saat dipanggil oleh aplikasi Anda. Ini juga tampaknya ditujukan untuk analis bisnis, tetapi dalam kondisi yang lebih baik daripada RapidApps pada saat ini.

Layanan pengembang

Delapan layanan devops di BlueMix termasuk lima dari IBM dan tiga dari pihak ketiga. Layanan Lacak dan Rencanakan memungkinkan Anda membuat cerita, tugas, dan cacat untuk mendeskripsikan dan melacak pekerjaan proyek, serta menggunakan alat perencanaan gesit untuk backlog, rilis, dan sprint produk. Layanan ini pada dasarnya memberi Anda Konser Tim Rasional untuk gudang Git atau Jazz Anda.

Layanan Delivery Pipeline memungkinkan Anda mengotomatiskan build dan penerapan, eksekusi pengujian, mengonfigurasi skrip build, dan mengotomatiskan eksekusi pengujian unit. Saya suka cara kedua layanan ini mengintegrasikan antarmuka Jazz dengan Bluemix.

Kami membahas layanan Pemantauan dan Analisis dalam konteks starter Java Cache Web. Auto-Scaling untuk Bluemix Add-on memungkinkan Anda untuk secara otomatis menambah atau mengurangi kapasitas komputasi aplikasi Anda. App User Registry memungkinkan Anda melindungi aplikasi sumber daya atau mengembangkan aplikasi klien Anda berdasarkan OAuth 2.0. Tiga layanan pengembang pihak ketiga adalah BlazeMeter, Load Impact, dan New Relic.

Layanan lainnya

Hanya ada dua layanan integrasi di Bluemix, tetapi keduanya menarik. Integrasi Cloud memungkinkan pengguna untuk mengintegrasikan layanan cloud dengan sistem rekaman perusahaan; itu mengekspos sistem back-end sebagai REST API yang akan digunakan oleh aplikasi. Layanan Kontainer eksperimental memungkinkan Anda menjalankan kontainer Docker di Bluemix, yang berpotensi membuka Bluemix hingga hampir semua hal.

Dari 10 layanan manajemen data di Bluemix, dua untuk MySQL (satu open source, satu toleransi kesalahan), dua untuk Postgres (ditto), tiga untuk database NoSQL, dan satu untuk DB2. Dua layanan manajemen data yang tersisa adalah Object Storage (beta, berdasarkan OpenStack Swift) dan DataWorks; yang terakhir mencakup API yang memuat data, membersihkan alamat pos AS, dan mengklasifikasikan data.

Kartu catatan angka Kemudahan penggunaan (20%) Luasnya dukungan (20%) Manajemen (20%) Dokumentasi (15%) Instalasi dan penyiapan (15%) Nilai (10%) Skor keseluruhan
IBM Bluemix 9 9 9 8 9 9 8.9