{"id":788,"date":"2016-09-08T23:52:51","date_gmt":"2016-09-08T20:52:51","guid":{"rendered":"https:\/\/gokhan-gokalp.com\/?p=788"},"modified":"2016-09-08T23:52:51","modified_gmt":"2016-09-08T20:52:51","slug":"monolithic-ve-microservice-architecturea-genel-bir-bakis","status":"publish","type":"post","link":"https:\/\/gokhan-gokalp.com\/tr\/monolithic-ve-microservice-architecturea-genel-bir-bakis\/","title":{"rendered":"Monolithic ve MicroService Architecture&#8217;a Genel Bir Bak\u0131\u015f"},"content":{"rendered":"<p>Merhaba arkada\u015flar.<\/p>\n<p>Bu blog yaz\u0131mdaki konum, her ne kadar\u00a0yeni bir \u015fey olmasada, son d\u00f6nemlerde <em>Martin Fowler<\/em> ile g\u00fcndeme gelen ve git gide \u00f6nemini artt\u0131ran\u00a0<strong>MicroService\u00a0<\/strong>mimarisi \u00fczerine genel bir bak\u0131\u015f olacak. Ayr\u0131ca\u00a0bu do\u011frultuda do\u011fru\u00a0bilinen yanl\u0131\u015flar, MicroService mimarisinin art\u0131lar\u0131 ve eksileri gibi y\u00f6nlerine de de\u011finiyor olaca\u011f\u0131z.<\/p>\n<p>Dilerseniz \u00f6ncelikle <strong>Monolithic<\/strong> kavram\u0131ndan bir bahsedelim.<\/p>\n<p><a href=\"\/wp-content\/uploads\/2016\/09\/micro-services.png\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-791 lazyload\" data-src=\"\/wp-content\/uploads\/2016\/09\/micro-services.png\" alt=\"micro-services\" width=\"600\" height=\"282\" data-srcset=\"https:\/\/gokhan-gokalp.com\/wp-content\/uploads\/2016\/09\/micro-services.png 600w, https:\/\/gokhan-gokalp.com\/wp-content\/uploads\/2016\/09\/micro-services-300x141.png 300w\" data-sizes=\"(max-width: 600px) 100vw, 600px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 600px; --smush-placeholder-aspect-ratio: 600\/282;\" \/><\/a><\/p>\n<h4>Monolithic Architecture Nedir?<\/h4>\n<blockquote><p>Monolithic architecture yaz\u0131l\u0131m\u0131n <strong>self-contained<\/strong>(kendi kendine yeten) olarak tasarlanmas\u0131 anlam\u0131na gelmektedir. Bir standart do\u011frultusunda &#8220;tek bir par\u00e7a&#8221; olarak olu\u015fmas\u0131 da diyebiliriz. Bu mimarideki component&#8217;ler <strong>loosely coupled<\/strong> olmas\u0131ndan ziyade, <strong>interdependent<\/strong> olarak tasarlanmaktad\u0131r.<\/p><\/blockquote>\n<p>G\u00fcn\u00fcm\u00fcze bakt\u0131\u011f\u0131m\u0131zda kurumsal projeler, Service Oriented Architecture(SOA) ile geli\u015ftirilmeye ba\u015flanm\u0131\u015f\u00a0ve b\u00fcy\u00fck \u00f6l\u00e7\u00fcde yerini zaten alm\u0131\u015f durumdad\u0131r. Geleneksel SOA mimarisinde geli\u015ftirilen\u00a0t\u00fcm component&#8217;lerin de, tek bir \u00e7at\u0131 alt\u0131nda oldu\u011funu da g\u00f6rmekteyiz. \u00c7\u00fcnk\u00fc yak\u0131n ge\u00e7mi\u015ften\u00a0bu yana SOA ile birlikte <strong>manageability<\/strong>(y\u00f6netilebilirlik),\u00a0<strong>maintenance<\/strong>(bak\u0131m) ve <strong>interoperability<\/strong>(birlikte \u00e7al\u0131\u015fabilirlik) gibi kavramlar g\u00f6z \u00f6n\u00fcne al\u0131nm\u0131\u015ft\u0131r. G\u00fcn\u00fcm\u00fczdeki \u015firketlerin IT yakla\u015f\u0131mlar\u0131na\u00a0bakt\u0131\u011f\u0131m\u0131zda\u00a0ise genelde <strong>IT for Business\u00a0<\/strong>kapsam\u0131nda oldu\u011fundan dolay\u0131, her zaman pazarlama odakl\u0131 gitmektedirler. Bu do\u011frultuda s\u00fcrekli artan bir entegrasyon ihtiya\u00e7lar\u0131 do\u011fmaktad\u0131r.\u00a0Bu bitmeyen ihtiya\u00e7lar do\u011frultusunda ise Monolithic architecture ile tasarlanm\u0131\u015f olan SOA&#8217;lar, gitgide istemsizce b\u00fcy\u00fcmektedirler.<\/p>\n<p>Bu noktaya kadar her \u015fey &#8220;b\u00fcy\u00fcme&#8221; haricinde normal g\u00f6r\u00fcnebilir fakat problem\u00a0nerede\/ne zaman ba\u015fl\u0131yor? \u0130\u015fte bu soruya ge\u00e7meden \u00f6nce Monolithic architecture&#8217;\u0131n\u00a0dezavantajlar\u0131n\u0131 bir ele alal\u0131m.<\/p>\n<h4>Monolithic Architecture&#8217;\u0131n Getirdi\u011fi Baz\u0131 Dezavantajlar<\/h4>\n<p><a href=\"\/wp-content\/uploads\/2016\/09\/Monolithic.png\"><img decoding=\"async\" class=\"aligncenter wp-image-793 lazyload\" data-src=\"\/wp-content\/uploads\/2016\/09\/Monolithic.png\" alt=\"monolithic\" width=\"536\" height=\"402\" data-srcset=\"https:\/\/gokhan-gokalp.com\/wp-content\/uploads\/2016\/09\/Monolithic.png 1024w, https:\/\/gokhan-gokalp.com\/wp-content\/uploads\/2016\/09\/Monolithic-300x225.png 300w\" data-sizes=\"(max-width: 536px) 100vw, 536px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 536px; --smush-placeholder-aspect-ratio: 536\/402;\" \/><\/a><\/p>\n<p>Yukar\u0131daki resme bakt\u0131\u011f\u0131m\u0131zda b\u00f6l\u00fcnmez, self-contained olarak tasarlanm\u0131\u015f monolithic bir yap\u0131 g\u00f6r\u00fcyoruz. Scaling i\u00e7in bir load balancer arkas\u0131na koyulmu\u015f fakat bu durumda da scale edilmek istenin component&#8217;in\u00a0aksine, t\u00fcm monolith yap\u0131n\u0131n kopyas\u0131n\u0131 farkl\u0131 ortamlarda saklamak durumunda kal\u0131n\u0131yor.<\/p>\n<p>Di\u011fer dezavantajlar\u0131n\u0131 maddelemek gerekirse:<\/p>\n<ul>\n<li>T\u00fcm component&#8217;lerin ayn\u0131 framework, ayn\u0131 programlama dili ile geli\u015ftirilmesinin gerekmesi<\/li>\n<li>Bir component \u00fczerinde olan de\u011fi\u015fiklik i\u00e7in, t\u00fcm monolith yap\u0131n\u0131n tekrar deploy edilmesi ve restart edilmesi\u00a0durumunda kal\u0131nmas\u0131<\/li>\n<li>Versiyon y\u00f6netiminin gitgide zorla\u015fmas\u0131<\/li>\n<li>Birbirlerine olan ba\u011f\u0131ml\u0131l\u0131klar\u0131ndan dolay\u0131, bir component i\u00e7in yap\u0131lan de\u011fi\u015fimden di\u011fer component&#8217;in etkilenebilmesi<\/li>\n<li>Continuous Delivery&#8217;nin uygulanmas\u0131n\u0131n zorla\u015fmas\u0131<\/li>\n<\/ul>\n<p>Bu dezavantajlar\u0131n baz\u0131lar\u0131 monolithic\u00a0mimarinin b\u00fcy\u00fcmesi ile gelmese de en major problemlerden birtanesi, \u00a0monolithic mimari \u00fczerindeki component&#8217;lerden herhangi birinde olan de\u011fi\u015fikli\u011fin deployment&#8217;\u0131 yap\u0131ld\u0131\u011f\u0131nda,\u00a0bu durumdan di\u011ferlerinin de etkilenebiliyor\/etkilenebilecek olmas\u0131d\u0131r.<\/p>\n<p>D\u00fc\u015f\u00fcnelim. Belediye otob\u00fcslerine hangi durakta olduklar\u0131n\u0131 ve her durak i\u00e7inde ilgili otob\u00fcs\u00fcn gelmesine tahmini kalan s\u00fcrenin g\u00f6sterimini yapan ekranlar\u0131n servisini geli\u015ftiriyoruz. Bizden otob\u00fcs i\u00e7erisindeki ekranda g\u00f6sterilmesi gereken baz\u0131 yeni \u00f6zellikler istendi. \u0130lgili geli\u015ftirmeyi ilgili ekip yapt\u0131 ve deployment&#8217;\u0131 ger\u00e7ekle\u015ftirdi. Peki ya di\u011fer servis\u00a0olan duraklardaki otob\u00fcs s\u00fcrelerini g\u00f6steren fonksiyonun\u00a0geli\u015ftirilmesinde yar\u0131m kalan bir \u015fey varsa? Veya otob\u00fcs i\u00e7erisindeki ekranlar\u00a0i\u00e7in geli\u015ftirilen serviste bir hata olu\u015fursa ve di\u011fer servise olan ba\u011f\u0131ml\u0131l\u0131\u011f\u0131ndan dolay\u0131, her iki serviste kullan\u0131lamaz hale gelirse? Bu ve bunun gibi farkl\u0131 varyasyon ve senaryolar g\u00f6z \u00f6n\u00fcne al\u0131nd\u0131\u011f\u0131nda, monolithic mimaride geli\u015ftirilen servislerde yaz\u0131l\u0131m ekiplerinin birbirleri ile ileti\u015fim becerilerinin y\u00fcksek olmas\u0131 gerekti\u011fi, farkl\u0131 \u00f6zellikler geldik\u00e7e code base&#8217;in daha da karma\u015f\u0131kla\u015faca\u011f\u0131 ve micro deployment&#8217;lar yap\u0131lamayaca\u011f\u0131 g\u00f6r\u00fcl\u00fcyor. Yani buradaki tek problemimiz scale etmek ve micro deployment&#8217;lar\u0131 sa\u011flayabilmek de\u011fil.<\/p>\n<p>Peki bu durum birbirlerinden ba\u011f\u0131ms\u0131z(independently) olarak ger\u00e7ekle\u015fse idi fena olmaz m\u0131yd\u0131? \u0130\u015fte bu noktada geleneksel SOA mimarisi yakla\u015f\u0131m\u0131 yerine yenilik\u00e7i SOA ile\u00a0<strong>MicroService<\/strong> yakla\u015f\u0131m\u0131 ortaya at\u0131lmaktad\u0131r. MicroService yakla\u015f\u0131m\u0131 i\u00e7in ise\u00a0geleneksel SOA&#8217;n\u0131n getirdi\u011fi karma\u015f\u0131kl\u0131\u011f\u0131 ve y\u00f6netimini kolayla\u015ft\u0131ran bir kavramd\u0131r da diyebiliriz.<\/p>\n<h4>MicroService&#8217;lere Genel Bak\u0131\u015f<\/h4>\n<p><a href=\"\/wp-content\/uploads\/2016\/09\/Monolith-vs-Microservices.png\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-798 lazyload\" data-src=\"\/wp-content\/uploads\/2016\/09\/Monolith-vs-Microservices.png\" alt=\"monolith-vs-microservices\" width=\"400\" height=\"275\" data-srcset=\"https:\/\/gokhan-gokalp.com\/wp-content\/uploads\/2016\/09\/Monolith-vs-Microservices.png 400w, https:\/\/gokhan-gokalp.com\/wp-content\/uploads\/2016\/09\/Monolith-vs-Microservices-300x206.png 300w\" data-sizes=\"(max-width: 400px) 100vw, 400px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 400px; --smush-placeholder-aspect-ratio: 400\/275;\" \/><\/a><\/p>\n<p>Resme ilk bakt\u0131\u011f\u0131m\u0131zda Monolith yap\u0131 gibi t\u00fcm sistemin self-contained olarak geli\u015ftirilmesi yerine, her bir par\u00e7an\u0131n\/component&#8217;in kendi b\u00fcnyesinde self-contained olarak <strong>mod\u00fcler<\/strong> bir \u015fekilde geli\u015ftirildi\u011fini g\u00f6rebilmekteyiz. Bu sekt\u00f6rde uzun zaman ge\u00e7irmi\u015f bir \u00e7o\u011fumuz belkide bundan bir ka\u00e7 d\u00f6nem \u00f6ncesinde servislerin farkl\u0131 par\u00e7alara b\u00f6l\u00fcnmesi fikirleri s\u00f6ylenildi\u011finde, bu sistemin\u00a0maintenance&#8217;\u0131n\u0131 nas\u0131l ger\u00e7ekle\u015ftireceksin? sistemi\u00a0nas\u0131l y\u00f6neteceksin? gibi\u00a0sorular\u0131 hat\u0131rlayabilirler. Fakat ilerleyen ve s\u00fcrekli geli\u015fen teknoloji kar\u015f\u0131s\u0131nda \u00fcretilen t\u00fcm \u00e7\u00f6z\u00fcmlerin, g\u00fcn geldi\u011finde eskidi\u011fini ve kal\u0131c\u0131 olmad\u0131\u011f\u0131n\u0131 g\u00f6r\u00fcyoruz s\u00fcrekli. Su sebep ile bu yakla\u015f\u0131mda art\u0131k yerini yava\u015f yava\u015f MicroService mimarisine b\u0131rakmaya ba\u015fl\u0131yor. \u00c7\u00fcnk\u00fc art\u0131k firmalar farkl\u0131 concern&#8217;lere sahipler. Bu do\u011frultuda scaling ve deployment&#8217;lar en b\u00fcy\u00fck problem olmaya ba\u015flam\u0131\u015ft\u0131r.<\/p>\n<h4>MicroService Mimarisinin Getirdi\u011fi Baz\u0131 Faydalar<\/h4>\n<p>MicroService yap\u0131s\u0131 s\u00fcrekli ve plans\u0131z bir \u015fekilde b\u00fcy\u00fcyen monolithic yap\u0131daki servislerin, beraberinde getirdi\u011fi karma\u015f\u0131kl\u0131\u011f\u0131 ve y\u00f6netim\u00a0zorluklar\u0131n\u0131 \u00e7\u00f6zmeye odaklanmaktad\u0131r. SOA&#8217;ya alternatif bir model de\u011fildir kesinlikle. Geleneksel SOA yakla\u015f\u0131m\u0131 yerine yenilik\u00e7i SOA yakla\u015f\u0131m\u0131 ile beraber, biraz \u00f6nce de bahsetti\u011fimiz gibi karma\u015f\u0131kl\u0131\u011f\u0131 ve y\u00f6netimi pratikle\u015ftirmeye \u00e7al\u0131\u015fan bir\u00a0kavramd\u0131r diyebiliriz.<\/p>\n<p><a href=\"\/wp-content\/uploads\/2016\/09\/Monolith-vs-Microservices-2.jpg\"><img decoding=\"async\" class=\"aligncenter  wp-image-800 lazyload\" data-src=\"\/wp-content\/uploads\/2016\/09\/Monolith-vs-Microservices-2.jpg\" alt=\"monolith-vs-microservices-2\" width=\"659\" height=\"351\" data-srcset=\"https:\/\/gokhan-gokalp.com\/wp-content\/uploads\/2016\/09\/Monolith-vs-Microservices-2.jpg 800w, https:\/\/gokhan-gokalp.com\/wp-content\/uploads\/2016\/09\/Monolith-vs-Microservices-2-300x160.jpg 300w\" data-sizes=\"(max-width: 659px) 100vw, 659px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 659px; --smush-placeholder-aspect-ratio: 659\/351;\" \/><\/a><\/p>\n<p>Dilerseniz baz\u0131 avantajlar\u0131na bir bakal\u0131m:<\/p>\n<ul>\n<li>Servisler farkl\u0131 dillerde ve farkl\u0131 framework&#8217;lerde geli\u015ftirilebilir<\/li>\n<li>Birbirlerinden ba\u011f\u0131ms\u0131z olarak her bir servis de\u011fi\u015febilir, kolay test ve build yap\u0131labilir<\/li>\n<li>Continuous delivery&#8217;e olanak sa\u011flar ve h\u0131zl\u0131 deployment&#8217;lar ger\u00e7ekle\u015ftirilebilinir<\/li>\n<li>Her bir servisi birbirinden ba\u011f\u0131ms\u0131z olarak scale edebilme olana\u011f\u0131 sa\u011flar<\/li>\n<li>Her bir servis birbirinden ba\u011f\u0131ms\u0131z olaca\u011f\u0131 i\u00e7in, code base&#8217;i sade\u00a0ve maintenance&#8217;\u0131 kolay olacakt\u0131r<\/li>\n<li>Versiyonlama kolay bir \u015fekilde yap\u0131labilecektir<\/li>\n<\/ul>\n<p>Bu sayd\u0131\u011f\u0131m\u0131z maddelerin zaten gayet net ve yeterli olaca\u011f\u0131na inan\u0131yorum. Bunlara ek olarak da geli\u015ftirilecek olan yeni \u00f6zellikler ise kolay bir \u015fekilde implemente edilebilir olacakt\u0131r. Peki bu avantajlardan kimler yararlan\u0131yor ve neden? diyecek olursak:<\/p>\n<p>Uber, Netflix, Amazon, Ebay ve dahas\u0131&#8230; \u00c7\u00fcnk\u00fc bunlar gibi b\u00fcy\u00fck firmalar\u0131n tek dertleri, y\u00fck\u00fc kolay bir \u015fekilde scale edebilmek ve deployment s\u00fcre\u00e7lerini continuous delivery ile kolay bir \u015fekilde ele alabilmek. Gerekti\u011finde saniyeler aras\u0131nda, dakikalar aras\u0131nda deployment i\u015flemlerini ger\u00e7ekle\u015ftiriyorlar. D\u00fc\u015f\u00fcnsenize en basitinden monolithic bir yap\u0131da devam etselerdi servis yakla\u015f\u0131mlar\u0131na, bu deployment s\u00fcre\u00e7lerini nas\u0131l ele alabileceklerdi? Uber&#8217;in SOA ve MicroService ile ilgili\u00a0deneyimlerini yazd\u0131klar\u0131 <a href=\"https:\/\/eng.uber.com\/soa\/\" target=\"_blank\"><em>bu<\/em> <\/a>blog post&#8217;una bakt\u0131\u011f\u0131n\u0131zda a\u015fa\u011f\u0131daki bu\u00a0c\u00fcmle yeterli olacakt\u0131r san\u0131r\u0131m:<\/p>\n<blockquote><p>Adding new features, fixing bugs, and resolving technical debt all in a single repo became extremely difficult. Tribal knowledge was required before attempting to make a single change.<\/p><\/blockquote>\n<p>Peki her \u015fey kula\u011fa g\u00fczel ve ho\u015f geliyor. Hani olur ya her oyunun bir de b\u00f6l\u00fcm sonu canavar\u0131 vard\u0131r. Peki MicroService yakla\u015f\u0131m\u0131n\u0131n getirece\u011fi b\u00f6l\u00fcm sonu canavar\u0131 yani\u00a0dezavantajlar\u0131 nelerdir de derseniz:<\/p>\n<ul>\n<li>Birbirlerinden ba\u011f\u0131ms\u0131zla\u015fan farkl\u0131 servisler ayn\u0131 business objelerini kullanacaklar\u0131ndan dolay\u0131 ka\u00e7\u0131n\u0131lmaz bir kod tekrar\u0131 meydana gelecektir<\/li>\n<li>Servisler farkl\u0131 platform ve ortamlarda \u00e7al\u0131\u015fabileceklerinden dolay\u0131 y\u00f6netim ve monitoring maliyeti ortaya \u00e7\u0131kacakt\u0131r<\/li>\n<li>Birden \u00e7ok database ve transaction&#8217;lar\u0131n y\u00f6netimi\u00a0zor olabilir<\/li>\n<\/ul>\n<p>gibi maddeleri s\u0131ralayabiliriz. Fakat bu maddelerin zaten bir \u00e7o\u011fu adreslenmi\u015f durumda ve otomasyon ara\u00e7lar\u0131 ile\u00a0y\u00f6netilebilmektedir. Bunlara ek olarak da zaten ihtiya\u00e7lar do\u011frultusunda MicroService yakla\u015f\u0131m\u0131n\u0131n getirileri g\u00f6z \u00f6n\u00fcne al\u0131nd\u0131\u011f\u0131nda ise bu dezavantajlar g\u00f6rmezden de gelinebilir.\u00a0Y\u00f6netim k\u0131sm\u0131nda ise DevOps kavram\u0131 ile kolay bir \u015fekilde ele al\u0131nabilmekte. Transaction y\u00f6netimi i\u015flemlerinede\u00a0DTC(Distrubuted Transantion Manager) ile \u00e7\u00f6z\u00fcm bulunabilmekte.<\/p>\n<p>G\u00f6rd\u00fc\u011f\u00fcm\u00fcz gibi faydas\u0131n\u0131n \u00e7ok olmas\u0131yla beraber getirece\u011fi bir k\u0131s\u0131m maliyetler de olacakt\u0131r. Bu kapsamda benim sizlere aktarabileceklerim \u015fimdilik bu kadar.<\/p>\n<p>Bir sonraki seride g\u00f6r\u00fc\u015fmek dile\u011fiyle.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Merhaba arkada\u015flar. Bu blog yaz\u0131mdaki konum, her ne kadar\u00a0yeni bir \u015fey olmasada, son d\u00f6nemlerde Martin Fowler ile g\u00fcndeme gelen ve git gide \u00f6nemini artt\u0131ran\u00a0MicroService\u00a0mimarisi \u00fczerine genel bir bak\u0131\u015f olacak. Ayr\u0131ca\u00a0bu do\u011frultuda do\u011fru\u00a0bilinen yanl\u0131\u015flar, MicroService mimarisinin art\u0131lar\u0131 ve eksileri gibi y\u00f6nlerine de de\u011finiyor olaca\u011f\u0131z. Dilerseniz \u00f6ncelikle&#8230;<\/p>\n<div class=\"more-link-wrapper\"><a class=\"more-link\" href=\"https:\/\/gokhan-gokalp.com\/tr\/monolithic-ve-microservice-architecturea-genel-bir-bakis\/\">Devam\u0131n\u0131 okuyun<span class=\"screen-reader-text\">Monolithic ve MicroService Architecture&#8217;a Genel Bir Bak\u0131\u015f<\/span><\/a><\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[68,257],"tags":[259,266,260,261,265,264,258,263,262,267],"class_list":["post-788","post","type-post","status-publish","format-standard","hentry","category-architectural","category-soa","tag-microservice","tag-microservice-architecture","tag-microservice-nedir","tag-mikroservis-nedir","tag-monolithic-architecture","tag-monolithic-nedir","tag-soa","tag-soa-nedir","tag-soa-ve-microservice","tag-soa-ve-microservice-kullanimi","entry"],"translation":{"provider":"WPGlobus","version":"3.0.2","language":"tr","enabled_languages":["en","tr"],"languages":{"en":{"title":true,"content":true,"excerpt":false},"tr":{"title":false,"content":false,"excerpt":false}}},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Monolithic ve MicroService Architecture&#039;a Genel Bir Bak\u0131\u015f - G\u00f6khan G\u00f6kalp<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/gokhan-gokalp.com\/monolithic-ve-microservice-architecturea-genel-bir-bakis\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Monolithic ve MicroService Architecture&#039;a Genel Bir Bak\u0131\u015f - G\u00f6khan G\u00f6kalp\" \/>\n<meta property=\"og:url\" content=\"https:\/\/gokhan-gokalp.com\/monolithic-ve-microservice-architecturea-genel-bir-bakis\/\" \/>\n<meta property=\"og:site_name\" content=\"G\u00f6khan G\u00f6kalp\" \/>\n<meta property=\"article:published_time\" content=\"2016-09-08T20:52:51+00:00\" \/>\n<meta name=\"author\" content=\"G\u00f6khan G\u00f6kalp\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"G\u00f6khan G\u00f6kalp\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/monolithic-ve-microservice-architecturea-genel-bir-bakis\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/monolithic-ve-microservice-architecturea-genel-bir-bakis\\\/\"},\"author\":{\"name\":\"G\u00f6khan G\u00f6kalp\",\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/#\\\/schema\\\/person\\\/7e2a7fa98babd22a5fdae563c4b8cdbe\"},\"headline\":\"Monolithic ve MicroService Architecture&#8217;a Genel Bir Bak\u0131\u015f\",\"datePublished\":\"2016-09-08T20:52:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/monolithic-ve-microservice-architecturea-genel-bir-bakis\\\/\"},\"wordCount\":1416,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/#\\\/schema\\\/person\\\/7e2a7fa98babd22a5fdae563c4b8cdbe\"},\"keywords\":[\"MicroService\",\"MicroService Architecture\",\"MicroService nedir\",\"Mikroservis nedir\",\"Monolithic Architecture\",\"Monolithic nedir\",\"SOA\",\"SOA nedir\",\"SOA ve MicroService\",\"SOA ve Microservice kullan\u0131m\u0131\"],\"articleSection\":[\"Architectural\",\"SOA\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/gokhan-gokalp.com\\\/monolithic-ve-microservice-architecturea-genel-bir-bakis\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/monolithic-ve-microservice-architecturea-genel-bir-bakis\\\/\",\"url\":\"https:\\\/\\\/gokhan-gokalp.com\\\/monolithic-ve-microservice-architecturea-genel-bir-bakis\\\/\",\"name\":\"Monolithic ve MicroService Architecture'a Genel Bir Bak\u0131\u015f - G\u00f6khan G\u00f6kalp\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/#website\"},\"datePublished\":\"2016-09-08T20:52:51+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/monolithic-ve-microservice-architecturea-genel-bir-bakis\\\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/gokhan-gokalp.com\\\/monolithic-ve-microservice-architecturea-genel-bir-bakis\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/monolithic-ve-microservice-architecturea-genel-bir-bakis\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/gokhan-gokalp.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Monolithic ve MicroService Architecture&#8217;a Genel Bir Bak\u0131\u015f\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/#website\",\"url\":\"https:\\\/\\\/gokhan-gokalp.com\\\/\",\"name\":\"G\u00f6khan G\u00f6kalp\",\"description\":\"C# &amp; Python lover\",\"publisher\":{\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/#\\\/schema\\\/person\\\/7e2a7fa98babd22a5fdae563c4b8cdbe\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/gokhan-gokalp.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/#\\\/schema\\\/person\\\/7e2a7fa98babd22a5fdae563c4b8cdbe\",\"name\":\"G\u00f6khan G\u00f6kalp\",\"pronouns\":\"he\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/wp-content\\\/litespeed\\\/avatar\\\/e645f66b6264ced10d7b6d8b1f85509b.jpg?ver=1776170659\",\"url\":\"https:\\\/\\\/gokhan-gokalp.com\\\/wp-content\\\/litespeed\\\/avatar\\\/e645f66b6264ced10d7b6d8b1f85509b.jpg?ver=1776170659\",\"contentUrl\":\"https:\\\/\\\/gokhan-gokalp.com\\\/wp-content\\\/litespeed\\\/avatar\\\/e645f66b6264ced10d7b6d8b1f85509b.jpg?ver=1776170659\",\"caption\":\"G\u00f6khan G\u00f6kalp\"},\"logo\":{\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/wp-content\\\/litespeed\\\/avatar\\\/e645f66b6264ced10d7b6d8b1f85509b.jpg?ver=1776170659\"},\"sameAs\":[\"https:\\\/\\\/gokhan-gokalp.com\"],\"url\":\"https:\\\/\\\/gokhan-gokalp.com\\\/tr\\\/author\\\/gok-gokalp\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Monolithic ve MicroService Architecture'a Genel Bir Bak\u0131\u015f - G\u00f6khan G\u00f6kalp","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/gokhan-gokalp.com\/monolithic-ve-microservice-architecturea-genel-bir-bakis\/","og_locale":"tr_TR","og_type":"article","og_title":"Monolithic ve MicroService Architecture'a Genel Bir Bak\u0131\u015f - G\u00f6khan G\u00f6kalp","og_url":"https:\/\/gokhan-gokalp.com\/monolithic-ve-microservice-architecturea-genel-bir-bakis\/","og_site_name":"G\u00f6khan G\u00f6kalp","article_published_time":"2016-09-08T20:52:51+00:00","author":"G\u00f6khan G\u00f6kalp","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"G\u00f6khan G\u00f6kalp","Tahmini okuma s\u00fcresi":"7 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/gokhan-gokalp.com\/monolithic-ve-microservice-architecturea-genel-bir-bakis\/#article","isPartOf":{"@id":"https:\/\/gokhan-gokalp.com\/monolithic-ve-microservice-architecturea-genel-bir-bakis\/"},"author":{"name":"G\u00f6khan G\u00f6kalp","@id":"https:\/\/gokhan-gokalp.com\/#\/schema\/person\/7e2a7fa98babd22a5fdae563c4b8cdbe"},"headline":"Monolithic ve MicroService Architecture&#8217;a Genel Bir Bak\u0131\u015f","datePublished":"2016-09-08T20:52:51+00:00","mainEntityOfPage":{"@id":"https:\/\/gokhan-gokalp.com\/monolithic-ve-microservice-architecturea-genel-bir-bakis\/"},"wordCount":1416,"commentCount":2,"publisher":{"@id":"https:\/\/gokhan-gokalp.com\/#\/schema\/person\/7e2a7fa98babd22a5fdae563c4b8cdbe"},"keywords":["MicroService","MicroService Architecture","MicroService nedir","Mikroservis nedir","Monolithic Architecture","Monolithic nedir","SOA","SOA nedir","SOA ve MicroService","SOA ve Microservice kullan\u0131m\u0131"],"articleSection":["Architectural","SOA"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/gokhan-gokalp.com\/monolithic-ve-microservice-architecturea-genel-bir-bakis\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/gokhan-gokalp.com\/monolithic-ve-microservice-architecturea-genel-bir-bakis\/","url":"https:\/\/gokhan-gokalp.com\/monolithic-ve-microservice-architecturea-genel-bir-bakis\/","name":"Monolithic ve MicroService Architecture'a Genel Bir Bak\u0131\u015f - G\u00f6khan G\u00f6kalp","isPartOf":{"@id":"https:\/\/gokhan-gokalp.com\/#website"},"datePublished":"2016-09-08T20:52:51+00:00","breadcrumb":{"@id":"https:\/\/gokhan-gokalp.com\/monolithic-ve-microservice-architecturea-genel-bir-bakis\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/gokhan-gokalp.com\/monolithic-ve-microservice-architecturea-genel-bir-bakis\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/gokhan-gokalp.com\/monolithic-ve-microservice-architecturea-genel-bir-bakis\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/gokhan-gokalp.com\/"},{"@type":"ListItem","position":2,"name":"Monolithic ve MicroService Architecture&#8217;a Genel Bir Bak\u0131\u015f"}]},{"@type":"WebSite","@id":"https:\/\/gokhan-gokalp.com\/#website","url":"https:\/\/gokhan-gokalp.com\/","name":"G\u00f6khan G\u00f6kalp","description":"C# &amp; Python lover","publisher":{"@id":"https:\/\/gokhan-gokalp.com\/#\/schema\/person\/7e2a7fa98babd22a5fdae563c4b8cdbe"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/gokhan-gokalp.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/gokhan-gokalp.com\/#\/schema\/person\/7e2a7fa98babd22a5fdae563c4b8cdbe","name":"G\u00f6khan G\u00f6kalp","pronouns":"he","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/gokhan-gokalp.com\/wp-content\/litespeed\/avatar\/e645f66b6264ced10d7b6d8b1f85509b.jpg?ver=1776170659","url":"https:\/\/gokhan-gokalp.com\/wp-content\/litespeed\/avatar\/e645f66b6264ced10d7b6d8b1f85509b.jpg?ver=1776170659","contentUrl":"https:\/\/gokhan-gokalp.com\/wp-content\/litespeed\/avatar\/e645f66b6264ced10d7b6d8b1f85509b.jpg?ver=1776170659","caption":"G\u00f6khan G\u00f6kalp"},"logo":{"@id":"https:\/\/gokhan-gokalp.com\/wp-content\/litespeed\/avatar\/e645f66b6264ced10d7b6d8b1f85509b.jpg?ver=1776170659"},"sameAs":["https:\/\/gokhan-gokalp.com"],"url":"https:\/\/gokhan-gokalp.com\/tr\/author\/gok-gokalp\/"}]}},"_links":{"self":[{"href":"https:\/\/gokhan-gokalp.com\/tr\/wp-json\/wp\/v2\/posts\/788","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gokhan-gokalp.com\/tr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gokhan-gokalp.com\/tr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gokhan-gokalp.com\/tr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gokhan-gokalp.com\/tr\/wp-json\/wp\/v2\/comments?post=788"}],"version-history":[{"count":7,"href":"https:\/\/gokhan-gokalp.com\/tr\/wp-json\/wp\/v2\/posts\/788\/revisions"}],"predecessor-version":[{"id":802,"href":"https:\/\/gokhan-gokalp.com\/tr\/wp-json\/wp\/v2\/posts\/788\/revisions\/802"}],"wp:attachment":[{"href":"https:\/\/gokhan-gokalp.com\/tr\/wp-json\/wp\/v2\/media?parent=788"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gokhan-gokalp.com\/tr\/wp-json\/wp\/v2\/categories?post=788"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gokhan-gokalp.com\/tr\/wp-json\/wp\/v2\/tags?post=788"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}