Perangkat Lunak sebagai Layanan – Panduan untuk Mengubah Produk Perangkat Lunak Anda menjadi Layanan

Ada permintaan pasar yang berkembang untuk aplikasi perusahaan yang lebih ekonomis dan efisien untuk pasar global yang terus berkembang. Kombinasi Internet di mana-mana dan ketersediaan dan legitimasi perangkat lunak open source menciptakan peluang dan ekonomi yang substansial bagi vendor perangkat lunak untuk memberikan Perangkat Lunak sebagai Layanan (SaaS).

Perangkat Lunak sebagai Layanan adalah model di mana vendor perangkat lunak menyediakan versi Internet dari aplikasi mereka (in-house atau di situs pihak ke-3 yang dikelola) yang diakses oleh pelanggan dari situs web dan dibayar berdasarkan, dasar proyek atau berlangganan.

Model SaaS menawarkan manfaat signifikan bagi vendor baca disini dan pelanggan mereka. Model SaaS menawarkan kepada pelanggan harga berbasis langganan atau penggunaan per-efektif, menghilangkan kebutuhan untuk pengeluaran modal besar untuk membeli lisensi perangkat lunak yang berkelanjutan. Ini juga menghilangkan pengeluaran awal dan biaya yang sedang berlangsung dan risiko menginstal, mendukung dan memelihara perangkat keras internal dan staf TI terkait. Selain itu, akses pengguna dan kinerja aplikasi dapat ditingkatkan secara dramatis dengan sistem 24×7 berbasis Internet, sesuai permintaan. Model SaaS membuka pasar baru bagi vendor perangkat lunak. Perusahaan perangkat lunak yang mapan dapat memperluas jangkauan pasar mereka dengan menawarkan solusi SaaS untuk perusahaan kecil dan menengah. Manfaat lain termasuk keuntungan finansial dari aliran pendapatan berulang yang dapat diprediksi dan memperkuat hubungan dengan pelanggan. Vendor perangkat lunak bermigrasi ke atau mengembangkan produk sejak awal karena penawaran SaaS akan memiliki keunggulan kompetitif yang signifikan ketika bersaing dengan vendor model lisensi tradisional.

Menyadari manfaat dari model SaaS mungkin memerlukan perubahan mendasar pada model bisnis vendor perangkat lunak, arsitektur perangkat lunak, dan struktur operasional. Buku putih ini memberikan tinjauan umum tentang masalah yang terkait dengan aplikasi perangkat lunak itu sendiri dan pertimbangan pengembangan yang terkait dengan pindah ke model SaaS.

Waktu adalah esensi. Seperti halnya model bisnis baru, hadiahnya sering masuk ke pendatang pasar awal. Mempercepat waktu ke pasar penyebaran perangkat lunak Anda sangat penting untuk kesuksesan bisnis Anda. Alih-alih modifikasi produk untuk mengimplementasikan penawaran SaaS Anda, dengan bantuan tim layanan ahli, dan melibatkan perusahaan pengiriman layanan sesuai permintaan yang optimal akan mempercepat waktu-ke-pasar Anda dan memastikan waktu-on-budget, on-budget, on-scope pelaksanaan.

Tantangan Mengubah Perangkat Lunak Anda

Meskipun ada banyak manfaat dalam menyediakan Perangkat Lunak sebagai Layanan, perusahaan perangkat lunak tradisional mungkin menghadapi tantangan dalam pindah ke model ini. Pertama, perangkat lunak Anda harus berkemampuan web dengan semua fungsi dilakukan oleh pengguna menggunakan browser web. Jika Anda memiliki aplikasi server-klien, Anda harus mengganti fungsionalitas yang diterapkan pada klien dengan HTML, dan mungkin teknologi lainnya (XML, Java, dll.), Yang dapat ditampilkan oleh browser web melalui Internet. Selanjutnya, untuk mendapatkan efisiensi operasional, perangkat lunak Anda harus multi-instance. Anda berpindah dari satu instance ke multi instance dengan memuat banyak salinan perangkat lunak Anda pada satu set server. Multi-instance memungkinkan Anda untuk berbagi biaya server di beberapa pelanggan. Peningkatan produktivitas dan ekonomi tambahan dapat diperoleh dengan pindah ke SaaS multi-penyewa, atau mengganti perangkat lunak komersial berpemilik dengan perangkat lunak sumber terbuka. Layanan web memberikan peluang untuk integrasi dengan aplikasi lain dan aliran data.

Aplikasi Mesin Virtual Tunggal

