Pengembangan cloud: 9 hal yang harus diketahui sebelum Anda terjun

Pengembangan dan pengujian aplikasi di cloud semakin populer, karena semakin banyak bisnis yang meluncurkan inisiatif komputasi cloud publik dan pribadi. Pengembangan cloud biasanya mencakup lingkungan pengembangan terintegrasi, komponen manajemen siklus hidup aplikasi (seperti manajemen pengujian dan kualitas, manajemen kode sumber dan konfigurasi, alat pengiriman berkelanjutan), dan komponen pengujian keamanan aplikasi.

Meskipun para eksekutif dan pengembang teknologi dengan pengalaman dalam pengembangan berbasis cloud mengatakan ada manfaat yang jelas untuk berkembang di lingkungan ini - seperti penghematan biaya dan peningkatan kecepatan ke pasar - mereka juga mewaspadai bahwa ada tantangan dan kejutan yang harus diperhatikan.

[Dapatkan penjelasan dan saran yang sungguh-sungguh yang Anda butuhkan untuk memanfaatkan komputasi awan secara nyata dalam laporan khusus PDF Selam Dalam Cloud Computing 21 halaman editor. | Ikuti perkembangan cloud dengan buletin Cloud Computing Report. ]

Seberapa umum perkembangan umum di cloud kemungkinan besar akan terjadi masih belum jelas. Tetapi analisis industri menunjukkan itu sedang meningkat. Dalam catatan penelitian Februari 2011, Gartner mengatakan klien yang menghadiri simposium perusahaan pada tahun 2010 menyatakan "minat yang meningkat tajam" dalam komputasi awan untuk meningkatkan pengembangan dan pemeliharaan aplikasi Web kustom yang ada.

"Saya paling melihatnya dalam pembuatan prototipe dan pengembangan cabang paralel, tetapi ada juga pertumbuhan besar dalam ruang pengujian beban dan kinerja," kata Eric Knipp, analis riset utama di Gartner.

Jika Anda ingin menjelajahi pengembangan cloud untuk pertama kalinya, berikut sembilan jenis rintangan yang mungkin Anda temui dan saran tentang cara mengatasinya dari pengembang yang benar-benar telah melakukan pekerjaan tersebut.

Pengembangan cloud Gotcha 1: Cloud tidak selalu berfungsi seperti "dunia nyata"

Pengembang mungkin menemukan bahwa konfigurasi yang mereka gunakan dalam produksi sulit untuk direplikasi di layanan cloud. Misalnya, dengan aplikasi yang Anda kembangkan di cloud sebelum dijalankan kembali secara lokal, Anda mungkin perlu menguji sistem lama yang tidak dapat Anda salin begitu saja ke layanan cloud, kata Knipp: "Itu berarti mungkin ada banyak lebih banyak hal yang harus dihentikan oleh pengembang agar aplikasi uji coba aktif dan berjalan. "

Teknologi virtualisasi layanan dapat membantu, kata Knipp, dan pengembang dapat memanfaatkan penawaran pasar yang memungkinkan pengembangan beberapa cabang / paralel. Ambil contoh iTKO, yang menawarkan rangkaian perangkat lunak bernama Lisa yang membantu perusahaan memindahkan aplikasi perusahaan ke cloud.

Pengembang yang terbiasa dengan pengembangan noncloud mungkin juga mengalami kejutan saat membangun aplikasi Web di cloud. Misalnya, Greg Taylor, yang membuat aplikasi pendaftaran online untuk Asosiasi Pendidikan Musik Ohio, tidak menyangka bahwa ia memerlukan pemahaman yang menyeluruh tentang struktur database dan bagaimana pengguna akan berinteraksi dengannya saat ia membuat aplikasi.

Aplikasi ini, yang menangani pendaftaran artis musik sekolah dalam konten musik di seluruh negara bagian, menggunakan database MySQL sebagai back end dan Alpha Five 10.5 dari Alpha Software untuk front end. "Saya berasal dari latar belakang FileMaker Pro [dan] produk itu sangat pemaaf sehubungan dengan struktur database," kata Taylor. "Desain yang buruk masih bisa digunakan dengan jumlah keberhasilan yang masuk akal."

Tetapi mengembangkan dengan MySQL memaksa Taylor untuk sangat terorganisir sehingga aplikasi Web akan memiliki kinerja terbaik. Kembali ke struktur tabel untuk menambahkan lebih banyak bidang memakan waktu, karena ini melibatkan rotasi antara alat pengembangan yang berbeda, Navicat untuk MySQL dan Alpha Five untuk desain halaman Web yang sebenarnya, katanya. Alat pertama membuat struktur database, sedangkan yang kedua membuat halaman yang berinteraksi dengan pengguna untuk memasukkan dan mengedit informasi dalam database.

