tohum
← Blog’a dön

Aşama 2: Sistem Mimarisi

İnşa Etmeden Önce Kâğıt Üzerinde Planlayın

Önceki bölüm için tıklayın: Aşama 1

Aşama 1’den elimizde sağlam gereksinimler varken, artık mimar moduna geçme zamanı! Aşama 2’de, bu gereksinimleri nasıl karşılayacağımızın üst düzey oyun planını oluşturuyoruz. Sistem mimarisini, herhangi bir ev ya da yol inşa etmeden önce bir şehir tasarlamak gibi düşünün. Tek bir damla beton dökmeden önce otoyolların ve köprülerin nereden geçeceğini belirlersiniz. IoT projemizde bu, herhangi bir lehimleme ya da kodlama başlamadan önce tüm sistemi kâğıt üzerinde ya da beyaz tahtada (dijital “kâğıt” da olur) taslak haline getirmek demek. Bu aşama tamamen büyük resmi düşünmekle ilgili — ürününüzün ileriki tasarımını şekillendirecek kilit kararları şimdi vermekle. Aşama 2’nin sonunda IoT ürününüz için net bir plana sahip olacaksınız; bu da sizi yolun ilerisindeki maliyetli “baştan yapma”lardan kurtaracak.

Tüm Sistemi Bir Blok Diyagramla Görselleştirin

Mimari planlamanın ilk adımı, tüm sisteminizin bir blok diyagramını çizmek. Bu, bir mimarın kat planı gibi — ama IoT cihazınız ve ekosistemi için. Tüm ana bileşenleri çizer, birbirlerine nasıl bağlandıklarını ve nasıl haberleştiklerini gösterirsiniz. Örneğin basit bir IoT blok diyagramı şöyle görünebilir:

Bu zincir, uçtan uca veri yolunu temsil eder. Sensör veriyi toplar ve MCU’ya iletir. Mikrodenetleyici biraz işleme yapabilir, ardından veriyi bir cloud sunucusuna göndermek için kablosuz bir radyo (belki Wi-Fi, Bluetooth, LoRa vb.) kullanır. Cloud sunucusu veriyi depolar ya da analiz eder ve sonra bir web panosu ya da mobil uygulama gibi bir kullanıcı arayüzüne sunar. Bu akışı bir diyagramda ortaya koyarak, siz (ve ekibinizdeki herkes) tüm parçaları bir bakışta görebilir ve verinin sistemde nasıl dolaştığını anlayabilirsiniz.

Burada resim yeteneğinizi dert etmeyin — basit kutular ve oklar bile gayet yeterli! Amaç netlik. Blok diyagramınız, IoT “şehrinizin” büyük resim haritasıdır. Herkesin genel yapıyı görselleştirmesine yardımcı olur: temel bileşenler neler ve birbirleriyle nasıl etkileşiyorlar. Bu, siz aslında verinin bir cloud API’si üzerinden gitmesini planlarken birinin cihazın veriyi doğrudan telefon uygulamasına gönderdiğini sanması gibi yanlış anlamaları önler. Herkes aynı haritaya baktığında, ileride kaybolma ihtimaliniz azalır.

Bölümlendirme Kararları: Kim Neyi (ve Nerede) Yapıyor?

Tüm sistemi çizdikten sonra sıradaki adım bölümlendirme — mimarinizde hangi sorumluluğun nerede yaşayacağına karar vermek. Başka bir deyişle, kimin ne yapacağını belirlemek: hangi işleri donanım/cihaz üstlenmeli, hangileri firmware’de (cihazın yazılımında) yapılmalı ve hangileri cloud ya da sunucu tarafına ait? Bu kritik bir tasarım kararı, çünkü performansı, maliyeti, karmaşıklığı ve hatta güvenliği etkiliyor.

Bir IoT sisteminde bölümlendirme kararlarına birkaç örnek:

Bölümlendirme bir denge oyunudur. Sistemin her parçasının en iyi olduğu işi yapmasını istersiniz. Minik pilli sensörler veri toplamakta ve belki hafif işleme yapmakta harikadır, ama ağır hesap işlerini daha güçlü bir cloud sunucusuna yıkarsınız. Tersine, uygulamanız ultra hızlı yanıt gerektiriyorsa ya da internetsiz çalışmak zorundaysa, daha fazla zekâyı uçtaki cihaza itersiniz. Herkese uyan tek bir cevap yok — Aşama 1’deki gereksinimlerinize göre ödünleşimleri tartmanız gerekiyor.