Aplikasi klien / server tradisional adalah turunan tunggal. Mereka membutuhkan perangkat lunak yang harus diinstal pada komputer pengguna untuk melakukan perhitungan dan menyediakan fungsionalitas. Klien sering menerapkan fitur yang sangat interaktif dan memungkinkan pengguna untuk memanipulasi data dalam jumlah besar. Ini bisa sangat sulit diimplementasikan dalam HTML tradisional, permintaan / balasan antarmuka aplikasi web yang membutuhkan penyegaran halaman yang sering. Bermigrasi dari klien / server ke model SaaS berbasis Internet sangat tergantung pada aplikasi spesifik Anda.

Saat ini, teknologi Rich Internet Application (RIA) baru tersedia dari Macromedia, Laszlo Systems dan lainnya yang memberikan tampilan dan fungsi aplikasi web kepada klien dan fungsionalitas aplikasi desktop atau klien. RIA hanya memerlukan sedikit atau tidak ada perangkat lunak yang diinstal pada komputer klien pengguna. Yang paling dibutuhkan adalah plug-in browser kecil atau applet Java. Perubahan mendasar pada antarmuka pengguna ini mengubah aplikasi klien / server Anda menjadi aplikasi web penyewa tunggal.

Aplikasi web dapat berupa instance tunggal atau multi instance. Aplikasi web satu-contoh biasanya diinstal pada server khusus di pusat data pelanggan dan hanya digunakan secara internal, di belakang firewall. Pada waktu instalasi, perangkat lunak Anda dikonfigurasikan untuk menggunakan sumber daya sistem apa pun yang diperlukan dan tersedia di komputer.

Ketika aplikasi web ditawarkan sebagai layanan melalui Internet, aplikasi itu harus di-host di pusat data profesional. Ini akan meminimalkan biaya dan memberikan layanan berkualitas tinggi kepada pelanggan Anda. Jika Anda memiliki aplikasi instance tunggal dan lebih dari satu pelanggan, satu pendekatan adalah menginstal instance baru dari perangkat lunak Anda pada server khusus untuk setiap pelanggan. Ini mungkin berfungsi untuk beberapa pelanggan atau beberapa akun besar, tetapi tidak dapat mengukur secara efektif untuk sejumlah besar pelanggan. Ini juga tidak dapat digunakan untuk pelanggan kecil dan menengah yang tidak mampu membayar biaya pengaturan.

Pindah dari Tunggal ke Banyak Instance

Alternatif untuk masing-masing server khusus pelanggan adalah menginstal beberapa salinan perangkat lunak Anda pada satu set server. Ini disebut multi-instance. Multi-instance memungkinkan Anda untuk berbagi biaya server di beberapa pelanggan. Sebagian besar aplikasi bisnis menggunakan database dan setiap salinan tambahan dari perangkat lunak yang diinstal memerlukan instance database baru juga.

Menginstal banyak salinan perangkat lunak Anda pada satu set server mungkin tidak semudah kedengarannya. Prosedur instalasi perlu dimodifikasi sehingga setiap instance diinstal tanpa mengganggu alokasi sumber daya atau keamanan salinan perangkat lunak lain yang sebelumnya diinstal.

Ada batasan jumlah instance yang dapat diinstal dan pada akhirnya sumber daya sistem akan dikonsumsi. Sumber daya sistem termasuk memori bersama, semafor proses, dan parameter sistem operasi internal lainnya. Jadi pertanyaannya menjadi, “Berapa banyak salinan perangkat lunak Anda dapat Anda instal di server?”

Jelas, Anda dapat terus menginstal contoh perangkat lunak Anda sampai sumber daya habis. Namun, Anda juga harus mempertimbangkan kinerja sistem yang sedang dimuat oleh pengguna. Biasanya ada jumlah maksimum pengguna simultan perangkat lunak Anda harus mendukung dan persyaratan minimum kinerja atau waktu respons yang harus dipenuhi untuk memenuhi komitmen pelanggan.

Jawaban akurat untuk “Berapa banyak salinan perangkat lunak Anda dapat Anda instal di server?” pertanyaan diperoleh dengan menguji perangkat lunak saat Anda menambahkan contoh tambahan. Ini paling baik dilakukan dengan alat perangkat lunak pengujian otomatis yang dapat mensimulasikan jumlah pengguna yang diinginkan yang menempatkan beban pada sistem.

Proses pengujian adalah untuk menentukan jumlah instance yang optimal dan kinerja yang dihasilkan. Ini dilakukan dengan menginstal instans tambahan aplikasi Anda, dan dengan hati-hati memonitor sumber daya sistem dan menjalankan tes beban pengguna menggunakan pemodelan lalu lintas variabel untuk menentukan titik di mana pengembalian berkurang.

