Udemy

Platform

Türkçe

Language

Web Development

Category

Spring Boot ile Microservices ve Cloud'a Yayınlama

Spring security, JWT, Retrofit, Github ile Heroku Cloud Deployment, PostgreSQL, H2-Database, Hibernate, Lombok, JPA

4.38 (22 reviews)

Students

6 hours

Content

Aug 2021

Last Update
Regular Price


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


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.


Screenshots

Spring Boot ile Microservices ve Cloud'a Yayınlama
Spring Boot ile Microservices ve Cloud'a Yayınlama
Spring Boot ile Microservices ve Cloud'a Yayınlama
Spring Boot ile Microservices ve Cloud'a Yayınlama

Content

Introduction

Giriş - Tüm Sistemin Mimarisi

Microservislerin Avantajları ve Dezavantajları

Geliştirme Ortamının Ayarlanması

Java 11'in İndirilmesi ve Kurulması

Intellij'in İndirilmesi ve Kurulması

PostgreSQL'in İndirilmesi ve Kurulması

Git'in İndirilmesi ve Kurulması

Lombok'un İndirilmesi ve Kurulması

Kursta Kullanılıcak Frameworkler için Genel Bakış

Spring ve Spring Boot için Genel Bakış

Restful Web Servisler için Genel Bakış

Rest Controller Genel Bakış

@RequestParam Anotasyonu ve Nasıl Çalıştığının İncelenmesi

@RequestBody Anotasyonu ve Nasıl Çalıştığının İncelenmesi

@PathVariable Anotasyonu ve Nasıl Çalıştığının İncelenmesi

Mikroservis 1 - Product Servis

Product Mikroservis için Source Code

Product Mikroservisin Mimarisi

Product Mikroservis Projesinin Oluşturulması

Niye Gradle'ı Seçtik? Niye Maven'ı Tercih Etmedik?

PostgreSQL Veritabanın Oluşturulması

Veritabanı Özelliklerinin application.properties'de Belirtilmesi

Product Varlık Sınıfının Oluşturulması

Product Repository Sınıfının Spring Data JPA ile Uygulanması

Product Servis Sınıfının Uygulanması

Product Controller Sınıfının Uygulanması - Rest API

Product Mikroservisi için Security Konfigürasyonunun Uygulanması

Spring Boot Uygulamamızın Test Edilmesi

Postman Kurulum ve Postman'e Genel Bakış

Spring Boot Uygulamamızı Nasıl Başlatabiliriz?

Product Mikroservis Endpointlerinin Test Edilmesi

Spring Profilleri

Projemizi Geliştirme ve Production için Ayrı Ayrı Yapılandırma

Cloud Deployment - Heroku

Heroku'ya Genel Bakış

Projemizi Heroku için Konfigürasyon Etme

Proje Kaynaklarımızı Github'a Gönderme

Projemizi Github Üzerinden Heroku'ya Deploy Etme

Mikroservis 2 - Transaction Servis

Transaction Servisi için Source Code

Transaction Mikroservisinin Mimarisi

Transaction Projemizin Oluşturulması

Veritabanı Özelliklerinin application.properties'de Özelleştirilmesi

Transaction Varlık Sınıfının Oluşturulması

Transaction Repository Sınıfının Spring Data JPA ile Uygulanması

Transaction Servis Sınıfının Uygulanması

Transaction Controller Sınıfının Uygulanması - Rest API

Transaction Mikroservisi için Security Konfigürasyonunun Uygulanması

Transaction Mikroservisin Test Edilmesi

Transaction Mikroservis Endpointlerinin Test Edilmesi

Mikroservisimizi Cloud için Hazırlama ve Deployment

Projemizi Geliştirme ve Production için Ayrı Ayrı Yapılandırma

Projemizi Heroku için Konfigürasyon Etme

Proje Kaynaklarımızı Github'a Gönderme

Projemizi Github Üzerinden Heroku'ya Deploy Etme

Mikroservis 3 - Gateway Servis

Gateway MikroServisi için Source Code

Gateway Mikroservisinin Mimarisi

Gateway Projesinin Oluşturulması

PostgreSQL Veritabanın Oluşturulması

Veritabanı Özelliklerinin application.properties'de Belirtilmesi

User Varlık Sınıfının Oluşturulması

User Repository Sınıfının Spring Data JPA ile Uygulanması

User Servis Sınıfının Uygulanması

Gateway'de Security Konfigürasyonun Uygulanması

Kullanıcı Adına Göre Authentication İşleminin Gerçekleştirilmesi

Gateway Mikroservisi için Security Konfigürasyonunun Uygulanması

JWT'nin Uygulanması

JWT'ye Genel Bakış ve JWT Kütüphanelerinin İndirilmesi

JWT Yardımcı Metodlarının Oluşturulması

JWT Authentication Filtresinin Oluşturulması

Kullanıcı Login ve Kaydolma İşlemlerinin Uygulanması

Authentication Servis Sınıfının Uygulanması

Authentication Controller Sınıfının Uygulanması

Mikroservisler Arası İletişimin Sağlanması - Retrofit

Retrofit'e Genel Bakış ve Retrofit Kütüphanelerinin İndirilmesi

Gson Konfigürasyonunun Yapılması

Retrofit Konfigürasyonunun Yapılması

Product Mikroservis İle İletişim Kurma

Product Mikroservis için Retrofit Yapılandırması ve Endpointlerin Oluşturulması

Product Mikroservis Endpointlerinin Çağrılması

Product Mikroservis ile Gateway Arasındaki Köprünün Kurulması

Transaction Mikroservis İle İletişim Kurma

Transaction Mikroservis için Retrofit Yapılandırması ve Endpointler

Transaction Mikroservis Endpointlerinin Çağrılması

Transaction Mikroservis ile Gateway Arasındaki Köprünün Kurulması

Gateway Mikroservisini Local'de Test Etme

Gateway Mikroservis Endpointlerinin Test Edilmesi

Mikroservisimizi Cloud için Hazırlama ve Deployment

Projemizi Geliştirme ve Production için Ayrı Ayrı Yapılandırma

Projemizi Heroku için Konfigürasyon Etme

Proje Kaynaklarımızı Github'a Gönderme

Projemizi Github Üzerinden Heroku'ya Deploy Etme

Gateway Mikroservisini Cloud'dan Test Etme

Gateway Mikroservis Endpointlerinin Test Edilmesi


4046820

Udemy ID

5/13/2021

Course created date

5/17/2021

Course Indexed date
Bot
Course Submitted by