İçindekiler:

AWS ve IBM: Bir IoT Hizmetleri Karşılaştırması: 4 Adım
AWS ve IBM: Bir IoT Hizmetleri Karşılaştırması: 4 Adım

Video: AWS ve IBM: Bir IoT Hizmetleri Karşılaştırması: 4 Adım

Video: AWS ve IBM: Bir IoT Hizmetleri Karşılaştırması: 4 Adım
Video: İstanbul Coders - Microsoft Azure vs Amazon AWS - Rıfat Erdem Şahin 2024, Temmuz
Anonim
AWS ve IBM: Bir IoT Hizmetleri Karşılaştırması
AWS ve IBM: Bir IoT Hizmetleri Karşılaştırması

Bugün, farklı hizmet teklifleri bakış açısıyla IoT uygulamaları geliştirmeyi mümkün kılan iki yığını karşılaştırıyoruz.

Adım 1: Hizmet Olarak İşlevler

Hizmet Olarak İşlevler
Hizmet Olarak İşlevler

FaaS, "sunucusuz" bir mimari oluşturmak için kullanılan bir bulut hizmetleri kategorisidir. FaaS, müşterilerin altyapı oluşturmadan ve bakımını yapmadan uygulama işlevlerini geliştirmesine, çalıştırmasına ve yönetmesine olanak tanır.

Amazon, AWS Lambda'yı sunar, IBM ise IBM Bulut İşlevlerini sunar. Bu hizmetler oldukça benzer, ancak Lambda bu türden ilkti. FaaS'ı kullanarak bulutta kod parçalarını çalıştırabilirsiniz ve her hizmet farklı programlama dillerini destekler.

