Apa pro dan kontra dari Server SnowFlakes, Server Phoenix dan Server Tidak Berubah?

15

Saya ingin tahu tentang matriks seperti perbandingan keamanan / kemudahan manajemen / kemampuan forensik untuk setiap jenis server. Saya mungkin lupa beberapa fitur kunci dari setiap jenis juga.

Saya punya ide umum tentang jenis tetapi matriks referensi akan membantu ketika memilih di antara mereka pada beberapa kasus (ketika otomatisasi menjadi kompleks untuk aplikasi misalnya).

Untuk menghindari kekhawatiran tentang hal itu terlalu luas, saya merasa bahwa membaginya dalam beberapa pertanyaan akan menyebarkan informasi dan bahwa pertanyaan tentang perbandingan keamanan perlu membandingkan masing-masing jenis juga.

Tensibai
sumber

Jawaban:

15

Istilah Phoenix Server diciptakan oleh seorang rekan dari Martin Fowler, dan ketiga istilah tersebut dijelaskan dalam artikel-artikel pendek tentang Martin.

Pro dan kontra dari masing-masing server dijelaskan dalam artikel. Perbedaan utama adalah cara server dikelola.

Server ada untuk memenuhi peran wadah untuk beberapa aplikasi. Karena aplikasi sering berubah, sering diperlukan untuk mengubah beberapa atribut wadah - seperti paket, konfigurasi, dll. Kadang-kadang juga diperlukan untuk mengubah atribut wadah itu sendiri karena alasan eksternal, seperti kerentanan keamanan yang memerlukan tambalan untuk dipasang.

Ada beberapa cara untuk mengubah server yang ada:

  1. Awalnya buat server secara manual, lalu terus ubah kontennya (bermutasi) setiap kali diperlukan perubahan.
  2. "Panggang" gambar untuk server berdasarkan resep, biasanya dengan cara otomatis (tidak secara manual). Kemudian buat server dari gambar itu. Dan ulangi proses ini pada setiap perubahan.

Yang pertama disebut Snowflake, sedangkan yang terakhir adalah praktik yang memungkinkan tipe server Phoenix dan Immutable. Di mana Immutable menyatakan bahwa tidak ada perubahan yang dilakukan pada server yang ada setelah dibuat, dan Phoenix berarti bahwa server dihancurkan sepenuhnya dan yang baru digunakan untuk menggantinya selama proses perubahan.

Evgeny
sumber
9

Karena saya lebih memikirkan daftar kelebihan dan kekurangan dari masing-masing jenis, inilah pandangan saya (tidak lengkap, ini yang operasional penting menurut saya):

  1. Server Kepingan Salju

    • Apa itu : Sistem dengan konfigurasi spesifiknya, tidak ada server lain di pusat data yang memiliki parameter yang sama persis. Mereka biasanya dikelola secara manual.

    • Keuntungan :

      • Dipasang untuk kebutuhan apa yang berjalan pada mereka.
      • Jangka panjang, pembaruan biasanya singkat.
      • Diadaptasi untuk kasus khusus di mana tweak didokumentasikan dengan baik oleh produk yang di-host.
    • Kekurangan :

      • Terkadang pembaruan meninggalkan file yang tidak digunakan, pembersihan bisa jadi rumit.
      • Ketika perubahan harus dilakukan ke beberapa mesin, perlu beberapa saat.
      • Tidak ada yang mencegah perubahan tidak berdokumen.
      • Dalam kasus korupsi, Anda harus membangun kembali OS dasar dan memulihkan, beberapa tweak OS tidak dapat dipulihkan dan harus diterapkan kembali, mudah untuk melewati garis dan melupakan tweak penting.
      • Biasanya lama untuk ketentuan karena konfigurasi manual.
  2. Server Phoenix

    • Apa itu : Dikonfigurasi secara otomatis oleh beberapa kode.
    • Keuntungan :

      • Didefinisikan oleh kode, bisa versi.
      • Mudah direplikasi ke titik waktu.
      • Pembaruan berumur pendek dan singkat juga.
      • Perubahan pada file terkontrol didokumentasikan dan tidak dapat dilupakan.
    • Kekurangan :

    • Terkadang pembaruan meninggalkan file yang tidak digunakan, pembersihan bisa jadi rumit.
    • Tidak semuanya berada di bawah manajemen kode, beberapa penyesuaian oleh manusia dapat dilewatkan jika tidak dimasukkan ke dalam otomatisasi.
  3. Server Tidak Berubah

    • Apa mereka :
      • Pemberian satu kali otomatis dari gambar induk dengan umumnya tidak ada akses.
    • Keuntungan :

      • Didefinisikan oleh kode, bisa versi.
      • Mudah direplikasi ke titik waktu.
      • Permukaan serangan berkurang karena penghapusan biasa akses jarak jauh.
      • Memperbaiki konfigurasi, tidak ada perubahan yang dapat merusak sesuatu
      • Mudah disesuaikan 'sesuai permintaan' dari gambar utama.
    • Kekurangan :

      • Mereka tidak berubah, Anda harus memastikan Anda dapat memutar pembaruan dengan cepat jika ada 0day cacat yang berdampak pada Anda.
      • Tidak semua aplikasi cocok dengan model ini (Database, misalnya, penggantian lengkap pada data yang sama tidak selalu memungkinkan, ada migrasi untuk ditangani).
      • Membawa beberapa tantangan baru untuk analisis forensik crash dan manajemen log.

