Cara mengatur lingkungan Pengembangan, Pementasan, Produksi, dan QA

8

Saya sedang dalam proses menyiapkan server baru untuk suatu organisasi. Apa standar atau praktik terbaik untuk menyiapkan lingkungan baru dengan Pengembangan, Pengujian, Pementasan, dan Produksi (atau saya terbuka untuk tingkat lain yang saya tidak kenal)? Selain itu, saya pernah mendengar organisasi memecah server menjadi SQL, Aplikasi, Server Web, dll. Di mana saya dapat menemukan contoh yang baik dari solusi yang mungkin untuk pengaturan server?

Apakah virtualisasi lingkungan ini di antara beberapa kotak fisik adalah praktik yang baik?

Saya telah mencari secara online beberapa ide tentang bagaimana organisasi lain mengatur lingkungan mereka, tetapi saya tidak menemukan sesuatu yang secara khusus membantu. Saya menyambut semua tautan yang dapat Anda tunjukkan kepada saya untuk membahas membangun solusi seluruh perusahaan untuk perusahaan kecil hingga menengah.

Saya baru saja menemukan tautan ini: http://dltj.org/article/software-development-practice/ Saya ingin mencari lebih banyak artikel seperti ini jika ada yang tahu ada artikel bagus yang bisa mereka tunjukkan.

Sebelum Anda memilih pertanyaan saya, kirimkan komentar untuk membiarkan saya mencoba menjelaskan lebih lanjut. Saya mungkin tidak cukup tahu untuk mengajukan pertanyaan yang tepat.

Melakukan perjalanan
sumber
2
Saya pikir hal pertama yang harus Anda lakukan adalah menjelaskan tugas aktual yang harus Anda penuhi. Untuk apa aplikasi itu? Berapa banyak beban yang dimilikinya? Perubahan apa yang menurut Anda akan Anda dapatkan? (Sebagai: Apakah Anda memerlukan 4 tingkatan, Dev, Tes, Panggung, Prod)
MichelZ
1
Syaratnya adalah menampung banyak (di bawah 50) aplikasi Intranet khusus. Ini semua ada di tumpukan Microsoft. Saat ini kami menggunakan Server Pengembangan Sql, dan Server Web lokal untuk pengembangan dan Server Sql terpisah dan Server Web yang menampung lingkungan pengujian dan produksi kami. Saya tahu hal-hal dapat dilakukan jauh lebih baik daripada apa yang kami lakukan saat ini, itulah sebabnya saya orisinalitas mengirimkan pertanyaan ini. Saya hanya tidak perlu tahu apa yang "lebih baik" dari pengalaman saya.
TreK
2
Bukan jawaban sendiri jadi saya akan memberikan komentar. Satu hal yang ingin Anda pastikan adalah bahwa Anda memiliki mekanisme (mis. Kunci API, validasi IP) untuk memastikan bahwa lingkungan pengujian Anda tidak dapat mengakses lingkungan Produksi Anda.
HTTP500

Jawaban:

8

Ini adalah pertanyaan yang cukup dimuat. Saran umum saya adalah memusatkan perhatian Anda pada pengelolaan kompleksitas dan memungkinkan sistem tumbuh secara organik.

Virtualisasi:

Anda benar-benar ingin menghindari penyebaran server, dan hari ini, semuanya tervirtualisasi. Pilih platform yang akan memungkinkan Anda untuk menambahkan server virtual dengan cepat, serta mengelolanya secara efisien. Satu tren yang pernah saya lihat adalah memiliki dua (misalnya) cluster AIX atau VMWare, satu untuk prod, satu untuk non-prod. Yang non-prod digunakan untuk semua lingkungan dev, pengujian, dan pementasan. Lingkungan ini sangat cocok untuk server web atau server aplikasi, tetapi saya akan mencoba untuk menghindari menempatkan database produksi yang besar dan berkembang sebagai VM (setidaknya di windows).

Basis data

Ini dapat dengan mudah lepas kendali kapan pun mereka perlu berbagi sumber daya dengan server lain. Selalu ada basis data yang berjalan pada OS khusus, tidak pernah dibagikan dengan aplikasi atau server web kecuali ada alasan yang sangat bagus untuk itu. Apakah Anda menggunakan VM atau perangkat keras adalah satu-satunya pertanyaan.

Anda ingin infrastruktur terukur yang tidak akan membatasi Anda jika Anda perlu, misalnya, pindah ke solusi berkerumun. Banyak basis data akan baik-baik saja dalam VM, tetapi untuk beberapa yang pada akhirnya akan membutuhkan lebih banyak tenaga kuda daripada nyaman untuk disediakan dalam lingkungan VM, Anda akan mendapati diri Anda berharap Anda akan menempatkannya pada perangkat keras mentah sebagai gantinya .

Jika Anda tidak berbicara tentang windows, maka beberapa panduan ini tidak akan relevan. Sebagai contoh, praktik yang diterima umum untuk menempatkan basis data yang tumbuh besar sebagai LPAR dalam hypervisor AIX.

Penyimpanan