IBM Bulut İşlevleri: JavaScript, Swift, Java, Go, Php, Python, Ruby,. NET (C# F# vb.), Herhangi biri aracılığıyla Docker AWS Lambda: JavaScript, Java, C#, F#, Go, Python, Ruby, PowerShell, Herhangi biri Çalışma Zamanı API'si aracılığıyla

IBM Daha fazla dili destekler ve docker ile diğer dillerde yazılmış komut dosyalarının kullanımı kolaydır. Bu Lambda ile de yapılabilir ancak hemen yapılmaz. Bir örneği buradan okuyabilirsiniz:

Her iki hizmetin de kullanım limitleri var, bunları bir tablo halinde raporlayıp en iyilerini öne çıkarıyoruz.

Fiyat, AWS Lambda için istek sayısının eklenmesiyle birlikte saniye başına GigaByte'a (RAM) dayanmaktadır. Her hizmetin ücretsiz bir planı vardır ve bunlar neredeyse eşdeğerdir. Gördüğünüz gibi Lambda GB/sn için biraz daha ucuz ama Cloud Functions'ın talep etmemesiyle ilgili bir maliyeti var, dolayısıyla maliyeti genel olarak hemen hemen aynı. Tabii hafıza tüketen ve az istek kullanan görevleri çalıştırmanız gerekiyorsa Lambda kullanmalısınız. Bize göre IBM Cloud Function'ın ana avantajı, yığınının açık kaynak olmasıdır. Tamamen Apache OpenWhisk'e dayanmaktadır ve ayrıca özel bir altyapıya da dağıtılabilir.

2. Adım: Makine Öğrenimi

Makine öğrenme
Makine öğrenme

IBM ve AWS yığınlarının benzer hizmetler sunduğu alanlardan biri de makine öğrenimidir: SageMaker ile Amazon ve Watson Machine Learning ile IBM. İki hizmet pek çok açıdan birbirine çok benziyor: her ikisi de kendilerini veri bilimcilerin ve geliştiricilerin makine öğrenimi modellerini oluşturmalarına, eğitmelerine ve ardından üretime hazır ortamlara yerleştirmelerine yardımcı olacak araçlar olarak sunuyor, ancak iki şirketin benimsediği felsefeler oldukça farklı. Her iki hizmet de kullandığınız modellerde farklı kontrol dereceleri arasında seçim yapmanıza olanak tanır. Watson ML'de, bazı çok özel görevleri yapmak için önceden eğitilmiş bazı yerleşik modellere sahipsiniz: örneğin, bir resimde hangi nesnelerin bulunduğunu tanımak istiyorsanız, VisualRecognitionV3 modelini içe aktarın ve ona, istediğiniz resmi iletin. analiz etmek istiyorum. Ayrıca bir "özel model" de oluşturabilirsiniz, ancak Watson ML'de bu çoğunlukla önceden oluşturulmuş bir modeli alıp eğitimimizi bunun üzerinde yapmak anlamına gelir, bu nedenle özelleştirme oldukça sınırlıdır. Ne SageMaker ne de Watson ML'nin geliştiricilerinin yığınlarında makine öğrenimi yapmanın tek yolu olmadığını, yalnızca geliştiricilerin hayatlarını kolaylaştırmayı amaçlayan hizmetler olduğunu fark etmek önemlidir. Watson ML platformu ayrıca en popüler makine öğrenimi kitaplıklarının çoğunu destekler, böylece PyTorch, Tensorflow veya benzer kitaplıklarla sıfırdan bir model bile oluşturabilirsiniz. Ya direk o kütüphaneleri kullanırsınız ya da hazır modelleri kullanırsınız, ortası yoktur. Ayrıca Watson ML, Amazon'un SageMaker'da birinci sınıf desteğe sahip olan seçim kitaplığı Apache MXNet'i desteklemez.

Amazon SageMaker'ın yaklaşımı, yerleşik seçenekleri kullanırken bile biraz daha düşük düzeydedir: önceden yapılmış modeller arasından seçim yapmanızı sağlamak yerine, uygulamanızı oluştururken kullanabileceğiniz çok sayıda önceden uygulanmış eğitim algoritması arasından seçim yapmanızı sağlar. daha geleneksel bir şekilde modelleyin. Bunlar yeterli değilse, kendi algoritmanızı da kullanabilirsiniz. Bu şekilde bir şeyler yapmak, yalnızca Watson ML'de eğitimli bir model kullanmakla karşılaştırıldığında, makine öğreniminin nasıl yapıldığı hakkında kesinlikle daha fazla bilgi gerektirir.

İlk bakışta, kurulumu daha karmaşık olan Amazon SageMaker ile Watson ML'nin "kolay ve hızlı" bir yol olduğu görünebilir. SageMaker her şeyi bir Jupyter Notebook üzerinde çalıştıracak şekilde yapılandırıldığından, Watson ML'deki aynı özellikler için web kullanıcı arayüzünden birçok farklı alt hizmet kurmanız gerektiğinden, bu bazı bakış açılarından tamamen doğru olmayabilir. Verilerin ön işlenmesinde ayrıca IBM hizmetinde ayrılmış alanlar bulunurken, SageMaker hepsini dizüstü bilgisayarınızdaki koddan yapmanıza güvenir. Bu artı Jupyter notebookların yazılım mühendisliği açısından en iyi seçim olmadığı gerçeği, SageMaker'ın üretimde çok iyi ölçeklenmesini engelleyebilir. Her iki hizmet de modelinizi dağıtmak ve onun için API'leri dış dünyada kullanılabilir hale getirmek için oldukça iyi ve basit mekanizmalara sahiptir.

Sonuç olarak, Watson ML, Jupyter dizüstü bilgisayarlarının sınırlarını göstermeye başladığı ve modelin kendisinde çok fazla özelleştirmeye ihtiyaç duymadığınız büyük projelerde daha iyi performans gösterir. Algoritmaları tanımlamada daha fazla esnekliğe ihtiyacınız olduğunda SageMaker çok daha iyidir, ancak onu kullanırken, üretimde iyi ölçeklenemeyebilecek Jupyter Notebook'lara güvenmeniz gerektiği gerçeğini hesaba katmanız gerekir. Bir çözüm, kodun geri kalanını modelden mümkün olduğunca ayırmak olabilir, böylece gerçek not defterlerindeki kod çok büyük olmaz ve yazılımımızı sadece modelimizin API'sini kullanan diğer modüllerde daha iyi organize edebiliriz..

3. Adım: Veri Akışı ve Analitik

Veri Akışı ve Analitik
Veri Akışı ve Analitik

Veri akışı hizmetleri, büyük veri akışlarının gerçek zamanlı olarak işlenmesi ve analiz edilmesi için çok önemlidir. Bu akış, bir video akışı gibi buluttan kullanıcıların cihazına veya IoT telemetri ve sensör okumaları gibi kullanıcılardan buluta olabilir. Özellikle ikinci durumda, tek kaynakların küçük miktarlarda veri yüklediği bir durumla karşılaşabiliriz, ancak tüm cihazlardan gelen genel verimi göz önüne aldığımızda, önemli bant genişliği tüketir, bu nedenle bu tür işlemek için uzmanlaşmış bir hizmet kullanmak mantıklıdır. veri akışları. Bu sürekli akışı doğrudan ele almaksızın, gelen bilgiyi geçici bir depoya ara belleğe almamız ve ikinci kez bir hesaplama motoruyla işlememiz gerekecekti. Bu son yaklaşımın sorunu, uygulamanın bakım ve yapılandırmasının karmaşıklığını artırarak, tek bir veri akışı hizmetinin zaten tek başına yaptığı şeyi elde etmek için daha farklı hizmetleri koordine etmemiz gerekmesidir. Ek olarak, arabelleğe alma, ilke olarak uygulamamızı artık gerçek zamanlı hale getiremez, çünkü bir öğenin işlenmesi için ondan önceki tüm diğer öğelerin de işlenmesi gerekir ve arabelleğe öncelik politikaları eklenebilir., karmaşıklığı büyük ölçüde artırın. Özetle, veri akışı hizmetleri, kolay bir yapılandırma ile gerçek zamanlı veri akışı yönetimi sunar ve gelen veriler üzerinde analitik sağlayabilir. Burada IBM ve AWS yığınının iki ana akış hizmetini, yani IBM Streams ve AWS Kinesis'i karşılaştırıyoruz.

Bir akış hizmetinden isteyebileceğimiz tüm temel özelliklerin hem IBM hem de AWS tarafından sunulduğunu belirterek başlıyoruz. Bu özellikler arasında sanal olarak sonsuz işlem hızı, düşük gecikme süresi ve gerçek zamanlı veri analitiği bulunur. Profesyonel hizmetlerden bahsettiğimiz için, ikisi de dağıtım ve otomasyon için üretim düzeyinde araçlar sunar.

Veri analitiği hakkında konuşmak gerekirse, her iki hizmet de bunu isteğe bağlı olarak sunar ve yalnızca ihtiyacınız olsa da olmasa da ödeme yapmanızı sağlar. Kinesis durumunda, analitiklere değil, yalnızca veri akışı işlemeye ihtiyacınız olduğunda, fiyatlar, IBM örneğinde olduğu gibi, işlem süresi yerine işlenen GB başına ücretlendirilir. Yalnızca gelen trafik için ödeme yaptığınız için GB başına fiyatlandırma genellikle zaman başına fiyatlandırmadan daha ucuz olacaktır. Bu gönderinin geri kalanında, veri analitiği özelliği etkinleştirilmiş olarak hem IBM Streams hem de AWS Kinesis'i ele alacağız.

Streams ve Kinesis, sırasıyla Apache Edget ve AWS Lambda ile gelen verileri veri analitiğine geçirmeden önce ön işleme ve filtreleme için farklı hizmetlerle entegrasyon sağlar. Bu hizmetler birbirinden kökten farklı olsa da, bunları yalnızca iki akış hizmetinin bakış açısından tartışacağız. İkisi arasındaki temel fark, Apache Edgen'in cihazda, AWS Lambda'nın ise bulutta çalıştırılmasıdır. Bu, birçok artı ve eksiyi beraberinde getiriyor: Lambda tarafında, Kinesis ile sorunsuz entegrasyona sahip, esnek ve kullanımı kolay bir hizmetimiz var, ancak bu, verilerin buluta önceden yüklenmesini gerektiriyor, bu nedenle verimlilikte kayıp ve Kinesis'e de ödeme yapıyor sonunda atılacak veriler için. Bunun yerine Edge tarafında, hesaplamanın çoğunun, yani, ağın kenarında (dolayısıyla cihazlarda) buluta gereksiz veriler yüklemeden önce yapıldığını görüyoruz. Başlıca dezavantajı, Edgegent'in kurulumu zaman gerektirebilecek ve bakımı karmaşık olabilen büyük bir çerçeve olmasıdır. Platform seçiminde ilgili olabilecek diğer bir fark, Edget'in tamamen açık kaynak olması, Lambda'nın olmamasıdır. Bu hem bir profesyonel olarak görülebilir, çünkü sizin veya müşterinizin yürüteceği koda erişim her zaman olumlu bir şeydir, her ikisi de aleyhtedir, çünkü acil desteğe ihtiyaç duyduğunuz ve şu anda sağlanamayan durumlar olabilir. tüm açık kaynak ortamları.

Bahsedebileceğimiz diğer özellikler ise Kinesis'in tahsis edilen kaynakları otomatik olarak ölçekleyebilmesidir. Gerçekten de sunduğu donanım, bir KPU'nun 1 sanal çekirdek ve 4 GB RAM sunduğu, paralel olarak çalışan bir dizi Kinesis İşlem Birimi (KPU)'dan oluşur. Sayıları uygulamanın ihtiyaçlarına bağlıdır ve dinamik ve otomatik olarak tahsis edilir (ödediğiniz aslında işlemci zamanı çarpı KPU sayısıdır), Java kullanıyorsanız sizden bir KPU daha fazla ücretlendirmenin Kinesis politikası olduğunu unutmayın. başvuru. Bunun yerine IBM Streams, bu tür bir esnekliği sağlamaz, size sabit donanıma sahip bir kapsayıcı sunar, fiyatlandırma hakkında konuştuğumuzda daha fazla ayrıntı sunar. Öte yandan, IBM Streams, HTTP, MQTT ve benzeri yaygın kullanılan protokoller aracılığıyla WAN ile arabirim oluşturduğundan Kinesis'ten daha açıktır, Kinesis ise AWS ekosistemine kapalıdır.

Son bir karşılaştırma olarak, fiyatlandırmadan bahsedelim ve IBM'in bu noktada pek iyi çalışmadığını söylememe izin verin. Hem IBM hem de AWS için üç farklı kategori (temel, üst düzey, ultra üst düzey) için farklı çözümler yapılandırdık ve fiyatlarını karşılaştıracağız. Temel yapılandırmada, aynı donanıma sahip bir IBM çözümüne karşı daha önce bahsedilen bir AWS KPU'muz var. Üst düzey için, Kinesis için paralel çalışan 8 KPU ve IBM için her zaman paralel olan, her biri 4 sanal çekirdek ve 12 GB RAM içeren 2 kapsayıcımız var. IBM, her zaman 16 sanal çekirdekli ve 128 GB RAM'li ultra üst düzey tek bir kapsayıcı sunarken, bazı uygulamalar bu kadar büyük miktarda RAM gerektiriyorsa, farklı KPU'larda çalıştırmak mümkün olamayacağından, AWS için eşdeğer bir çözümü atladık.. Bildirdiğimiz fiyatlar, 7/24 kullanım dikkate alınarak $/ay olarak ifade edilmektedir. Temel yapılandırma için IBM ve AWS için sırasıyla 164$ ve 490$, üst düzey 1320$ ve 3500$ için, ultra üst düzey AWS için ise dikkate alınmaz ve yalnızca 6300$ ile IBM vardır. Bu sonuçlardan, Kinesis'in günlük kullanıcı için kurumsal seviyeye kadar daha iyi çalıştığını görebiliriz, ancak muazzam miktarda bilgi işlem gücü gerektiren veri analitiğini doğrudan işlemek için seçeneklerden yoksundur. Kinesis, IBM size sabit bir kapsayıcı sunarken, küçük kaynak bloklarının yalnızca gerektiğinde dinamik olarak tahsis edilmesinin de yardımıyla, IBM Streams'ten daha iyi performans/$ oranı sunar. Bu şekilde, iş yükünüz zirvelerle karakterize edilirse, IBM ile uygulama ihtiyaçlarınızı abartmak ve en kötü senaryoda bir çözüm yapılandırmak zorunda kalırsınız. IBM, ayın tamamını ödemek yerine saat ücreti sunar, ancak Kinesis olarak otomatikleştirilmez.

Adım 4: IoT Mimarisi

IoT Mimarisi
IoT Mimarisi

aws iot cihazlarının konfigürasyonu, ibm watson iot ile karşılaştırıldığında oldukça kolaydır. IBM watson iot'ta kimlik doğrulama, belirteçli cihaz başına olduğundan ve belirteci bir kez görüntülediğinde bir daha asla görüntülenmez. Yine fiyatlandırma kısmına gelirsek ibm watson iot, aws iot'a göre oldukça maliyetlidir. Yani, ibm watson iot ücretlerindeki fiyat, cihaz, veri depolama, veri trafiği bazındadır. Ancak aws iot'ta bir kez ödeyebiliyoruz ve cihazlardan yayınlanan ve cihazlara teslim edilen daha fazla cihaz ve veri ekleyebiliyoruz.

İster bir sensör, ister ağ geçidi veya başka bir şey olsun, cihazınızla başlayın ve buluta bağlanmanıza yardımcı olalım.

Açık, hafif MGTT mesajlaşma protokolü veya HTTP kullanarak buluta bağlandığınızda cihaz verileriniz her zaman güvendedir. Protokoller ve node-red yardımıyla cihazımızı iot platformuna bağlayabilir, canlı ve geçmiş verilere erişebiliriz.

Uygulamalarınızı cihazlarınızdaki verilerle bağlamak için güvenli API'lerimizi kullanın.

Verileri yorumlamak için verilen bulut hizmetimiz içinde uygulamalar oluşturun.

Önerilen: