microservices

20
Microservices ARDA ÇETİNKAYA Takip Et: @ardacetinkaya Yaz: [email protected] Oku: www.minepla.net

Upload: arda-cetinkaya

Post on 15-Dec-2014

1.401 views

Category:

Software


7 download

DESCRIPTION

NedirTv'nin 18 Ekim 2014 tarihindeki Yazılım Teknolojileri etkinliğinde Microservices ile ilgili yaptığım sunum.

TRANSCRIPT

Page 1: Microservices

Microservices

ARDA ÇETİNKAYATakip Et: @ardacetinkayaYaz: [email protected]: www.minepla.net

Page 2: Microservices

Uygulama Anatomisiİhtiyaçları topladık, biri sürü fonksiyon var...Web uygulaması gibi sanki...Çok güzel...

Page 3: Microservices

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...

Page 4: Microservices

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…

Page 5: Microservices

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...

Page 6: Microservices

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...

Page 7: Microservices

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ı...

Page 8: Microservices

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ı....

Page 9: Microservices

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...

Page 10: Microservices

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...

Page 11: Microservices

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...

Page 12: Microservices

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...

Page 13: Microservices

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...

Page 14: Microservices

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....

Page 15: Microservices

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

Page 16: Microservices

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.

Page 17: Microservices

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»

Page 18: Microservices

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

Page 19: Microservices

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»

Page 20: Microservices

Teşekkürler

ARDA ÇETİNKAYATakip Et: @ardacetinkayaYaz: [email protected]: www.minepla.net