Saya cukup baru untuk seluruh tumpukan dan penyebaran Netflix OSS secara umum. Sebagai latar belakang untuk tingkat pengetahuan saya saat ini, di mana peran utama saya adalah sebagai insinyur aplikasi front-end. Namun, saya menikmati sisi operasi hal-hal, jadi saya mencoba untuk menyiapkan strategi penyebaran baru dan alat untuk proyek baru.
Tujuan kita
- Penyebaran super mudah (kami ingin menekan tombol untuk memperbarui produksi)
- Penyebaran otomatis untuk menguji lingkungan (menggunakan Jenkins)
- Kemudahan pemeliharaan (kami memiliki aplikasi untuk menulis, tidak ingin menghabiskan waktu kami mengutak-atik masalah produksi)
- Kemampuan untuk menangani arsitektur berorientasi layanan (banyak aplikasi kecil, berbagai bahasa dan penyimpanan data)
- Fleksibilitas yang cukup untuk memastikan kami tidak perlu mengubah strategi dalam waktu dekat (kami sudah berusaha untuk menjauh dari RightScale)
Kami baik-baik saja dengan waktu pengaturan awal yang lebih sedikit jika hal itu akan menyelamatkan kami dari sakit kepala di masa mendatang.
Jadi, di sepanjang baris ini, saya telah mendengarkan podcast, menonton pembicaraan Ops, dan membaca banyak posting blog dan berdasarkan tujuan kami dan apa yang saya anggap sebagai praktik terbaik, kami mulai membuat rencana menggunakan Asgard, menggulung paket kami ke dalam botol dan menggulungnya menjadi AMI.
Kami telah merencanakan semua ini dan menyukai manfaatnya dibandingkan menggunakan server Chef dan memusatkan instance dengan cepat (kami merasa ini adalah kesalahan yang cenderung terjadi karena timeline kami yang terbatas dan kurangnya pemahaman tentang alur kerja server Chef). Namun, seorang rekan kerja sedikit melihat-lihat sendiri dan merasa seperti Elastic Beanstalk memenuhi kebutuhan kami.
Saya telah melihat ke dalamnya dan memutar lingkungan uji dengan file WAR dan database RDS terlampir. Hal-hal tampaknya bekerja dan saya percaya bahwa kita dapat mengotomatiskan penyebaran ke lingkungan pengujian menggunakan Jenkins melalui AWS API. Tampak cukup sederhana ... mungkin terlalu sederhana.
Yang saya ingin tahu adalah, apa masalahnya? Jika Elastic Beanstalk sangat sederhana dan efektif, mengapa itu tidak dibicarakan lagi? Saya mengalami kesulitan menemukan pendapat dan fakta obyektif yang cukup tentang dua strategi penyebaran yang berbeda, jadi saya pikir saya akan bertanya-tanya.
Apakah Anda menggunakan Elastic Beanstalk? Jika demikian, mengapa dan faktor apa yang menyebabkan keputusan itu? Apa yang Anda suka dan tidak suka?
Jika Anda tidak menggunakan Elastic Beanstalk tetapi mempertimbangkannya, apa yang Anda gunakan dan mengapa Anda tidak menggunakan Elastic Beanstalk?
Apa kelebihan dan kekurangan strategi penyebaran berbasis Pohon Kacang Elastis untuk SOA? Yaitu, akankah Elastic Beanstalk bekerja dengan baik dengan banyak aplikasi kecil yang saling mengandalkan untuk bekerja?
sumber
Saya melihat titik kehilangan kontrol, tetapi saya tidak perlu melihat kewarganegaraan yang diamanatkan. Semua eb benar-benar dilakukan adalah menyebarkan otomatisasi, yang omong-omong luar biasa. Saya melihat titik repositori besar. Saya pikir secara umum bahwa memisahkan fungsi aplikasi logis menjadi aplikasi kacang terpisah, dan kemudian memiliki lingkungan "pementasan", dan "prod" di bawahnya, sangat bagus. Kami memiliki lingkungan modul seperti pengunggah, itu tidak melakukan banyak hal dan secara teori menambahkan banyak biaya, tetapi kemudian Anda menggunakan contoh yang lebih kecil hanya lebih banyak. Kami menjalankan nginx terpusat, dan harus menulis banyak pegangan pesan kustom sns untuk memberi tahu ngnix perubahan dalam kebijakan skala otomatis. Masalah besar lainnya adalah ketidakmampuan untuk menyeimbangkan keseimbangan beban, karena kami menggunakan ngnix, mengapa? elb tidak mendukung websocket.
sumber