SmugMug iki büyük çevrimiçi fotoğraf platformunu işletiyor. SmugMug ve Flickr100 milyondan fazla müşterinin on milyarlarca fotoğrafı güvenli bir şekilde depolamasına, aramasına, paylaşmasına ve satmasına olanak tanıyor. Onlarca yıllık fotoğraf yükleyen ve bunlar arasında arama yapan müşteriler, SmugMug'ın ilk kez kullanılmaya başlanmasından bu yana istikrarlı bir şekilde büyüyen, aramanın kritik altyapıya dönüştürülmesine yardımcı oldu Amazon Bulut Arama 2012’te Amazon Açık Arama Hizmeti 2018'den beri milyarlarca belgeye ve terabaytlarca arama depolama alanına ulaştıktan sonra.
Burada, SmugMug Personel Mühendisi Lee Shepherd, SmugMug'ın canlı trafiği birden fazla kümeye yayınlamak, doldurmak ve yansıtmak için kullanılan arama mimarisini paylaşıyor. SmugMug, testlerin yanı sıra i6xlarge'den Graviton tabanlı r2gd.3.2xlarge örnekleri de dahil olmak üzere yeni yapılandırmaları kıyaslamak, doğrulamak ve bunlara geçiş yapmak için bu işlem hatlarını kullanır Amazon OpenSearch Sunucusuz. Gerçekçi olmayan ani trafik modelleri ortaya çıkarmadan ve üretim hizmetleri üzerinde herhangi bir etki yaratmadan yayınlama, doldurma ve sorgulama için kullanılan üç işlem hattını ele alıyoruz.
Süreç için kritik olan iki ana mimari parça vardır:
- Endeks verileri için dayanıklı bir doğruluk kaynağı. Bu en iyi uygulamadır ve OpenSearch endeksinin ötesinde dayanıklı bir mağazaya sahip olmak için yedekleme stratejimizin bir parçası ve Amazon DinamoDB ölçeklenebilirlik ve entegrasyon sağlar AWS Lambda bu, sürecin çoğunu basitleştirir. DynamoDB'yi diğer arama dışı hizmetler için kullanıyoruz, dolayısıyla bu bizim için doğal bir seçimdi.
- Gerçeğin kaynağından gelen verileri OpenSearch'e yayınlamak için bir Lambda işlevi. Kullanma işlev takma adları aynı Lambda işlevinin birden fazla yapılandırmasının aynı anda çalıştırılmasına yardımcı olur ve verileri senkronize tutmanın anahtarıdır.
Yayıncılık
Yayınlama hattı, bir kullanıcının anahtar kelimeler veya başlıklar girmesi, yeni yüklemeler veya etiket algılaması gibi olaylardan kaynaklanır. Amazon Rekognisyon. Bu olaylar, aşağıdakiler gibi diğer birkaç varlık deposundan alınan veriler birleştirilerek işlenir: Amazon Aurora MySQL Uyumlu Sürüm ve Amazon Basit Depolama Hizmeti (Amazon S3)DynamoDB'ye tek bir öğe yazmadan önce.
DynamoDB'ye yazmak, Lambda yayınlama işlevini çağırır. DynamoDB Streams Kinesis Bağdaştırıcısı, DynamoDB'den bir grup güncellenmiş öğeyi alır ve bunları OpenSearch'e indeksler. DynamoDB Streams Kinesis Adapter'ı kullanmanın, gereken eş zamanlı Lambda sayısını azaltmak gibi başka yararları da vardır.
Lambda yayınlama işlevi, hangi OpenSearch etki alanı ve dizininin yayınlanacağını belirlemek için ortam değişkenlerini kullanır. Üretim takma adı, DynamoDB tablosu veya Kinesis Stream üzerinden üretim OpenSearch etki alanına yazılacak şekilde yapılandırıldı
Yeni yapılandırmaları test ederken veya geçiş yaparken, bir geçiş takma adı, yeni OpenSearch etki alanına yazacak ancak üretim takma adıyla aynı tetikleyiciyi kullanacak şekilde yapılandırılır. Bu, verilerin her iki OpenSearch Service etki alanına aynı anda ikili indekslenmesine olanak sağlar.
DynamoDB tablo şemasının bir örneğini burada bulabilirsiniz:
'LastUpdated' değeri, indeksleme sırasında belge sürümü olarak kullanılır ve OpenSearch'ün sıra dışı güncellemeleri reddetmesine olanak tanır.
Dolgu
Artık değişiklikler her iki alanda da yayınlandığı için yeni alanın (dizinin) geçmiş verilerle doldurulması gerekiyor. Yeni oluşturulan bir dizini doldurmak için aşağıdakilerin bir kombinasyonu Amazon Basit Kuyruk Hizmeti (Amazon SQS) ve DynamoDB kullanılıyor. Bir komut dosyası, bir SQS kuyruğunu aşağıdakilerle ilgili talimatları içeren mesajlarla doldurur: paralel tarama DynamoDB tablosunun bir bölümü.
SQS kuyruğu, mesaj talimatlarını okuyan, DynamoDB tablosunun ilgili bölümünden bir grup öğeyi getiren ve bunları bir OpenSearch dizinine yazan bir Lambda işlevini başlatır. Segment boyunca ilerlemeyi takip etmek için SQS kuyruğuna yeni mesajlar yazılır. Segment tamamlandıktan sonra SQS kuyruğuna başka mesaj yazılmaz ve süreç kendi kendine durur.
Eşzamanlılık, Lambda eşzamanlılık ölçeklendirmesi tarafından sağlanan ek kontrollerle birlikte segment sayısına göre belirlenir. SmugMug, üretim alanına sıfır etki uygularken OpenSearch yapılandırmasında saatte 1 milyardan fazla belgeyi dizine ekleyebilir.
SQS kuyruğunu oluşturmak için NodeJS AWS-SDK tabanlı bir komut dosyası kullanılır. SQS yapılandırma komut dosyasının seçeneklerinin bir kısmını burada bulabilirsiniz:
Ortaya çıkan SQS mesajının formatıyla birlikte:
Yansıtma
Son olarak bizim yansıtılmış arama sorgusu Sonuçlar, üretim etki alanımıza ek olarak bir SQS kuyruğuna bir OpenSearch sorgusu gönderilerek çalıştırılır. SQS kuyruğu, sorguyu çoğaltma etki alanına yeniden yürüten bir Lambda işlevini başlatır. Bu isteklerden elde edilen arama sonuçları herhangi bir kullanıcıya gönderilmez ancak üretim sistemlerini veya müşterileri etkilemeden test edilen OpenSearch hizmetindeki üretim yükünün kopyalanmasına olanak tanır.
Sonuç
Yeni bir OpenSearch etki alanını veya yapılandırmasını değerlendirirken ilgilendiğimiz ana ölçümler sorgu gecikme performansı, yani alınan gecikmeler (zaman başına gecikmeler) ve en önemlisi arama gecikmeleridir. Graviton R6gd'ye geçişimizde P40-P50 gecikmelerinin yaklaşık yüzde 99 daha düşük olduğunu ve i3'lere kıyasla CPU kullanımında benzer kazanımlar gördük (Graviton'un daha düşük maliyetlerini göz ardı ediyoruz). Hoş karşılanan bir başka avantaj da, R1gd ve diğer yeni örneklere G6GC'nin eklenmesiyle ortaya çıkan çöp toplama değişiklikleriyle daha öngörülebilir ve izlenebilir JVM bellek baskısıydı.
Bu hattı kullanarak aynı zamanda OpenSearch Serverless'ı da test ediyor ve en iyi kullanım durumlarını buluyoruz. Bu hizmetten heyecan duyuyoruz ve zamanla tamamen sunucusuz bir mimariye sahip olmayı amaçlıyoruz. Sonuçlar için takipte kalın.
Yazarlar Hakkında
Lee Çoban SmugMug Personel Yazılım Mühendisidir
Aydın Bekirov Amazon Web Hizmetleri Baş Teknik Hesap Yöneticisidir
- SEO Destekli İçerik ve Halkla İlişkiler Dağıtımı. Bugün Gücünüzü Artırın.
- PlatoData.Network Dikey Üretken Yapay Zeka. Kendine güç ver. Buradan Erişin.
- PlatoAiStream. Web3 Zekası. Bilgi Genişletildi. Buradan Erişin.
- PlatoESG. karbon, temiz teknoloji, Enerji, Çevre, Güneş, Atık Yönetimi. Buradan Erişin.
- PlatoSağlık. Biyoteknoloji ve Klinik Araştırmalar Zekası. Buradan Erişin.
- Kaynak: https://aws.amazon.com/blogs/big-data/smugmugs-durable-search-pipelines-for-amazon-opensearch-service/
- :dır-dir
- :olumsuzluk
- 1
- 100
- 12
- 14
- 20
- 2012
- 2018
- 40
- 7
- 9
- a
- Yapabilmek
- Hakkımızda
- Hesap
- katma
- ilave
- Ek
- Sonra
- izin vermek
- Izin
- boyunca
- Ayrıca
- Amazon
- Amazon Web Servisleri
- an
- ve
- Başka
- herhangi
- mimari
- mimari
- ARE
- AS
- varlık
- At
- şafak
- AWS
- yedek
- merkezli
- BE
- önce
- olmak
- kıyaslama
- yarar
- faydaları
- İYİ
- Ötesinde
- Milyar
- milyarlarca
- her ikisi de
- fakat
- by
- başlıklar
- değişiklikler
- Toplamak
- kombinasyon
- birleştirme
- karşılaştırıldığında
- uyumlu
- Tamamladı
- eşzamanlı
- yapılandırma
- yapılandırılmış
- içermek
- kontroller
- uyan
- maliyetler
- kapak
- işlemci
- çevrimiçi kurslar düzenliyorlar.
- kritik
- Kritik altyapı
- Müşteriler
- veri
- yıl
- Bulma
- Belirlemek
- kararlı
- belge
- evraklar
- domain
- etki
- tahrik
- her
- sağlar
- etkinleştirme
- Son nokta
- mühendis
- girme
- Baştan sona
- çevre
- Eter (ETH)
- değerlendirilmesi
- olaylar
- örnek
- uyarılmış
- az
- Alanlar
- bulma
- Ad
- uygun
- takip
- İçin
- biçim
- itibaren
- tamamen
- işlev
- Kazançlar
- Büyüyen
- Var
- yükseklik
- yardım
- yardımcı olur
- tarihsel
- saat
- HTML
- http
- HTTPS
- i
- i3
- ID
- darbe
- önemlisi
- in
- Dahil olmak üzere
- indeks
- indeksler
- Altyapı
- durumlarda
- talimatlar
- bütünleşme
- niyetinde
- ilgili
- içine
- tanıtım
- çağırır
- ürün
- tekrarlama
- ONUN
- kendisi
- jpg
- tutmak
- koruma
- anahtar
- anahtar kelimeler
- etiket
- büyük
- Gecikme
- başlattı
- Rüzgâraltı
- sevmek
- yaşamak
- yük
- Çok
- alt
- Ana
- Bellek
- mesaj
- mesajları
- Metrikleri
- göç
- göç
- göç
- milyon
- milyon müşteri
- ayna
- Daha
- çoğu
- hareket
- çoklu
- MySQL
- isim
- yani
- Doğal (Madenden)
- ihtiyaçlar
- yeni
- yeni
- sonraki
- yok hayır
- numara
- of
- kapalı
- on
- Online
- faaliyet
- Opsiyonlar
- dolaş
- or
- Diğer
- bizim
- Paralel
- Bölüm
- desen
- başına
- yüzde
- performans
- Fotoğraf
- Fotoğraflar
- parçalar
- boru hattı
- Platformlar
- Platon
- Plato Veri Zekası
- PlatoVeri
- tahmin edilebilir
- basınç
- önceki
- Anapara
- süreç
- işlenmiş
- üretim
- Ilerleme
- sağlanan
- sağlar
- yayınlamak
- yayınlanan
- Yayıncılık
- uzanarak almak
- azaltarak
- cevap
- isteklerinizi
- gereklidir
- Ortaya çıkan
- Sonuçlar
- koşmak
- güvenli bir şekilde
- aynı
- testere
- ölçeklenebilirlik
- ölçekleme
- senaryo
- Ara
- arama
- tohum
- bölüm
- segmentler
- satmak
- gönderme
- gönderdi
- Serverless
- hizmet
- Hizmetler
- paylaş
- Paylar
- benzer
- Basit
- aynı anda
- beri
- tek
- pasajı
- So
- Yazılım
- Kaynak
- Personel
- kalmak
- sürekli
- Durdurur
- hafızası
- mağaza
- mağaza
- Stratejileri
- dere
- böyle
- Sistemler
- tablo
- alır
- Teknik
- onlarca
- test
- Test yapmak
- göre
- o
- The
- Kaynak
- ve bazı Asya
- Onları
- Orada.
- Bunlar
- Re-Tweet
- üç
- İçinden
- zaman
- için
- aldı
- iz
- trafik
- tetikleyebilir
- Hakikat
- DÖNÜŞ
- iki
- altında
- güncellenmiş
- Güncellemeler
- Yükleme
- URL
- kullanım
- kullanım
- kullanımın söz
- Kullanılmış
- kullanıcı
- kullanım
- kullanma
- DOĞRULA
- değer
- versiyon
- çok
- oldu
- we
- ağ
- web hizmetleri
- karşılama
- Ne
- ne zaman
- süre
- ile
- olmadan
- yazmak
- yazı yazıyor
- yazılı
- zefirnet
- sıfır