Anda tidak dapat memiliki virtualisasi nyata (dengan mobilitas VM dan pengelompokan host) tanpa penyimpanan bersama. Server-server prod, dev, testing, dan QA semuanya terlihat sama untuk storage Anda, namun Anda mungkin ingin menginvestasikan waktu untuk menemukan cara memprioritaskan prod Anda. Ini adalah ide yang sangat buruk, misalnya, untuk memiliki disk berbagi database prod (pajak set, kolam, apapun) dengan server dev. Dev kadang-kadang bisa mengenai disk sekeras prod, dan hal terakhir yang Anda butuhkan adalah untuk mengetahui apakah semacam tes adalah apa yang memperlambat produksi Anda.

Mintalah seseorang yang mengetahui penyimpanan Anda duduk dan menganalisis semua potensi kemacetan (port, cache, pengontrol, disk, dll) dan lakukan yang terbaik untuk mencegah pertengkaran sebanyak mungkin antara prod dan non-prod.

Yang mengatakan, kadang-kadang orang aplikasi perlu menjalankan benchmark dev untuk membantu mengukur efek dari tambalan baru atau sesuatu. Dalam situasi ini, Anda mungkin harus dapat menawarkan mereka jumlah tenaga kuda penyimpanan yang sama (atau setidaknya berbeda secara kuantitatif).

Kemangi
sumber
1

Untuk apa Anda membutuhkan lingkungan ini? Perangkat lunak vendor atau organisasi Anda melakukan pengembangan sendiri?

Tidak tahu apakah ini akan membantu tetapi HP dan Dell akan jatuh sendiri untuk datang dan menilai pusat data Anda saat ini dan memberi Anda rekomendasi untuk mengubah atau membuat dari awal. Pembaca forum dapat memberikan jawaban dekat yang baik tetapi tanpa melihat "apa yang Anda miliki dan di mana Anda berada pada apa yang Anda inginkan dan di mana Anda perlu" akan sulit untuk memberikan jawaban yang solid. Bantulah diri Anda sendiri dan tetap dengan satu vendor perangkat keras karena alasan administrasi.

Kami memiliki pusat data kami yang disesuaikan dengan hal ini (Kami memiliki perangkat keras untuk melakukannya)

Lingkungan VMWare C7000 Hp blade enclosure dengan EMC SAN backend, koneksi 8 gig fiber.

Hal ini memungkinkan kita untuk membatasi biaya spawl, penggunaan listrik, dan pendingin udara. Ini akan digunakan untuk mesin uji, Bukti server konsep, server produksi yang tidak memerlukan perangkat keras yang unik untuk aplikasi (dongle USB, papan Faks, dll.)

Lingkungan Fisik Server Blade C7000 Hp Blade enclosure dengan 16 blades HBA terhubung ke EMC SAN backend melalui serat 8 manggung.

Ini akan untuk mesin yang membutuhkan jumlah besar RAM dan CPU tetapi tidak memiliki penambahan perangkat keras yang unik. Mesin virtual baik-baik saja kecuali ketika mereka membutuhkan sejumlah besar CPU atau RAM. VMWare memungkinkan vmotion memindahkan vmserver ke mesin host untuk menyeimbangkan penggunaan perangkat keras. Real estat VM hanya efektif biaya bila digunakan secara maksimal. Artinya, lebih banyak mesin yang lebih kecil daripada yang besar. Ini juga tergantung pada sistem yang Anda coba untuk berdiri.

Server Fisik (1U hingga 5U)

Server HP DL360 - DL 5xx. Perangkat keras khusus seperti 4x 8 core CPUS dan 256 Gigs ram, kartu seri untuk antarmuka telecomm, atau papan faks kelas atas yang terpasang pada beberapa saluran telepon. Termasuk dalam grup ini adalah server yang vendor membutuhkan penyimpanan lokal besar.

Ini adalah contoh tetapi bukan jawaban yang lengkap. Serius, bicaralah dengan vendor perangkat keras dan biarkan mereka memberi Anda gambaran di mana Anda berada dan bagaimana membuatnya lebih baik / lebih efisien.

Paul Hickox
sumber
0

Apa standar atau praktik terbaik untuk menyiapkan lingkungan baru dengan Pengembangan, Pengujian, Pementasan, dan Produksi.

Ini tergantung pada anggaran di antara pertimbangan lainnya. Tidak yakin apakah ada standar tetapi Anda ingin menjaga OS dan perangkat lunak lain tetap sama di semua kotak. Gunakan alat otomatisasi seperti Wayang untuk mengotomatisasi dan menstandarkan bangunan Anda.

Apakah memvisualisasikan lingkungan ini di antara beberapa kotak fisik adalah praktik yang baik?

Virtualisasi? Iya. Latihan yang bagus. Tetapi perlu memvalidasi konfigurasi Anda jika mereka boleh dijalankan sebagai mesin virtual.

Saya pernah mendengar organisasi memecah server menjadi SQL, Aplikasi, Server Web, dll. Di mana saya dapat menemukan contoh solusi yang baik untuk pengaturan server?

Mungkin orang lain dapat berbaur, tetapi saya ingin menginstal komponen yang berbeda pada server yang berbeda karena berbagai alasan di antara OS dan peningkatan dan ketersediaan aplikasi.

Raj J
sumber
1
Itu semua tergantung pada ukuran proyeknya. Saya tidak berpikir Anda memerlukan semua itu untuk basis data film rumah pribadi Anda ... :) Saya pikir kami memerlukan lebih banyak info dari OP
MichelZ