Tidak satu pun dari pola-pola itu yang eksklusif, Anda harus memilih yang terbaik sesuai dengan kebutuhan Anda yang sebenarnya. Kepingan salju membawa banyak kekhawatiran jika terjadi pemulihan setelah bencana sehingga pilihannya biasanya lebih banyak antara Phoenix dan Immutable.

Tensibai
sumber
2

Ketiganya adalah pola macam, itu bukan kasus memilih dan memilih mana yang akan digunakan dalam keadaan tertentu tetapi kasus mengetahui kapan mengenali pola yang dapat membantu atau menyakiti Anda.

Server Snowflake

Sebuah Snowflake Server sangat banyak anti-pola yang mewakili kasus ketika sebuah berevolusi server yang secara tidak terkendali ke titik ketika itu tidak dapat dengan mudah direproduksi.

Saya telah memiliki banyak run-in dengan server jenis ini dalam produksi, mereka cukup mudah dikenali karena biasanya ada sejumlah besar perubahan yang gagal dan komentar seperti "itu [perubahan] bekerja di Pengembangan / Uji / UAT / Staging ".

Phoenix Servier

Sebuah Phoenix Server lebih dari principal dari pola seperti menempatkan Martin Fowler itu:

Server harus seperti burung phoenix, secara teratur naik dari abu. [Sebuah]

Jika Anda menerapkan IT Service Management (ITSM) atau bahasa ITIL untuk situasi yang sama, Anda mungkin akan menyebutnya Rencana Kelanjutan Layanan TI atau Rencana Pemulihan:

Rencana terpisah untuk setiap layanan harus menyediakan prosedur terperinci dan panduan langkah demi langkah untuk setiap tahap insiden sehingga Tim Pemulihan dapat memulihkan layanan dan dengan demikian memenuhi proses yang disepakati dan RTO komponen.

Server Tidak Berubah

Sebuah Berubah Server atau Infrastruktur Berubah adalah proses dimana kita memperlakukan semua dikerahkan infrastruktur, konfigurasi dan kode sebagai benar-benar berubah, yaitu tidak berubah. Ketika kami menggunakan sesuatu yang baru, kami meningkatkan infrastruktur baru dan menggunakan kode untuk ini. Menariknya ini sebagian besar memenuhi kebutuhan yang secara tradisional dipenuhi oleh Evergreening .


Catatan

  • a: Rekan Martin Kornelis Sietsma datang dengan istilah "Server Phoenix" pada daftar diskusi internal.
Richard Slater
sumber