Spring Boot ile Microservices ve Cloud'a Yayınlama
Spring security, JWT, Retrofit, Github ile Heroku Cloud Deployment, PostgreSQL, H2-Database, Hibernate, Lombok, JPA
Description
Merhaba arkadaşlar,
Burada, bu kurs kapsamında kullanacağımız projenin mimarisinden bahsedeceğiz. Bunun yanında elbetteki kullanacağımız teknolojilerden de ister istemez bahsetmiş olacaz. Yani kısaca road-mapimizden yani nasıl ilerleyeceğimizden konuşacaz.
Bu derste ürün-sipariş-uygulama gibi bir proje oluşturacağız.
Ürün-sipariş-uygulama dediğimizde kitap listesi, yemek listesi veya kıyafet listesi gibi bir ürün listesi sayfamız olacakmış gibi düşünebiliriz. Bir şekilde kullanıcılar veya müşteriler bu ürün listelerini görecek ve ürünlerden birini satın alabilecekler. Tabii ki günün sonunda bu işlem loglanacak. Loglanma derken, işte şu kullanıcı şu ürünü aldı gibi bir kayıt oluşturulacak.
Aslında uygulamamızda bu süreçleri farklı mikro hizmetler ile uygulamaya çalışacağız.
Bu uygulamayı hayata geçirmek için üç farklı mikro servis kullanacağız.
Mikro servislerimiz api-gatewayi, product-servis ve transaction servis olacak.
Api-gateway'de API'leri yöneteceğiz. Apiların iletişim noktası burası olacak. Bu mikro servis, tüm uygulama için bir ağ geçiş olacak.
Diğer hizmetlere erişmek için bu mikro servisi kullanacağız. Bu mikro serviste, kullanıcı yönetimini de ele alacağız. Kullanıcılara yetki vereceğiz ve kullanıcılar yetkili ise, diğer hizmetler de mevcut olabilecek.
Product-servis’te, product CRUD işlemlerini yöneteceğiz. Bu hizmet bir ürün yönetimi hizmeti olacak. Yani ürünlerin eklenmesi, silinmesi listelenmesi vs. buradan gerçekleşecek.
Transaction serviste, transaction ile ilgili CRUD işlemlerini yöneteceğiz. Bu hizmet, ürün satın alımlarından gelen günlükleri saklayacaktır. Örneğin, UserX, ProductX'i DateX vb.
Mikro servis bağımlılık sürecimiz nasıl olacak dersek?
Her şeyden önce, istemci api-gatewaye erişecek.
API ağ geçidine erişmek için, istemcinin oturum açma gerekecek elbetteki.
Daha sonra diğer hizmetlere api-gateway üzerinden erişilebilecek.
Spring-security uygulamamızdaki ana konulardan biri olacak.
Ayrıca, güvenliği sağlamak için JWT kullanacağız.
Burada önemli olan nokta, mikro servisler arasında da güvenli bağlantılar kullanacağız. Bunu sağlamak için güvenli anahtar tokenları kullanacağız.
Veritabanı olarak PostgreSQL ve H2Database kullanacağız.
Diğer veritabanlarını da kullanabiliriz, ancak sonunda kodlarımızı Heroku'ya yerleştireceğiz. Bu veritabanları Heroku'da serbestçe kullanılabilir, bu yüzden bu veritabanlarını seçtik.
Retrofit librarisi ile mikro servisler arasında bağlantı sağlayacağız.
Retrofit bizim tüm mikro servis iletişim sorunlarımızı halledecek.
Tüm hizmetlerimiz için Heroku ile bulut dağıtımı oluşturacağız. Heroku harika bir ücretsiz çerçevedir. Spring-boot projelerimizi bazı konfigürasyonlarla github üzerinden kolayca dağıtabiliriz. Bu yüzden kursun sonunda üretim üzerine bir uygulamamız olacak ve github'da herkesin erişebileceği bir koda sahip olacağız.
Bu kütüphanelere ek olarak, projemizde Spring Boot, Spring Security, Hibernate, PostgreSQL, Gradle, Lombok, Heroku vb. Birçok teknolojiyi kullanacağız.
Elbette buradaki ana kütüphanemiz Spring-boot olacak. Veri sağlamak için kurulum, yapılandırma ve veri tabanı oluşturmanın daha basit ve daha hızlı bir yolunu sağlayacaktır.
Her mikro hizmetin sonunda uygulamalarımızı Postman ile test edeceğiz. Postman, ağda hata ayıklamak için başka bir harika araçtır.
What You Will Learn!
- Spring Boot ile Sıfırdan Proje Oluşturma
- Spring Boot Projesini Cloud'a Deploy Etme
- Heroku ile Projeleri Ayağa Kaldırma
Who Should Attend!
- Microservices ile ilgili tüm geliştiriciler