Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
oleh Jason Lee
Serangkaian tutorial ini menggunakan solusi sampel dengan tingkat kompleksitas yang realistis, bersama dengan skenario penyebaran perusahaan fiktif, untuk memberikan implementasi referensi dan memberikan tugas dan panduan konteks umum. Topik ini menjelaskan skenario tutorial dan memperkenalkan solusi sampel.
Deskripsi Skenario
Fabrikam, Inc., perusahaan fiktif, menciptakan solusi yang memungkinkan tim penjualan jarak jauh menyimpan dan mengambil informasi kontak dari antarmuka web.
Proses Application Lifecycle Management (ALM) di Fabrikam, Inc. memerlukan solusi untuk disebarkan ke tiga lingkungan server pada berbagai tahap proses pengembangan perangkat lunak:
- Pengujian pengembang atau lingkungan "kotak pasir".
- Lingkungan penahapan berbasis intranet.
- Lingkungan produksi yang menghadap internet.
Masing-masing lingkungan ini memiliki persyaratan konfigurasi dan keamanan yang berbeda, dan masing-masing menimbulkan tantangan penyebaran yang unik.
Infrastruktur Server Fabrikam, Inc.
Ini adalah infrastruktur pengembangan dan penyebaran tingkat tinggi di Fabrikam, Inc.
Stasiun kerja pengembang, infrastruktur kontrol sumber, lingkungan pengujian pengembang, dan lingkungan penahapan semuanya berada di jaringan intranet dalam domain Fabrikam.net. Lingkungan produksi berada di jaringan perimeter (juga dikenal sebagai DMZ, zona demiliterisasi, dan subnet yang disaring), yang diisolasi dari jaringan intranet oleh firewall. Ini adalah skenario penyebaran umum: Anda biasanya mengisolasi server web yang terhubung ke Internet dari infrastruktur server internal Anda melalui penggunaan firewall atau server gateway.
Dalam contoh ini:
- Server Team Foundation Server (TFS) 2010 dengan server build terpisah menyediakan fungsionalitas kontrol sumber dan integrasi berkelanjutan (CI).
- Lingkungan pengujian pengembang mencakup server web Internet Information Services (IIS) 7.5 dan server database SQL Server 2008 R2.
- Lingkungan produksi mencakup beberapa server web IIS 7.5 yang disinkronkan oleh server pengontrol Web Farm Framework (WFF), bersama dengan server database SQL Server 2008 R2. Dalam praktiknya, server database dapat menggunakan pengklusteran atau pencerminan untuk meningkatkan skalabilitas dan ketersediaan.
- Lingkungan penahapan dirancang untuk mereplikasi konfigurasi lingkungan produksi sedekat mungkin.
- Kebijakan isolasi firewall dan jaringan tidak mengizinkan penyebaran otomatis langsung dari intranet ke jaringan perimeter.
Konfigurasi masing-masing lingkungan ini dijelaskan secara lebih rinci dalam tutorial kedua, Mengonfigurasi Lingkungan Server untuk Penyebaran Web.
Peran Tim untuk ALM
Pengguna ini terlibat dalam membuat, mengelola, membangun, dan menerbitkan solusi Contact Manager:
Matt Hink adalah pengembang aplikasi web di Fabrikam, Inc. Dia adalah bagian dari tim yang mengembangkan solusi Contact Manager dengan menggunakan Visual Studio 2010. Matt memiliki hak administrator penuh pada server di lingkungan pengujian pengembang, yang memungkinkannya mengonfigurasi lingkungan untuk memenuhi kebutuhannya. Dia juga memiliki akses pengguna ke instans TFS Visual Studio 2010 di mana ia menyimpan kode sumber untuk solusi Contact Manager.
Rob Walters adalah administrator server untuk tim pengembangan Fabrikam, Inc. Rob memiliki akses administratif di server TFS sehingga ia dapat mengonfigurasi semua aspek TFS dan Team Build. Rob juga memiliki akses administratif ke server web pengujian dan penahapan dan bertindak sebagai administrator database (DBA) untuk server database di lingkungan pengujian dan penahapan. Rob telah mengonfigurasi Team Build di server TFS untuk melakukan tugas-tugas ini:
- Buat dan jalankan pengujian unit pada aplikasi setiap kali pengguna memeriksa file ke TFS. Ini disebut CI.
- Sebarkan aplikasi Contact Manager ke lingkungan pengujian secara otomatis setelah aplikasi lulus pengujian unit. Ini termasuk menerbitkan database ke server pengujian pada penyebaran awal dan pembaruan apa pun pada database setelah penyebaran awal.
- Sebarkan aplikasi Contact Manager ke lingkungan penahapan dalam proses satu langkah.
- Buat paket Web yang dapat digunakan administrator server Web dan DBA untuk menerbitkan aplikasi ke lingkungan produksi.
Lisa Andrews adalah administrator server yang bertanggung jawab untuk menyebarkan aplikasi ke server produksi Fabrikam, Inc. Dia memiliki akses baca ke berbagi di mana TFS Team Build menyimpan paket penyebaran web setelah membangun aplikasi Contact Manager. Dia juga memiliki akses administratif ke server web produksi sehingga dia dapat menyebarkan aplikasi ke produksi. Selain itu, ia bertindak sebagai DBA yang menyebarkan pembaruan database dan database ke server database di lingkungan produksi.
Solusi Contact Manager
Solusi Contact Manager dirancang untuk memungkinkan pengguna terdaftar dan masuk menambahkan dan mengedit informasi kontak melalui antarmuka web. Solusi Contact Manager terdiri dari empat proyek individual:
- ContactManager.Mvc. Ini adalah proyek aplikasi web ASP.NET MVC3 yang mewakili titik masuk untuk solusi. Ini menawarkan beberapa fungsionalitas aplikasi web dasar, seperti memberi pengguna kemampuan untuk membuat dan melihat detail kontak. Aplikasi ini bergantung pada layanan Windows Communication Foundation (WCF) untuk mengelola kontak dan database layanan aplikasi ASP.NET untuk mengelola autentikasi dan otorisasi.
- ContactManager.Database. Ini adalah proyek database Visual Studio 2010. Proyek menentukan skema untuk database yang menyimpan detail kontak.
- ContactManager.Service. Ini adalah proyek layanan web WCF. WCF mengekspos titik akhir yang memungkinkan penelepon untuk melakukan operasi buat, ambil, perbarui, dan hapus (CRUD) pada database Contact Manager. Layanan ini bergantung pada database Contact Manager dan rakitan ContactManager.Common.dll.
- ContactManager.Common. Ini adalah proyek pustaka kelas. Layanan WCF bergantung pada jenis yang ditentukan dalam perakitan ini.
Tinjauan lengkap tentang solusi dan persyaratan penyebarannya disediakan dalam tutorial pertama dalam seri ini, Penyebaran Web di Perusahaan.
Tugas Penyebaran
Ada beberapa tugas berbeda yang terlibat dalam penyebaran aplikasi ke lingkungan yang berbeda dalam organisasi besar. Ini adalah tugas utama yang dibahas tutorial:
Berikut adalah daftar setiap langkah dalam proses penyebaran dari perspektif pengguna yang dijelaskan sebelumnya dalam dokumen ini:
- Semua anggota tim meninjau solusi Contact Manager di Visual Studio 2010 untuk menentukan persyaratan dan masalah penyebaran utama.
- Matt Hink dapat menyebarkan solusi Contact Manager langsung dari stasiun kerja pengembang ke lingkungan pengujian pengembang, untuk melakukan pengujian awal logika penyebaran.
- Matt Hink menambahkan aplikasi ke kontrol sumber di TFS.
- Rob Walters membuat berbagai definisi build untuk solusi Contact Manager di Team Build. Satu definisi build menggunakan CI untuk menyebarkan solusi ke lingkungan pengujian pengembang setiap kali pengguna memeriksa kode baru. Definisi build lain memungkinkan pengguna memicu penyebaran ke lingkungan penahapan sesuai kebutuhan.
- Setiap kali pengguna memeriksa kode baru, Team Build secara otomatis membangun komponen solusi, menjalankan pengujian unit, dan menyebarkan solusi ke lingkungan pengujian pengembang jika build berhasil dan pengujian unit lulus.
- Saat pengguna memicu penyebaran ke lingkungan penahapan, solusi dimas dan disebarkan dalam proses satu langkah. Proses ini juga menghasilkan paket untuk penyebaran manual ke lingkungan produksi.
- Lisa Andrews menyebarkan aplikasi ke lingkungan produksi dengan mengimpor paket web yang dibuat secara manual di langkah 6.
Masalah Penyebaran Kunci
Solusi Contact Manager dan skenario Fabrikam, Inc. menyoroti berbagai masalah dan tantangan umum yang mungkin Anda temui saat menyebarkan solusi skala perusahaan yang kompleks. Contohnya:
- Anda harus dapat menyebarkan proyek ke beberapa lingkungan, seperti lingkungan pengembang atau pengujian, platform penahapan, dan server produksi. Solusi perlu disebarkan dengan pengaturan konfigurasi yang berbeda untuk setiap lingkungan.
- Anda perlu menyebarkan beberapa proyek dependen secara bersamaan sebagai bagian dari proses pembangunan dan penyebaran satu langkah atau otomatis.
- Anda harus dapat mendorong penyebaran dari proses otomatis. Misalnya, Anda ingin menggunakan proses CI untuk menyebarkan aplikasi web ke lingkungan penahapan saat kode baru dicek masuk.
- Anda harus dapat mengontrol proses penyebaran dan mengatur variabel penyebaran dari luar Visual Studio, karena pengembang tidak mungkin memiliki pengaturan konfigurasi yang benar atau kredensial yang diperlukan untuk setiap lingkungan target.
- Anda perlu menyebarkan proyek database berbasis skema dan mempertahankan data yang ada pada penyebaran berikutnya.
- Anda perlu menyebarkan database keanggotaan secara ad hoc tanpa menyebarkan data akun pengguna. Anda mungkin juga perlu memperbarui skema database keanggotaan yang disebarkan tanpa kehilangan data akun pengguna yang ada.
- Anda perlu mengecualikan file atau folder tertentu saat menyebarkan konten ke berbagai lingkungan target.
Selain itu, mengelola penyebaran ketika pembaruan sering dan bertahap menimbulkan beberapa tantangan tambahan. Contohnya:
- Anda menjalankan pengujian unit setiap kali pengembang memeriksa kode baru. Anda hanya ingin menyebarkan solusi jika kode lulus pengujian unit.
- Saat Anda menyebarkan aplikasi web ke lingkungan penahapan atau produksi, Anda ingin mengalihkan pengguna ke file app_offline.htm selama proses penyebaran.
- Anda ingin mencatat aktivitas penyebaran. Proses penyebaran harus mengirim pemberitahuan email tentang penyebaran yang berhasil atau gagal ke penerima yang ditunjuk.
- Jika penyebaran otomatis gagal, proses penyebaran harus mencoba kembali penyebaran saat ini atau menyebarkan paket web sebelumnya sebagai gantinya.