Mühendislik yığını nedir? + Örnek

Mühendislik yığını nedir? + Örnek
Anonim

Kısa cevap, arka uçta Python için Flask'ı, ön uçta Javascript için Backbone'yu kullandığımız ve verilerimizi MongoDB, Redis ve ElasticSearch'te saklıyoruz. AWS'de ağırlandık.

Bir yığın nedir?

Size bir web sitesi sunmak için çok sayıda teknoloji gerekir ve bunlar da dahil olmak üzere çeşitli işlevleri yerine getirir:

  • Bir tarayıcıda veya uygulamada sayfalar oluşturma, bunları şekillendirme (renk, yazı tipleri) ve etkileşimli hale getirme (örneğin, kalbi kırmızıya çevirip tıkladığınızda bir yorum kutusu gösterme). Bu denir ön uç veya müşteri tarafı
  • Bir sayfa için gereken bilgileri toplamak (örneğin, soru, cevap, kullanıcı adları ve resimler, kalplerin sayısı) ve bilgisayarınıza veya telefonunuza göndermek. Bu denir arka uç veya sunucu tarafı
  • Bu bilgiyi saklamak, böylece ihtiyaç duyulan her an hazır olur ve ihtiyaç duyduğumuz bilgileri tam olarak aramamızı sağlar. Buna veritabanı veya veri deposu denir
  • İnternete bağlı bilgisayarlar her zaman açıktır ve böylece herkes web sitesine istediği zaman erişebilir. Bilgisayar denir sunucular ve onlar barındırılan yere.
  • Diğer birçok kritik ve küçük fonksiyonlar

Bu katmanların her birinde, bir dizi iyi seçenek mevcuttur ve herhangi bir ekibin yaptığı seçimler, ekip üyelerinin deneyim ve rahatlığının yanı sıra maliyet ve özel performans gereksinimleri gibi pratik meselelere dayanmaktadır.

(Neredeyse) tam yığımız

Bazı teknolojiler ekibimizin üyeleri tarafından kendi sunucularımızda ve dizüstü bilgisayarlarımızda kurulur, güncellenir ve yönetilir. İçerirler:

  • Javascriptimizi düzenlemek için omurga
  • CSS’imizi yeniden kullanmak ve düzenlemek için pusula
  • Flask, JSON + HTML API'sine hizmet etmek ve tam HTML sayfaları oluşturmak için bir Python çerçevesi
  • görev kuyruğumuz için haçlar (büyük olasılıkla Kereviz)
  • MongoDB verilerimizi saklamak için (yakında Yakında Postgres)
  • Sitedeki yayınlar, trend soruları ve her türlü kullanım istatistiği gibi öğeleri önbelleğe almak için Redis
  • Güçlü arama için ElasticSearch
  • Nginx siteye hizmet verecek
  • Javascript ve CSS'lerimizi küçültmek, sıkıştırmak ve düzeltmek için homurdanma
  • Capistrano, uygulamamızı konuşlandırmak ve birkaç başka yararlı görevi gerçekleştirmek için
  • Yeni sunucularda ihtiyaç duyduğumuz yazılımı kurmak için kukla

Bazı teknolojiler başka şirketler tarafından oluşturulan ve yönetilen hizmetlerdir. Her şeyi kendimiz yapmak yerine başkalarının belirli sorunlara odaklanmasına izin vermek çoğu zaman daha etkilidir. Kullandığımız bazı servisler:

  • AWS aka Amazon Web Servisleri sunucularımızı, statik varlıklarımızı ve bir CDN'yi barındırmak için
  • DNS, önbellek ve bir güvenlik düzeyi için Cloudflare
  • Analitik için Google Analytics ve Mixpanel
  • Merkezi tomruk için Papertrail
  • İstemci tarafı hatalarını izlemek için nöbetçi
  • Sunucularımızı ve hizmetlerimizi izlemek için DataDog
  • Flask uygulamasının performansını izlemek için yeni kalıntı
  • Customer.io, uygulamada yaptığınız veya yapmadığınız şeylere dayanarak e-posta göndermek için
  • Kod işbirliği ve barındırma için Github

Ve muhtemelen birçokları.

Bir web sitesi oluşturmak ve işletmek çok fazla parça gerektirir, ancak iyi oluşturulmuş araçların yardımı ile o kadar da zor değil!