Proses memaksimalkan jumlah instance pada server dapat memakan waktu satu hingga tiga minggu tergantung pada ukuran dan kompleksitas sistem Anda, kualitas proses instalasi Anda, apakah Anda telah membuat skrip dan prosedur pengujian pemuatan pengguna secara otomatis.

Perubahan kode minor mungkin diperlukan untuk pindah ke multi-instance. Misalnya, jika aplikasi Anda membaca dan menulis file dengan nama file yang dikodekan dan lokasi pada disk, maka file tersebut harus dibuat di lokasi yang berbeda untuk setiap instance untuk menghindari konflik antara setiap instance. Masalah-masalah ini akan ditemukan dan perubahan perlu dilakukan selama satu hingga tiga minggu.

Langkah Selanjutnya – Meningkatkan Fungsi dan Mengurangi Biaya

Setelah perangkat lunak Anda berjalan efektif sebagai aplikasi SaaS multi-instance, Anda mungkin ingin mengejar arsitektur multi-tenant. Dalam satu contoh, arsitektur multi-penyewa, banyak pelanggan berbagi satu contoh perangkat lunak Anda. Migrasi dari multi-instance ke multi-tenant dapat menjadi proyek yang signifikan dan bahkan mungkin memerlukan penulisan ulang aplikasi Anda dari bawah ke atas. Efisiensi yang diperoleh dalam pindah ke multi-tenancy perlu diperiksa dengan cermat. Anda mungkin menemukan sumber daya Anda dihabiskan lebih baik dengan cara lain.

Langkah lain yang mungkin dilakukan adalah berfokus pada mengeluarkan biaya dari model Anda. Banyak aplikasi memiliki ketergantungan pada database eksklusif yang mahal dan / atau middleware. Penghematan yang signifikan dapat diwujudkan dengan bermigrasi ke alternatif yang lebih murah atau open source. Investasi di sini mungkin memberikan penghematan yang signifikan dalam biaya operasi yang akan transparan bagi pengguna akhir Anda dan sangat bermanfaat bagi keuntungan Anda.

Anda mungkin juga mempertimbangkan untuk menambahkan layanan web untuk komunikasi antar-proses. Ini akan sangat menarik jika aplikasi Anda merupakan bagian dari alur kerja dengan informasi yang diteruskan ke atau dikumpulkan-dari aplikasi lain. Mendesain dengan mempertimbangkan layanan web akan meminimalkan persyaratan integrasi jangka panjang.

Mesin Virtual Tunggal, Aplikasi Web Multi-Tenant

Perusahaan perangkat lunak telah membuat aplikasi web selama lebih dari sepuluh tahun sekarang. Ini sering diinstal pada Intranet pelanggan dan hanya digunakan secara internal, di belakang firewall. Perangkat lunak tunggal ini digunakan hanya oleh satu pelanggan. Ini adalah single-instance dan single-tenant.

Anda melihat di atas bagaimana Anda dapat menginstal dan menguji perangkat lunak Anda untuk membuatnya multi-instance – memiliki beberapa salinan yang berjalan pada satu server. Namun, setiap salinan adalah aplikasi web penyewa tunggal.

Aplikasi web penyewa tunggal dapat dimodifikasi untuk mendukung beberapa penyewa pelanggan dengan contoh yang sama. Aplikasi web multi-penyewa meminimalkan jumlah perangkat keras yang dibutuhkan untuk mendukung banyak pelanggan. Selain itu, pelanggan dapat mengatur sendiri penggunaan perangkat lunak Anda dengan mendaftar akun dan memasukkan informasi pembayaran. Ini meminimalkan, dan seringkali menghilangkan, jumlah dukungan yang diperlukan untuk mengatur pelanggan baru.

Salah satu modifikasi untuk mendukung multi-tenant adalah pembuatan antarmuka pengguna untuk penyediaan akun pengguna dalam sistem. Modifikasi lain, tergantung pada persyaratan untuk integrasi dengan sistem perusahaan lain, adalah antarmuka LDAP untuk penyediaan dan administrasi akun pengguna yang nyaman. Teknologi basis data modern dapat memungkinkan duplikasi cepat model data sehingga setiap pelanggan memiliki salinannya sendiri dari setiap tabel dalam basis data. Ini adalah cara yang elegan untuk memisahkan data pelanggan ketika disimpan dalam instance database tunggal yang digunakan untuk layanan.

