microservices
DESCRIPTION
NedirTv'nin 18 Ekim 2014 tarihindeki Yazılım Teknolojileri etkinliğinde Microservices ile ilgili yaptığım sunum.TRANSCRIPT
Microservices
ARDA ÇETİNKAYATakip Et: @ardacetinkayaYaz: [email protected]: www.minepla.net
Uygulama Anatomisiİhtiyaçları topladık, biri sürü fonksiyon var...Web uygulaması gibi sanki...Çok güzel...
Uygulama Anatomisiİhtiyaçları topladık, biri sürü fonksiyon var...Web uygulaması gibi sanki...Çok güzel...Önce katmanlarımızı oluşturmalıyız... UI-Business-Data falan filan...Neden, çünkü N-Layer(?) uygulama yapıyoruz, şahane...
Uygulama Anatomisiİhtiyaçları topladık, biri sürü fonksiyon var...Web uygulaması gibi sanki...Çok güzel...Önce katmanlarımızı oluşturmalıyız... UI-Business-Data falan filan...Neden, çünkü N-Layer(?) uygulama yapıyoruz, şahane...Yeni fonksiyonlar da geldi...IoC, DI falan bunlardan da serpelim azıcık…
Uygulama Anatomisiİhtiyaçları topladık, biri sürü fonksiyon var...Web uygulaması gibi sanki...Çok güzel...Önce katmanlarımızı oluşturmalıyız... UI-Business-Data falan filan...Neden, çünkü N-Layer(?) uygulama yapıyoruz, şahane...Yeni fonksiyonlar da geldi...IoC, DI falan bunlardan da serpelim azıcık...Modüllerimiz de olsun...
Uygulama Anatomisiİhtiyaçları topladık, biri sürü fonksiyon var...Web uygulaması gibi sanki...Çok güzel...Önce katmanlarımızı oluşturmalıyız... UI-Business-Data falan filan...Neden, çünkü N-Layer(?) uygulama yapıyoruz, şahane...Yeni fonksiyonlar da geldi...IoC,DI falan bunlardan da serpelim azıcık...Modüllerimiz de olsun...Uygulamamızı çok sevdiler, entegre olup kullanmak istiyorlar. Bir tane Service Layer olsun, servisler yazalım... SOA oluyor galiba(!!!), çok güzel...
Uygulama Anatomisiİhtiyaçları topladık, biri sürü fonksiyon var...Web uygulaması gibi sanki...Çok güzel...Önce katmanlarımızı oluşturmalıyız... UI-Business-Data falan filan...Neden, çünkü N-Layer(?) uygulama yapıyoruz, şahane...Yeni fonksiyonlar da geldi...IoC,DI falan bunlardan da serpelim azıcık...Modüllerimiz de olsun...Uygulamamızı çok sevdiler, entegre olup kullanmak istiyorlar. Bir tane Service Layer olsun, servisler yazalım... SOA oluyor galiba(!!!), çok güzel...Yeni ihtiyaçlar geldi yine... Business karışmaya başladı...
Uygulama Anatomisiİhtiyaçları topladık, biri sürü fonksiyon var...Web uygulaması gibi sanki...Çok güzel...Önce katmanlarımızı oluşturmalıyız... UI-Business-Data falan filan...Neden, çünkü N-Layer(?) uygulama yapıyoruz, şahane...Yeni fonksiyonlar da geldi...IoC, DI falan bunlardan da serpelim azıcık...Modüllerimiz de olsun...Uygulamamızı çok sevdiler, entegre olup kullanmak istiyorlar. Bir tane Service Layer olsun, servisler yazalım... SOA oluyor galiba(!!!), çok güzel...Yeni ihtiyaçlar geldi yine... Business karışmaya başladı... Tam 100 satırlık bir Stored Procedure zamanı....
Uygulama Anatomisiİhtiyaçları topladık, biri sürü fonksiyon var...Web uygulaması gibi sanki...Çok güzel...Önce katmanlarımızı oluşturmalıyız... UI-Business-Data falan filan...Neden, çünkü N-Layer(?) uygulama yapıyoruz, şahane...Yeni fonksiyonlar da geldi...IoC, DI falan bunlardan da serpelim azıcık...Modüllerimiz de olsun...Uygulamamızı çok sevdiler, entegre olup kullanmak istiyorlar. Bir tane Service Layer olsun, servisler yazalım... SOA oluyor galiba(!!!), çok güzel...Yeni ihtiyaçlar geldi yine... Business karışmaya başladı... Tam 100 satırlık bir Stored Procedure zamanı....Neyse bu arada içeri bir tane ESB koyalım, mesajlaşma standartlarım da olsun ki soran olursa eksik olmasın. Tam SOA oldu galiba, yani sanırım...
Uygulama Anatomisiİhtiyaçları topladık, biri sürü fonksiyon var...Web uygulaması gibi sanki...Çok güzel...Önce katmanlarımızı oluşturmalıyız... UI-Business-Data falan filan...Neden, çünkü N-Layer(?) uygulama yapıyoruz, şahane...Yeni fonksiyonlar da geldi...IoC, DI falan bunlardan da serpelim azıcık...Modüllerimiz de olsun...Uygulamamızı çok sevdiler, entegre olup kullanmak istiyorlar. Bir tane Service Layer olsun, servisler yazalım... SOA oluyor galiba(!!!), çok güzel...Yeni ihtiyaçlar geldi yine... Business karışmaya başladı... Tam 100 satırlık bir Stored Procedure zamanı....Neyse bu arada içeri bir tane ESB koyalım, mesajlaşma standartlarım da olsun ki soran olursa eksik olmasın. Tam SOA oldu galiba, yani sanırım...
Uygulama Anatomisiİhtiyaçları topladık, biri sürü fonksiyon var...Web uygulaması gibi sanki...Çok güzel...Önce katmanlarımızı oluşturmalıyız... UI-Business-Data falan filan...Neden, çünkü N-Layer(?) uygulama yapıyoruz, şahane...Yeni fonksiyonlar da geldi...IoC, DI falan bunlardan da serpelim azıcık...Modüllerimiz de olsun...Uygulamamızı çok sevdiler, entegre olup kullanmak istiyorlar. Bir tane Service Layer olsun, servisler yazalım... SOA oluyor galiba(!!!), çok güzel...Yeni ihtiyaçlar geldi yine... Business karışmaya başladı... Tam 100 satırlık bir Stored Procedure zamanı....Neyse bu arada içeri bir tane ESB koyalım, mesajlaşma standartlarım da olsun ki soran olursa eksik olmasın. Tam SOA oldu galiba, yani sanırım...
Monolithic Uygulamalar
.Tüm fonksiyonlar tek bir "process" altında...
.Merkezileştirilmiş bir yapısı...
.Deployment kolay, uygulumana büyüdükçe riskli...
.Uygulama büyüdükçe geliştirme zorlaşıyor...
.Teknolojiye bağımlı hale geliniyor...
."Scale" etmek başta kolay, ama sonra imkansız...
Monolithic Uygulamalar
.Tüm fonksiyonlar tek bir "process" altında...
.Merkezileştirilmiş bir yapısı...
.Deployment kolay, uygulumana büyüdükçe riskli...
.Uygulama büyüdükçe geliştirme zorlaşıyor...
.Teknolojiye bağımlı hale geliniyor...
."Scale" etmek başta kolay, ama sonra imkansız...
Uygulamayı servislere bölmek...
Microservices vs. SOA
SOA
«Service-oriented architecture (SOA) is a software design and software architecture
design pattern based on distinct pieces of software providing application functionality
as services to other applications. This is known as service-orientation. It is
independent of any vendor, product or technology»
Wikipedia
Microservices
...functionality independent, distinct pieces of software as services....
Microservices vs. SOA
.Servis odaklı mimari(SOA) için alternatif bir mimari tasarım kalıbı değil...
.SOA mimarisinde uyguluma geliştirmek için tercih edilebilecek bir mimari tasarım
stili...
.Kompleks mesajlaşma alt yapısı, web servis standartları yerine «lightweight»
çözümler...
– ESB yerine daha «basit» mesajlaşma yapıları...
– SOAP vs. REST
«Microservices is a specific flavour of SOA, due to unique features, it deserves a name.»
Martin Fowler
Bir SOA stili, Microservices...
.Tek başına, ayrık çalışan ve «Single Responsibility» prensibine sahip servislerdir.
.«Business Capability» durumlarına göre ayrıştırılmış servislerdir.
.Çok küçük sayıda, sadece «bir tane» sorumlulukları vardır...Onu da çok iyi yaparlar.
Microservices
Development
Tek bir teknolojiye bağlı olmak zorunda değil...
Data
Veri yönetimleri farklı olabilir...RDMS, Graph Database...vs.
Business
İhtiyaçlar birbirlerinden ayrı geliştirilebilir...
Deployment
Birbirlerinden bağımsız, herhangi bir zamanda deploy edilebilirler...
«Bağımsız Servisler»
Getirdikleri
.Kolay
Değiştirmek
Deployment
.Bağımsız
Dil
Platform
Framework
.Scale edilebilir uygulamalar
.Test edilebilir uygulamalar
.Hızlı uygulama geliştirme
.Proje vs. Ürün
Microservices
.«No Silver Bullet»
.Fonksiyonlar iyi ayrıştırılamazsa, içerideki karmaşıklık dışarıda, servisler arasında da olur
.Servisler çok küçülmemeli. Nano-servisler olmamalı
.Tecrübeli takımlar/kişiler mutlaka olmalı
."Deployment" yöntemleri net ve sağlıklı bir şekilde otomatikleşmiş olmalı
."DevOps" kültürü olmalı
.Versiyonlama çok iyi yönetilmeli
.Uygulama ve servis monitör yöntemleri oturmuş olmalı
«No Silver Bullet»
Teşekkürler
ARDA ÇETİNKAYATakip Et: @ardacetinkayaYaz: [email protected]: www.minepla.net