"Ini mungkin tidak menjadi masalah bagi pengembang yang memanfaatkan database yang telah dibuat," kata Taylor. "Mereka hanya akan menggunakan Alpha Five untuk mengembangkan halaman Web yang akan diakses pengguna. Dalam kasus saya, saya secara bersamaan mengembangkan database dan halaman Web, yang mengharuskan saya untuk beralih di antara alat pengembangan jika saya tidak merencanakannya. hati-hati. "

Untuk menghindari perjalanan bolak-balik yang sedang berlangsung itu, Taylor harus mengubah pendekatan pengembangan database-nya: "Dengan mengembangkan ERD [diagram hubungan entitas] yang jelas dengan semua bidang yang diperlukan terlebih dahulu, aplikasi Web saya efisien dan waktu pengembangan keseluruhan saya sangat berkurang."

Dalam beberapa kasus, alat pengembangan cloud berfungsi seperti dunia nyata - setidaknya, versi dunia nyata kemarin. Jeff Hensley, analis senior HRIS di DaVita, sebuah firma perawatan kesehatan yang mengkhususkan diri dalam dialisis ginjal, terkejut bahwa pengembang yang bekerja di cloud perlu menggunakan alat baris perintah, XML, dan SQL, "yang mengingatkan saya pada masa-masa DOS dulu." Dia mengharapkan pendekatan sekolah lama berubah seiring waktu seiring dengan peningkatan adopsi.

DaVita menggunakan platform pengiriman aplikasi berbasis cloud dan server yang dihosting untuk mengembangkan dan mengirimkan gudang data sumber daya manusia dan aplikasi intelijen bisnis.

Gotcha pengembangan cloud 2: Beberapa aplikasi tidak ideal untuk pengembangan di cloud

Misalnya, Dan Stueck, wakil presiden TI untuk Faith Educational Ministries, menghindari pengembangan aplikasi kelas atas di awan yang memiliki keamanan data ekstrim atau batasan peraturan, atau mengandalkan proyek pengkodean lama, seperti yang ada di Cobol. "Keduanya mungkin paling baik disimpan di rumah," katanya, "yang pertama karena masalah keamanan yang jelas, dan yang kedua karena masalah bahasa 'mati'."

Tempat Stueck menggunakan cloud adalah menjalankan server pengembangan di layanan cloud publik Amazon.com dan untuk membangun sistem informasi siswa, arsip transkrip siswa, dan aplikasi penjualan buku sekolah rumah di cloud.

Pengembangan cloud gotcha 3: Pengembang sering tidak menyukai wilayah cloud yang tidak dikenal

"Hal yang mungkin paling tidak terduga adalah seberapa baik keseluruhan proyek [pengembangan cloud] diterima oleh tim manajemen dan penjualan dan semua orang yang menggunakan sistem, [dan] betapa buruknya hal itu diterima oleh organisasi TI dan khususnya pengembang, "kata Mark Warren, kepala arsitek pada 20/20.

Orang-orang TI sudah terbiasa bekerja dengan Microsoft .Net, SQL Server, Java, dan platform pengembangan tradisional lainnya, kata Warren, dan Force.com adalah model yang sama sekali berbeda. "Jika Anda tahu SQL dan Java, itu adalah kotak peralatan Anda, dan Anda tidak akan ingin menggunakan platform yang sepenuhnya asing ini," kata Warren.

Hasilnya, aplikasi penjualan dikembangkan terutama oleh staf bisnis, bukan oleh pengembang TI. Hal itu membawa tantangan tersendiri, kata Warren, yang terbesar adalah kurangnya pemahaman di antara para pebisnis tentang manajemen perubahan dan tata kelola TI. "TI memiliki tingkat disiplin yang tidak biasa diterapkan oleh pebisnis pada mereka," kata Warren. "Kami harus mempercepat mereka dalam masalah manajemen perubahan."

Adapun untuk mengatasi keengganan orang-orang teknologi untuk berkembang di lingkungan cloud, ada program yang dapat diterapkan TI untuk membantu mengadopsi komputasi cloud secara internal, kata Warren. "Pelatihan tentu merupakan metode yang baik untuk memfasilitasi," katanya. "Namun, kecuali budaya TI terbuka untuk metode dan teknologi baru, perubahan organisasi [mendapatkan pengembang baru] mungkin satu-satunya pilihan."

Pengembangan cloud Gotcha 4: Kurangnya dokumentasi menghalangi developer cloud

"Saya pasti berharap hal itu berubah seiring dengan meningkatnya permintaan dan semakin banyak perusahaan mulai mengadaptasi konsep cloud," kata Hensley. "Kami mampu melawannya dengan bermitra dengan sebuah perusahaan konsultan."

Gotcha pengembangan cloud 5: Masalah jaringan dapat mengganggu lingkungan cloud pribadi

Embarcadero menggunakan pusat data virtualnya untuk membangun dan menguji aplikasi. "Untuk cloud pribadi internal, kami memiliki beberapa opsi: memilih tanggal / waktu yang dijadwalkan, dan menentukan server mana yang dilakukan dalam urutan tertentu," kata Intersimone. "Ada proses build otomatis dan uji asap otomatis yang berjalan sepanjang waktu di cloud pribadi utama kami dan juga di kantor pengembangan regional."