Template untuk konfigurasi perangkat lunak harus disediakan untuk mempercepat penyesuaian dan adopsi layanan oleh pelanggan baru. Template mendukung berbagai skenario penggunaan sistem oleh pelanggan.

Dasbor manajemen sistem yang menunjukkan penggunaan sistem oleh semua penyewa mungkin diperlukan. Suatu mekanisme harus tersedia untuk mengukur penggunaan sistem untuk keperluan penagihan serta memonitor beban sistem. Akun administratif untuk tujuan dukungan pelanggan mungkin juga perlu diterapkan.

Mungkin perlu untuk meningkatkan keandalan back-end, menggunakan teknologi database untuk mengimplementasikan server paralel di lokasi yang jauh secara fisik, untuk memastikan waktu yang konstan selama periode bencana alam atau buatan manusia.

Mempertahankan Kinerja Aplikasi Web Multi-Tenant Anda

Aplikasi multi-tenant harus berurusan dengan beberapa masalah yang tidak diucapkan dalam sistem single-tenant dan client / server. Karena sistem multi-tenant tersedia melalui Internet publik, penggunaannya mungkin tidak dapat diprediksi. Karena itu, perencanaan permintaan harus dilakukan dengan lebih hati-hati. Sistem harus diinstrumentasi untuk mendeteksi peningkatan penggunaan sehingga perangkat keras dan bandwidth tambahan disediakan untuk mempertahankan tingkat layanan.

Mengurangi Biaya dengan Berpindah ke Open Source

Banyak pengembang perangkat lunak yang agnostik tentang server aplikasi dan perangkat lunak database yang digunakan oleh aplikasi mereka. Pelanggan sering menentukan pilihan-pilihan ini. Jika pelanggan Anda ingin menggunakan Oracle sebagai basis data, maka Anda harus mendukung pilihan populer ini. Perangkat lunak Anda harus memiliki modul untuk mendukung setiap basis data secara teknis. Dari segi bisnis, Anda meneruskan biaya lisensi basis data kepada pelanggan akhir, jika mereka belum memiliki lisensi.

Tetapi basis data apa yang harus Anda pilih untuk perangkat lunak Anda ketika ditawarkan sebagai layanan? Mungkin tidak diperlukan fitur teknis dari basis data komersial yang mahal. Selain itu, ekonomi menawarkan perangkat lunak Anda sebagai layanan dapat menghalangi biaya biaya lisensi database komersial.

Oleh karena itu, banyak perusahaan yang mengonversi perangkat lunak mereka ke layanan akan memilih salah satu dari database open source yang murah atau tanpa biaya yang tersedia saat ini. Pilihan basis data ini sekarang banyak digunakan dan kuat. Fitur-fitur canggih seperti redundant clustering dan kemampuan backup otomatis menyaingi database komersial.

Jika aplikasi Anda belum mendukung salah satu dari database ini, beberapa masalah teknis perlu diatasi. Format dan sintaksis dari sebagian besar SQL yang digunakan untuk mengakses dan memanipulasi data dalam database adalah standar. Namun, hampir setiap vendor basis data memperluas SQL dan banyak aplikasi menggunakan ekstensi ini, seperti fungsi khusus untuk memodifikasi dan membandingkan data. Ada banyak variasi dalam cara masing-masing vendor basis data memperlakukan kursor, pemicu, tipe data, dan variabel paket. Jika Anda menggunakan ekstensi SQL dalam aplikasi Anda, Anda harus mengode ulang pernyataan SQL ini untuk bekerja dengan target basis data sumber terbuka.

Migrasi ke model pengiriman berdasarkan permintaan bekerja secara kohesi dengan penyebaran dan investasi teknologi yang bootstrap. Sekalipun perangkat lunak basis data sumber terbuka tidak memiliki semua fitur yang ingin Anda miliki atau jika berjalan sedikit lebih lambat, Anda mungkin tidak punya pilihan secara ekonomis saat pertama kali mulai menawarkan perangkat lunak sebagai layanan . Mungkin tidak masuk akal secara finansial bagi Anda untuk berinvestasi puluhan ribu dolar dalam lisensi basis data komersial sementara Anda hanya dapat membebankan beberapa ratus dolar per pelanggan. Seiring waktu, seiring bertambahnya basis pelanggan Anda, Anda dapat memilih untuk beralih ke basis data komersial. Sampai Anda mampu membelinya atau tingkat aktivitas tumbuh ke tingkat yang tinggi, solusi basis data sumber terbuka mungkin merupakan satu-satunya solusi praktis Anda.