Bu seçimler üzerinde yinelemek son derece normal. “Cihazımız her şeyi yapacak — ön işleme, şifreleme, karar verme!” fikriyle başlayıp, sonra seçtiğiniz mikrodenetleyicinin bu iş yükünü kaldıramadığını (ya da belleğinin çok küçük olduğunu) fark edebilirsiniz. Mimari aşamasındaki bu içgörü, cihazı basitleştirmek için bazı görevleri cloud’a kaydırmanıza yol açabilir. Ya da tam tersi: belki işlemeyi cloud’da yapmayı planladınız, ama ağ gecikmesi bir endişe kaynağı ve daha fazlasını cihazda halletmeye karar veriyorsunuz. Bu sorunları kâğıt üzerinde yakalamak, bir ton kod yazdıktan ya da gereken firmware’i taşıyamayan bir PCB ürettikten sonra keşfetmekten kıyaslanamayacak kadar ucuzdur. O yüzden sorumlulukları akıllıca paylaştırmak için şimdi zaman ayırın.

Teknoloji Seçimi: Her Parça İçin Doğru Aracı Seçmek

Artık bir blok diyagramınız var ve sorumlulukları bölümlendirdiniz; sıra teknoloji seçiminde. Burada diyagramınızdaki her blok için gerçek teknolojilere ya da bileşenlere karar verirsiniz (ya da en azından seçenekleri daraltırsınız). Bunu, bir binanın her bölümü için malzeme ve ekipman seçmek gibi düşünün — çelik mi ahşap iskelet mi? Tuğla mı beton duvar mı? IoT dilinde önemli başlıklar şunlar:

Teknolojileri mimari aşamasında seçerek, sisteminizin tüm parçalarının birbiriyle uyumlu olduğundan ve gereksinimleri karşıladığından emin olursunuz. Bu, kabaca maliyet tahmini ve fizibilite için de yardımcı olur. Örneğin “muhtemelen” üst segment bir MCU’ya ve belirli bir uzun menzilli radyoya ihtiyacınız olduğunu belirlerseniz, toplam maliyetin ürününüzün bütçesine hâlâ sığıp sığmadığını ve bu parçaların birlikte çalışıp çalışamayacağını (doğru arayüzlere sahipler mi? sürücü desteği gerekiyor mu?) sağlamasını yapabilirsiniz. Beğendiğiniz bir radyo modülünün yalnızca belirli bir mikrodenetleyici ailesiyle geldiğini ya da harici bir MCU gerektirdiğini burada keşfedebilirsiniz — bunu sonra değil, şimdi bilmek çok daha iyi!

Ayrıca gücü ve boyutu aklınızdan çıkarmayın. Minicik ve pille çalışması gereken bir IoT cihazı (giyilebilir bir cihaz ya da uzak bir sensör gibi), yerden ve güçten tasarruf etmek için MCU + radyoyu tek pakette birleştiren bir system-on-chip seçmeye sizi zorlayabilir. Ya da cihazınızın çok ucuz olması gerekiyorsa, sensör+MCU+radyoyu bir arada sunan hepsi bir arada bir modüle yönelebilirsiniz. Bu seçenekleri kâğıt üzerinde evirip çevirip hangi teknoloji yığınının proje ihtiyaçlarını en iyi karşıladığını görme aşaması tam olarak burası.

Risk ve Maliyet Analizi: Olası Tuzakları Erken Belirleyin

Bu erken mimari aşamasında bile, işini bilen bir IoT mimarı seçilen tasarımla ilişkili riskleri ve maliyetleri düşünmeye başlar. Bu sorunları şimdi işaretlemek, sonradan tatsız sürprizlerle karşılaşmaktan çok daha iyidir. İşte düşünülmesi gereken bazı konular:

Aşama 2’de risk ve maliyet analizi yaparak geliştirme sürecine gözleriniz dört açık girersiniz. Tasarımınızın en riskli kısmının, diyelim ki cihaz üzerindeki özel makine öğrenmesi algoritması olduğunu biliyorsanız, geliştirmede önce onu ele alabilir ya da en azından yakından izleyebilirsiniz. En pahalı bileşen belirli bir sensörse, bütçe konusunda başka yerlerde dikkatli olursunuz. Hiçbir ürün risksiz değildir, ama proaktif planlama, başarılı projeleri son dakikada önlenebilir sorunları çözmeye çırpınan projelerden ayırır.

Mimariyi Net Bir Şekilde Belgelemek

Mimari aşamasının sonunda, sistem mimarinizi tüm ekip için anlaşılır ve paylaşılabilir bir şekilde belgelemek isteyeceksiniz. Bu dokümantasyon herkesin başvuracağı plan haline gelir, o yüzden net ve erişilebilir olması gerekir (baş mühendisin kafasında kilitli kalmamalı!).

Mimariyi yakalamanın ve iletmenin başlıca yolları şunlar:

Dokümantasyonun amacı, herhangi bir ekip üyesinin (ya da projeye yeni katılan birinin) mimariye bakıp genel tasarımı hızla kavrayabilmesi. Mühendislik dışı paydaşlarla konuşurken de işe yarar — örneğin ürün yöneticileri ya da yöneticiler kodunuzu kurcalamaz, ama üst düzey bir diyagrama bakıp ürünün konseptini anlayabilirler. İyi mimari dokümantasyonu, fikirlerle uygulama arasındaki köprüdür.

“İki Kez Tasarla, Bir Kez İnşa Et”: Erken Planlamayla Zaman Kazanın

Mühendislikte bir düstur vardır: “iki kez tasarla, bir kez inşa et.” Pratikte bu, sorunları tasarımda (kâğıt üzerinde) yakalayıp düzeltmenin, bir şey inşa ettikten sonra düzeltmekten çok daha ucuz ve kolay olduğu anlamına gelir. Aşama 2 tam olarak bu felsefeyle ilgili. İnşaya dalmadan önce sistem mimarisini enine boyuna tartışarak, kendinizi ileride pahalı yeniden çalışmalardan kurtarırsınız. Bir diyagramda kutuları ve okları oynatmak, orijinal planın kusurlu olduğunu çok geç fark ettiğiniz için basılmış bir devre kartını sökmekten ya da koca bir firmware modülünü baştan yazmaktan çok daha az acı vericidir.

Bu aşamayı, tüm ekip üyelerini erkenden aynı sayfada buluşturmak için kullanın. Bu çok disiplinli bir çaba — donanım mühendisleri, firmware geliştiricileri, cloud/backend mühendisleri, ürün yöneticileri, aklınıza kim gelirse. Mimarinin gözden geçirilmesinde herkesin söz hakkı olmalı. Bu noktada ekip tartışmalarını ve beyin fırtınasını teşvik edin. Şaşırabilirsiniz: bir cloud mühendisi, “Cihaz her sensör okumasına göndermeden önce bir zaman damgası ekleyebilse, sunucu tarafında hayatım kolaylaşırdı” diyebilir. Bu, cihaz firmware planına eklemesi görece küçük bir istek — önceden bilirseniz. Ya da bir donanım tasarımcısı şunu belirtebilir: “Şu an iki sensör kullanıyoruz, ama üçüncüsünü eklersek hava kalitesini de ölçebiliriz — buna yer bırakmak istediğimiz bir şey mi?” Bu içgörüler, her ekip kendi köşesinde çalışsaydı aklınıza gelmeyecek küçük mimari ayarlamalara, ya da en azından gelecekteki genişleme için önlemlere yol açabilir. Bu arayüz noktalarını ve özellik değerlendirmelerini şimdi çözmek, birileri sistemin kolayca değiştirilemeyeceğini fark ettiğinde yaşanacak “Eyvah!” anlarından çok daha iyidir.

Aşama 2’de titiz olmak özgüven de inşa eder. Bu aşamanın sonunda net bir plana sahip olmalısınız: Aşama 1’de belirlenen gereksinimleri nasıl karşılamayı planladığınızı gösteren üst düzey bir tasarım. Bu, bir binanın mimari çizimine benzer — henüz boya renklerini ya da kapı kollarını seçmiyorsunuz, ama binanın kaç katlı olacağını, kapıların ve pencerelerin nerede olacağını ve odaların nasıl yerleşeceğini biliyorsunuz. IoT dilinde; cihazların ne olduğunu, nasıl bağlandıklarını, hangi verinin nereye aktığını ve bunu kabaca hangi teknolojiyle yapacağınızı biliyorsunuz.

Elinizde bu planla, artık detaylı tasarımın ve uygulamanın sonraki adımlarına güvenle dalmaya hazırsınız. Esasen IoT yolculuğunuz için bir harita oluşturdunuz; kaybolma ya da gafil avlanma ihtimaliniz çok daha düşük. Aşama 3 ve sonrasında, donanım kurmaya ya da kod yazmaya başladığınızda, size yol göstermesi için sürekli bu mimariye döneceksiniz. Ve değişiklikler olursa (her zaman olur!), mimari dokümanınızı güncelleyebilirsiniz ki güvenilir bir referans olarak kalsın.

Kısacası: Aşama 2, Sistem Mimarisi, kendinizi başarıya hazırladığınız yerdir. Ekibi hizalar, riskleri erken ortaya çıkarır ve net bir oyun planı sunar. Tasarladınız (belki iki kez bile 😜), artık bir kez inşa edebilirsiniz — hem de doğru inşa edebilirsiniz! Bu planı yanınızdan ayırmayın; IoT ürününüzü geliştirme yolculuğunuzda Kutup Yıldızınız olacak.