Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Web Development

Going Live Dengan Node 

by
Difficulty:BeginnerLength:MediumLanguages:

Indonesian (Bahasa Indonesia) translation by Nurul Fatimah (you can also view the original English article)

Dalam artikel saya sebelumnya saya berbicara tentang kegembiraan saya menemukan kerangka Express. Ekspres adalah apa yang membuat saya merasa seperti saya benar-benar dapat membangun sesuatu dengan Node dan bersenang-senang melakukannya. Dan sebenarnya - saya melakukan itu! Saya membuat beberapa contoh aplikasi web dan sangat menyenangkan. Tetapi akhirnya saya memutuskan sudah waktunya untuk mundur dan menjadi serius. Saya suka Node, saya suka Express, dan jika saya benar-benar akan berkomitmen untuk mempelajarinya, maka mengapa tidak mengambil langkah terakhir dan benar-benar membuat situs web yang nyata menggunakannya.

Hal lain yang saya pelajari sejak awal selama pendidikan Node saya (Nodacation?) Adalah bahwa harus berhenti dan memulai kembali aplikasi Node adalah rasa sakit yang nyata di belakang. Saya sukses besar menggunakan Nodemon oleh Remy Sharp. Ini akan melihat pembaruan pada kode Anda dan memulai kembali aplikasi Node Anda secara otomatis.

Ini terdengar sepele menurut saya, tetapi bagi saya, seluruh pengalaman saya dengan Node ada di baris perintah. Saya hanya menjalankan node app dan menguji port 3000. Saya benar-benar tidak tahu apa yang terlibat untuk mendapatkan aplikasi yang sama dan berjalan di server nyata dan merespons domain. Dalam artikel ini saya akan menjelaskan dua upaya berbeda yang saya lakukan untuk memindahkan aplikasi Node ke dalam produksi. Tentunya ada lebih banyak cara (dan mencari lebih banyak artikel di sini di Nettuts +!) Jadi ingatlah ini adalah apa yang saya coba dan sukses dengan.


Mencoba Satu: Apache FTW!

Proses khas saya untuk mendorong situs ColdFusion baru adalah dengan hanya mendorong file saya melalui FTP dan secara manual mengedit file httpd.conf Apache saya untuk menambahkan server virtual baru.

Salah satu hal yang saya sebutkan di artikel saya sebelumnya adalah sebagian besar pengalaman saya dengan pengembangan sisi server melibatkan Adobe ColdFusion. Jika Anda belum pernah menggunakannya, maka salah satu fitur intinya adalah untuk mengintegrasikan dengan server web Anda (seperti PHP). Apa itu artinya saya dapat memberitahu server aplikasi untuk membiarkan Apache (atau IIS, dll) mengetahui bahwa permintaan apa pun untuk file ekstensi tertentu harus diserahkan ke server ColdFusion.

Jelas Node agak berbeda - Anda pada dasarnya mengambil alih peran server web. Jadi saya bingung bagaimana saya mengambil aplikasi Node dan mempublikasikannya di server produksi saya yang sudah ada. Proses khas saya untuk mendorong situs ColdFusion baru adalah dengan hanya mendorong file saya melalui FTP dan secara manual mengedit file httpd.conf Apache saya untuk menambahkan server virtual baru. (Jika saya menggunakan IIS itu akan hampir sama - kecuali saya akan menggunakan alat grafis mereka sebagai gantinya.)