Bagian lain yang relatif mahal dari perangkat lunak Anda adalah lisensi yang diperlukan untuk server aplikasi Java komersial. Ini adalah kategori perangkat lunak lain di mana beberapa opsi sumber terbuka ada. Secara umum, konversi ke server aplikasi sumber terbuka relatif mudah. Semua harus mematuhi spesifikasi untuk Java 2 Enterprise Edition (J2EE) dan kode Anda tidak perlu modifikasi apa pun.

Namun, ada perbedaan dalam cara Anda menginstal kode di server aplikasi. Proses instalasi dan pengaturan didokumentasikan dengan baik untuk semua server aplikasi sumber terbuka. Anda harus memodifikasi proses instalasi Anda untuk mengakomodasi persyaratan server aplikasi yang Anda gunakan.

Sekali lagi, kasus bisnisnya jelas. Komunitas pengguna yang besar telah membuat server aplikasi sumber terbuka menjadi pilihan yang aman. Biaya server aplikasi komersial sulit untuk dibenarkan ketika Anda baru memulai menawarkan perangkat lunak Anda sebagai layanan. Seperti halnya konversi ke-dan-dari database sumber terbuka, Anda selalu dapat beralih kembali ke server aplikasi komersial saat basis pelanggan Anda bertambah.

Layanan Web Untuk Transfer dan Integrasi Data

Ketika pelanggan menginstal perangkat lunak Anda di pusat data mereka sendiri, di belakang firewall mereka, mereka dapat mengintegrasikan perangkat lunak dengan aplikasi dan sumber data lainnya. Ketika Anda membuat perangkat lunak Anda tersedia sebagai layanan melalui Internet, integrasi tidak semudah itu. Otentikasi dan enkripsi harus disediakan untuk memungkinkan transfer data yang aman.

Pendekatan yang paling populer untuk transfer data dan integrasi melalui Internet publik adalah dengan layanan web, protokol SOAP dan WSDL. Jika aplikasi Anda memiliki Application Programming Interface (API) dalam bahasa asli seperti Java atau C ++, Anda harus membuat antarmuka layanan web yang menggunakan API untuk berkomunikasi dengan perangkat lunak Anda dan memungkinkan aliran data dua arah dengan dunia eksternal menggunakan SOAP.

Saatnya ke Pasar

Waktu adalah esensi. Ketika model SaaS baru diadopsi, pendatang awal akan memiliki keuntungan yang signifikan. Mengembangkan aplikasi Anda menjadi web-enabled, multi-instance akan memungkinkan Anda untuk menjadi pemain SaaS dengan cepat. Waktu untuk masalah pasar harus dipertimbangkan ketika memutuskan apakah akan bermitra dengan para ahli atau mengejar migrasi dan pembangunan infrastruktur di rumah.

Keuntungan Pengembangan Perangkat Lunak Outsourcing

Pengembang outsourcing, yang berpengalaman dengan SaaS, dapat membantu Anda bergerak maju dengan cepat dalam bermigrasi ke model baru ini. Mereka dapat menyediakan instalasi dan pengujian beban untuk menentukan pengaturan optimal untuk konfigurasi multi-instance Anda; sesuaikan perangkat lunak Anda untuk bermigrasi dari multi-instance ke multi-tenant; atau kembangkan aplikasi multi-instance atau multi-tenant dari aplikasi client / server Anda.

Yang penting, pengembang outsourcing dapat memodifikasi produk jasa pembuatan software yang ada tanpa mengganggu aliran fitur baru dan peningkatan yang diharapkan pelanggan Anda saat ini. Dengan hubungan outsourcing yang dikelola, Anda dapat terus fokus pada bisnis Anda saat ini sementara pengembang outsourcing membuat perangkat lunak untuk mendukung model bisnis baru Anda. Pengembang outsourcing akan memberi Anda penghematan biaya dan waktu dalam mencapai model SaaS.

Untuk mengambil keunggulan kompetitif di ruang Anda dengan memanfaatkan SaaS, Anda harus mempertimbangkan bekerja dengan vendor berpengalaman untuk memandu Anda melalui proses transformasi aplikasi Anda.

Tentang John Rowell

John Rowell adalah Chief Technology Officer dan pendiri OpSource, Inc . Selama dekade terakhir, Mr. Rowell telah memegang posisi manajemen senior dengan perusahaan hosting, telekomunikasi, dan layanan internet terkelola yang terkelola. Dia memiliki pengalaman luas dalam membangun, mengoperasikan, dan mengelola sistem infrastruktur TI global yang kompleks yang mampu berkembang untuk memenuhi persyaratan bisnis yang dinamis.

Leave a Reply

Your email address will not be published. Required fields are marked *