Untuk mendapatkan lebih banyak lingkungan yang tersedia, Intersimone mengatakan dia sedang mencari wadah cloud dan penawaran jaringan pribadi virtual dari CohesiveFT yang dapat dipasang di awan publik dan pribadi untuk menyediakan penskalaan, kegagalan, pemulihan bencana, dan kesiapan bencana sesuai permintaan.

Masalah lain yang dapat memengaruhi pengembangan dan pengujian melibatkan penundaan dan latensi jaringan serta ukuran pipa jaringan, terutama di bagian dunia tertentu. Embarcadero memiliki pusat penelitian dan pengembangan di Scotts Valley, California, Monterey, California, Toronto, St. Petersburg, Fla., Dan Iasi, Rumania, ditambah beberapa tim dan individu yang lebih kecil di seluruh dunia.

Lingkungan pengembangan Embarcadero yang beragam secara geografis "mempersulit sinkronisasi check-in, build, dan pengujian otomatis," kata Intersimone. Untuk mengatasi beberapa ini, pengembang melakukan pembangunan lokal dan pembangunan regional, serta pada kode check-in, di server virtual yang tersedia untuk semua. Pengembang juga melakukan pembangunan lokal di mesin mereka sendiri. Embarcadero memastikan ini tidak tidak sinkron dengan versi master di awan pribadi dengan menggunakan Subversion, alat sumber terbuka untuk kontrol kode sumber.

"Saat build terjadi, pengujian otomatis dijalankan untuk memvalidasi build," kata Intersimone. "Kemudian pemberitahuan dikirim ke semua tim pengembangan dan build tersebut secara otomatis ditarik dari tembok China ke sejumlah besar mesin virtual uji otomatis di pusat pengembangan kami." Tes otomatis dan manual dilakukan pada build yang dihasilkan untuk memverifikasi status, dan email dikirimkan ke anggota tim lain setelah proses ini selesai. "Semua ini terjadi terus menerus selama masa pengembangan proyek," katanya.

Pengembangan cloud gotcha 6: Sangat mudah untuk membiarkan pengukur berjalan tanpa perlu di cloud

Masalah potensial lainnya adalah membuang-buang uang untuk biaya cloud. Pengembang dapat dengan mudah lupa atau mengabaikan untuk mematikan mesin virtual yang tidak mereka gunakan. "Saya telah mendengar dari beberapa klien yang membiarkan pengembang menjadi liar dengan sumber daya mesin virtual bahwa kadang-kadang pengembang membiarkan barang-barang tetap berjalan, katakanlah selama akhir pekan," kata Gartner's Knipp. "Saat berada di server internal yang dikapitalisasi, ini bukan masalah besar. Namun, jika menggunakan sumber daya yang disewakan dan diukur penggunaan seperti pada komputasi awan publik, ini hanya membuang-buang uang."

Knipp berharap ini menjadi tantangan baru bagi perusahaan saat mereka meluncurkan inisiatif cloud pribadi.

Meskipun ada sedikit risiko untuk mendapatkan tagihan yang besar dan tidak terduga untuk penggunaan mesin virtual developer di cloud pribadi, "dalam lingkungan IaaS pribadi yang swalayan, developer dapat menjalankan VM dan tidak pernah menonaktifkannya," kata Knipp. "Ini secara efektif akan memakan sumber daya dari mesin yang tidak digunakan secara efektif dan dapat mengakibatkan organisasi membeli terlalu banyak kapasitas karena perencanaan menjadi miring."

Pengembangan cloud gotcha 7: Lisensi cloud dapat berisi batasan penerapan yang mengejutkan

Di antara masalah non-teknis dengan cloud yang dapat berdampak pada pengembangan adalah pembatasan lisensi. Dua tahun lalu Kelly Services, agensi sementara nasional, memutuskan untuk menggunakan pengembangan berbasis cloud untuk banyak aplikasi buatannya, dengan platform Force.com dari Salesforce.com yang bertindak sebagai kendaraan pengiriman.

Pengembangan cloud telah membawa manfaat seperti waktu penyelesaian yang lebih cepat pada pengembangan aplikasi dan biaya yang lebih rendah, kata Joe Drouin, CIO di Kelly Services. Tetapi perusahaan juga mengalami beberapa masalah tak terduga dengan perizinan, khususnya mengenai jenis kursi pengguna yang dimilikinya dan batasan apa yang mereka bawa. Misalnya, kursi mungkin memiliki sejumlah objek yang dapat diakses pengguna. Akibatnya, "di beberapa titik kami terkejut dengan apa yang kami bisa atau tidak bisa lakukan" dengan pengembangan, kata Drouin.

Pengembangan cloud gotcha 8: Integrasi bisa lebih sulit untuk memecahkan masalah