Saya mulai dengan Googling pada topik dan menemukan beberapa tanggapan. Salah satu yang benar-benar membantu adalah artikel oleh Davy Brion, "Hosting Situs Node.js melalui Apache". (Untuk melihat bagaimana hal ini dapat dilakukan dengan IIS, lihat artikel mendalam Scott Hanselman.) Artikelnya memecahnya menjadi dua aspek - memastikan skrip Node Anda dijalankan ketika server boot dan mengkonfigurasi Apache. Saya mengabaikan aspek startup skrip karena solusinya melibatkan Linux dan server produksi saya menggunakan Windows. (Saya adalah penggemar OS X yang besar tetapi untuk beberapa alasan saya selalu merasa lebih nyaman untuk hosting di Windows. Tidak tahu mengapa, tetapi itu berhasil bagi saya. Pada dasarnya solusinya datang untuk memiliki proxy Apache permintaan (bolak-balik) antara dirinya dan aplikasi Node Anda. Berikut ini contoh yang saya gunakan untuk menguji:

Perhatikan bahwa ini sedikit berbeda dari contoh Davy. Anda ingin memastikan Anda telah mengaktifkan mod_proxy dan mod_proxy_http yang harus sesederhana memastikan bahwa mereka tidak dikomentari di file conf Anda. Akhirnya, saya memulai kembali Apache dan menambahkan entri ke file host lokal saya untuk domain yang saya sebutkan di atas. Dan itu berhasil!

Sekarang, sementara ini berhasil, saya akan menunjukkan bahwa banyak hasil yang akan Anda dapatkan dari Googling tentang topik ini akan membahas bagaimana orang-orang tidak berpikir ini adalah solusi yang sangat baik. Sejujurnya, saya mengharapkan untuk menjadi tuan rumah sebuah situs yang akan mendapatkan - paling-paling - seribu atau lebih hits sehari, jadi itu tidak terlalu mengkhawatirkan saya. Apa yang memprihatinkan saya adalah mengatur aplikasi saya sehingga itu dimulai secara otomatis, dan restart, pada Windows. Saya melihat beberapa solusi, tetapi sebelum saya menarik steker dan meluncurkan situs saya, saya memutuskan untuk menggali sedikit dan melihat apakah opsi lain dapat bekerja lebih baik untuk saya.


Mencoba Dua: Menemukan AppFog

AppFog_logo

Saya menemukan AppFog setelah membaca tentang hal itu dari rekan kerja saya. AppFog adalah layanan berbasis cloud (apa yang tidak hari ini) yang membuatnya mudah untuk meng-host aplikasi menggunakan berbagai mesin populer. Dari PHP ke Grails ke Ruby dan - tentu saja - Node. Seiring dengan dukungan untuk berbagai mesin, itu juga terintegrasi dengan baik dengan berbagai database dan penyedia SCM. Ini memiliki dukungan baris perintah yang hebat tetapi yang benar-benar menjual saya adalah Anda dapat mengujinya secara gratis. AppFog memiliki berbagai level layanan, tetapi Anda dapat menguji dengan URL jelek yang umum secara gratis, segera. Mari kita lihat seberapa cepat Anda dapat ditayangkan menggunakan AppFog.

Pertama - Anda ingin mendaftar. Setelah Anda menyelesaikan pendaftaran dan verifikasi, Anda jatuh ke konsol AppFog:

s1

Ada banyak hal di sini yang tidak akan kita bahas di artikel, tetapi untuk sekarang, cukup klik pada Apps.

s2

Untuk aplikasi pertama Anda, cukup tekan tombol New App yang mengilap. Sekarang Anda harus membuat keputusan. Di antara aplikasi pemula mana Anda akan melihat aplikasi Anda? Perhatikan bahwa untuk setiap aplikasi starter Anda benar-benar dapat melihat kode apa yang akan digunakan untuk menginisialisasi aplikasi Anda. Agar jelas, jika Anda memiliki aplikasi Node yang sudah ada, seperti yang saya lakukan, kode yang digunakan di sini tidak akan mengganggu. Anda hanya akan meniupnya nanti. Saya memilih Node Express.

s3

Selanjutnya Anda harus memilih bagaimana aplikasi Anda di-host. Saya akan jujur di sini dan mengatakan ketika saya pertama kali bermain dengan AppFog saya benar-benar tidak tahu apa yang harus dipilih di sini. Saya pergi dengan AWS US East karena saya lebih akrab dengan solusi AWS daripada HP atau Microsoft.

s4

Akhirnya, Anda diminta untuk memilih nama domain. Perhatikan bahwa Anda hanya memilih sebagian dari nama domain. Setelah Anda meningkatkan ke tingkat berbayar, Anda dapat menambahkan domain "nyata" ke aplikasi Anda. Tetapi untuk pengujian, ini baik-baik saja. Saya pergi dengan nettutshelloworld.

s5

Klik tombol Create App dan mundur saat AppFog pergi ke kota ...

s6

Setelah semuanya selesai, Anda masuk ke konsol administrasi utama untuk aplikasi Anda. Ada beberapa opsi yang tersedia di sini, termasuk kemampuan untuk menambahkan hal-hal seperti dukungan database dan paket penebangan. Anda juga dapat memulai, menghentikan, dan memulai ulang aplikasi Anda dari sini.

s7

Sebagai langkah terakhir, lanjutkan dan klik tombol Visit Live Site hanya untuk mengonfirmasi bahwa - ya - dalam waktu sekitar satu menit Anda telah menerapkan aplikasi Node ke web tanpa berkeringat:

s8

Woot! Ok, jadi bagian yang sulit dilakukan. Bagaimana kita mendapatkan aplikasi kita ke platform AppFog? Anda mungkin telah memperhatikan tombol "Download Source Code". Itu memberi Anda salinan aplikasi "benih" Node Express, tetapi kita ingin menerapkan aplikasi kita. Jika Anda membaca artikel saya sebelumnya, Anda akan ingat bahwa kita berakhir dengan aplikasi blog sederhana. Itu memiliki dua pandangan (daftar entri dan entri tertentu) berdasarkan daftar data blog statis. Dalam file zip yang dapat Anda unduh dari artikel itu, folder "blog4" adalah yang akan saya kerjakan.

Untuk menyebarkan kode ke AppFog Anda menggunakan program baris perintah sederhana, af. Alat ini dapat diinstal pada Windows, OS X, dan Linux. Petunjuk penginstalan dijelaskan secara terperinci di sini (https://docs.appfog.com/getting-started/af-cli) tetapi intinya bermuara pada:

Setelah memasang af, Anda dapat - untuk sebagian besar - hampir melupakan konsol AppFog. Tentu saja Anda harus kembali ke sana pada akhirnya, tetapi untuk situs produksi saya, saya jarang menggunakannya. Alat af mendukung - sejauh yang saya tahu - semua konsol mendukung juga. Untuk memulai, pertama Anda harus masuk.

s9

Proses masuk ini tampaknya berlangsung untuk sementara waktu, tetapi secara umum saya selalu login terlebih dahulu ketika saya mulai bekerja dengan aplikasi saya. Sekarang saya akan beralih ke folder yang berisi aplikasi saya.

s10

Sekarang untuk bagian yang keren. Mendorong kode Anda ke AppFog adalah sesederhana seperti mengeluarkan perintah pembaruan, seperti:

s11

Screenshot di atas tidak benar-benar memberi Anda gambaran tentang berapa lama proses itu berlangsung. Masing-masing garis itu dimuntahkan saat terjadi. Dalam pengujian saya, proses ini memakan waktu sekitar 10 detik. Aplikasi saya kecil sehingga jarak tempuh Anda dapat bervariasi. Jika Anda penasaran, ya, aplikasi saya tidak berfungsi selama proses ini. Dalam proses pembaruan 10 detik, downtime berjumlah sekitar 2 detik. Saya pikir itu baik-baik saja, tetapi jika ini mengganggu Anda, maka ada solusi yang sangat baik yang dijelaskan di blog AppFog: Cara memperbarui aplikasi AppFog Anda dengan ZERO downtime.

Apa itu bekerja? Lihat diri mu sendiri. Buka browser Anda ke http://nettutshelloworld.aws.af.cm/ dan Anda akan melihat blog yang indah, jika statis, saya buat:

s12

Apakah Itu Benar-Benar Itu?

Saat pertama kali saya melalui proses ini, saya hampir berteriak kegirangan. Aku tidak bisa percaya betapa sederhananya itu. Bagi saya, ini benar-benar "koneksi terakhir" antara menulis aplikasi Node dan benar-benar membagikannya dengan dunia. Tentu saja, ada beberapa keberatan yang saya temui. Yang pertama adalah bahwa ketika aplikasi saya bekerja seperti pada AppFog, Anda seharusnya mengikat port yang didengarkan melalui variabel lingkungan. Jadi saya harus mengubah baris ini:

Untuk ini:

Seperti yang saya katakan, aplikasi saya bekerja apa adanya, tapi saya kira 3000 mungkin tidak selalu tersedia, jadi Anda ingin memastikan Anda membuat tweak kecil ini. Jika Anda menggunakan layanan lain, seperti MySQL atau Mongo, maka Anda perlu melakukan modifikasi yang sama. (Meskipun dalam aplikasi produksi saya, saya belum memperbarui koneksi Mongo dan itu belum menjadi masalah. Tapi itu ada di daftar To Do saya!)

Jadi bagaimana cara kerjanya untuk saya? Untuk sebagian besar - sempurna. Saya sekarang telah meluncurkan dua situs di AppFog, Cookbook JavaScript dan CajunIpsum. Jika saya harus membuat satu kritik, itu akan menjadi yang pertama - dan hanya - waktu saya harus menghubungi dukungan, saya tidak senang dengan berapa lama waktu yang dibutuhkan untuk mendapatkan jawaban. Saya hanya memiliki satu permintaan dukungan sejauh ini, jadi saya berani bertaruh (atau berharap) bahwa itu adalah situasi yang tidak biasa.

Tiket dukungan saya sebenarnya yang mengarahkan saya pada apa yang akan menjadi artikel saya berikutnya - berurusan dengan kesalahan. Dalam artikel berikutnya saya akan berbicara tentang bagaimana saya belajar mengatasi kesalahan dalam Node dan bagaimana mendiagnosis crash dan downtime.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.