{"id":33716,"date":"2014-08-14T20:45:00","date_gmt":"2014-08-14T17:45:00","guid":{"rendered":"https:\/\/fatihboy.com\/?p=33716"},"modified":"2021-06-22T08:36:21","modified_gmt":"2021-06-22T05:36:21","slug":"desired-state-configuration","status":"publish","type":"post","link":"https:\/\/fatihboy.com\/en\/desired-state-configuration\/","title":{"rendered":"Desired State Configuration"},"content":{"rendered":"<p>DevOps d\u00fcnyas\u0131n\u0131n kar\u015f\u0131 kar\u015f\u0131ya kald\u0131\u011f\u0131 en b\u00fcy\u00fck problemlerden birisi ku\u015fkusuz ki <strong>yap\u0131land\u0131rma y\u00f6netimi<\/strong>dir (<em>configuration management<\/em>). \u00d6zellikle g\u00fcn\u00fcm\u00fcz rekabet ortam\u0131ndaki h\u0131zl\u0131 de\u011fi\u015fim gereksimini ve bulut mimarisinde uygulamalar\u0131n yatayda h\u0131zla \u00e7o\u011falt\u0131labildi\u011fini d\u00fc\u015f\u00fcnecek olursak artan \u00f6nemini daha iyi kavrayabiliriz. Bir fikir sahibi oaln de\u011fil, bir fikri h\u0131zla \u00fcr\u00fcne d\u00f6n\u00fc\u015ft\u00fcren, geli\u015ftiren kazanacakt\u0131r. Bu bak\u0131\u015f a\u00e7\u0131s\u0131yla, ge\u00e7en her saniye para kayb\u0131 anlam\u0131na gelecektir. \u0130\u015flerin \u00e7o\u011falmas\u0131 ve daha b\u00fcy\u00fck i\u015f yapmak herkesin arzulad\u0131\u011f\u0131 bir \u015feydir. Di\u011fer yandan unutmay\u0131n; i\u015flerin \u00e7o\u011falmas\u0131 demek daha \u00e7ok son kullan\u0131c\u0131 demektir. Bu da daha \u00e7ok sunucu, y\u00f6netilecek daha karma\u015f\u0131k sistemler ve dolay\u0131s\u0131yla daha b\u00fcy\u00fck dertler, daha fazla hata demektir. Bu denkleme bir de rekabetle birlikte de\u011fi\u015fen marketi ka\u00e7\u0131rmamak ad\u0131na h\u0131zl\u0131 de\u011fi\u015fim gereksinimi katacak olursak\u2026 S\u00fcre\u00e7 do\u011fru y\u00f6netilemezse her \u015fey bir anda tepetaklak olabilir, daha fazla kesinti, kaybedilen m\u00fc\u015fteriler, d\u00fc\u015fen pazar pay\u0131 ile kar\u015f\u0131 kar\u015f\u0131ya kalabiliriz.&nbsp; Facebook, Twitter, Flickr v.b. b\u00fcy\u00fck sunucu parkuruna sahip pek \u00e7ok uygulama <em>g\u00fcn i\u00e7erisinde defalarca yeni s\u00fcr\u00fcm \u00e7\u0131kartabilme<\/em> yetene\u011fine sahiptir.<\/p>\n\n\n\n<p>Yak\u0131n zamana kadar bu konuda \u015fansl\u0131 olan taraf daha \u00e7ok Linux d\u00fcnyas\u0131yd\u0131. <a href=\"http:\/\/puppetlabs.com\/puppet\">Puppet<\/a>, <a href=\"http:\/\/www.getchef.com\/chef\/\">Chef<\/a> v.b. ba\u015far\u0131l\u0131 \u00fcr\u00fcnler sayesinde Linux d\u00fcnyas\u0131 yap\u0131land\u0131rma y\u00f6netiminde deyim yerindeyse ma\u00e7a 1-0 \u00f6nde ba\u015fl\u0131yorlard\u0131. Durum bu gibi uygulamalar\u0131n Windows sistemlere destek verilmesi ile dengelenmi\u015f olsa da as\u0131l \u00f6nemli deste\u011fe Windows Server 2012 R2 ve Windows 8.1\u2019in \u00e7\u0131k\u0131\u015f\u0131yla kavu\u015ftuk. Bu Windows s\u00fcr\u00fcmlerinde yer alan Powershell 4.0 i\u00e7erisindeki <b>Desired State Configuration (DSC)<\/b> eklentisi sayesinde yap\u0131land\u0131rma ger\u00e7ekten de kolay bir \u015fekilde y\u00f6netilebilir duruma geldi.<\/p>\n\n\n\n<p>\u00d6nceden beri PowerShell\u2019in yol haritas\u0131nda yer alan Desired State Configuration platformu (<em>Bknz. : The Monad&nbsp; Management Models, <\/em><a href=\"\/en\/www.jsnover.com\/Docs\/MonadManifesto.pdf\/\" target=\"_blank\" rel=\"noopener noreferrer\"><em>Monad Manifesto<\/em><\/a>) sayesinde sunucular\u0131m\u0131z\u0131n yap\u0131land\u0131rmas\u0131n\u0131 <b>daha kolay y\u00f6netebilir duruma geliyoruz<\/b>. Buradaki kolayl\u0131ktan kast\u0131m; alt taraftaki detaylardan ve i\u015flerin <b><em>nas\u0131l yap\u0131laca\u011f\u0131ndan<\/em> ziyade <em>ne yap\u0131laca\u011f\u0131na <\/em><\/b>odaklanmak. Birincil hedef her zaman i\u00e7in i\u015flerin yap\u0131lmas\u0131, yap\u0131lmam\u0131\u015flar\u0131n tespit edilmesi; yani i\u015flerin y\u00f6netilmesidir. \u00d6rne\u011fin; haz\u0131rlad\u0131\u011f\u0131m\u0131z powershell scriptleri ile IIS\u2019in nas\u0131l kurulaca\u011f\u0131na, nas\u0131l application pool ve uygulama olu\u015fturulaca\u011f\u0131na odaklanmak, teknik detaylar\u0131nda bo\u011fulmak yerine \u201c<em>IIS\u2019i kur, ASP.Net\u2019i kur ve \u015fu klas\u00f6rdeki uygulamay\u0131 sun<\/em>\u201d diyebiliriz art\u0131k. Hatta bunu bir ad\u0131m \u00f6teye ta\u015f\u0131yabilir ve \u201c<em>IIS \u00f6zelli\u011fi kurulu ve \u00e7al\u0131\u015f\u0131yor olmal\u0131d\u0131r. \u00dczerinden XYZ uygulamas\u0131 bulunmal\u0131 ve \u00e7al\u0131\u015f\u0131r durumda olmal\u0131<\/em>\u201d diyebiliriz. Bu sayede elimizdeki ara\u00e7 bir yap\u0131land\u0131rma arac\u0131 olmaktan \u00f6teye ge\u00e7iyor, bir durumu tasvir edebilir oluyoruz. K\u0131sacas\u0131 <strong>Desired State Configuration, sunucular\u0131m\u0131z\u0131n olmas\u0131n\u0131 istedi\u011fimiz durumu anlatabilece\u011fimiz bir ara\u00e7<\/strong>. \u0130\u015flerin bu seviye soyutlanmas\u0131yla birlikte detaylardan bo\u011fulmadan as\u0131l i\u015fimiz olan sistemlerin tutarl\u0131 \u00e7al\u0131\u015fmas\u0131na odaklanabiliriz.<\/p>\n\n\n\n<p>Desired State configuration hakk\u0131nda yukar\u0131da payla\u015ft\u0131\u011f\u0131m bilgiler ard\u0131ndan art\u0131k nas\u0131l kullanaca\u011f\u0131m\u0131za ge\u00e7menin zaman\u0131. Desired State Configuration ile bir sunucu \u00fczerinde yap\u0131land\u0131rma yapmak i\u00e7in \u00f6ncelikle olmas\u0131n\u0131 istedi\u011fimiz durumu anlatan bir tan\u0131m haz\u0131rlamam\u0131z gerekli. Bu tan\u0131mlay\u0131 yapabilmemiz i\u00e7in Powershell 4.0 ile birlikte <strong>Configuration<\/strong> ve <strong>Node<\/strong> \u015feklinde iki anahtar kelime geldi. Configuration anahtar kelimesi konsept olarak bir fonksiyondan farkl\u0131 de\u011fil asl\u0131nda. Sadece normal bir fonksiyon olarak yorumlanmak yerine i\u015flem yapmas\u0131 \u00fczere DSC\u2019ye eklentisine teslim edilmekte.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Configuration UygulamaSunucusuVarsayimi {\n\n}<\/pre>\n\n\n\n<p>Yukar\u0131daki basit \u00f6rnekle PowerShell\u2019e bir DSC yap\u0131land\u0131rmas\u0131na ba\u015flad\u0131\u011f\u0131m\u0131z\u0131 ve bunun ad\u0131n\u0131n UygulamaSunucusuVarsayimi oldu\u011funu belirtiyoruz. S\u0131radaki ad\u0131mda bu yap\u0131land\u0131rma varsay\u0131m\u0131n\u0131n kontrol edilmesi\/uygulanmas\u0131n\u0131 istedi\u011fimiz sunucular\u0131 belirtmeliyiz. Bu noktada da sahneye Node anahtar kelimesi ge\u00e7iyor. Node ile \u00fczerinden i\u015flem yapmak istedi\u011fimiz sunucu\/sunucular\u0131 belirtebiliriz;<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Configuration UygulamaSunucusuVarsayimi {\n    Node \"UygulamaSunucusu1\" {\n\n    }\n}<\/pre>\n\n\n\n<p>\u0130\u015flem yap\u0131lacak sunucular\u0131n belirlenmesin sonra s\u0131ra art\u0131k ne yap\u0131laca\u011f\u0131nda. DSC i\u00e7erisinde yap\u0131labilecek i\u015flemler sa\u011flay\u0131c\u0131lar (<em>providers<\/em>) ile ger\u00e7ekle\u015ftirilmektedir. \u00d6n tan\u0131ml\u0131 olarak olduk\u00e7a faydal\u0131 sa\u011flay\u0131c\u0131lar gelmeklle birlikte kendimizde sa\u011flay\u0131c\u0131 olu\u015fturabilir ya da haz\u0131r bir paketi indirip kullanabiliriz. Haz\u0131r sa\u011flay\u0131c\u0131lardan \u00f6rne\u011fin; <strong>WindowsFeature<\/strong> ile Windows \u00f6zellikleri \u00fczerinde i\u015flem yapabilirsiniz ya da <strong>File<\/strong> ile dosya i\u015flemlerinizi ger\u00e7ekle\u015ftirebilirsiniz;<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Configuration UygulamaSunucusuVarsayimi {\n    Node \"UygulamaSunucusu1\" {\n        WindowsFeature IIS { \n\n        }\n    }\n}<\/pre>\n\n\n\n<p>A\u015fa\u011f\u0131daki sat\u0131rlarla UygulamaSunucusu1 isimli sunucuda IIS kurulumu kontrol edilebilir;<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Configuration UygulamaSunucusuVarsayimi {\n    Node \"UygulamaSunucusu1\" {\n        WindowsFeature IIS {\n            Ensure = \"Present\"\n            Name = \"Web-Server\"\n        }\n    }\n}<\/pre>\n\n\n\n<p>G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi olduk\u00e7a basit ve okunakl\u0131. Asl\u0131nda yapt\u0131\u011f\u0131m\u0131z, WindowsFeature sa\u011flay\u0131c\u0131na anahtar-de\u011fer ikilileri \u015feklinde parametre vermek. Bu sat\u0131rlarla UygulamaSunucusu1\u2019de Windows \u00f6zelliklerinden Web-Server\u2019\u0131n (IIS) aktif olmas\u0131 gerekti\u011fini belirtiyoruz.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/fatihboy.com\/wp-content\/uploads\/2014\/08\/DSC_yapilandirma.png\"><img decoding=\"async\" src=\"https:\/\/fatihboy.com\/wp-content\/uploads\/2014\/08\/DSC_yapilandirma_thumb.png\" alt=\"DSC_yapilandirma\"\/><\/a><\/figure>\n\n\n\n<p>Tabi bu sat\u0131rlar tek ba\u015f\u0131na yeterli de\u011fil. \u00d6ncelikle bu sat\u0131rlar\u0131 Powershell \u00fczerinde \u00e7al\u0131\u015ft\u0131r\u0131p as\u0131l i\u015fi yapacak kodlar\u0131n bizim i\u00e7in \u00fcretilmesini sa\u011flamal\u0131y\u0131z. Bunu i\u00e7in yapmam\u0131z gereken sadece olu\u015fturdu\u011fumuz yap\u0131land\u0131rman\u0131n ad\u0131n\u0131 belirtmek;<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/fatihboy.com\/wp-content\/uploads\/2014\/08\/DSC_yapilandirma_mof.png\"><img decoding=\"async\" src=\"https:\/\/fatihboy.com\/wp-content\/uploads\/2014\/08\/DSC_yapilandirma_mof_thumb.png\" alt=\"DSC_yapilandirma_mof\"\/><\/a><\/figure>\n\n\n\n<p>Bu \u015fekilde \u00f6rnek bir DSC tan\u0131mlamas\u0131n\u0131 tamamlam\u0131\u015f oluyoruz. Son sat\u0131rda olu\u015fturdu\u011fumuz yap\u0131land\u0131rmay\u0131 \u00e7a\u011f\u0131rmakla birlikte DSC eklentisi bizim ad\u0131m\u0131za arkaplanda talep ettiklerimize dair gerekli scriptleri haz\u0131rlayacakt\u0131r. Desired State Configuration asl\u0131nda do\u011frudan yazd\u0131\u011f\u0131m\u0131z bu script\u2019i \u00e7al\u0131\u015ft\u0131ramamakta. Desired State Configuration motoru <strong>MOF (Management Object Format)<\/strong> dosyalar\u0131n\u0131 anlay\u0131p t\u00fcketmektedir. Powershell 4.0 ile birlikte gelen ve yukar\u0131da \u00f6rnekledi\u011fim tan\u0131mlama dosyas\u0131 ise son sat\u0131rla birlikte bizim i\u00e7in as\u0131l olan i\u015fletilebilir MOF dosyas\u0131n\u0131 olu\u015fturacakt\u0131r.<\/p>\n\n\n\n<p>Art\u0131k elimizde DSC taraf\u0131ndan \u00e7al\u0131\u015ft\u0131r\u0131labilir MOF dosyam\u0131zda oldu\u011funa g\u00f6re s\u0131ra bunu ilgili sunucuda \u00e7al\u0131\u015ft\u0131rmaya. Bunun i\u00e7in a\u015fa\u011f\u0131daki \u015fekilde <strong>Start-DscConfiguration<\/strong> komutunu yap\u0131land\u0131rma ad\u0131 ile \u00e7al\u0131\u015ft\u0131rmal\u0131y\u0131z;<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Start-DscConfiguration \u2013Path .\\UygulamaSunucusuVarsayimi \u2013Wait \u2013Verbose<\/pre>\n\n\n\n<p>&nbsp; Bu komutta <strong>Path<\/strong> parametresi ile az \u00f6nce olu\u015fturdu\u011fumuz MOF dosyas\u0131n\u0131n bulundu\u011fu dizini belirtmekteyiz. Komutu \u00e7al\u0131\u015ft\u0131rmam\u0131z ile birlikte uygulama sunucunda IIS \u00f6zelli\u011finin kurulumu yap\u0131lacakt\u0131r. DSC t\u00fcm bu i\u015flemleri yaparken \u00f6ncelikle her bir ad\u0131m i\u00e7in sunucunun talep edilen durumunda olup olmad\u0131\u011f\u0131n\u0131 kontrol edecek, gerekti\u011finde ilgili durum kodlar\u0131n\u0131 i\u015fletecektir.<\/p>\n\n\n\n<p>G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi yukar\u0131da s\u0131ralad\u0131\u011f\u0131m bir ka\u00e7 basit i\u015flemle ile uygulama sunucumuzun olmas\u0131n\u0131 istedi\u011fimiz durumunu tan\u0131mlad\u0131k, hatta bu durumun ger\u00e7e\u011fe d\u00f6n\u00fc\u015fmesini sa\u011flad\u0131k. \u0130\u015fin g\u00fczel taraf\u0131 DSC ile yapabilece\u011fimiz sadece bu da de\u011fil. DSC tan\u0131m\u0131m\u0131zla ayn\u0131 zamanda sunucular\u0131m\u0131z\u0131n istedi\u011fimiz durumda olup olmad\u0131\u011f\u0131n\u0131 da kontrol edebilmemiz m\u00fcmk\u00fcn. Bunu i\u00e7in <strong>Test-DscConfiguration<\/strong> komutunu kullanmam\u0131z yeterli olacakt\u0131r;<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$oturum = New-CimSession -ComputerName UygulamaSunucusu1\nTest-DscConfiguration \u2013CimSession $oturum<\/pre>\n\n\n\n<p>Test-DscConfiguration komutu, \u00e7al\u0131\u015ft\u0131r\u0131ld\u0131\u011f\u0131 hedef sunucu istenilen durum yap\u0131land\u0131rmas\u0131na sahip ise true, aksi durumda false de\u011feri d\u00f6necektir.<\/p>\n\n\n\n<p>DSC tan\u0131mlamas\u0131 ile ilgili bir di\u011fer \u00f6nemli noktada makalemin ba\u015f\u0131nda da belirtti\u011fim gibi, Configuration anahtar kelimesinin ayn\u0131 bir fonksiyon gibi davranabilmesidir. Bu durumda, ayn\u0131 fonksiyonlarda oldu\u011fu gibi parametre kabul edebilir. Dolay\u0131s\u0131yla birden fazla sunucu i\u00e7in yukar\u0131daki yap\u0131land\u0131rmay\u0131 uygulamak isterseniz yap\u0131land\u0131rma tan\u0131m\u0131 a\u015fa\u011f\u0131daki \u015fekilde yapabilirsiniz;<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"> Configuration UygulamaSunucusuVarsayimi {\n    param ($SunucuAdi)\n\n    Node $SunucuAdi {\n        WindowsFeature IIS {\n            Ensure = \"Present\"\n            Name = \"Web-Server\"\n        }\n    }\n}<\/pre>\n\n\n\n<p>Bu durumda MOF dosyas\u0131 a\u015fa\u011f\u0131daki \u015fekilde olu\u015fturulabilir;<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">UygulamaSunucusuVarsayimi \u2013SunucuAdi UygulamaSunucusu1<\/pre>\n\n\n\n<p>Olu\u015facak MOF dosyas\u0131n\u0131n \u00e7al\u0131\u015ft\u0131r\u0131lmas\u0131nda ise bir de\u011fi\u015fiklik bulunmuyor. A\u015fa\u011f\u0131daki \u00f6rnekte ise birden fazla sunucuda yap\u0131land\u0131rman\u0131n nas\u0131l tan\u0131mlanacabilece\u011fini g\u00f6rebilirsiniz;<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"> Configuration UygulamaSunucusuVarsayimi {\n    param ([string[]]$SunucuAdi)\n\n    Node $SunucuAdi {\n        WindowsFeature IIS {\n            Ensure = \"Present\"\n            Name = \"Web-Server\"\n        }\n    }<\/pre>\n\n\n\n<p>DSC tan\u0131m dosyas\u0131nda kullanabilece\u011finiz sisteminizdeki t\u00fcm sa\u011flay\u0131c\u0131lar\u0131 a\u015fa\u011f\u0131daki komut ile listelemeniz m\u00fcmk\u00fcn;<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Get-DscResource | Select Name, Properties | ft -AutoSize<\/pre>\n\n\n\n<p>Listelenen sa\u011flay\u0131c\u0131lar i\u00e7in kullanabilece\u011finiz anahtar-de\u011fer ikililerinin listesini ise a\u015fa\u011f\u0131daki \u015fekilde alabilirsiniz;<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">(Get-DscResource -Name WindowsFeature).Properties<\/pre>\n\n\n\n<p>Bu \u00f6rnekte WindowsFeature yerine istedi\u011finiz sa\u011flay\u0131c\u0131n\u0131n ad\u0131n\u0131 yazarak detay\u0131n\u0131 \u00f6\u011frenebilirsiniz. S\u00f6z dizimi konusunda a\u015fa\u011f\u0131daki \u015fekilde bilgi de alabilirsiniz;<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Get-DscResource -Name WindowsFeature -Syntax<\/pre>","protected":false},"excerpt":{"rendered":"<p>DevOps d\u00fcnyas\u0131n\u0131n kar\u015f\u0131 kar\u015f\u0131ya kald\u0131\u011f\u0131 en b\u00fcy\u00fck problemlerden birisi ku\u015fkusuz ki yap\u0131land\u0131rma y\u00f6netimidir (configuration management). \u00d6zellikle g\u00fcn\u00fcm\u00fcz rekabet ortam\u0131ndaki h\u0131zl\u0131 de\u011fi\u015fim gereksimini ve bulut mimarisinde uygulamalar\u0131n yatayda h\u0131zla \u00e7o\u011falt\u0131labildi\u011fini d\u00fc\u015f\u00fcnecek olursak artan \u00f6nemini daha iyi kavrayabiliriz. Bir fikir sahibi oaln de\u011fil, bir fikri h\u0131zla \u00fcr\u00fcne d\u00f6n\u00fc\u015ft\u00fcren, geli\u015ftiren kazanacakt\u0131r. Bu bak\u0131\u015f a\u00e7\u0131s\u0131yla, ge\u00e7en her saniye para&#8230;<\/p>\n<p><a class=\"read-more\" href=\"https:\/\/fatihboy.com\/en\/desired-state-configuration\/\">Read More<\/a><\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[179,28],"tags":[338,180],"class_list":["post-33716","post","type-post","status-publish","format-standard","hentry","category-devops","category-turkce","tag-desired-state-configuraton","tag-devops"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Desired State Configuration - Fatih Boy<\/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:\/\/fatihboy.com\/en\/desired-state-configuration\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Desired State Configuration - Fatih Boy\" \/>\n<meta property=\"og:description\" content=\"DevOps d\u00fcnyas\u0131n\u0131n kar\u015f\u0131 kar\u015f\u0131ya kald\u0131\u011f\u0131 en b\u00fcy\u00fck problemlerden birisi ku\u015fkusuz ki yap\u0131land\u0131rma y\u00f6netimidir (configuration management). \u00d6zellikle g\u00fcn\u00fcm\u00fcz rekabet ortam\u0131ndaki h\u0131zl\u0131 de\u011fi\u015fim gereksimini ve bulut mimarisinde uygulamalar\u0131n yatayda h\u0131zla \u00e7o\u011falt\u0131labildi\u011fini d\u00fc\u015f\u00fcnecek olursak artan \u00f6nemini daha iyi kavrayabiliriz. Bir fikir sahibi oaln de\u011fil, bir fikri h\u0131zla \u00fcr\u00fcne d\u00f6n\u00fc\u015ft\u00fcren, geli\u015ftiren kazanacakt\u0131r. Bu bak\u0131\u015f a\u00e7\u0131s\u0131yla, ge\u00e7en her saniye para...Read More\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihboy.com\/en\/desired-state-configuration\/\" \/>\n<meta property=\"og:site_name\" content=\"Fatih Boy\" \/>\n<meta property=\"article:published_time\" content=\"2014-08-14T17:45:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-06-22T05:36:21+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/fatihboy.com\/wp-content\/uploads\/2014\/08\/DSC_yapilandirma_thumb.png\" \/>\n<meta name=\"author\" content=\"Fatih Boy\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Boy\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihboy.com\/desired-state-configuration\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihboy.com\/desired-state-configuration\/\"},\"author\":{\"name\":\"Fatih Boy\",\"@id\":\"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158\"},\"headline\":\"Desired State Configuration\",\"datePublished\":\"2014-08-14T17:45:00+00:00\",\"dateModified\":\"2021-06-22T05:36:21+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihboy.com\/desired-state-configuration\/\"},\"wordCount\":1378,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158\"},\"image\":{\"@id\":\"https:\/\/fatihboy.com\/desired-state-configuration\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/fatihboy.com\/wp-content\/uploads\/2014\/08\/DSC_yapilandirma_thumb.png\",\"keywords\":[\"Desired State Configuraton\",\"DevOps\"],\"articleSection\":[\"DevOps\",\"T\u00fcrk\u00e7e\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihboy.com\/desired-state-configuration\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihboy.com\/desired-state-configuration\/\",\"url\":\"https:\/\/fatihboy.com\/desired-state-configuration\/\",\"name\":\"Desired State Configuration - Fatih Boy\",\"isPartOf\":{\"@id\":\"https:\/\/fatihboy.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/fatihboy.com\/desired-state-configuration\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/fatihboy.com\/desired-state-configuration\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/fatihboy.com\/wp-content\/uploads\/2014\/08\/DSC_yapilandirma_thumb.png\",\"datePublished\":\"2014-08-14T17:45:00+00:00\",\"dateModified\":\"2021-06-22T05:36:21+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihboy.com\/desired-state-configuration\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihboy.com\/desired-state-configuration\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/fatihboy.com\/desired-state-configuration\/#primaryimage\",\"url\":\"https:\/\/fatihboy.com\/wp-content\/uploads\/2014\/08\/DSC_yapilandirma_thumb.png\",\"contentUrl\":\"https:\/\/fatihboy.com\/wp-content\/uploads\/2014\/08\/DSC_yapilandirma_thumb.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihboy.com\/desired-state-configuration\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/fatihboy.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Desired State Configuration\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihboy.com\/#website\",\"url\":\"https:\/\/fatihboy.com\/\",\"name\":\"Fatih Boy\",\"description\":\"Ki\u015fisel Web Sitesi\",\"publisher\":{\"@id\":\"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihboy.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158\",\"name\":\"Fatih Boy\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/fatihboy.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/5b3de123ad95a2ffe30b75a54cee98b55f65185c6d6805b35088a3d945f2feb4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/5b3de123ad95a2ffe30b75a54cee98b55f65185c6d6805b35088a3d945f2feb4?s=96&d=mm&r=g\",\"caption\":\"Fatih Boy\"},\"logo\":{\"@id\":\"https:\/\/fatihboy.com\/#\/schema\/person\/image\/\"},\"sameAs\":[\"https:\/\/fatihboy.com\"],\"url\":\"https:\/\/fatihboy.com\/en\/author\/fatih\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Desired State Configuration - Fatih Boy","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:\/\/fatihboy.com\/en\/desired-state-configuration\/","og_locale":"en_US","og_type":"article","og_title":"Desired State Configuration - Fatih Boy","og_description":"DevOps d\u00fcnyas\u0131n\u0131n kar\u015f\u0131 kar\u015f\u0131ya kald\u0131\u011f\u0131 en b\u00fcy\u00fck problemlerden birisi ku\u015fkusuz ki yap\u0131land\u0131rma y\u00f6netimidir (configuration management). \u00d6zellikle g\u00fcn\u00fcm\u00fcz rekabet ortam\u0131ndaki h\u0131zl\u0131 de\u011fi\u015fim gereksimini ve bulut mimarisinde uygulamalar\u0131n yatayda h\u0131zla \u00e7o\u011falt\u0131labildi\u011fini d\u00fc\u015f\u00fcnecek olursak artan \u00f6nemini daha iyi kavrayabiliriz. Bir fikir sahibi oaln de\u011fil, bir fikri h\u0131zla \u00fcr\u00fcne d\u00f6n\u00fc\u015ft\u00fcren, geli\u015ftiren kazanacakt\u0131r. Bu bak\u0131\u015f a\u00e7\u0131s\u0131yla, ge\u00e7en her saniye para...Read More","og_url":"https:\/\/fatihboy.com\/en\/desired-state-configuration\/","og_site_name":"Fatih Boy","article_published_time":"2014-08-14T17:45:00+00:00","article_modified_time":"2021-06-22T05:36:21+00:00","og_image":[{"url":"https:\/\/fatihboy.com\/wp-content\/uploads\/2014\/08\/DSC_yapilandirma_thumb.png","type":"","width":"","height":""}],"author":"Fatih Boy","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Fatih Boy","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihboy.com\/desired-state-configuration\/#article","isPartOf":{"@id":"https:\/\/fatihboy.com\/desired-state-configuration\/"},"author":{"name":"Fatih Boy","@id":"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158"},"headline":"Desired State Configuration","datePublished":"2014-08-14T17:45:00+00:00","dateModified":"2021-06-22T05:36:21+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihboy.com\/desired-state-configuration\/"},"wordCount":1378,"commentCount":0,"publisher":{"@id":"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158"},"image":{"@id":"https:\/\/fatihboy.com\/desired-state-configuration\/#primaryimage"},"thumbnailUrl":"https:\/\/fatihboy.com\/wp-content\/uploads\/2014\/08\/DSC_yapilandirma_thumb.png","keywords":["Desired State Configuraton","DevOps"],"articleSection":["DevOps","T\u00fcrk\u00e7e"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihboy.com\/desired-state-configuration\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/fatihboy.com\/desired-state-configuration\/","url":"https:\/\/fatihboy.com\/desired-state-configuration\/","name":"Desired State Configuration - Fatih Boy","isPartOf":{"@id":"https:\/\/fatihboy.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/fatihboy.com\/desired-state-configuration\/#primaryimage"},"image":{"@id":"https:\/\/fatihboy.com\/desired-state-configuration\/#primaryimage"},"thumbnailUrl":"https:\/\/fatihboy.com\/wp-content\/uploads\/2014\/08\/DSC_yapilandirma_thumb.png","datePublished":"2014-08-14T17:45:00+00:00","dateModified":"2021-06-22T05:36:21+00:00","breadcrumb":{"@id":"https:\/\/fatihboy.com\/desired-state-configuration\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihboy.com\/desired-state-configuration\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fatihboy.com\/desired-state-configuration\/#primaryimage","url":"https:\/\/fatihboy.com\/wp-content\/uploads\/2014\/08\/DSC_yapilandirma_thumb.png","contentUrl":"https:\/\/fatihboy.com\/wp-content\/uploads\/2014\/08\/DSC_yapilandirma_thumb.png"},{"@type":"BreadcrumbList","@id":"https:\/\/fatihboy.com\/desired-state-configuration\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/fatihboy.com\/"},{"@type":"ListItem","position":2,"name":"Desired State Configuration"}]},{"@type":"WebSite","@id":"https:\/\/fatihboy.com\/#website","url":"https:\/\/fatihboy.com\/","name":"Fatih Boy","description":"Ki\u015fisel Web Sitesi","publisher":{"@id":"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihboy.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158","name":"Fatih Boy","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fatihboy.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/5b3de123ad95a2ffe30b75a54cee98b55f65185c6d6805b35088a3d945f2feb4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5b3de123ad95a2ffe30b75a54cee98b55f65185c6d6805b35088a3d945f2feb4?s=96&d=mm&r=g","caption":"Fatih Boy"},"logo":{"@id":"https:\/\/fatihboy.com\/#\/schema\/person\/image\/"},"sameAs":["https:\/\/fatihboy.com"],"url":"https:\/\/fatihboy.com\/en\/author\/fatih\/"}]}},"brizy_media":[],"_links":{"self":[{"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/posts\/33716","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/comments?post=33716"}],"version-history":[{"count":1,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/posts\/33716\/revisions"}],"predecessor-version":[{"id":33717,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/posts\/33716\/revisions\/33717"}],"wp:attachment":[{"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/media?parent=33716"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/categories?post=33716"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/tags?post=33716"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}