<?xml version="1.0" encoding="UTF-8" standalone="no"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" version="2.0">

<channel>
	<title>EMRE BOZLAK</title>
	<atom:link href="http://www.emrebozlak.com/feed/" rel="self" type="application/rss+xml"/>
	<link>http://www.emrebozlak.com/</link>
	<description>BT Yönetişim ve Kurumsal Mimari</description>
	<lastBuildDate>Thu, 07 Oct 2021 14:35:06 +0000</lastBuildDate>
	<language>tr</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
	<itunes:explicit>no</itunes:explicit><itunes:summary>Know-hows about all kind of virtualization,cloud and automation technologies</itunes:summary><itunes:subtitle>Virtualization and Cloud</itunes:subtitle><itunes:category text="Technology"/><itunes:owner><itunes:email>emrebozlak@gmail.com</itunes:email></itunes:owner><item>
		<title>Zookeeper’lı ve KRaft’lı Kafka Kurulumu</title>
		<link>http://www.emrebozlak.com/kafka-kurulumu/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=kafka-kurulumu</link>
					<comments>http://www.emrebozlak.com/kafka-kurulumu/#respond</comments>
		
		
		<pubDate>Thu, 07 Oct 2021 14:35:04 +0000</pubDate>
				<category><![CDATA[Kafka]]></category>
		<category><![CDATA[Microservice]]></category>
		<category><![CDATA[event-driven]]></category>
		<category><![CDATA[kafka]]></category>
		<category><![CDATA[kafka kurulumu]]></category>
		<category><![CDATA[zookeeper]]></category>
		<guid isPermaLink="false">http://www.emrebozlak.com/?p=943</guid>

					<description><![CDATA[<p>Bu yazım içerisinde Kafka&#8217;nın kurulumu ve iyi uygulamalarından bahsedeceğim eğer Kafka nedir ve Kafka&#8217;nın terminolojisini öğrenmek istiyorsanız bir önceki yazımı okuyabilirsiniz. Bu yazıdan kurulum olarak hem Zookeeper&#8217;lı Kafka kurulumu hem de Kafka 2.8 versiyonu itibariyle Zookeeper&#8217;a alternatif olarak Kafka&#8217;ya dahil ettiği KRaft&#8217;lı kurulum yönergelerinide paylaşacağım. Bunların kurulum adımları haricinde Kafka’nın kapasite planlaması, Kafka kümesinin kurulması, [&#8230;]</p>
<p>The post <a href="http://www.emrebozlak.com/kafka-kurulumu/">Zookeeper’lı ve KRaft’lı Kafka Kurulumu</a> first appeared on <a href="http://www.emrebozlak.com">EMRE BOZLAK</a>.</p>
<p>The post <a href="http://www.emrebozlak.com/kafka-kurulumu/">Zookeeper&#8217;lı ve KRaft&#8217;lı Kafka Kurulumu</a> appeared first on <a href="http://www.emrebozlak.com">EMRE BOZLAK</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Bu yazım içerisinde Kafka&#8217;nın kurulumu ve iyi uygulamalarından bahsedeceğim eğer Kafka nedir ve Kafka&#8217;nın terminolojisini öğrenmek istiyorsanız bir <a href="http://www.emrebozlak.com/kafka-terminolojisi-ve-mimarisi/" target="_blank" rel="noreferrer noopener">önceki yazımı</a> okuyabilirsiniz.</p>



<p>Bu yazıdan kurulum olarak hem Zookeeper&#8217;lı Kafka kurulumu hem de Kafka 2.8 versiyonu itibariyle Zookeeper&#8217;a alternatif olarak Kafka&#8217;ya dahil ettiği KRaft&#8217;lı kurulum yönergelerinide paylaşacağım. Bunların kurulum adımları haricinde Kafka’nın kapasite planlaması, Kafka kümesinin kurulması, performans testleri, güvenlik ayarları ve farklı Kafka kümeleri arasında veri transferi konularında ciddi bir değişiklik olmamaktadır. </p>



<h2 class="wp-block-heading">Senaryo:</h2>



<p>Senaryo olarak iki farklı veri merkezine 3&#8217;er adet Kafka broker kurup veri merkezleri arasında senkronizasyonu sağlamaycağız. Tabii bunu yaparken Kafka&#8217;ların hem kendi veri merkezleri içerisinde yedekli olmasını garanti altına almak istiyor hem de Kafka üzerinde ACL, SSL gibi güvenlik önlemlerini almak istiyoruz.</p>



<p>Bu yazıda Kafka&#8217;nın kurulumunu tamamlayıp bir sonraki adımdaysa SSL kurulumu, SCRAM ayarları, MirrorMaker 2 ve performans testlerine odaklanıyor olacağım.</p>



<p>Son olarak Kafka&#8217;yı 3 adet Zookeeper ve sadece 2 adet Broker ile kurmak mümkün ama daha gerçekci bir senaryo oluşturabilmek için 3 adet Broker kurulumu yapıyor olacağım. Bunun iki sebebi var birincisi kümeleri planlarken birden fazla node&#8217;un devre dışı kalma ihtimaline göre planlama yapmak öbürüyse min-ISR değerini 2 yaptığınız taktirde tek bir node&#8217;u kaybettiğinizde kümeniz duracak, min-ISR 1 yaptığınız taktirde de veri yedekliliğini kullanamayacaksınız.</p>



<span id="more-943"></span>



<h2 class="wp-block-heading">Kapasite Planlaması:</h2>



<p>Her kurulumun ilk adımı kapasite planlaması olmalıdır. Kafka ve Zookeeper sunucularını kuracağımız sistemlerin CPU, Memory, Disk ve network ihtiyaçlarını önceden hesaplamak ve ona göre kurulumlarımızı yapmamız her zaman operasyonlarımız için daha sağlıklı olacaktır.</p>



<p><strong>CPU:</strong> Kafka çok fazla CPU tüketen ve performans dar boğazlarına genelde sebep olan bileşen değildir. Buna rağmen CPU ihtiyaçlarını planlarken dikkat edilmesi gereken bir kaç kritik nokta var.</p>



<ul><li>Kafka’nın bileşenleri multi-threaded çalışmasından dolayı genel sistem performansı CPU&#8217;nun hızından çok core sayısına bağlıdır.</li><li>Eğer consumer’larınızı <em>max.fetch.wait=0 </em>olarak ayarlarsanız bu CPU tüketimine olumsuz olarak yansıyacaktır. Eğer uygulamanız izin veriyorsan consumer ve producer’ların işlemlerini batch olarak yapmasını tercih edebilirsiniz.</li><li>Kafka mesajları şifrelemek(encryption) veya sıkıştırma(compression) özelliğine sahiptir. Eğer bunları kullanacaksanız mutlaka ek CPU tüketimini göz önüne alınız.</li></ul>



<p>CPU olarak orta yoğunlukta bir Kafka kümesi için Broker’lara minimum 4 CPU ve Zookeeper’lar için min 2 CPU önermekteyim.</p>



<p><strong>Memory: </strong>Tüm Kafka ve zookeeper bileşenleri JVM kullanmaktadır, minimum 4GB’lık bir heap size hem Zookeeper hem de Kafka Broker’ları için yeterlidir. Bunun altında bir heap size; çok fazla garbace collection’a sebep olacağından dolayı CPU kullanımını artırır.</p>



<p>Başka önemli noktaysa Kafka’ya yazılan tüm veriler eş zamanlı olarak partition’lara(disk) yazılsada aynı zamanda memory’de yer olduğu müddetçe OS Page Cache’de de tutulur, bu sayede mesaj çağrıldığında diske gitmek yerine direk memory’den çağrılabilir. Bu genel sistem performansını etkileyen bir parametredir. Memory ihtiyacını kabaca aşağıda bulunan formülü kullanarak hesaplayabilirsiniz. </p>



<p><code><strong>(avg-msg size) * (Saat) * (Saatlik mesaj sayısı)*(toplam kopya sayısı) / Broker sayısı</strong></code></p>



<p>Mesela 3 broker’lı saatte 1.000.000 mesaj yazan ve ortalama mesaj büyüklüğü 10KB olan bir kümede mesajları 2 saat kadar Page’de tutmak istiyoruz ve replication factor’ün 2(leader ve follower) olması durumunda formülümüzü uyarladığımızda;</p>



<p><code><strong>(10kb)*2*(1000000)*2 /3 = 12.8 GB </strong></code></p>



<p>13GB civarı Broker başına bir memory ihtiyaçı çıkacaktır. Buna heap size ve OS ihtiyaçlarını da eklediğiniz zaman kabaca memory ihtiyacınız çıkacaktır.</p>



<p><strong>Storage: </strong>Disklerin performansı hem Zookeeper hem de Kafka Broker’ların performansını doğrudan etkileyen bileşenlerdir. Zookeeper veya yerine gelen Kraft sürekli bir metadata transferi yapacağından dolayı ve loğları çok hızlı şekilde yazmak zorundadır; bu bileşenler disk kapasitesinden çok yüksek performans ihtiyacına sahiptir ve genelde SSD/Flash diskler tercih edilmelidir.</p>



<p>Broker tarafındaysa hem kapasite hem de hız önemli faktörlerdir. İyi uygulama örneği olarak Kafka Broker’lara mümkün olduğu kadar hızlı diskler verilmelidir, bu sayede log(mesaj) geldiğinde page’de tutulmasının yanında commit edebilmek için Partition’a yazması gerekmektedir, bu işlemi ne kadar hızlı yaparsa producer bir sonraki mesajını yollamaya başlayabilir, bu da genel sistem performansını ciddi şekilde etkilemektedir. Aynı zamanda yoğun sistemlerde memory hızla dolabilir ve consumer loğlara erişebileceği zaman disklerden okunması gereklidir.</p>



<p>Peki disk kapasite ihtiyacını neye göre karar veriyoruz; kapasite aşağıdaki parametrelere bağımlıdır</p>



<ul><li>Ortalama mesaj büyüklüğü</li><li>Günlük mesaj sayısı</li><li>Retention süresi(gün cinsinden)</li><li>Replication sayısı</li></ul>



<p>Kabaca formülü;</p>



<p><strong><code>(ortalama mesaj büyüklüğü) * (günlük mesaj sayısı) * (retention süresi) * (replication sayısı)</code></strong></p>



<p>Örnek olarak: 10KB’lık mesajımızı 3 gün süreyle tutmak istiyoruz ve günde 1000000 kadar mesaj gelsin. Replication factorümüz 3</p>



<p><code><strong>10KB * 3 * 3 * 1000000 = 85GB</strong>’lık bir disk ihtiyacımız ortaya çıkacaktır.</code></p>



<h2 class="wp-block-heading">Kafka Kurulumu</h2>



<p>Kurulum adımlarını yazarken hem Kraft’lı versiyona hem de Zookeeper’lı versiyona uygun olmasına özen gösterdim. Kraft kafka için metadata yönetimini yapan ve Zookeeper’ın yerine 3.0 versiyonu itibariyle geçen bir araçtır. Kafka’nın tüm ihtiyaç duyduğu metadataları internal bir topic üzerinde tutmaktadır, çalışma mekanizması olarak <em>__consumer_offtopics</em> ile benzerlik gösterir.</p>



<p>Kafka 3.0 hala içerisinde Zookeeper binary ve konfigurasyon dosyaları ile gelmektedir, yani istediğinizi kullanabilirsiniz.</p>



<h3 class="wp-block-heading">Genel kurulum önerileri:</h3>



<p>Kafka ve zookeeper servislerini çalıştırmak için ayrı bir kullanıcı yaratmanızı güvenlik sebebiyle öneririm, her iki servis için tek kullanıcı yeterlidir. Aynı zamanda Kafka ve Zookeeper&#8217;ın verilerini yazabilmesi için ayrı bir disk ekleyip bunu EXT4 veya XFS ile formatlamanızı öneririm.</p>



<p>Son olarak Kafka ve Zookeeper; Scala ve Java tabanlı uygulamalar olduğundan JVM kurulu olması gereklidir.</p>



<h3 class="wp-block-heading">Kafka Download:</h3>



<p>Kafka tar.gz olarak gelmekte ve tek yapmanız gereken dosyayı istediğiniz bir alana açmaktır. Kafka içerisinde aynı zamanda Zookeeper veya Kraft içinde tüm binary ve configurasyon dosyaları bulunmaktadır.</p>



<p>Ben örnek boyunca binary’ler için /opt/kafka klasörünü ama verinin yazılacağı alanlar için /datadisk dosyasını kullanacağım.</p>



<h3 class="wp-block-heading">Zookeeper kurulumu:</h3>



<p>1)/datadisk içerisinde zookeeper isimli bir klasör oluşturun, bu klasörü zookeeper’in kendi log(mesajları) ve veri tabanı için kullanacağız.</p>



<p>2)Her sunucu için Zookeeper ID yaratılması gerekmektedir, ID sadece sayılardan oluşabilir. Aşağıdaki komutu çalıştırarak ID ve dosyayı yaratalım. ID her sunucu için ayrı olmalıdır.<br><code>echo “1” > /datadisk/zookeeper/myid</code></p>



<p>3) /opt/kafka altında bulunan “config” klasörü altındaki zookeeper.properties dosyasını açalım ve içindeki bilgileri şu şekilde dolduralım.</p>



<p># Zookeeper loğları ve snapshotları nereye saklanacak aynı zamanda myid’i hangi klasörde arayacak</p>



<p>dataDir=/datadisk/zookeeper</p>



<p># Zookeeper Client portu</p>



<p>clientPort=2181</p>



<p># Eş zamanlı bağlantı sayısını sınırlamak için kullanılır “0” sınırsız için kullanılır</p>



<p>maxClientCnxns=0</p>



<p># MS cinsinden heatbeat</p>



<p>tickTime=2000</p>



<p># Senkronizasyon için ne kadar süre ayrıldığı(ms), bu süre içerisinde sync sağlanamazsa bağlantı timeout oluyor</p>



<p>initLimit=10</p>



<p># Timeout olmadan önce(küme dışına çıkmadan önce) kaç kere ulaşamayacağını belirler.</p>



<p>syncLimit=5</p>



<p># Zookeeper kümesinde olan sunucuların FQDN olarak domain adları ve portları.</p>



<p>server.1=zookeeper1:2888:3888</p>



<p>server.2=zookeeper2:2888:3888</p>



<p>server.3=zookeeper3:2888:3888</p>



<p>En son satırlarda bulunan server.1, server.2, server.3 olan kısma dikkatinizi çekmek isterim. server.&lt;id> kısmında ki id numarası ile FQDN&#8217;i girilmiş zookeeper sunucusunun myid dosyasında yazan id numaraları aynı olmalıdır.</p>



<p>Bu adımlardan sonra Zookeeper’ın çalışıp çalışmadığını ve diğer node’lara bağlanıp bağlanmadığını test edebiliriz. Aşağıda ki komut ile sunucuları başlatalım.</p>



<p><em><code>/opt/kafka/zookeeper-server-start.sh –deamon /opt/kafka/config/zookeeper.properties</code></em></p>



<p>Loglar içerisinde Leader’ın seçildiğini görürseniz ve kümede election işlemleri sorunsuz biterse Zookeeper’ı kapatıp Kafka kurulumuna geçebiliriz.</p>



<h3 class="wp-block-heading">Kafka Kurulumu:</h3>



<p>Kafka kurulumunu Zookeeper’lı ve Zookeeper’sız olarak ayrı ayrı anlatacağım. En başta Zookeeper’lı anlatım.</p>



<p><em>/opt/kafka/config </em>altında bulunan <em>server.properties</em> dosyasını açalım. Burada bulunan tüm ayarlardan bahsetmek yerine sadece kritik olanlardan bahsedeceğim.</p>



<p>1)Broker.id = 1; Broker ID her bir broker için eşsiz olmalıdır, sunucularınızın id’lerini sırayla 1,2,3,4 veya 10,15,20 şeklinde verebilirsiniz. Sadece numaraları kabul etmektedir ve her kafka broker’ı için eşsiz olmalıdır.</p>



<p>2)listeners=PLAINTEXT://:9092<br>Listeners Kafka’nın hangi porttan hangi protokol ile trafiği dinleyeceğini belirtmektedir. Kafka an itibariyle aşağıdaki 4 protokolü destekliyor;</p>



<ul><li><strong>PLAINTEXT:</strong> Consumer ve Producer’ların kafka’yla yaptığı trafik clear text’dir ve Topic’ler için herhangi bir kullanıcı adı şifreye zorlanmaz</li><li><strong>SSL:</strong> Consumer ve Producer’ların kafka’yla yaptığı trafik SSL ile şifrelenir ve Topic’ler için herhangi bir kullanıcı adı şifreye zorlanmaz</li><li><strong>SASL_PLAINTEXT:</strong> Consumer ve Producer’ların kafka’yla yaptığı trafik clear text’dir ama Topic’ler için kullanıcı adı ve şifre ile gelinmesini zorumlu kılar</li><li><strong>SASL_SSL:</strong> Consumer ve Producer’ların kafka’yla yaptığı trafik SSL ile şifrelenir ve Topic’ler için kullanıcı adı ve şifre ile gelinmesini zorumlu kılar</li></ul>



<p>Canlı ortamlarda SASL_SSL kullanılmasını öneririm ama ilk kurulum için şimdilik sadece PLAINTEXT olarak ayarlayabilirsiniz.</p>



<p>3)<em>log.dirs =/dataDisk/kafka</em><br>Logların hangi fiziksel alana yazılacağını belirler, partitionlar burada oluşturulur.</p>



<p>4)<em>num.partitions:</em> Topic’ler için varsayılan otomatik oluşturulan partition sayısını belirler, minimum broker sayısı kadar oluşturmanız performans açısından en iyi sonucu verecektir.</p>



<p>5) <em>offsets.topic.replication.factor, transaction.state.log.replication.factor </em>ve<em> transaction.state.log.min.isr </em>parametrelerini bir bütün olarak ele almak lazım. Kafka her partition için hangi offset’te kalındığını ve küme içinde metadata transferini _consumer_offsets ve __transaction_state isimli iç topic’leriyle yönetir. </p>



<p>Kafka’yı ilk çalıştırdığınızda bunları yaratır ve yaratırken bu topiclerin kaç partition olacağını belirleyen parametrelerdir.</p>



<p>Önerilen sayı minimum 3 olmasıdır ama benim önerim broker sayısına eşit yapılmasıdır. Eğer bu sayıyı 1 olarak ayarladığınız durumda offsets bilgisi sadece bir adet broker’da kalacaktır. Bu broker’ın devre dışı kalması durumunda tüm consumer trafiği duracaktır.</p>



<p>6) <em>log.retention.hours=24</em> ve<em> log.retention.bytes=1073741824</em>; Kafka’ya gelen mesajların ne kadar süre saklanacağını belirleyen parametrelerdir. Saat veya büyüklük cinsindendir, hangi kondisyon önce karşılanırsa ona göre retention politikası devreye girer.</p>



<p>7) <em>zookeeper.connect=zookeeper1:2181,zookeeper2:2181,zookeeper3:2181</em><br>Kafka’nın kümede bulunan node, partition, topic ve ACLs bilgilerini takip edebilmek ve kontrol edebilmesi için kullandığı zookeeper’ların FQDN olarak girilmesi gereklidir.</p>



<p>Bu adımları takip ettiğimiz taktirde; SSL ve SASL desteği olmadan Kafka kümesini çalıştırabilirsiniz ve aşağıdaki komutu her bir broker sunucusu için çalıştırmanız yeterlidir.</p>



<p><em><code>/opt/kafka/kafka-server-start.sh –deamon /opt/kafka/config/server.properties</code></em></p>



<h3 class="wp-block-heading">Kraft’lı kurulum:</h3>



<p>Kraft ile kurulumda bir önceki kısımda ki adımlardan 7. adım hariç hepsi bire bir aynıdır sadece bu sefer işlemleri <em>/opt/kafka/config/Kraft/server.properties</em> dosyasında yapmamız gerekli.</p>



<p>1)<em>process.roles=broker, controller</em><br>Kafka node’un rolünü belirliyoruz, 2.8 itibariyle bir kafka node’u broker ve/veya controller olabiliyor. Eğer yukardaki örnekte olduğu gibi her ikisini de yazarsak node her iki role’de aynı anda sahip olabilir.</p>



<p>2)<em>listeners= PLAINTEXT://:9092,CONTROLLER://:19092</em><br>Yukarda belirtilen listener protokollerine ek olarak Controller isimli yeni bir protokolde eklenmiştir, bunu tüm controller rolüne sahip node’lara eklememiz gerekli.</p>



<p>3<em>)<a href="mailto:controller.quorum.voters=1@kcontroller1:19092,2@kcontroller2:19092,3@kcontroller3:19092">controller.quorum.voters=1@kcontroller1:19092,2@kcontroller2:19092,3@kcontroller3:19092</a></em></p>



<p>Zookeeper connect parametresinin çalışmasına benzer şekilde Kraft controller’larının bulunduğu sunucuları FQDN olarak ve port bilgileriyle beraber giriyoruz.</p>



<p>4)Kraft’da quorum olarak üzerinde bulunduğu sunucuların disklerini kullandığından ve Zookeeper yerine küme id’sini belirleyeeğinden dolayı. Kafka küme ID’sini yaratmamız gereklidir.<br><code>/opt/kafka/bin/kafka-storage.sh random-uuid<br></code>Çıkan ID’yi bir yere kopyalayın.</p>



<p>5)Son olarak yarattığımız ID ve kafka-storage’ı kullanarak kafka’nın kullanacağı disk alanını formatlamamız lazım. Burada formatlanacak alan logs.dir parametresiyle aynıdır.<br><br><em><code>./bin/kafka-storage.sh format -t &lt;id> -c /opt/kafka/config/kraft/server.properties</code></em></p>



<p>Bu adımlardan sonra kafka servislerinizi başlatabilirsiniz. Kraft’ın kurulumu ve detayları hakkında config altında bulunan Readme.md dosyasının içeriğine bakmanızı öneririm.</p>



<h3 class="wp-block-heading">Kafka’yı test etmek:</h3>



<p>Kafka’nın sorunsuz çalıştığını test etmenin en iyi yöntemi bir topic yaratıp içerisine mesaj yazmaktan geçer.</p>



<p>1)Topic yaratmak için herhangi bir kafka broker sunucusuna girip aşağıdaki komutu giriniz;</p>



<pre class="wp-block-code"><code> ./bin/kafka-topics.sh --create --topic kafka-test --partitions 3 --replication-factor 3 --bootstrap-server localhost:9092</code></pre>



<p>Bu komut kafka-test isimli 3 partitiondan oluşan ve her partition’nın 3 kopyası olan bir topic yaratacaktır.</p>



<p>2)Kafka üzerindeki tüm topic’leri listelemek için aşağıdaki komutu kullanabilirsiniz, bunun çıktısı olarak kafka-topic’i göreceksiniz.<br><code>bin/kafka-topics.sh --bootstrap-server localhost:9093 --list</code></p>



<p>3)Eğer topic hakkında detaylı bilgi istersek;<br><br><code>bin/kafka-topics.sh --bootstrap-server localhost:9093 --describe --topic kafka-test</code><br><br>Bu komutun çıktısı sonucunda her partition’nın liderinin(aktif) hangi broker üzerinde olduğu, replication’larının hangi broker’larda olduğu ve senkronizasyon durumunu görebiliriz.</p>



<p>Bir sonraki yazımda Kafka için güvenlik ayarlarını yapacağız, performans testleri ve opensource arayüzlerden bahsedeceğim.</p>



<p>Okudunuz için teşekkür ederim.</p><p>The post <a href="http://www.emrebozlak.com/kafka-kurulumu/">Zookeeper’lı ve KRaft’lı Kafka Kurulumu</a> first appeared on <a href="http://www.emrebozlak.com">EMRE BOZLAK</a>.</p><p>The post <a href="http://www.emrebozlak.com/kafka-kurulumu/">Zookeeper&#8217;lı ve KRaft&#8217;lı Kafka Kurulumu</a> appeared first on <a href="http://www.emrebozlak.com">EMRE BOZLAK</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>http://www.emrebozlak.com/kafka-kurulumu/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			<dc:creator>emrebozlak@gmail.com (Emre Bozlak)</dc:creator></item>
		<item>
		<title>Service Mesh ve API GW nedir?</title>
		<link>http://www.emrebozlak.com/service-mesh-ve-api-gw-nedir/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=service-mesh-ve-api-gw-nedir</link>
					<comments>http://www.emrebozlak.com/service-mesh-ve-api-gw-nedir/#respond</comments>
		
		
		<pubDate>Thu, 16 Sep 2021 13:25:15 +0000</pubDate>
				<category><![CDATA[Container]]></category>
		<category><![CDATA[Enterprise Architecture]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[Microservice]]></category>
		<category><![CDATA[Strategy]]></category>
		<guid isPermaLink="false">http://www.emrebozlak.com/?p=935</guid>

					<description><![CDATA[<p>Eğer mikroservisler ile uğraşmaya başladıysanız service mesh ve API gateway kavramlarının sıkça konuşulduğunuz duyuyorsunuzdur. Mikroservisler, monolith uygulamaların ölçekleme, esneklik ve hızlı geliştirme/deploy etme konusunda ki kısıtlamalarına çözüm getirirken; servislerin yönetimi, uygulama geliştirme pratikleri ve servislerin hem bir birleri hem de dış dünyayla olan iletişimin düzenlenmesi anlamında yeni zorluklar doğurmuştur. API GW ve Service Mesh özellikle [&#8230;]</p>
<p>The post <a href="http://www.emrebozlak.com/service-mesh-ve-api-gw-nedir/">Service Mesh ve API GW nedir?</a> first appeared on <a href="http://www.emrebozlak.com">EMRE BOZLAK</a>.</p>
<p>The post <a href="http://www.emrebozlak.com/service-mesh-ve-api-gw-nedir/">Service Mesh ve API GW nedir?</a> appeared first on <a href="http://www.emrebozlak.com">EMRE BOZLAK</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Eğer mikroservisler ile uğraşmaya başladıysanız service mesh ve API gateway kavramlarının sıkça konuşulduğunuz duyuyorsunuzdur. Mikroservisler, monolith uygulamaların ölçekleme, esneklik ve hızlı geliştirme/deploy etme konusunda ki kısıtlamalarına çözüm getirirken; servislerin yönetimi, uygulama geliştirme pratikleri ve servislerin hem bir birleri hem de dış dünyayla olan iletişimin düzenlenmesi anlamında yeni zorluklar doğurmuştur. API GW ve Service Mesh özellikle microservicelerin iletişimini düzenleyen hem de güvenliklerine katkıda bulunan ama rolleri sıkça karıştırılan iki bileşendir.</p>



<p>Aralarındaki farkı iyicene anlayabilmek için her birine detaylı bakalım.</p>



<p>Service mesh; servislerin bir birleriyle konuşmasını sağlayan mikroservislerin kendi aralarındaki iç trafiğini(east-west) yöneten bir alt yapı bileşenidir, network seviyesinde L4 ve L7’de çalışmaktadır.<br><br></p>



<span id="more-935"></span>



<p>Service mesh’in başlıca özellikleri:</p>



<ul><li><em>Servisler arasında ki trafiğin yönlendirilmesi;</em> mikroservis aynı platform(k8 gibi) üzerinde bulunan başka bir mikroservisi çağırmak istediğinde bu servisin hangi pod üzerinde bulunduğu, pod içerisinde kendisine en yakın container’ın hangi node üzerinde bulunduğunu ve trafiğin container’lar arasında dağıtılmasından sorumludur.</li><li><em>Rate limiting;</em> bir birini çağıran servislerin eş zamanlı kaç adet çağrıda bulunabileceğini ve/veya requestin büyüklüğünü belirleyebilir.</li><li><em>Retry;</em> birbirini çağıran servislerde, yanıt alamama durumunda iletişimi tekrar deneme sayısını, bu sayıyı aştığında ise circuit breaker sürecini ayarlayabilirsiniz</li><li><em>A/B testing</em> için servis çağrılarının mesela %90’ını v1’e yönlendirirken geri kalanların v2’e yönlendirilmesini sağlayabiliriz; eski sürümün trafiği yavaş yavaş azaltılırken, gelen request’ler yeni sürüme yönlendirilir (Strangler Pattern). Özellikle 7/24 trafik alan finans uygulamaları, e-ticaret siteleri için çok değerli bir özelliktir.</li><li>Servisler arası network seviyesinde iletişimi kontrol ettiğinden dolayı service mesh bize oldukça detaylı metrikler sunabilmektedir, bu metrikleri hem performans analizi için hem de servislerin health check’i için kullanabiliriz.</li><li><em>Güvenlik</em> tarafındaysa iki önemli rol üstlenmektedir; birincisi servisler arasında ACL’ler ile erişim yetkilerini tanımlanması ve mutual TLS kullanarak ek bir güvenlik oluşturulması.</li></ul>



<p>Yukarda yazdığım tüm özellikleri servis mesh kullanmak yerine uygulama içerisine mantığı gömerek gerçekleştirmekte mümkün ancak hem sürdürmesi zordur hem de yapılar çok büyüdükçe yönetilmesi imkânsızlaşır, bunun yanında uygulamamız içerisinde temel fonksiyonuyla alakasız işlevleri de gömerek mikroservisin felsefesinden de uzaklaşmış oluruz.</p>



<p>Service mesh ise sidecar denilen bir yapı sayesinde kendini pod’un içerisine dâhil ediyor ve pod içerisindeki tüm içeri ve dışarı doğru olan trafiği kontrol ederek yukarıdaki fonksiyonları sağlayabiliyor. Bunun en büyük artısıysa kodumuzda herhangi bir değişiklik yapmamıza gerek olmaması.</p>



<p>API Gateway fonksiyonuna gelirsek aslında mikroservis yapılarından daha öncede var olan ama mikroservisler ile beraber popülerliği artan başka bir yapı taşıdır. Service mesh’den farklı olarak API GW kuzey-güney trafiğini tek bir noktadan yönetmek için kullanılır veya veri merkeziniz içerisinde iki farklı teknolojiye sahip servislerin konuşması için de kullanılabilir.</p>



<p>API GW kullanmanın faydaları;</p>



<ul><li><em>Soyutlama(Abstraction):</em> API GW başka servisler ve istemciler için tek bir çağrı ve cevap noktası olduğundan dolayı arka taraftaki karmaşık yapıdan sizi soyutlar ve daha bütüncül bir deneyim sunar. Bir kredi kartı hesap özeti ödeme servisiniz olduğunu düşünün; bu servis aracılığıyla hesabınızdaki paranın bir kısmıyla ödeme yapmak istediniz de arka tarafta sırayla şu servisler kullanılacaktır;<ul><li>Müşterinin bu işlemi yapma yetkisi kontrolü</li></ul><ul><li>Hesap durumu ve bakiyesi uygunluğu kontrolü</li></ul><ul><li>Ödeme yapılan kuruma para transferinin gerçekleştirilmesi</li></ul><ul><li>Bakiye güncellemesi</li></ul><ul><li>Ara yüzde işleme ait dekontun gösterilmesi veya adımlardan herhangi birinde hata varsa tüm yapılan işlemlerin geri alınması.</li></ul></li></ul>



<p>Yukarıda özetlediğim işlem adımlarının her biri farklı bir veya daha fazla servise denk gelmektedir; her biri için client farklı farklı çağrılar yapabilir veya API GW üzerinden tek bir çağrının yapılmasını sağlayıp arkadaki orkestrasyon/çoklu işlemi saklayabilir. Bunun hem performansa hem de geliştirme süreçlerinin yalınlığına katkısı pozitiftir.</p>



<ul><li><em>Kimlik doğrulama(Authentication):</em> API GW arkasında bulunan servislere ulaşabilmek için gerekli tokenların olup olmadığını kontrol eder veya authentication için gerekli servisleri arka tarafta çağırabilir.</li><li><em>Trafik Kontrolü:</em> Yapılan çağrıların belli IP’lerden gelmesi, belli bir büyüklüğü geçememesi veya belirli bir süre içerisinde yapılabilecek maksimum çağrı sayısını belirleyebiliriz. Özellikle servislerimizi DDoS gibi saldırılara veya gereğinden fazla çağrılarak sistemi yormasına karşı korumak için ek bir önlem olarak kullanılabilir.</li><li><em>API’lerin izlenmesi ve ücretlendirilmesi:</em> Bu iki fonksiyon bir birinin tamamlayıcısıdır, API çağrıları üzerinden metrik toplayarak hem ileride problemlerin çözümü için veri biriktirirken, ileride dışarıya açtığımız servisleri ücretlendirebilir veya en çok/az kullanılan servisleri kolayca bulabiliriz.</li><li><em>Dönüşüm(Transformations):</em> API GW’in kullanım avantajlarından biri de eski veya farklı protokol kullanan uygulamaları bir biriyle konuşabilmesi için gerekli dönüşümü yapabilmesidir. Hem eski legacy uygulamaların yeni yapıyla entegre çalışabilmesi için kritik bir özelliktir, hem de bu tür dönüşüm fonksiyonlarını uygulama içerisine gömmeyerek uygulamanın taşınabilirliğini ciddi oranda artırmış oluyoruz.</li><li><em>Önbellek(Cache):</em> API GW istenirse önbellek görevi de görerek response time’ı azaltabilir, pek tercih edilen bir özelliği olmamakla beraber sık çağrılan ve görece az güncellenen API’lar için ideal olabilir.</li><li><em>Güvenlik:</em> Kimlik doğrulama ve trafik kontrolü’nün yanında aynı zamanda TLS, mTLS veya header kontrolleri bu katman üzerinde yapılabilir, böylece uygulamalar güvenlik sorumluluğunun bir kısmını API GW’e devretmiş olur.</li></ul>



<p>API GW’in tam işlevini pekiştirmek için sıkça kullanılan bir senaryoyu konuşmak istiyorum. Birincisi, istemci(client) backend servislerinin karmaşıklığından soyutlamak ve çoklu servis çağrılarında verileri tek bir noktada toparlayıp o şekilde cevap vermek.</p>



<p>Mesela aşağıdaki örnek uygulamada istemci son yapılan para transfer işleminin dekontunu gösterebilmek için 3 farklı servisin verilerine ihtiyaç duyuyor. İstemci 3 servisi de tek tek çağırıp onlardan topladığı verileri daha sonra kendi üstünde birleştirmek zorunda; burada ki problem istemcinin aslında aynı kaynağa 3 kere farklı çağrı yapması ve aralarındaki en yavaş çağrı süresi kadar başlayıp kendi üzerinde birleştirme işlemini yapıyor olması. Bu hem kaynak hem de ileride bu servislerden birinde yapılacak değişiklikte tüm istemcileri de güncelleme zorunluluğuna sebep olabileceğinden dolayı çok istenen bir durum değildir.</p>



<figure class="wp-block-image size-full is-resized"><a href="http://www.emrebozlak.com/wp-content/uploads/2021/09/image.png"><img fetchpriority="high" decoding="async" src="http://www.emrebozlak.com/wp-content/uploads/2021/09/image.png" alt="" class="wp-image-936" width="552" height="342" srcset="http://www.emrebozlak.com/wp-content/uploads/2021/09/image.png 472w, http://www.emrebozlak.com/wp-content/uploads/2021/09/image-300x186.png 300w, http://www.emrebozlak.com/wp-content/uploads/2021/09/image-370x230.png 370w" sizes="(max-width: 552px) 100vw, 552px" /></a><figcaption>API GW&#8217;siz senaryo</figcaption></figure>



<p>Bunun yerine araya bir API GW koyduğumuzda istemci sadece tek bir çağrı yaparak API GW’in gerekli API’ları çağırması veriyi toparlayıp tek bir cevap olarak dönüş yapmasını sağlayabiliriz. Bunun en büyük avantajları yavaş network(internet) üzerinden tek çağrı yapılırken, hızlı network üzerinden(internal) 3 çağrı yapıldığından toplam cevap süresi uygulama için azalacaktır; aynı zamanda API GW yapılan çağrıda hali hazırda güvenlik tokenlarının olduğunu görüp “Kimlik Doğrulama Servisini” hiç çağırmayabilir veya dekontun template’i zaten önbellekte olabileceğinden dolayı minimum çağrıyla istemciye cevap verilecektir.</p>



<figure class="wp-block-image size-full"><a href="http://www.emrebozlak.com/wp-content/uploads/2021/09/image-1.png"><img decoding="async" width="566" height="294" src="http://www.emrebozlak.com/wp-content/uploads/2021/09/image-1.png" alt="" class="wp-image-937" srcset="http://www.emrebozlak.com/wp-content/uploads/2021/09/image-1.png 566w, http://www.emrebozlak.com/wp-content/uploads/2021/09/image-1-300x156.png 300w, http://www.emrebozlak.com/wp-content/uploads/2021/09/image-1-370x192.png 370w" sizes="(max-width: 566px) 100vw, 566px" /></a><figcaption>API GW&#8217;li senaryo</figcaption></figure>



<p>Burada birçok yazılım mimari arkadaşım microservice tasarım modellerinden olan “service aggregator’u” neden tercih etmediğimi soruyorlar. Birincisi fonksiyon olarak benzer işleri yapabilseler de her bu tür servis için ayrı bir aggregator geliştirmek, bunun yaşam döngüsünü ve sürdürülebilirliğini yönetmek ek bir iş yükü getirecektir; bunun yanında API GW daha çok uç noktaya konulan ve istemcileri/3. Parti entegrasyonları karşılama görevini de üstleneceğinden dolayı dönüşüm, güvenlik, trafik yönetimi gibi rolleri de üstlenebilecek bir ürünün kullanılmasını daha doğru buluyorum. &nbsp;Tabii sıkça service aggregator ve API GW’in beraber kullanıldığı tasarımlar görüyor olabilirsiniz, özellikle servisiniz için özel bir aggregation akışına ihtiyacınız varsa ve istemcilerin içerisine gömmek istemiyorsanız tercih edilmesi doğru bir yaklaşımdır.</p>



<p>Servicemesh ve API GW’in ne olduğunu açıkladığıma göre; en sık karşılaştığım soruya cevap vermeye çalışayım. ServiceMesh ve API GW bir birinin yerine geçebilir mi?</p>



<p>Hayır; birçok ortak özellikleri olmakla beraber ve birçok firmanın API GW ve service mesh ürünlerini tek bir marka altında sunmaya başlamasına rağmen rolleri farklıdır.</p>



<p>API GW; servislerimizi dışarıya nasıl sunacağımız, hangi güvenlik mekanizmasından geçireceğimiz ve farklı protokollerin bir biriyle konuşmasını düzenlerken; service mesh içerideki servislerin bir biriyle nasıl konuşması gerektiğini düzenler.</p>



<p>Aşağıda bir tabloyla özeti bulabilirsiniz;</p>



<figure class="wp-block-table is-style-regular"><table class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background"><thead><tr><th class="has-text-align-left" data-align="left">API GW</th><th class="has-text-align-left" data-align="left">Service Mesh</th></tr></thead><tbody><tr><td class="has-text-align-left" data-align="left"></td><td class="has-text-align-left" data-align="left"></td></tr><tr><td class="has-text-align-left" data-align="left">Kuzey-Güney trafiğini yönetir</td><td class="has-text-align-left" data-align="left">Doğu-Batı trafiğini yönetir</td></tr><tr><td class="has-text-align-left" data-align="left">Servislerin dış dünya tarafından kolay ve güvenli olarak tüketilmesini sağlar</td><td class="has-text-align-left" data-align="left">Container networkü içerisindeki servislerin trafiğini kontrol eder ve yönetir</td></tr><tr><td class="has-text-align-left" data-align="left">Dış çağrıları içerideki servislere adresler</td><td class="has-text-align-left" data-align="left">İç kaynaklar arasında brokage servisi olarak çalışır</td></tr><tr><td class="has-text-align-left" data-align="left">Üzerinde bulunan servisler bir iş fonksiyonuna göre tanımlanır(fatura kesimi, EFT başlat gibi)</td><td class="has-text-align-left" data-align="left">Uygulamalar, veri merkezleri ve farklı networkler arasındaki fonksiyonları üstlenir; doğrudan bir iş fonksiyonuna bağlı değildir.</td></tr></tbody></table></figure>



<p>Vakit ayırıp okuduğunuz için teşekkürler.</p><p>The post <a href="http://www.emrebozlak.com/service-mesh-ve-api-gw-nedir/">Service Mesh ve API GW nedir?</a> first appeared on <a href="http://www.emrebozlak.com">EMRE BOZLAK</a>.</p><p>The post <a href="http://www.emrebozlak.com/service-mesh-ve-api-gw-nedir/">Service Mesh ve API GW nedir?</a> appeared first on <a href="http://www.emrebozlak.com">EMRE BOZLAK</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>http://www.emrebozlak.com/service-mesh-ve-api-gw-nedir/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			<dc:creator>emrebozlak@gmail.com (Emre Bozlak)</dc:creator></item>
		<item>
		<title>Kafka Terminolojisi ve Mimarisi</title>
		<link>http://www.emrebozlak.com/kafka-terminolojisi-ve-mimarisi/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=kafka-terminolojisi-ve-mimarisi</link>
					<comments>http://www.emrebozlak.com/kafka-terminolojisi-ve-mimarisi/#comments</comments>
		
		
		<pubDate>Thu, 01 Jul 2021 11:45:36 +0000</pubDate>
				<category><![CDATA[Vmware]]></category>
		<category><![CDATA[big data]]></category>
		<category><![CDATA[kafka]]></category>
		<category><![CDATA[mimari]]></category>
		<guid isPermaLink="false">https://www.emrebozlak.com/?p=922</guid>

					<description><![CDATA[<p>Apache Kafka son yıllarda başta microservice olmak üzere yeni nesil mimarilerin ve büyük oranda veri ve/veya olay akışlarıyla çalışan uygulamaların temel bileşenlerinden biri haline gelmiş bir yapıdır.Bu yazı serisinde ilk önce Kafka’nın terminolojisi, mimarisi ve nasıl çalıştığından bahsedip, bir sonraki yazılarımda sırayla kurulum ve bazı iyi uygulama örneklerine değineceğim. Kafka dağıtık, kolay ölçeklenebilir, hataya dayanıklı [&#8230;]</p>
<p>The post <a href="http://www.emrebozlak.com/kafka-terminolojisi-ve-mimarisi/">Kafka Terminolojisi ve Mimarisi</a> first appeared on <a href="http://www.emrebozlak.com">EMRE BOZLAK</a>.</p>
<p>The post <a href="http://www.emrebozlak.com/kafka-terminolojisi-ve-mimarisi/">Kafka Terminolojisi ve Mimarisi</a> appeared first on <a href="http://www.emrebozlak.com">EMRE BOZLAK</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Apache Kafka son yıllarda başta microservice olmak üzere yeni nesil mimarilerin ve büyük oranda veri ve/veya olay akışlarıyla çalışan uygulamaların temel bileşenlerinden biri haline gelmiş bir yapıdır.Bu yazı serisinde ilk önce Kafka’nın terminolojisi, mimarisi ve nasıl çalıştığından bahsedip, bir sonraki yazılarımda sırayla kurulum ve bazı iyi uygulama örneklerine değineceğim.</p>



<p>Kafka dağıtık, kolay ölçeklenebilir, hataya dayanıklı ve sürdürülebilirliği yüksek bir veri/olay akış aracıdır. Çok büyük miktarda veriyi eş zamanlı karşılamasının yanında veriyi üreten kaynaktan okuyup arkada tüketecek sisteme 10ms’nin altında aktarabilecek bir kapasiteye sahiptir. Peki, Kafka ne gibi senaryolarda kullanılmaktadır;</p>



<span id="more-922"></span>



<ul><li>Büyük ölçekte IoT metriklerinin veya uygulama loğlarının toplanacağı, yüzlerce hatta yüz binlerce kaynaktan eş zamanlı gelen verilerin yazılması, saklanması ve ilgili uygulamaların kullanabilmesi için verilerin sunulabilmesi.</li><li>&nbsp;Farklı sistemlerin bir birleriyle konuşabilmesi için ortak ara yüz sunması; bir uygulama eğer birden fazla uygulamayla iletişime geçmesi gerekiyorsa her biriyle olan iletişimi için tek tek entegrasyon yazılması gerekmektedir. Bu hem iş yükü olarak hem de mimari olarak çok tercih edilmediği gibi, değişiklikler veya sorunlar esnasında ciddi darboğaza sebep olmaktadır. Bunun yerine uygulamalar mesajlarını Kafka’ya yazıp, bu mesajı tüketecek uygulamaların da direk Kafka’dan bu mesajları okuması, hem karmaşıklığı oradan kaldıracak hem asenkron bağlantı sayesinde uygulamaların genel performansı olumlu olarak artacak hem de geliştirilecek entegrasyon sayısı ciddi anlamda azalacaktır.</li><li>Canlı veri akışının toplanması ve analiz edilmesi; mesela bir web sitesinde kullanıcıların gezinti verilerinin toplanıp anlık önerilerin yaratılması için tüm gezinti metriklerinin kafka’da toplanıp kafka üstünde analiz edilmesi.</li></ul>



<p>Kafka’nın ne olduğu ve amacını anlattığımıza göre terminolojisinden ve mimarisinden bahsetmeye başlayabiliriz. En başta biraz karışık gelse de Kafka oldukça basit bir yapıya sahiptir, özellikle daha önceden bir MQ veya benzer bir Event-streaming servisiyle çalıştıysanız ilişki kurmanız kısa zaman alacaktır.</p>



<p><strong>Broker:</strong> Kafka sistemlerinin en temel bileşenidir, Kafka kümesinde çalışan her bir sunucu/servise broker denir. Broker’lar fiziksel olarak kurulu oldukları sunucuya bağlıdırlar ama bir broker kendi üstünde olmasa bile kümede ki tüm topic ve partition’lardan haberdardır. Broker’lar hem producer hem de consumer’lar için bağlantı noktası olarak görev alırlar. Broker’ların her biri eşsiz bir sayı ile temsil edilir(Örnek: 101,102,103 gibi).</p>



<p><strong>Broker discovery/bootstrap server:</strong> Consumer veya Producer’lar sadece bir broker üzerindeki bootstrap servisine bağlanarak tüm kümede bulunan diğer broker’lar, topic’ler ve partition’ların durumunu ve bağlantı noktalarını öğrenebilirlerler. Bu bilgileri bootstrap server metadata olarak istemcilere sunmaktadır.</p>



<p><strong>Topic: </strong>Verilerin yazıldığı, yaratıldığı anda tüm brokerlar tarafından erişilebilir olan, kafka’nın veri tabanları veya MQ’larda bulunan kuyruklara benzeyen yapısıdır<strong>. </strong>Topic’ler istendiği kadar yaratılabilir ve mantıksak bir kavramdır. Topic isimleri harf, rakam ve bazı özel karakterlerden oluşabilir.</p>



<p><strong>Partition: </strong>Verilerin yazıldı, her broker’ın kendisine özel olan ve bir topic’e bağlı fiziksel disk üzerindeki alanı temsil eder. Bir topic’e ait birden fazla partition olabilir, her partition’nın 20Mb/s’lık okuma ve yazma limiti bulunmaktadır ve partition bağlı olduğu topic’e özel 0,1,2,3… gibi rakamlar şeklinde temsil edilir.</p>



<p>Veri Partition’a bir kere yazılır ve belli bir süre boyunca saklanır, Partition’a yazılan veri silinemez. Topic’ler yaratılırken kaç adet partition ile yaratılacağını belirleyebiliriz. Kafka broker sayısına göre partition’ları küme içerisinde dağıtır. Bu konuda ki iyi uygulamalardan biri broker sayısı veya onun katları kadar partition yaratılması yönündedir.</p>



<p><strong>Replication: </strong>Yukarda da bahsettiğim üzere Partition’lar tüm küme tarafından erişilebilseler bile (Broker Discovery/bootsrap server maddesine bakınız.)üzerlerinde bulundukları fiziksel diske bağımlıdırlar eğer broker bir sebepten dolayı devre dışı kalırsa üzerinde bulunan partition’lara erişilemez. Bu da veri kaybına sebep olabilir. Bunu önlemek için Kafka, replication mekanizmasını kullanır. Bir topic yaratılırken her partition’nın kaç adet kopyası olacağını belirleyebiliriz.</p>



<p>Mesela 3 partition ve 2 replication factore sahip bir topic yapısı aşağıdaki gibi gözükmektedir.</p>



<figure class="wp-block-image size-large"><a href="https://www.emrebozlak.com/wp-content/uploads/2021/07/replication.png"><img decoding="async" width="605" height="324" src="https://www.emrebozlak.com/wp-content/uploads/2021/07/replication.png" alt="" class="wp-image-923" srcset="http://www.emrebozlak.com/wp-content/uploads/2021/07/replication.png 605w, http://www.emrebozlak.com/wp-content/uploads/2021/07/replication-300x161.png 300w, http://www.emrebozlak.com/wp-content/uploads/2021/07/replication-370x198.png 370w" sizes="(max-width: 605px) 100vw, 605px" /></a><figcaption>Replication of Kafka</figcaption></figure>



<p>Son önemli bir noktaysa partition’ların kopyalarını yarattığımız zaman sadece bir tanesi producer’lar tarafından yazılabilir, t anında yazılabilir olan partition’a leader diğerlerine ISR(in-sync-replication) denmektedir.</p>



<p>Bir partition’nın birden fazla replication’ı olabilir ama sadece bir adet aktif leader’ı vardır.</p>



<p><strong>Offset: </strong>Partition ve topic konularını kapatmadan önce önemli bir kavramdan daha bahsetmek gerekli, offset’ler partition özelinde olup, veriler her partition’a yazılırken bir identity number atanır, bu sayede veriler hem partition’a yazıldığı sırayla okunabilir hem de consumer’lar bir partition’da okuma yaparken hangi mesajda kaldıklarını hatırlayabilirler.</p>



<p>Offset sayısı 0’dan başlar ver sonsuza dek devam edebilir, her mesaj yazıldığında yeni mesaja bir sonraki numara atanır.</p>



<p>Offset’ler partition özelinde olduğundan dolayı bir topic’e sahip tüm partition’ların offset sayıları farkılır sadece bir partition’nın leader ve onun replica’ları aynı offset’e sahiptir.</p>



<figure class="wp-block-image size-large"><a href="https://www.emrebozlak.com/wp-content/uploads/2021/07/offset.png"><img loading="lazy" decoding="async" width="605" height="273" src="https://www.emrebozlak.com/wp-content/uploads/2021/07/offset.png" alt="" class="wp-image-924" srcset="http://www.emrebozlak.com/wp-content/uploads/2021/07/offset.png 605w, http://www.emrebozlak.com/wp-content/uploads/2021/07/offset-300x135.png 300w, http://www.emrebozlak.com/wp-content/uploads/2021/07/offset-370x167.png 370w" sizes="(max-width: 605px) 100vw, 605px" /></a><figcaption>Topic Offsets</figcaption></figure>



<p><strong>Producer: </strong>Kafka terminolojisine göre mesaj(log) yaratan ve ilgili topic’e yazan uygulama/sistemlere verilen isimdir. Producer’lar bootstrap server sayesinde tüm broker, topic ve partition’ların listesine erişebilirler bu sayede mesajı nereye yazacağını ve nasıl yükü dağıtacağını kendisi karar verebilir.</p>



<p>Producer’lar her mesajı yazarken yazılım işleminden sonra onay(ACK) talep edebilirler. Kafka şu anda 3 tip ACK desteklemektedir, bunlar;</p>



<ul><li><em>ACK = 0</em>; yani mesajı yazdıktan sonra cevap beklememesi, bunun handikabı veriyi producer’ı broker’a bıraktıktan sonra bir aksilik olur ve yazamazsa producer bundan haberdar olmayacak ve veri kaybına sebep olabilir.</li><li><em>ACK = 1</em>; Producer leader partition’a mesaj yazıldığında ACK cevabını alır. Veri kaybı riski görece olarak düşük olsa da leader’in ISR partitionlara kopyalaması bitmeden ACK verildiği için eğer tam bu esnada leader partition bulunduğu broker devre dışı kalırsa veri kaybı olabilir.</li><li><em>ACK = all; </em>Producer hem leader hem de tüm ISR’e yazma işlemi bitmeden ACK cevabını almaz bu sebepten dolayı veri kaybı riski en düşük olan model ama Producer tarafı için cevabı beklemesi gerektiğinden performansı en düşük olan seçenektir.</li></ul>



<p>Uygulamanızın kritikliği, mesaj zincirinin bozulması durumundaki etkisi gibi konuları göz önüne alınarak karar verilmesi gerekmektedir.</p>



<p><strong>Message Key: </strong>Uygulamaların(Producer) Kafka’ya yazdığı mesajlar 3 parçadan oluşmaktadır; zaman damgası, mesajın içeriği ve message key. Message key her mesaj için ayrı oluşturur ve aynı key’e sahip mesajlar aynı partition’lara yazılırlar. Bunu Producer eğer belirtmezse, kafka kendisi her mesaj için yaratıp kendisi bir partition’a atayabilir veya alternatif olarak belli tip bir mesajın aynı partition’a yazılmasını istiyorsak özelliklede okuma sırasının her zaman doğru olmasını bekliyorsak message key’i elle de atayabiliriz.</p>



<p><strong>Consumer: </strong>Kafka’dan verileri okuyan sistemlere verilen isimdir, aynı producer’lar gibi bootstrap serverüzerinden tüm Kafka kümesine erişebilir ve kendi load balance’ını yapma yetisine sahiptir. Consumer’lar partitionlardan verileri sırayla okur, burada dikkat edilmesi gereken nokta Kafka’ya mesajlar yazılırken birden fazla partition’a yazıldığından dolayı Consumer’lar aynı sırayla partitionlara erişmediklerinden dolayı Kafka’ya yazılma sırasından farklı olarak okunabilir. Mesajlar sadece partition’lar içerisinde sıralıdır, partition’lar bir birinden farklı sırada okunabilir.</p>



<p><strong>Consumer Group: </strong>Aynı Topic’i okuyan birden fazla consumer’ın olması durumunda aynı mesajın tekrar tekrar okunmasının önüne geçmek için Consumer Group kullanılır. Consumer group içerisinde bulunan tüm consumer’lar en az bir partition’a atılır ve aynı grup içerisindeki diğer consumer aynı partitiona atanmaz. Böylelikle tekrarlı okumaların önüne geçilir.</p>



<p>Consumer Group içerisinde hangi consumer’ın hangi partition’la eşleştiğini, gruba yeni consumer geldiğinde veya çıktığında partition’ların tekrar dağıtılması işlemini Consumer coordinatör denilen, Kafka’nın broker’larından birini bu rol için leader seçtiği bir node üzerinde olur.</p>



<p>Consumer Group kullanımıyla ilgili iyi uygulamalardan biri de Consumer sayısının asla Partition sayısını geçmemesidir. Consumer group her bir partition’ı sadece bir consumer’a atayacağından dolayı fazla consumerlar boşta kalacaktır.</p>



<figure class="wp-block-image size-large"><a href="https://www.emrebozlak.com/wp-content/uploads/2021/07/consumer-group.png"><img loading="lazy" decoding="async" width="605" height="226" src="https://www.emrebozlak.com/wp-content/uploads/2021/07/consumer-group.png" alt="" class="wp-image-925" srcset="http://www.emrebozlak.com/wp-content/uploads/2021/07/consumer-group.png 605w, http://www.emrebozlak.com/wp-content/uploads/2021/07/consumer-group-300x112.png 300w, http://www.emrebozlak.com/wp-content/uploads/2021/07/consumer-group-370x138.png 370w" sizes="(max-width: 605px) 100vw, 605px" /></a><figcaption>Consumer Group</figcaption></figure>



<p>Consumer group konusunu bitirirken <strong><em>__consumer_offset</em></strong> isimli topic’den bahsetmem gerekir. Bu topic kafka tarafından yaratılan ve yönetilen bir topictir ve consumer’lar bir partition’dan her okuma yaptıklarında hangi offset’te kaldıklarını burada tutuluyor. Consumer group’a yeni bir üye katıldığında veya bir consumer kesinti yaşayıp tekrar kafka’ya bağlandığında buradan nerede kaldığını hatırlayarak devam ediyor. Kafka kümesini ilk kurduğunuzda __consumer_offset’in mutlaka minimum 3 node’a replice edilmesini ayarlamanız gerekmektedir, aksi durumda __consumer_offset’in leader partition’larını tutan broker’ı kaybetmeniz durumunda servisiniz duracaktır.</p>



<p><strong>Consumer delivery semantics: </strong>Consumer’ın ne zaman offset’i commit ettiğini belirler.</p>



<ul><li><em>At most once:</em> Offset consumer tarafından okunur okunmaz commit edilir, eğer consumer tarafında mesaj okunduktan sonra işlemlerde sorun oluşursa veri kaybı oluşabilir</li><li><em>At least once:</em> Offset’in commit edilmesi consumer okuduğu mesajı işledikten sonra yapılır, veri kaybı riski az olmasına rağmen mesaj birden fazla kere okunabilir.</li><li><em>Exactly once:</em> Daha çok Kafka’dan kafka’ya mirrormaker gibi süreçlerde kullanılır.</li></ul>



<p>Kafka terminolojisinden bahsederken fark etmiş olduğunuz üzere kafka ciddi bir metadata yönetimi yapmakta, tüm bileşenlerinin bilgilerini ve yetkileri bir yerde saklamalı aynı zamanda küme içerisinde ki leader/follower yapısını bir şekilde takip edip devre dışı kalan veya yeni eklenen broker’lara göre kümeyi dinamik olarak ayarlayabilmelidir. Kafka mevcut versiyonu itibariyle bu rolleri Zookeeper ile yapmakta ama yakın gelecekte planlanan versiyonlarında Zookeeper yerine kendi iç metadata veri tabanını kullanması planlanmaktadır.</p>



<p>Zookeeper; özellikle büyük veri projeleri başta olmak üzere birçok açık kaynak projesinde kullanılan, dağıtık, key-value veri saklama yeteneğine sahip açık kaynaklı bir servistir. Zookeeper kafka için aşağıdaki rolleri üstlenir;</p>



<ul><li><em>Kafka kümesinin takibi;</em> Zookeeper kümede bulunan tüm broker’ları heartbeat servisleriyle izler ve bir tanesine erişilememe durumunda broker listesinden çıkartır. Böylelikle bootstrap servisi üzerinden producer ve consumer’lar bu broker’ı göremezler. Aynı şekilde yeni bir broker’ın eklmesi durumunda tüm kümeye bildirimini yapar.</li><li><em>Controller seçimi:</em> Kafka broker’larından biri kümedeki tüm partitionların leader/follower ilişkini controller yönetir. Bir broker devre dışı kaldığında onun üzerindeki leader partitionlara sahip hangi replicaların leader olacağını seçer. Bu role sahip broker’ın cevap verememe durumunda Zookeeper yeni bir controller seçer</li><li><em>Topic konfigürasyonlarının ve ACLs’lerin tutulması:</em> Kümede hangi topic’ler, kaç adet partitiona sahip, partition durumları, replicationların durumu ve yerlerinin bulunduğu metadataları tutar ve yönetir. Aynı zamanda kullanıcıların broker’lar ve topic’ler üzerindeki yetkileride burada tutulmaktadır.</li><li><em>Kotalar:</em> Topic’ler ve partitionlar ile kullanıcıların yazma/okuma kota bilgilerini burada tutar.</li></ul>



<p>Zookeeper Kafka’dan ayrı bir servistir ve ayrı olarak konumlandırılması ve planlanması gerekmektedir. Zookeeper leader follower mekanizmasıyla çalışmaktadır, yani zookeeper kümesindeki bir sistem tüm işlemleri, değişiklikleri ve koordinasyonu üstleniyor diğer nodelarsa onu takip ediyorlar. Kümede lider seçimi çoğunluk oyuna göre yapılmaktadır, bu sebepten dolayı Zookeeper kümesinin node sayısının 1,3,5,7… gibi tek sayılardan oluşması gerekmektedir.</p>



<p>Yukarda konuştuklarımızı özetlerse Kafka yapısı aşağı yukarı aşağıdaki gibidir.</p>



<figure class="wp-block-image size-large"><a href="https://www.emrebozlak.com/wp-content/uploads/2021/07/overal.png"><img loading="lazy" decoding="async" width="605" height="357" src="https://www.emrebozlak.com/wp-content/uploads/2021/07/overal.png" alt="" class="wp-image-926" srcset="http://www.emrebozlak.com/wp-content/uploads/2021/07/overal.png 605w, http://www.emrebozlak.com/wp-content/uploads/2021/07/overal-300x177.png 300w, http://www.emrebozlak.com/wp-content/uploads/2021/07/overal-370x218.png 370w" sizes="(max-width: 605px) 100vw, 605px" /></a><figcaption>Genel yapı</figcaption></figure><p>The post <a href="http://www.emrebozlak.com/kafka-terminolojisi-ve-mimarisi/">Kafka Terminolojisi ve Mimarisi</a> first appeared on <a href="http://www.emrebozlak.com">EMRE BOZLAK</a>.</p><p>The post <a href="http://www.emrebozlak.com/kafka-terminolojisi-ve-mimarisi/">Kafka Terminolojisi ve Mimarisi</a> appeared first on <a href="http://www.emrebozlak.com">EMRE BOZLAK</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>http://www.emrebozlak.com/kafka-terminolojisi-ve-mimarisi/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			<dc:creator>emrebozlak@gmail.com (Emre Bozlak)</dc:creator></item>
		<item>
		<title>Health Check servisleri nedir?</title>
		<link>http://www.emrebozlak.com/health-check-servisi-nedir/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=health-check-servisi-nedir</link>
					<comments>http://www.emrebozlak.com/health-check-servisi-nedir/#respond</comments>
		
		
		<pubDate>Fri, 05 Feb 2021 12:24:27 +0000</pubDate>
				<category><![CDATA[Cloud]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[health check]]></category>
		<category><![CDATA[microservice]]></category>
		<category><![CDATA[monitoring]]></category>
		<guid isPermaLink="false">http://www.emrebozlak.com/?p=912</guid>

					<description><![CDATA[<p>Health Check nedir: Health Check servisleri; uygulamanın sağlık durumunun kendisi tarafından ölçülebilmesini ve bunu dışarıyla paylaşmasını sağlayan, uygulamanın iç metriklerini kontrol eden bir servistir. Son yıllarda AWS, Azure gibi Public Cloud firmalarının sunduğu PaaS yapıları üzerinde uygulama barındırmanın yaygınlaşması ve microservislerin günlük operasyonlarımızı daha fazla işgal etmeye başlanmasıyla beraber sıcak bir konu haline gelmiş olsa [&#8230;]</p>
<p>The post <a href="http://www.emrebozlak.com/health-check-servisi-nedir/">Health Check servisleri nedir?</a> first appeared on <a href="http://www.emrebozlak.com">EMRE BOZLAK</a>.</p>
<p>The post <a href="http://www.emrebozlak.com/health-check-servisi-nedir/">Health Check servisleri nedir?</a> appeared first on <a href="http://www.emrebozlak.com">EMRE BOZLAK</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2 class="wp-block-heading">Health Check nedir:</h2>



<p>Health Check servisleri; uygulamanın sağlık durumunun kendisi tarafından ölçülebilmesini ve bunu dışarıyla paylaşmasını sağlayan, uygulamanın iç metriklerini kontrol eden bir servistir. Son yıllarda AWS, Azure gibi Public Cloud firmalarının sunduğu PaaS yapıları üzerinde uygulama barındırmanın yaygınlaşması ve microservislerin günlük operasyonlarımızı daha fazla işgal etmeye başlanmasıyla beraber sıcak bir konu haline gelmiş olsa da aslında uzun zamandır var olan; bir uygulama izleme ve performans ölçme yöntemidir.</p>



<p>Birçok izleme aracından/yönteminden farklı olarak tamamen bizim kendi uygulamamız için kendimizin geliştirdiği ve metriklerini belirlediği bir endpoint/servis olma özelliğini taşımaktadır. Kafanızda biraz daha canlandırmam gerekirse uygulama üzerindeki ki HC endpoint’i çağrıldığında (Örnek <a href="http://uygulalam/health">http://uygulalam/health</a>) uygulamanın düzgün çalıştığını işaret eden bir ifade dönmektedir. Bu ifade kimi zaman basit bir “http 200“olabilirken, karmaşık bir iş süreci çalıştırarak dönen sonucu diğer sistemlerle karşılaştırarak sapma olup olmadığının sonucu olabilir. Buradaki kritik performans ve risk kriterleri tamamen size ve uygulamanızın türüne göre değişebilir.</p>



<span id="more-912"></span>



<h2 class="wp-block-heading">Neden HC servisine ihtiyacım var?</h2>



<p>Birçok çalışma arkadaşımla bu servislerin kullanımı üzerine tartışırken zaten hali hazırda farklı alt yapı, OS ve APM izleme araçlarının kullanıldığını; ekstra çaba harcayarak böyle endpoint yazmanın mantığını sorguluyorlar. Öncelikle HC diğer tüm izleme servislerinden farklı olarak uygulamanın içerisinden bir görüş sunmaktadır, bunun haricinde uygulamanın nasıl çalışması gerektiğini ve iç mantığını en iyi yazılım geliştiricinin kendisi bilmektedir. Bu yüzden kendi yazdığı servis ile uygulama mantığında ki sapmalar, thread leak, deadlock, hatalı konfigürasyonları daha kolay tespit edebilir üstelik uygulamaya her yeni sürüm geçerken HC servisini de buna göre güncelleyerek izlenen parametrelerin güncel kalmasını sağlayabilir. Burada şunun da altını çizmek istiyorum HC diğer izleme araçlarının yerine gecen değil onların tamamlayıcısıdır.</p>



<h2 class="wp-block-heading">Health Checklerin Yapısı</h2>



<p>Health Check servislerinin yapısına baktığımızda bir uygulama (monolitik veya microservice) üzerinde barınan, dışarıdan çağrılabilen ve çağrıldığında anlamlı bir cevap dönebilen bir servis ile sürekli bu servisler üzerinden uygulamaların sağlıklarını kontrol edip gerekli aksiyonları tetikleyen bir koordinatörden oluşmaktadır.</p>



<figure class="wp-block-image size-large"><a href="http://www.emrebozlak.com/wp-content/uploads/2021/02/Blank-diagram.jpeg"><img loading="lazy" decoding="async" width="1024" height="361" src="http://www.emrebozlak.com/wp-content/uploads/2021/02/Blank-diagram-1024x361.jpeg" alt="" class="wp-image-913" srcset="http://www.emrebozlak.com/wp-content/uploads/2021/02/Blank-diagram-1024x361.jpeg 1024w, http://www.emrebozlak.com/wp-content/uploads/2021/02/Blank-diagram-300x106.jpeg 300w, http://www.emrebozlak.com/wp-content/uploads/2021/02/Blank-diagram-768x271.jpeg 768w, http://www.emrebozlak.com/wp-content/uploads/2021/02/Blank-diagram-370x130.jpeg 370w, http://www.emrebozlak.com/wp-content/uploads/2021/02/Blank-diagram-770x271.jpeg 770w, http://www.emrebozlak.com/wp-content/uploads/2021/02/Blank-diagram.jpeg 1350w" sizes="(max-width: 1024px) 100vw, 1024px" /></a><figcaption>HC servis yapısı</figcaption></figure>



<p>Koordinatör; herhangi bir load balancer, Konteyner&nbsp;orkestrasyonu yapabilen K8, Openshift gibi platformalar veya mikroservisler için kullanılan service discovery araçları olabilir (Consul gibi). Koordinatörler Health Check servisinin döndüğü sonuca göre sistemin kararlı olmadığına karar verdiğinde çok farklı aksiyonları tetikleyebilmektedir.</p>



<p>Mesela;</p>



<ul><li>Load balancer http 200 cevabı alamadığında uygulamaya giden trafiği kesip başka bir yere yönlendirebilir</li><li>Openshift üzerinde çalışan bazı POD’ların latencylerinin istenen değerin üzerine çıktığını yakalayıp o servis için container sayısını artırabilir</li><li>Kendi yazdığınız bir koodinatör ile uygulamanın veritabanına erişemediğini yakalarsa uygulama sunucusunu yeniden başlatacak ansible playbook’unu çağırabilir.</li></ul>



<p>Burada alınabilecek aksiyonların türü ve sayısı tamamen size kalmış durumdadır. Koordinatör olarak kullanılan araçların genellikle yetkinlikleri farklı olsa da hemen hemen hepsi aşağıdaki aksiyonları yapabilir.</p>



<ul><li>Uyarı oluşturma</li><li>Trafik yönlendirme/kesme</li><li>Sunucuyu yeniden başlatma</li><li>Yeni sunucu/konteyner kurulmasını başlatma; burada K8, Openshift, cloud foundry gibi ürünler out-of-box bu özelliğe sahipken diğer koordinatör tiplerini farklı api’lar veya araçlarla kombine ederek yapabilirsiniz.</li></ul>



<h2 class="wp-block-heading">Konumlandırma:</h2>



<p>Microservisler, hayatımıza birçok rahatlık getirmesinin yanında yeni riskler ve yönetim zorluklarını da beraberinde getirmektedir. Arka tarafta artık Ops ekibinin kontrolüne ihtiyaç duymadan uygulamalar gerekli durumlarda container/node sayısını artırabiliyor, azaltabiliyor veya bir anda eski sürümleri öldürüp yenilerini servis kesintisine sebep olmadan devreye alabiliyor. Doğal olarak monolitik uygulamaları microservise dönüştürürken birkaç sunucudan onlarca, yüzlerce hatta binlerce container’a bölünmüş olabilir, bu kadar geniş bir havuz içerisinde tek bir microservisin doğru çalışmaması ve bunu doğru zamanda tespit edilememesi çok ciddi sorunlara sebep olmaktadır.</p>



<p>Kullanıcılarınızın bir ödeme sisteminde para transferi yapmaya çalıştığını hayal edin ve sadece bir grup kullanıcı ödeme yapmak istediklerinde hata alıyorlar ve tekrar denediklerinde sorun olmuyor. Tüm süreçte sorunlu adımı bulmak ve bu adım içerisindeki tüm container’ları tek tek kontrol etmek canlı sistemlerde her zaman mümkün olmuyor. Öte yandan container’ların ayak izini küçük tutabilmek için daha geleneksel dünyadan alışkın olduğumuz ajan bazlı izleme araçlarından da kaçınmak istenmektedir.</p>



<p>Health Check endpoint’inin yaratılması ve doğru metriklerin kurgulanması burada çok kritik bir adım olmaktadır. Çok fazla metrik belirlenip veya sürekli endpointe sorgulama yaparak sistem üzerinde de ek yük yaratılmamasına dikkat etmek gerekiyor. Benim önerim şu metriklerin mutlaka takip edilmesi yönündedir;</p>



<ul><li>Servisin bağımlı olduğu API’lara erişip erişemediği; burada karşı tarafın varsa health check servisini çağırıp ona göre kontrolü yapabilir</li><li>Basit OS seviyesinde kontroller; disk doluluğu veya kritik bir path’deki dosyaların büyüklüğü olabilir</li><li>Kritik servislere erişip erişemediği; mesela SQL sunucusuna bağlantı açabiliyor mu? MQ sunucusuna erişebiliyor mu gibi?</li><li>Uygulama üzerinde açılmış threat sayısı; bazen uygulama üzerinde çok fazla veya çok az threat’in açık olması bir anormaliye işaret ediyor olabilir.</li></ul>



<p>Bu 4 tip metrik haricinde her zaman performans veya iş süreçleri üzerinde de metrikler koyabilirsiniz ama burada bahsettiğimiz metrikler uygulamanız ne olursa olsun platform seviyesindeki çoğu hatayı yakalamanızı sağlar.</p>



<p>Bu tip bir endpoint’i sadece microservislerde değil monolitik uygulamalarınızda da kullanabilirsiniz, bu servis sayesinde farklı bir bakış açısı yakalar hem de kök sebebi bulma konusunda ciddi kolaylık sağlanır.</p>



<p>Son olarak mutlaka standart bir JSON çıktısı belirleyip tüm uygulamalarınızda bunu kullanmanızdır, böylelikle bir birine bağımlı uygulamalarda bağlı oldukları uygulamaların hc endpointlerini çağırarak gerekirse kontrolleri yapabilir ve sorun anında ona göre bir aksiyon alabilirler.</p><p>The post <a href="http://www.emrebozlak.com/health-check-servisi-nedir/">Health Check servisleri nedir?</a> first appeared on <a href="http://www.emrebozlak.com">EMRE BOZLAK</a>.</p><p>The post <a href="http://www.emrebozlak.com/health-check-servisi-nedir/">Health Check servisleri nedir?</a> appeared first on <a href="http://www.emrebozlak.com">EMRE BOZLAK</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>http://www.emrebozlak.com/health-check-servisi-nedir/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			<dc:creator>emrebozlak@gmail.com (Emre Bozlak)</dc:creator></item>
		<item>
		<title>BT Operasyon Modeli ve Kurumsal Mimari – Bölüm 2</title>
		<link>http://www.emrebozlak.com/bt-operasyon-modeli-ve-kurumsal-mimari-bolum-2/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=bt-operasyon-modeli-ve-kurumsal-mimari-bolum-2</link>
					<comments>http://www.emrebozlak.com/bt-operasyon-modeli-ve-kurumsal-mimari-bolum-2/#comments</comments>
		
		
		<pubDate>Wed, 20 May 2020 14:55:04 +0000</pubDate>
				<category><![CDATA[Enterprise Architecture]]></category>
		<category><![CDATA[Governance]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[Strategy]]></category>
		<category><![CDATA[dijital dönüşüm]]></category>
		<category><![CDATA[operasyon modeli]]></category>
		<guid isPermaLink="false">http://www.emrebozlak.com/?p=892</guid>

					<description><![CDATA[<p>Bir önceki yazımda operasyon modelinin BT’ler için ne anlama geldiği ve hangi bileşenlerden oluştuğundan bahsetmiştim, bu yazıdaysa bir operasyon modeli nasıl tasarlanır, başlıca adımları nasıldır ve kurumsal mimarinin bu süreç içerisindeki rolü nedir konularından bahsedeceğim. Daha önceki yazıda operasyon modeli bileşenlerini anlatırken Gartner’ın tanımını kullanmıştık, bu yazıda da aynı bileşenler üzerinden devam edeceğim ama süreç [&#8230;]</p>
<p>The post <a href="http://www.emrebozlak.com/bt-operasyon-modeli-ve-kurumsal-mimari-bolum-2/">BT Operasyon Modeli ve Kurumsal Mimari – Bölüm 2</a> first appeared on <a href="http://www.emrebozlak.com">EMRE BOZLAK</a>.</p>
<p>The post <a href="http://www.emrebozlak.com/bt-operasyon-modeli-ve-kurumsal-mimari-bolum-2/">BT Operasyon Modeli ve Kurumsal Mimari – Bölüm 2</a> appeared first on <a href="http://www.emrebozlak.com">EMRE BOZLAK</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Bir önceki <a href="http://www.emrebozlak.com/bt-operasyon-modeli-ve-kurumsal-mimari-bolum-1/" target="_blank" rel="noreferrer noopener">yazımda </a>operasyon modelinin BT’ler için ne anlama geldiği ve hangi bileşenlerden oluştuğundan bahsetmiştim, bu yazıdaysa bir operasyon modeli nasıl tasarlanır, başlıca adımları nasıldır ve kurumsal mimarinin bu süreç içerisindeki rolü nedir konularından bahsedeceğim. Daha önceki yazıda operasyon modeli bileşenlerini anlatırken Gartner’ın tanımını kullanmıştık, bu yazıda da aynı bileşenler üzerinden devam edeceğim ama süreç olarak kendi yöntemimden bahsediyor olacağım. Sizde kendi organizasyonunuz ve içinde bulunduğunuz ortama göre bu yöntemin bir kısmını kullanabilir veya tamamen kendinize uygun bir şekilde devam edebilirsiniz. Operasyon modelini bileşenlere ayırıp bu bileşenler üzerinden tasarımı yapmak bize hem esneklik sağlamaktadır hem de her seferinde tüm yapıyı düzenlemek yerine değişime uygun parçalara dokunarak değişimle beraber tüm modeli parça parça değiştirmek daha gerçekçi bir yaklaşım olacaktır.</p>



<span id="more-892"></span>



<h4 class="wp-block-heading"><strong>Operasyon Model tasarımı:</strong></h4>



<p>Yeni bir şirkete BT departmanının yöneticisi olarak katıldınız ve üst yönetimle yaptığınız ilk toplantıda sizden ve BT’den önümüzdeki yıl için beklentilerini aşağıdaki gibi sıraladılar.</p>



<ul><li>Şirket ciddi bir dönüşüm geçirmektedir; müşteri ihtiyaçlarına ve piyasaya daha hızlı cevap verebilmek için portföyündeki ana ürün ailelerine göre iş birimlerini tekrardan organize etmiş ve BT’den de bunu destekleyecek bir organizasyon beklenmektedir.</li><li>İş modelinde köklü değişime gitme hedefleri bulunmakta ve bunun sonucu olarak IoT, Mobil ve VR/AR teknolojilerini kullanarak yeni ürünler/servisler çıkartmak istiyorlar. BT’nin onları bu konuda nasıl ve ne kadar destekleyebileceğini bilmek istiyorlar.</li><li>Öteki yandan şirketin CFO’su bir anda artan BT bütçesine anlam verememekte ve harcanan paraya karşılık şirketin gerçekten ne kadarlık bir kazancı olduğunu ölçememekten şikayetçi. Bu sebepten dolayı ürün bazında BT’nin katkısını ve maliyetlerini görebilmeyi mümkünse bunu ürünün ciroya olan katkısına göre yorumlamak istediğinden bahsediyor.</li><li>COO ise BT’nin bir anda fazla büyüdüğünden şikayetçi ve mümkün olduğunca çalışan sayısını limitlemek istiyor; siz bunun operasyonel olarak sorunları olacağını söylesenize rağmen bu konuda çok ısrarcı olduğundan geri adım atıyorsunuz.</li></ul>



<p>Operasyon model tasarımına nasıl başlanacağına dair net bir yönlendirme olmamakla beraber ben genelde organizasyon, çalışma yöntemleri ve karar hakkı bileşenleriyle başlayıp daha sonra diğer bileşenlerle devam etmeyi tercih ediyorum. Bunun en büyük sebebi en başta ideal organizasyonu ve nasıl çalışması gerektiğini gördükten sonra aşağıya doğru diğer bileşenleri bunlara bağla noktasının daha kolay olduğunu düşünmem. Yukarıdaki maddeleri birbirleriyle çelişen noktaları olsa da aslında dünya genelinde bir gerçeği yansıtmakta.</p>



<p>İlk önce yeni organizasyon şemasına bakarak kaç adet ürün grubu olduğunu, her grup için hangi BT yetkinliklerine ihtiyacımız olduğunu tespit etmeliyiz. Misal bir ürün grubu e-ticarete yoğunlaşacaksa bu grubu desteklemesi beklenen BT ekibinin bu tür bir dijital kanal geliştirme ve destekleme konusunda yetkinlikleri ne durumda ve ne tür bir yetkinlik ağacına ihtiyaçları bulunmaktadır. Bu analizin sonucunda şu çıktıları elde edeceğiz;</p>



<ul><li>Mevcut insan kapasitem bu şekilde bir organizasyonu desteklemeye uygun mu?</li><li>Ne tip yeni yetenekler ve teknolojilere ihtiyaç duyacağım.</li><li>BT kabiliyetlerini (Mobil geliştirme, Alt yapı, yönetişim gibi) bu yeni organizasyonda nasıl dağıtmam gerekli. Hangi servisleri uzmanlık merkezi (CoE) olarak tutarken hangilerini ürün grupları içerisinde eritmem lazım.</li></ul>



<p>Organizasyon yapısını çıkardıktan sonra yetenek, konum ile partnerlik ve dış kaynak kullanımı bileşenlerinde karar verebilecek duruma gelebilirsiniz.</p>



<p>Örnek; bir tekstil fabrikası giyilebilir elektronik konusunda ürünler çıkartmak istiyor ve bu tür ürünleri geliştirmesi için bir ürün grubu oluşturuyor ve BT olarak sizin de bu ürün grubu içerisine gerekli yetkinleri koyabilmenizi bekliyorlar. Analizi yaptığınızda proje yöneticisi, yazılım geliştiricileri ve analitik uzmanlarını ürün grubuna yerleştirebilirken, kritik olan IoT konusunda bir yetkinliğinizin olmadığınızı görebilirsiniz. IoT ile ilgili birçok konu için (sensör tasarımı, devre tasarımı gibi) içerde bir yetkinlik oluşturmak yerine partner arayarak organizasyonu bu şekilde tanımlayabilirsiniz veya finans sektöründesiniz ve tüm ürünlerinizi mobil/web üzerinden sunmaya karar verdiniz ve sizin için en önemli konu değişen son kullanıcı deneyimine hızla uyum sağlayabilmek. Bu durumda analizi yaptığınızda organizasyonda UI/UX yeteneğini katmanız hatta stratejik önemi olacağından da dolayı iç kaynak olarak alınması gerekeceğini daha net görebileceksiniz.</p>



<p>Artık BT organizasyonunun neye benzemesi gerektiğini ve mevcut durumda hangi yetkinliklerin/yeteneklerin eksik olduğunu görebilmekteyiz. Bir sonraki adımdaysa eksik yetkinlik ve yetenekleri nasıl temin edeceğinize karar vermemiz gerekmektedir. Burada sorulması gereken kritik sorular, hangi yetkinlikleri içeride tutmalıyım(insource) ve hangi yetkinlikleri dışardan temin etmeliyim. Burada unutulmaması gereken önemli bir noktaysa yetkinliğe sadece insan kaynağı olarak bakmamak aynı zamanda teknoloji partneri olarak da bakmamız gerektiğidir. Mesela veri merkezi hizmetini Azure/Aws gibi bir bulut servis sağlayıcısı üzerinden almak onları teknoloji konusunda stratejik partneriniz halini getirirken fabrikanızın enerji kullanımını optimize etmek için geliştirmek istediğimiz ML algoritmasını, kendi ekipleriniz yerine dışarıda bu konuda uzman bir ekibe geliştirme gibi çeşitli perspektiflerden de bakabilmeliyiz.</p>



<p>İnsan kaynağı üzerine söyleyebileceğim en önemli noktalardan biriyse mümkün olduğu kadar yeteneği tek bir insan olarak kurumunuza katmamanız yönünde olacaktır. Bu durum sürdürülebilir olmaktan uzak ve sorunlara açıktır; kişinin organizasyondan ayrılması durumunda birçok proje ve süreç ciddi olarak sekteye uğrayacaktır. Benim önerim eğer kadro veya bütçe sıkıntısı sebebiyle tek kişiyle devam etmeniz gerekliyse bu kişiyi destekleyecek bir partner bulmanız veya mutlaka kişinin yetkinliğinin içeride başka kişilere de dağılabilmesi için eğitim programlarınızı da operasyon modelinize eklemenizin gerekliliğidir.</p>



<p>Hatırlarsanız örneğimizde COO sizden kişi sayısını mümkün olduğunca sınırlamanızı istemişti; bu tür bir yetkinlik, yetenek ve partner haritası çıkarttıktan sonra kritik yeteneklere göre insan gücü anlamında yalın bir organizasyon kurabilir. Sizin için en kritik yetenek ve bilgileri içeride tutarken partnerlerinize diğer operasyonlarınızı yaptırabilirsiniz.</p>



<p>Artık yapımızın neye benzeyeceğini, kimlerle çalışacağımızı ve hangi BT kabiliyetlerine sahip olacağımızdan eminiz. Bir sonra ki adımda nasıl çalışmamız gerektiğine ve karar mekanizmalarının kurulmasına sıra geldi. Zaten organizasyon haritasına(iş ve BT) ve şirketin stratejik hedeflerine baktığımız zaman iş birimleriyle nasıl çalışmamız gerektiğine göre bir temeli rahatlıkla görebilirsiniz.<br>Şirketin ürün bazlı bir yapılanmaya gittiğinden bahsetmiştik; bunun BT üzerinde ki en büyük etkisi bir birinden bağımsız hala gelen grupların ürünleriyle ilgili daha sık güncelleme/yenilik talebi olacak ve daha agresif şekilde ürünlerini büyütmeye yönelebileceklerdir. Bu duruma ayak uydurabilmek için öncelikle proje/talep kabul ve backlog’unuza alma süreçlerinizle başlayıp iş birimleriyle projeleri nasıl yöneteceğiniz(Scrum, XP, gibi) temellerde anlaştığınız noktada çalışma şeklinin yarısını tamamlamış olacaksınız. Öteki yarısıysa fikirden proje/talep haline gelmiş uygulamaların nasıl geliştirileceği, daha alt yapısal ve güvenlik gibi görece statik sistemlerin nasıl yönetileceği gibi konulara karar verilmesidir.</p>



<p>Örneğimizden devam edersek; iş birimlerinin yeni yapısına en iyi şekilde Çevik (Agile) çalışma yöntemleriyle cevap verebileceğinizi düşünüp iç tarafta uygulama geliştirme döngünüzü sprintler halinde yönetmek mantıklı gözükmekte, ama bildiğiniz gibi BT bir birine bağlı bir sürü küçük hücreden oluşmaktadır, geliştirme döngünüz otomatik olarak daha esnek ve hızlı bir canlıya alma süreci ihtiyacı doğuracaktır. Bunu destekleyebilmesi için değişiklik süreçlerimizin yeniden yazılması ve hızlı sürüm çıkartmayı destekleyecek CI/CD yapılarının alt yapıda da kurulması gerekecektir. Tüm bunların üzerinde de bilgi güvenliğinin engelleyen, durduran ve yasaklayan metotlardan çıkıp; yol gösteren, kural koyan ve denetleyen bir yapıya dönüşmesi gerekecektir. Çalışma metotlarımızı planlarken yapılan en büyük hatalardan biride aslında budur, genelde sadece iş birimiyle veya projeler üzerine çalışan ekiplerin çalışma yöntemlerini değiştirirken onun destek aldığı alt katmanlara çok dokunulmamasıdır. Unutulmamalı ki en yavaş, katı ve kapalı ekibimiz kadar hızlanabiliriz.</p>



<p>Şu ana kadar yaptığımız planlama sonucunda çalışan bir organizasyon oluşturmayı başardık, talepler gelmeye başladı ve ekipler bunları hedeflenen zaman aralıklarında geliştirip hızlı bir şekilde sürümler çıkmaya başladılar. Peki, BT’yi de etkileyen birçok kararı kimler nasıl almalı, bunu konuyu hala tam olarak netleştirmedik.</p>



<p>Mesela ürünle ilgili bir geliştirme talebi geldi ama bunun için BT mimarisinde ciddi bir değişiklik gerekiyor, bunun onayını kim vermelidir? Ürünlerin ne zaman yeni sürümünün çıkacağına veya hangi taleplerin ne koşullarda kabul edilmesi gerektiğine karar verilebilmesi gerekiyor. Kararlar hakkında örnekler çoğaltılabilir, burada sınırları net olarak çizmek çok zor ve gri bölgeler çok fazla. Tepeden inme birçok sert kuralın uzun vadede işe yaramadığı sonuç itibariyle insanlar bir şekilde bu kuralların çevresinden dolanarak iş yapmaya başlıyorlar. Aksi durumda çok genel geçer bir yönerge çizilirse de bu sefer BT mimarisini, projeleri ve maliyetleri yönetmek imkânsız duruma gelebiliyor. &nbsp;</p>



<p>Eğer en başında doğru bir BT kabiliyet (capability) haritası çıkartabilirsek mevcut durumda ve ileride ihtiyaç duyabileceğiniz birçok yetkinlik konusunda bir fikriniz oluşmuş olmalı, aynı zamanda insan kaynağı olarak ya bünyenizde ya da partnerleriniz üzerinden yetkinliğinizi doğru şekilde konumlandırdıysanız önceden iş birimlerinden gelecek her türlü teknik ihtiyaca cevap verebilir durumda olacağınız için her türlü mimari karar, teknoloji partnerinin seçimi ve teknik ürün seçimi konusunda önceden kural setlerini belirleyebilir veya onları doğru kanallara yönlendirebilirsiniz. Bunu anlatmamın sebebi eğer önceden bunları belirlemezseniz iş birimi bu konuda ki boşluğu kendisi doldurarak bir karar verecektir, benim önerdiğim yöntemle çalışmanızın avantajı önceden belli temellerde onlarla anlaşabilir ve onlara da vakit kaybettirmeden tüm teknik tarafta kararların sahibi olabilirsiniz.</p>



<p>Ürünle ilgili her türlü UI/UX, yeni sürüm sıklığı ve neleri geliştirmeye dâhil edilmesi gerektiği gibi konularda yol gösterici olabilir ama asla karar merkezi olamaya çalışmanızı önermem. İş birimine hayır demek yerine onlara seçenek sunan ama onlarında bizim teknik kararlarımıza aykırı ilerlememeleri için karar mekanizmasını bu şekilde kurmanızı öneririm.</p>



<p>Son olarak Finansalların ve performansın nasıl yönetilmesi konusuna değineceğim. Hatırlarsanız CFO BT’nin artan maliyetlerine bir türlü anlam veremediğini söylemişti. Gerçekte BT’nin bir maliyeti bulunmamaktadır, her iş birimi talebinin, projenin veya iş için eklenen sistemin bir maliyeti vardır. Doğal olarak finansal bir model oluştururken kataloğumuzda olan tüm servislerin bir parasal değeri olmalı ve bu değer karşılığında iş birimlerinin nasıl bir parasal değer yarattığının karşılaştırılabiliyor olması önemlidir. Mesela sizden bir BI raporu oluşturmanız istendi bu rapor için gereken iş gücü ve lisans maliyetinin 300$ olduğunu varsayalım ama raporu isteyen arkadaş bunu 1 gün ekstradan oluşturup kendisi oluştursa şirkete maliyeti 100$; sırf talebi yapan kişi daha az çalışacak diye bu raporu oluşturmalı mısınız? Bunu gösterebilmeniz ve anlatabilmeniz önemli. Başka bir örnekse mevcut e-ticaret sitenize gerçek zamanlı satış modülü eklenmesi istendi ve siz bunun için ciddi bir yatırımla beraber geliştirme süresi harcandınız. Yılsonu bilançosunda e-ticaret sitesinin ciroya oranla karlılık oranının düştüğü ve buna en büyük sebebin BT maliyeti olduğu düşünüldüğünden dolayı sizin üzerinizde maliyetleri azaltmanıza yönelik baskı hissediyorsunuz. Raporlara baktığınızdaysa talep edilen yeni özellik için harcanan maliyete karşılık iş birimi hedeflenen başarıyı elde edememiş olduğunu görüyorsunuz, bu sayede hem sonucun bu şekilde olmasının sebebinin BT olmadığını kanıtlıyor hem de üzerinizde ki maliyet baskısını bir nebze azaltabilme imkânınız oluşabilir.</p>



<p>Finansal model aslında BT’nin bir savunma mekanizması değildir, iş birimlerinin BT harcamalarını en yüksek fayda sağlayacak noktaya kaydırabilecekleri bir araçtır. Bu sebepten dolayı basit gözüken ama etkisinin gayet yüksek olduğu, her servis için charge-back mekanizmasının oluşturulması ve talep bazında finansal bir değere bağlayabilmek BT olgunluğunuzu çok ilerletmektedir.</p>



<p>Son bileşenimizse BT’nin performansını nasıl ölçmemiz gerektiği üzerinedir; şu ana kadar yaptığınız her şey aslında performans ölçümünü destekleyen aksiyonlardı. Her çalışma yönteminin kendine has bir performans ölçüm yöntemini kullanabilir, finansal gözlükle bakıp aslında t kaynak ile ne kadarlık fayda yarattığınızı ölçebilir veya iş birimlerinin taleplerine verdiğiniz tepki süresi arasında ki süreye göre(sürüm sıklığı olabilir) birçok işe dokunan KPI seçebilirsiniz. Ben genelde mimari olgunluk yani standartlara ne kadar uyuluyor, sürdürülebilir ve genişleyebilir sistemlerin sağlığı için bir KPI grubu, süreçler(Cobit olabilir) bir KPI grubu ve en önemli yaratılan değer için bir KPI grubu öneriyorum.</p>



<p>İlk ikisi bizim kendimizi iyileştirmemiz için önemliyken son grup iş birimlerinin bizi ölçebilmesi içindir bu KPI’ların finansal ve değer(geliştirilen yazılım sayısı olabilir) cinsinden olması gereklidir.</p>



<p>Araçlar ve Yer konusundaysa benim tercih ettiğim bir yaklaşım bulunmamakta, genelde yukarıda ki bileşenlere karar verdikten sonra bir şekilde doğal süreci içerisinde çözülmektedirler. Yine de operasyonunuzu yönetirken hangi araçları kullanacağınızın net bir şekilde belirlenmesi ve yaygınlaştırılması gereklidir.</p>



<h4 class="wp-block-heading">Kurumsal Mimari ile Operasyon Modeli arasında ki ilişki:</h4>



<p>Bu yazı serisinin asıl yazılma ve en kısa kısmına geldik <img src="https://s.w.org/images/core/emoji/14.0.0/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Kurumsal Mimari yeni operasyon modelini (Target operating model) oluşturmada hem destekleyici bir öğe hem de girdi olarak kullanılabilir.</p>



<p>Kurumsal mimari, operasyon modeli özelinde size iki önemli bilgi sağlar öncelikle kurumunuzun şu andaki iş kabiliyetlerinden (Business capability),süreçler, veri ve teknoloji alt yapısına kuş bakışı tek ve yalın bir görünüm sunar. Bu görünüm mevcut durumu anlamanız, hangi iş kabiliyetlerine ne seviyede destek verebildiğinizi ve sistemleriniz arasında ki ilişkiyi görmenizi sağlar. Bu sayede mevcut operasyon modelimizde neleri geliştirmemiz gerektiğini görebilirsiniz. Gelecek mimarisi ile de aslında BT’nin değişen iş stratejisi ve ona bağlı işin operasyon modeliyle beraber ne tür kabiliyet, yetkinlik ve yeteneklere ihtiyaç duyacağını ön görüp. Mimari ve teknoloji standartlarını belirleyerek; bunun BT’nin mevcut yapısına nasıl bir etkisi olacağının analizini yapabiliriz. Bu çalışma özellikle Partner, Karar mekanizması, Araç, Yetenek ve Performans konusundaki modelin oluşmasında size ciddi bir girdi sağlar.</p>



<p>Yukarda anlattığım yaklaşım kurumsal mimarinin klasik yaklaşımıdır. Daha modern yaklaşımsa BT operasyon modelinin işin operasyon modeli tarafından tetiklenerek değişmesi yerine kurumsal mimarların bir iç danışman gibi iş birimlerine teknolojiyle nasıl fark yaratabileceklerini göstererek, stratejilerini oluşturmada onlara destek olarak, önceden doğru öngörülerle BT’ye yeni servisler katarak BT’nin sunduğu değerin işin operasyon modelini değiştirmesini sağlamaktır. Peki kurumsal mimarlar bunu nasıl yapabilir.</p>



<p>Operasyon modelinin hem BT hem de iş için ana girdisinin strateji olduğundan bahsetmiştik, genelde üst seviye strateji planlaması belli çerçeveler tarafından yapılır ve genelde BT stratejinin oluşturulurken her zaman bir parçası olmamaktadır. Şirket stratejisinin oluşturulması veya sadece uygulaması tarafında olsanız da proaktif davranarak tüm şirketin operasyon modelini etkilemeniz mümkündür.</p>



<p>Genelde şirketin stratejileri sayfalarca süren dokümanlar yerine birkaç ana maddeden oluşan hatta tek sayfaya sığdırılabilen sadece yönümüzü belirlemeye yardımcı olan hedeflerden oluşur. Mesela bir şirketin 2020 stratejisi sadece aşağıdaki maddelerden oluşabilir.</p>



<ul><li>Bu yıl maliyetleri %10 azaltacağız</li><li>Mevcut müşterilerde derinleşmek ve yeni satış kanalları yaratmak</li><li>Her zaman her yerden müşteriler tarafından erişilebilir servisler sunmak</li></ul>



<p>Şimdi iki farklı senaryo inceleyelim. Birinci senaryoda kurumsal mimari daha geleneksel bir pozisyon almakta sadece BT içerisiyle sınırlı kalmış ve iş birimlerinin bu stratejiyi nasıl uygulayacağına dair bir oyun planı hazırlamamış/desteklememiş olsun.</p>



<p>Bu durumda iş birimleri yeni operasyon planlarını yaparken masraf merkezi olarak görülen BT üzerinde maliyet baskısında bulunacaklardır, bunun etkisi BT için daha az insan ve kaynakla aynı işleri düşen bir kalite ile yapmaya zorlanması demektir. BT, iş birimlerine yeteri kadar destek verememeye başlayacak ve gittikçe değerini kaybedeceği için bütçesi kısılmaya başlayacak ve sonsuz bir döngüye girecek.</p>



<p>Öbür taraftan iş birimlerinin yeni kanalları yaratırken dış tedarikçilere mobil/web/e-ticaret veya yeni nesil Iot, AR/VR gibi çözümleri geliştirip entegrasyon noktasında hatta bazen onda bile BT’ye gelinmeden devreye alınabilir. Özetle ne mimari ne de tedarikçi seçiminde asla BT’ye danışılmaması durumu oluşabilir. Bunun sürdürülebilirlik, güvenlik ve ileri yönelik büyümede nasıl problemler yarattığını anlatmaya başlasam sanırım ayrı birkaç yazı dizisi çıkabilir.</p>



<p>Müşterilerin veya çalışanların her zaman her yerden şirket kaynaklarına erişebilmesi bence harika bir yaklaşım ama genelde pratikte bu iki türlü çalışmakta. Ya işin baskısı sebebiyle birçok kritik servis dış dünyaya yeteri kadar kontrolü bir şekilde açılmaz ve ciddi bir bilgi güvenliği riski yaratır veya BT bu taleplere “hayır” demek zorunda kalırsa da, BT şirketin sevilmeyen iş yapılmasını engelleyen birimi pozisyonuna düşmüş olur. Başka bir problemse birçok servis aslında arka tarafta bulunan “system of record” katmanına bağımlı olarak çalışmaktadır ve genelde “system of record” katmanı en yeni teknolojilerden oluşmaz hatta mümkünse pek dokunmakta istemeyiz. Bu katmanlar her zaman modern entegrasyonları desteklemeyebileceğinden dolayı ya veriyi bir şekilde mobil/web servislerinin kullanabilmesi kopyalıyor veya teknik borcumuzu(technical debt) artıracak çözümlere gidiyoruz. Her iki yaklaşımının da kendine göre sorunları bulunmakta ve mümkün olduğunca kaçınılması gereken yaklaşımlardır.</p>



<p>Peki, bizim rolümüz burada ne olmalıdır? Hayır demek veya bu talepleri engellemek hem iş açısından hem de BT’nin varlık amacı açısından doğru bir yaklaşım değildir. BT mimarisinin, yapısının ve hedeflerininse dış etmenler tarafından bir tarafa doğru savrulması da aslında kendi içinde kısır bir döngüde olan, sınırlı değer yaratabilen, sürekli yangın söndürmeye odaklı organizasyona dönmemize sebep olmaktadır.</p>



<p>Kurumsal mimari tam bu noktada bizim reaktif bir yaklaşımdan çıkıp proaktif bir yaklaşıma geçmemizi sağlayarak doğru bir BT konumlandırması yapmamıza hatta iş birimlerinin çalışma şeklini etkilememizi sağlar.</p>



<p>Bir kurumsal mimarın oyun planı BT’nin şirket içindeki algısı ve pozisyonlamasına göre değişmekle beraber temel yaklaşımları aynıdır. Kurumsal mimarinin BT fonksiyonları haricinde ekosistemi tarayarak şirkete değer yaratacak teknoloji ve partnerlik fırsatlarını bulma, iyi uygulamaları şirket içine tanıtma, mevcut teknolojilerin/yöntemlerin iş birimlerine nasıl değer katabileceğine dair şirket içi danışmanlık faaliyetlerini yürütme gibi aksiyonlardan oluşabilir.</p>



<p>Mesela yukarıdaki strateji örneğine bu gözle bakıp bunu operasyon modelimize bağlayalım. İlk hedefimiz kurumsal mimari olarak şirketin maliyetlerini azaltmaksa klasik portföy rasyonelleşmesinin ve tedarikçi optimizasyonun haricinde iş birimlerinin kendi dijitalleşmesini sağlayacak servisler sunmakla başlayabiliriz, örnek vermek gerekirse son zamanlarda sıkça konuştuğumuz RPA’lerin devreye alınarak iş gücünden kazanç veya BPM servislerinin daha iyi kullanılarak şirkete kazandırabileceğimiz hızın genel giderlere etkisi olacaktır. Başka bir yaklaşımsa iş birimlerinin en çok sıkıntı yaşadığı noktalara odaklanmaktır(Pain points); mesela üretim yapan bir şirketteyseniz depo alanının optimize edilmesi, forkliftlerin minimum mesafede maksimum iş yapabilmesi veya enerji kaybının azaltılması için gerekli çözümleri bulunması, iyi uygulamaların şirketi getirilmesi önem kazanacaktır. Bu problemlerin çoğu artık bilişim teknolojileri sayesinde dijital platformlarda çözülebilir ve iş birimlerinin kendi çözümünü bulmasından önce proaktif olarak onlara alternatifleri gösterip beraber bir çözümün oluşturulmasına liderlik edilebilir.</p>



<p>Benzer yaklaşım diğer maddeler içinde geçerlidir, strateji maddelerine bakıldığında 3 noktayı çok iyi görebilmeniz gereklidir.</p>



<ul><li>Şirket stratejisinin doğal bir sonucu olarak birçok yeni uygulama ve dış bağlantıya ihtiyaç duyacağımızı çok rahat ön görebiliriz. Bu durumu yönetmek ve esnekliği sağlamak için bir API katmanı oluşturulması, içerde geliştirilen uygulamaların ve tedarikçilerin geliştirecekleri uygulamaları bu katman üzerinden diğer katmanlarla iletişim kurmasını sağlayabiliriz.<br>API katmanı sayesinde hem sürekli değişen uygulama ihtiyaçlarına hızla cevap verebilir, dış firmalarla entegrasyonunuz kolaylaşırken bir yandan da en değerli sistemlerimiz olan “system of record” katmanına olan etkiyi ciddi anlamda azaltabiliyoruz.</li></ul>



<ul><li>Stratejiye göre BT’nin yeni satış kanallarını destekleyecek kabiliyetlere sahip olması gerekmektedir, öncelikle genel bir kapsamda ekosistem ve endüstride ki örneklere bakıp ne tür kabiliyetlere ihtiyaç olunması gerektiğinin tespiti. Bu kabiliyetlerde ne durumda olduğumuzun analizini ve nasıl bir şekilde bu kabiliyetleri iş birimlerine sunacağınızın planlamasının daha iş birimleri tarafından projeler gelmeden önce başlanması gerekmektedir. Özellikle bu kabiliyetlerin belirlenmesi iş birimlerini doğru yönlendirmemizi sağlayacak doğru partnerler ile onları aynı masaya oturtabilir ve BT alt yapımızın istenmeyen bir noktaya sürüklenmesinin önüne geçilebilir.</li></ul>



<ul><li>Mevcut müşteriyi daha iyi anlamak için farklı iş birimleri ve partnerlerinizde bulunan verinin konsolide edilmesi, analizi ve doğru zamanda doğruluğundan emin sonuçların üretilmesi gerekecektir. Veri yapısının değişmesi hem iş birimlerinin tepki süresini değiştirecek hem de şirketin veri odaklı bir yapıya doğru evirilmesini sağlayacaktır. Maalesef bu yazıldığı kadar kolay bir senaryo değildir, etkili bir analitik katmanının oluşturulabilmesi için öncelikle veri stratejisinin olması, veri kataloğu, veri sözlüğü, metadata/refdata gibi kavramların çalışır duruma getirilmesi gereklidir. Farklı sistemler arasında ki verinin entegrasyonundan sonra ancak bu tür bir yapı geliştirilebilir. Eğer bu tür bir iş stratejisi önünüze geldiğinizde yukardaki konularda hazırlıklı değilseniz hedefinizi tutturmanızda mümkün olmayacaktır. Bu sebepten dolayı iyi bir kurumsal mimarın iş ve teknolojideki eğilimi sürekli takip edip, hem iş birimlerini bu konuda eğitilmesine destek olmalı hem de teknik alt yapıyı sunmak için gerekli yol haritalarını yaratmalıdır.</li></ul>



<p>Bu noktada hala şu soruyu sorabilirsiniz; kurumsal mimari hakkında konuştuklarımızın operasyon modeliyle ilişkisi nedir diye? Operasyon modeli bir değerin nasıl oluşturulacağının ve hedefe varmak için gerekli hayatı düzenler; Kurumsal mimarların hedefleri, iş birimlerinin isteklerini ve içlerinde bulundukları politik ortamı iyi okuyarak iş birimlerinin çalışma şekillini nasıl değiştirebileceğine odaklanması, BT’nin sürekli rekabetçi kalabilmesi için değişimini planlaması gerekmektedir.</p>



<p>Doğal olarak bu yaklaşım hem BT’nin pozisyonlanması hem de çalışma şeklini değiştirirken, BT’den iş birimlerine doğru değişen değer önerisi ve yeni servislerde iş birimlerini değişime doğru itecektir.</p>



<p>Klasik BT ile sınırlı kalmış kurumsal mimari tamamen ölmüş bunun yerine değer odaklı, değişimi kontrol eden değil tam tersine aşağıdan yukarı doğru tetikleyen bir kurumsal mimari yerini almıştır.</p>



<p>Okuduğunuz için teşekkür ederim.</p><p>The post <a href="http://www.emrebozlak.com/bt-operasyon-modeli-ve-kurumsal-mimari-bolum-2/">BT Operasyon Modeli ve Kurumsal Mimari – Bölüm 2</a> first appeared on <a href="http://www.emrebozlak.com">EMRE BOZLAK</a>.</p><p>The post <a href="http://www.emrebozlak.com/bt-operasyon-modeli-ve-kurumsal-mimari-bolum-2/">BT Operasyon Modeli ve Kurumsal Mimari – Bölüm 2</a> appeared first on <a href="http://www.emrebozlak.com">EMRE BOZLAK</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>http://www.emrebozlak.com/bt-operasyon-modeli-ve-kurumsal-mimari-bolum-2/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			<dc:creator>emrebozlak@gmail.com (Emre Bozlak)</dc:creator></item>
		<item>
		<title>BT Operasyon Modeli ve Kurumsal Mimari – Bölüm 1</title>
		<link>http://www.emrebozlak.com/bt-operasyon-modeli-ve-kurumsal-mimari-bolum-1/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=bt-operasyon-modeli-ve-kurumsal-mimari-bolum-1</link>
					<comments>http://www.emrebozlak.com/bt-operasyon-modeli-ve-kurumsal-mimari-bolum-1/#comments</comments>
		
		
		<pubDate>Wed, 20 May 2020 14:53:52 +0000</pubDate>
				<category><![CDATA[Enterprise Architecture]]></category>
		<category><![CDATA[Governance]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[Strategy]]></category>
		<category><![CDATA[dijital dönüşüm]]></category>
		<category><![CDATA[operasyon modeli]]></category>
		<guid isPermaLink="false">http://www.emrebozlak.com/?p=881</guid>

					<description><![CDATA[<p>Bu yazı dizisinde bir BT için operasyon modeli nedir? Nasıl kurgulanmalıdır ve kurumsal mimarın görevi operasyon modelinin tasarımı aşamasında neler olmalıdır konularına değineceğim. Birçok şirket ve organizasyon hem teknolojinin hem de rekabetin gittikçe sertleşmesi sebebiyle, konfor alanlarından çıkıp yeni servisleri sunmakta ve iş modellerinde köklü değişikliklere gitmektedirler. Bu değişime paralel bir şekilde, şirketlerin BT organizasyonları [&#8230;]</p>
<p>The post <a href="http://www.emrebozlak.com/bt-operasyon-modeli-ve-kurumsal-mimari-bolum-1/">BT Operasyon Modeli ve Kurumsal Mimari – Bölüm 1</a> first appeared on <a href="http://www.emrebozlak.com">EMRE BOZLAK</a>.</p>
<p>The post <a href="http://www.emrebozlak.com/bt-operasyon-modeli-ve-kurumsal-mimari-bolum-1/">BT Operasyon Modeli ve Kurumsal Mimari &#8211; Bölüm 1</a> appeared first on <a href="http://www.emrebozlak.com">EMRE BOZLAK</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Bu yazı dizisinde bir BT için operasyon modeli nedir? Nasıl kurgulanmalıdır ve kurumsal mimarın görevi operasyon modelinin tasarımı aşamasında neler olmalıdır konularına değineceğim.</p>



<p>Birçok şirket ve organizasyon hem teknolojinin hem de rekabetin gittikçe sertleşmesi sebebiyle, konfor alanlarından çıkıp yeni servisleri sunmakta ve iş modellerinde köklü değişikliklere gitmektedirler. Bu değişime paralel bir şekilde, şirketlerin BT organizasyonları da şirket hedeflerine varması için en uygun şekilde organize olmalı, şirket içinde doğru şekilde konumlandırılmalı ve servislerini tam zamanında ihtiyaç duyulan değere göre sunmalıdır.</p>



<p>Bu sebeplerden dolayı her BT organizasyonun şirket hedeflerine göre yaşayan, sürekli değişim gösteren ve en önemlisi anlaşılır bir şekilde kurgulanmış operasyon modeli olmalıdır. Genelde BT’ler operasyon modelini oluşturan bileşenleri içgüdüsel olarak veya zorunluluktan dolayı bir şekilde tanımlamaktadırlar ama bu sürecin planlanmasından hayata alınmasına kadar geçen evreleri bir disiplin çerçevesinde yürütmemektedirler.<br></p>



<span id="more-881"></span>



<h4 class="wp-block-heading"><strong>Operasyon Modeli Nedir:</strong></h4>



<p>Operasyon modeli adından da anlaşıldığı üzere bir organizasyonun değer yaratmak için neler yaptığı ve neleri kullandığını gösteren bir modeldir. Aşağıdaki şekilde de inceleyeceğiniz üzere, Operasyon Modeli, stratejimiz ile işleri nasıl hallettiğimiz yani gerçek hayat arasındaki köprüdür ve stratejinin belirlediği aksiyonların nasıl yürütüleceğini belirlemede kullandığımız araçlardan biridir.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="608" height="411" src="http://www.emrebozlak.com/wp-content/uploads/2020/05/Adsız.png" alt="Metin Kutusu: Operasyon Modelinin diğer elementlerle ilişkisi, Ernst &amp; Young 2016" class="wp-image-883" srcset="http://www.emrebozlak.com/wp-content/uploads/2020/05/Adsız.png 608w, http://www.emrebozlak.com/wp-content/uploads/2020/05/Adsız-300x203.png 300w, http://www.emrebozlak.com/wp-content/uploads/2020/05/Adsız-370x250.png 370w" sizes="(max-width: 608px) 100vw, 608px" /><figcaption><br><br>Operasyon Modelinin diğer elementlerle ilişkisi, Ernst &amp; Young 2016</figcaption></figure>



<p>Maalesef, günümüzde birçok şirketin BT organizasyonları yeni teknoloji ve servisleri devreye alırken veya organizasyon yapılarında köklü değişikliklere gidip yeni rolleri eklerken çalışma şekillerini doğru şekilde değiştirmedikleri veya ihtiyaç duyulduğu anda gerekli kabiliyetlere sahip olamadıkları için iş birimlerine hedeflenen katkıyı sağlayamıyor, değer üreten bir birim olarak kendini konumlandıramıyor.</p>



<h4 class="wp-block-heading"><strong>BT Operasyon Modelimi neden değiştirmeliyim?</strong></h4>



<p><br>Dijitalleşmenin getirdiği yeni BT kabiliyetlerinin (IT Capability) nasıl kazanılması gerektiği konusu, BT ve operasyonel teknolojilerin artık hiç olmadığı kadar iç içe geçmesi, çevik ve çoklu disiplinlere sahip organizasyonlara doğru everilmemiz sebebiyle klasik operasyon modelleri artık sürdürülebilir olmaktan çıkmıştır. Artık kontrolden çok karar vermeyi destekleyecek, maliyet ölçümünden çok yaratılan değerin ölçüldüğü ve her şeyi kendi başına halletmek yerine doğru zamanda doğru kaynaklara erişebilecek bir modele ihtiyaç duyulmaktadır.</p>



<p>Birçok BT organizasyonunu incelediğimizde olması gereken ile (mevcut OM’de olan) gerçekte olan çalışma şeklinin birbiriyle örtüşmediği veya BT’nin değer önerisi ve ortaya koyduğu yetkinliklerle işin ihtiyaçlarını karşılayacak esneklik ve yetkinlikler arasında bir fark olduğu görülmektedir.</p>



<p>Bunlara ek olarak, kişisel gözlemlerimde de gördüğüm mevcut BT modelleri, BT dışındaki grupları yani iş birimlerini çok fazla kapsamamakta bu da özellikle yeteneğin kazanılması yani insan kaynağı, karar noktaları ve finansın yönetilmesi gibi konularda sıkıntı yaratmaktadır. Mevcut rekabet koşullarında iş birimleri mümkün olduğunda yeni kabiliyetleri elde etmek hatta birçok konuda BT’den otonom şekilde hareket edebilmek arzusundalar. Bu anlaşılabilir bir refleks olsa da uzun vadede yarattığı “Shadow IT – Gölge BT” şirkete daha büyük zarar getirmektedir. Bu sebepten dolayı BT operasyon modelini tüm şirketi kapsayacak şekilde planlayıp hangi kontrollü bir otonomluk sağlanması veya hangi noktalarda nasıl davranılacağının keskin hatlarının çizilmesini de sağlamaktadır.<br></p>



<p>Birkaç örnek üzerinden devam edelim.</p>



<ul><li>Bu senaryomuzda, satış departmanlarından biri yeni satış kanalları oluşturabilmek için mobil uygulama geliştirmek istiyor ve bunu bir dijital ajansa yaptırma planları olduğunu varsayalım.</li><li>Başka bir senaryoda; müşteri yönetim ekibi müşteri eğilimlerini daha iyi analiz yapabilmek önceden piyasayı tahmin ederek doğru aksiyonları olabilmek için ekiplerine birkaç tane veri bilimcisi (data scientist) alıyor veya mevcut kullandıkları CRM’i bulut bazlı bir CRM ile değiştirmeğe karar verdiler.</li></ul>



<p>Mesela bu senaryolarda ajansın nasıl seçileceği, mimarinin nasıl olacağı, hangi teknolojilerin kullanılacağı gibi kritik kararların verilmesinde BT ne kadar etkin veya sizin önünüze proje bittikten sonra mı geliyor? Her ne kadar veri bilimcileri iş birimleri içerisinde olsa da BT kaynaklarına (web servisleri, API, veri tabanları gibi) erişecekler ve geliştirdikleri uygulamaların bir yaşam döngüsü olacaktır. BT’nin dışında olsalar bile BT ile bu kadar içli dışlıyken sizin bu kişilerin seçimi, uygulama geliştirme standartlarının belirlenmesi veya kaynakların nasıl kullanılacağı konusunda sınırlamalar belirlemeniz gerekmiyor mu?<br></p>



<p>Artık bu sebeplerden dolayı operasyon modeli, sadece BT içerisinde sınırlı kalamaz ve bu nedenle de tüm şirketi kapsayacak şekilde genişletilmelidir. Tüm organizasyonda hedeflenen inovasyon, esneklik ve rekabet gücünü sağlayacak şekilde tekrardan konumlanmalıdır.</p>



<h4 class="wp-block-heading"><strong>BT Operasyon Modelinin yapısı nasıl olmalıdır?</strong></h4>



<p>Operasyon modelinin oluşturulması, gösterilmesi ve ölçümüyle ilgili endüstride kabul edilmiş birçok farklı yöntem bulunmaktadır. Hangi modelle çalışırsanız çalışın temelde aynı bileşenlere sahiptirler. Ben bu yazı dizisinde kendimin de en çok hâkim olduğu ve daha önce çalıştığım Gartner’ın yapısını baz alarak bazı noktaları anlatacağım. <a href="https://www.gartner.com/en/webinars/3871693/redesign-your-it-operating-model-to-accelerate-digital-business">Gartner’a</a> göre bir BT operasyon modeli aşağıdaki bileşenlere sahip olmalıdır.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="564" height="383" src="http://www.emrebozlak.com/wp-content/uploads/2020/05/gartner-OM.jpg" alt="" class="wp-image-888" srcset="http://www.emrebozlak.com/wp-content/uploads/2020/05/gartner-OM.jpg 564w, http://www.emrebozlak.com/wp-content/uploads/2020/05/gartner-OM-300x204.jpg 300w, http://www.emrebozlak.com/wp-content/uploads/2020/05/gartner-OM-370x251.jpg 370w" sizes="(max-width: 564px) 100vw, 564px" /><figcaption>Operasyon Model Bileşenleri &#8211; Gartner</figcaption></figure>



<ul><li><strong>Finansallar (Financials): </strong>BT bütçesinin ne kadar ve kimin kontrolünde olması gerektiği, yatırım kararlarının nasıl verileceği, bütçenin nasıl izleneceği ve şirket hedefleriyle uyumlu finansal yatırımların nasıl yapılması gerektiğine dair kurallar bütünüdür. Bu konu aynı zamanda BT’nin sunduğu hizmeti nasıl ücretlendirmesi (Chargeback mekanizması) gerektiğini planlayabilmesi içinde önemlidir.<br>Birçok BT organizasyonu aşağıdan yukarı doğru toplama yöntemiyle yıl başında bir bütçe belirliyor ve bu bütçe içerisinde kalmaya çalışarak hem iş birimlerine destek olmak hem de sürekli değişen bir ortamda gemilerini yürütmeye çalışıyorlar. Buradaki temel sorun iş biriminin bütçeye katkısı veya stratejik önemiyle aynı oranda bir efor harcıyor muyum veya iş birimi BT’ye harcattığı efor karşılığında ne kadarlık bir değer yaratabiliyor sorularının net bir şekilde cevaplanamamasıdır. Düzgün bir Chargeback mekanizmasının kurulmasıyla beraber BT’ler doğrudan iş birimleri hatta proje ve operasyonel işleri için bile ne kadarlık bir maliyet yaratmışlar gösterebilme yeteneğini kazanırlar.<br>Bu sayede aşağıdaki kazanımlar ortaya çıkmaktadır;<ul><li>BT’nin harcadığı efora karşılık iş biriminin ne kadarlık bir değer yarattığının ölçümü</li></ul><ul><li>Kaynakların doğru inisiyatiflere, teknolojilere ve birimlere aktarılması</li></ul><ul><li>BT’nin bir masraf merkezi olduğu algısının kırılması ve değer odaklı bir merkeze doğru evirilmesi.</li></ul><ul><li>İş birimlerinin yeni proje veya taleplerde bulunurken doğru bir maliyet/fayda analizi yapabilmesinin sağlanması.</li></ul></li></ul>



<ul><li><strong>Karar hakkı (Decision Rights): </strong>Organizasyon içerisinde kim, neye ve nasıl karar vereceğinin belirlenmesidir. Mesela BT mimarisiyle ilgili bir karar alınması gerektiğinde bunu uygulama ekipleri kendileri alabilir mi yoksa merkezi mimari ekibe mi danışılmalı, iş birimleri kendi ihtiyaçlarına uygun “3rd party” bir uygulama satın alabilir mi? Dağıtık bir şirket yapısındaysanız bir hizmete ihtiyacınız olduğunda bunu merkezden mi sağlamalısınız yoksa kendiniz yaratabilir misiniz? Bu tür soruların cevaplarını verebilmek ve bu kritik kararlarda kimin yetkili olduğunun belirlenmesini sağlar. Bu kural setinin belirlenmesi hem işlerin daha hızlı akmasını sağlar hem de ileride oluşabilecek çeşitli yanlış anlaşılmalarla sürtüşmelerinde önüne geçebilmektedir.<br>Mesela şirketinizin çevik (agile) dönüşüm geçirdiğini ve ürünler bazında chapter’lara böldüğünü varsayalım; her chapter’ın kendi teknik lideri nelere karar verebilmeli, mesela kendisi uygulamada bir fırsat gördü ve daha önce şirket içinde kullanılmamış bir teknolojiyi kullanmak istiyor buna izni var mı? API’ların döndüğü cevapları standarttın dışında bir çıktı kullanabilir mi? Product owner’lar istedikleri tedarikçi çalışmayı tercih edebilir mi veya ürünün özellikleriyle ilgili gerçekte ne kadar karar sahibi olmalılar.<br>Eğer büyük bir kurumsal yapı içerisinde, otonom çevik ekipler kullanmak istiyor bir yandan da hedefe doğru mimari ve ürünlerle gidebilmek istiyorsak bu kural setlerinin belirlenmesi hayati önem taşımaktadır.<br></li><li><strong>Performans (Performance): </strong>Adından da anlaşıldığı üzere BT organizasyonunun performansının nasıl ölçüleceğinin belirlenmesidir. Burada en önemli nokta şirket stratejisine uygun KPI’ların belirlenmesidir mesela iş birimlerinin dijitalleşmesine destek verilmesi beklenirken bütçe/süreç optimizasyonuyla ilgili KPI’ların ağırlıkta olması çok anlamlı olmayacaktır. Aynı zamanda BT’nin siloları için ayrı ayrı KPI’lar belirlemenin yanında bir bütün olarak yarattığı değeri ölçebileceğiniz KPI’ların olması önerilir.<br>Örneğin;<ul><li>Yeni Ürün/sürüm çıkartma sıklığı</li></ul><ul><li>Dijital kanalların rakiplere göre olan performansı ve teknik üstünlüğü</li></ul><ul><li>Kullanıcı deneyiminin iş performansına etkisi ve son kullanıcı mutluluğu</li></ul><ul><li>İş birimlerinin yeni kanal ve iş modelleri yaratabilmeleri için sunulan yeni teknolojiler ve süreçlerin dijitalleşmesi (Self-service portal, RPA, Chatbot, VR/AR araçları gibi). Bunların doğrudan ciroya olan etkisi.</li></ul></li></ul>



<ul><li><strong>Organizasyon yapısı (Organizational structure): </strong>BT organizasyon yapısı nasıl olmalı, iş birliği nasıl sağlanmalı ve kritik kaynaklar arasındaki ilişki nasıl kurulmasıyla ilgili tüm bileşenler bu başlık altında toparlanır. Yukarıda değindiğim çevik organizasyon ile ilgili örneğinden devam edersem; şirketi ürünler bazında böldüğümüz durumda BT’de kendini ürünler bazında çalışma gruplarına bölmesi beklenmektedir. Peki her grup içerisinde kimler bulunmalı, bunlar normal şartlarda hiyerarşik olarak kime bağlı olmalı, gruplar içerisinde dağıtılamayan alt yapı, güvenlik ve yönetişim ekipleriyle bu yapıların ilişkisi nasıl olmalıdır gibi soruların cevabını verdiğimiz kısımdır.<br></li><li><strong>Çalışma yöntemleri (Ways of working):</strong> Aslında BT’nin ve doğal olarak onunla çalışan partner ve iş birimlerinin nasıl çalışacağının belirlendiği katman. Burada şirketinizin kendi metotları/süreçleri olabileceği gibi endüstri tarafından kabul edilmiş standartlarda kullanılıyor olabilir. Mesela fikirlerin kabul edilip projeye dönüştürülmesi için gerekli kabul ve geçiş süreçlerini içeride geliştirirken, BT’nin performansını Cobit’e göre ölçüyor olabilirsiniz. Projenizi sprintler halinde yönetip, CI/CD sayesinde hızla yeni sürümlere geçiyor olabilirsiniz. Burada önemli olan işin ihtiyaçlarına göre doğru yöntemi belirleyebilmenizdir. Her ihtiyaç düşünülenin aksine çok sık yeni uygulama özelliklerine ihtiyaç duymazken, fikirden proje aşamasına geçişte her şirketin kendi kabul koşulları birbirinden farklılık gösterecektir. İşin ihtiyacını net olarak anlayarak ona göre bir yöntemler belirlenmeli, paydaşlarla el sıkışılmalıdır.<br></li><li><strong>Konum (Places):</strong> BT, iş birimleri ve partnerler fiziksel olarak nerede konumlanacak. BT ve iş birimi ayrı ofislerde/binalarda çalışıp birbirlerinden izole mi çalışacak yoksa iş birimi ve ona hizmet eden BT fonksiyonları aynı ofiste mi bulunmalı? Outsource ettiğiniz hizmetlerin veya dışarıdan aldığını danışmanlık hizmeti nasıl ve nerede bulunmalı gibi konuların netleştiği yerdir. Artık iş birimleriyle onlara doğrudan hizmet veren ürün grubunun yazılım geliştiricileri, proje yöneticileri gibi BT fonksiyonlarını bir arada tutma eğitimi bulunmakta ama genelde alt yapı, UI/UX tasarımcıları, güvenlik veya test ekipleri gibi paylaşımlı kaynakların nasıl konumlanacağı gibi sorular yeni modellerde sıklıkla atlanmaktadır.<br></li><li><strong>Yetenek (Talent):</strong> İnsan kaynağı, ihtiyaç duyulan insan kaynağını organizasyonun nasıl ve ne şekilde bulabileceği, çekeceği ve bünyesine alabileceği gibi konulara eğilir. Bu insanların ne tür bilgi ve birikime sahip olması beklenmektedir, şirket içerisinde nasıl konumlandırılmalıdır gibi sorulara da cevap verebilmelidir<br>.</li><li><strong>Partnerlik ve dış kaynak kullanımı (Sourcing and alliances): </strong>BT organizasyonlarının ihtiyaç duyduğu hem teknoloji hem de dış insan kaynağını nasıl tedarik ettiği, neleri dışarıdan alıp ne tür kaynakları içeride bulunduracağı/geliştireceği konularının değerlendirilmesidir. Tedarikçi yönetimi, yeni partner ve tedarikçilerin seçim yöntemine dair prensipler ve yönlendirmeler bütünüdür. Benim özellikle çok önem verdiğim bir konu olduğunu söylemek isterim. BT’ler her fonksiyonu kendi içinde bulundurup tek bir insan veya yetersiz kaynaklarla departmanları döndürmek yerine asıl fark yaratacakları konulara yönelip, temel yeteneklerine odaklanmalı; gerekli dönüşüm ve teknoloji desteği için doğru partnerleri kullanmayı öğrenmelidir.<br></li><li><strong>Araçlar (Tools): </strong>BT’nin hedeflediği değer önerisini sağlayabilmesi ne gibi araçlara ihtiyacı bulunuyor sorusunun irdelenmesidir. Bunu şu anda kullandığımız servis masası uygulamasından tutunda, CMDB ve proje yönetim araçlarına kadar genişletebilirsiniz. Bazı firmaların ihtiyaçlarına göre bu uygulamalar RPA’ler, test uygulamaları veya container teknolojisi de olabilmektedir. Buradaki liste tamamen sizin hedeflerinize göre değişmektedir.</li></ul>



<p>Gartner’ın modeli haricinde başka modellerde bulunmakla beraber içerik olarak birçoğu hemen hemen aynıdır.</p>



<p>Bir Operasyon Modelinin nasıl tasarlanması gerektiği ve kurumsal mimariyle olan ilişkisine bir sonraki <a href="http://www.emrebozlak.com/bt-operasyon-modeli-ve-kurumsal-mimari-bolum-2/" target="_blank" rel="noreferrer noopener">yazımda </a>değineceğim.</p>



<p>Okuduğunuz için teşekkür ederim.</p><p>The post <a href="http://www.emrebozlak.com/bt-operasyon-modeli-ve-kurumsal-mimari-bolum-1/">BT Operasyon Modeli ve Kurumsal Mimari – Bölüm 1</a> first appeared on <a href="http://www.emrebozlak.com">EMRE BOZLAK</a>.</p><p>The post <a href="http://www.emrebozlak.com/bt-operasyon-modeli-ve-kurumsal-mimari-bolum-1/">BT Operasyon Modeli ve Kurumsal Mimari &#8211; Bölüm 1</a> appeared first on <a href="http://www.emrebozlak.com">EMRE BOZLAK</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>http://www.emrebozlak.com/bt-operasyon-modeli-ve-kurumsal-mimari-bolum-1/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			<dc:creator>emrebozlak@gmail.com (Emre Bozlak)</dc:creator></item>
		<item>
		<title>vRealize Automation 7</title>
		<link>http://www.emrebozlak.com/vrealize-automation-7/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=vrealize-automation-7</link>
					<comments>http://www.emrebozlak.com/vrealize-automation-7/#respond</comments>
		
		
		<pubDate>Fri, 18 Dec 2015 09:00:19 +0000</pubDate>
				<category><![CDATA[Automation]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[vcac]]></category>
		<category><![CDATA[Vmware]]></category>
		<category><![CDATA[installation]]></category>
		<category><![CDATA[vmware]]></category>
		<category><![CDATA[vRealize Automation]]></category>
		<guid isPermaLink="false">http://www.emrebozlak.com/?p=853</guid>

					<description><![CDATA[<p>Vmware 2015 yılını bitirirken bize erken bir yılbaşı süprizi yapıp vRealize Automation 7 ürününü piyasaya çıkartmayı planladığını açıkladı. Yeni versiyonda başta mimarisi olmak üzere radikal değişikliklere gitmiş bulunmaktadır. Bunlardan en başta göze batanları ayrı bir identity server yerine vRA appliance ve identity server tek bir sunucu olarak gelmektedir, böylelikle hem daha kolay bir kurulum elde [&#8230;]</p>
<p>The post <a href="http://www.emrebozlak.com/vrealize-automation-7/">vRealize Automation 7</a> first appeared on <a href="http://www.emrebozlak.com">EMRE BOZLAK</a>.</p>
<p>The post <a href="http://www.emrebozlak.com/vrealize-automation-7/">vRealize Automation 7</a> appeared first on <a href="http://www.emrebozlak.com">EMRE BOZLAK</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Vmware 2015 yılını bitirirken bize erken bir yılbaşı süprizi yapıp vRealize Automation 7 ürününü piyasaya çıkartmayı planladığını açıkladı. Yeni versiyonda başta mimarisi olmak üzere radikal değişikliklere gitmiş bulunmaktadır. Bunlardan en başta göze batanları ayrı bir identity server yerine vRA appliance ve identity server tek bir sunucu olarak gelmektedir, böylelikle hem daha kolay bir kurulum elde edilmiş hem de ürünü HA hale getirmek kolaylaşmıştır.</p>
<p>Öteki önemli değişimse vRA 7 ortamının kurulum adımlarıdır, vCAC 5.x’dan beri kullanmaktayım ve her zaman kurulumu tam bir sinir harbi olmaktaydı. vRA 7’inin kurulumuna başlarken ürünün beta olmasından kaynaklı çok ciddi sorunlar yaşayacağımı sanırken inanılmaz kolay ve hiç sorunsuz bir kurulum gerçekleştirdim. Açıkcası şaşkınlığımı hala atlatabilmiş değişim <img src="https://s.w.org/images/core/emoji/14.0.0/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p><span id="more-853"></span></p>
<p>Gözüme batan son önemli değişiklikse Application Services(directory) farklı bir appliance olarak kurulmamakta tam tersine gömülü olarak appliance ile gelmektedir.</p>
<p>Eminim ürün GA olarak yayınlandığında daha bir çok özelliğini öğrenebileceğiz. Bu yazıda vRA 7’nın bir beta versiyonunu kuruyor olacağım, ürünün sizde ki beta versiyonu veya GA versiyonunda bazı adımları farklı olabilir ama genel hatlarının değişeceğini sanmıyorum. Kurulumu minimum tutmak için bir adet IaaS olarak kullandığım Windows 2012 R2 sunucusu ve aynı sunucu üzerinde MsSQL 2014 kullandım. IaaS ile ilgili yapmanız gereken en önemli ayar ntp’lerin tanımlanmış olması ve MsSQL sunucusunda(bizim senaryomuz için IaaS) MSDTC ayarlarının mutlaka yapılmış olmasıdır. MSDTC ayarları aşağıda ki gibi olmalıdır. Ms DTS için ekran görüntüsünde gördüğünüz üzere Component Services üzerinden Local DTC’nin özelliklerine girerek ayarları kontrol edebilirsiniz.</p>
<p><a href="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-DTC.png" rel="attachment wp-att-854"><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-854" src="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-DTC-1024x717.png" alt="vRA 7 - Installation DTC" width="900" height="630" srcset="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-DTC-1024x717.png 1024w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-DTC-300x210.png 300w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-DTC-768x538.png 768w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-DTC-370x259.png 370w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-DTC-770x539.png 770w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-DTC-70x50.png 70w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-DTC.png 1073w" sizes="(max-width: 900px) 100vw, 900px" /></a></p>
<p>İlk adımda tüm Vmware ürünlerinde olduğu gibi OVF’i uygun bir yere yüklüyor; gerekli DNS ve network ayarlarını yapıyoruz, burada önemli bir tüyo vermem gerekirse mutlaka verdiğiniz ip ve hostname için DNS’de bir kayıt oluşturmayı unutmayınız.</p>
<p>OVF’nin yüklenmesi bitince ve vRA(vCAC)’nın daha önce ki versiyonlarında olduğu gibi Appliance Control paneline root kullanıcısıyla girip ilk kurulumu yapmanız gerekiyor.</p>
<p>Appliance Control paneli için</p>
<p>https://&lt;vRA ip adres&gt;:5480</p>
<p>Giriş yaptığımızda ise bir popup açılarak size kurulumu nasıl yapmak istediğinizi soracaktır. Buradan sonrasıysa yeni kurulum ekranıyla devam etmekte.</p>
<p><a href="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation.png" rel="attachment wp-att-855"><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-855" src="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-1024x542.png" alt="vRA 7 - Installation" width="900" height="476" srcset="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-1024x542.png 1024w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-300x159.png 300w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-768x407.png 768w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-370x196.png 370w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-770x408.png 770w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation.png 1533w" sizes="(max-width: 900px) 100vw, 900px" /></a></p>
<p>Bir sonraki adımdaysa minimum kurulum mu yapacağınızı yoksa daha kompleks yapılara uygun olarak servisleri dağıtık ve HA olarak mı kurmak istediğinize karar vermemizi istiyor. Ben bu kurulumu “minimal” olarak yaptım. Minimal kurulumda tüm IaaS servislerini(IaaS Web services,DEM,MMD..gibi) tek bir sunucuya kuruyor ve vRA appliance’ını single mode olarak çalıştırıyor.</p>
<p><a href="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Steps-1.png" rel="attachment wp-att-856"><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-856" src="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Steps-1-1024x544.png" alt="vRA 7 - Installation Steps 1" width="900" height="478" srcset="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Steps-1-1024x544.png 1024w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Steps-1-300x160.png 300w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Steps-1-768x408.png 768w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Steps-1-370x197.png 370w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Steps-1-770x409.png 770w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Steps-1.png 1529w" sizes="(max-width: 900px) 100vw, 900px" /></a></p>
<p>Enterprise deployment’ta vRA appliance’ı isterseniz HA kurabileceğiniz gibi servisleri de farklı sunuculara kurabilirsiniz.</p>
<p><a href="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Enterprise-setup.png" rel="attachment wp-att-857"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-857" src="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Enterprise-setup.png" alt="vRA 7 - Installation Enterprise setup" width="795" height="156" srcset="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Enterprise-setup.png 795w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Enterprise-setup-300x59.png 300w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Enterprise-setup-768x151.png 768w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Enterprise-setup-370x73.png 370w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Enterprise-setup-770x151.png 770w" sizes="(max-width: 795px) 100vw, 795px" /></a></p>
<p>Bir sonraki adıma geçtiğinizde devam etmeden önce IaaS’ımıza vRA 7 agent’ını kurmamız gerekmektedir. Bu agent sayesinde vRA appliance IaaS üzerinde ki tüm kurulumları ve ayarlamaları kendisi yapabilecektir. Kurumu oldukça basit ve eski versiyonlarda ki DEM ve Agent kurulumuna benzemektedir.</p>
<p><a href="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Agent-Setup.png" rel="attachment wp-att-858"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-858" src="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Agent-Setup.png" alt="vRA 7 - Installation Agent Setup" width="506" height="400" srcset="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Agent-Setup.png 506w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Agent-Setup-300x237.png 300w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Agent-Setup-370x292.png 370w" sizes="(max-width: 506px) 100vw, 506px" /></a></p>
<p>İkinci adımda vRA appliance’ın FQDN’ini yazmamız ve portunu eklememiz gerekmektedir.</p>
<p><a href="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Agent-Setup-2.png" rel="attachment wp-att-859"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-859" src="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Agent-Setup-2.png" alt="vRA 7 - Installation Agent Setup 2" width="508" height="398" srcset="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Agent-Setup-2.png 508w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Agent-Setup-2-300x235.png 300w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Agent-Setup-2-370x290.png 370w" sizes="(max-width: 508px) 100vw, 508px" /></a></p>
<p>Bir sonraki adımda Management Agent’in çalışacağı kullanıcıyı belirliyoruz, agent bir Windows servisi olarak çalışacaktır, bu sebepten dolayı Administrator grubuna ekli bir kullanıcıyla servisi çalıştırmayı öneririm.</p>
<p><a href="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Agent-Setup-3.png" rel="attachment wp-att-860"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-860" src="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Agent-Setup-3.png" alt="vRA 7 - Installation Agent Setup 3" width="508" height="401" srcset="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Agent-Setup-3.png 508w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Agent-Setup-3-300x237.png 300w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Agent-Setup-3-370x292.png 370w" sizes="(max-width: 508px) 100vw, 508px" /></a></p>
<p>Agent’i kurduktan sonra Windows servislerinden çalışıp çalışmadığını kontrol ediniz. Kurulum ekranına geri döndüğünüzde aşağıda ki gibi bir ekranın sizi karşılaması gerekmektedir. IaaS Hostname kısmında biraz önce agent’ı kurduğunuz sunucunun hostname’i bulunmalı. Burada önemli nokta Time offset’in çok fazla olmaması, ben resmi bir sayı bulamadım ama Windows sunucuları için genelde 300 saniye gibi bir değerdir. Eğer offset çok fazlaysa hem appliance için hem de Windows sunucu için seçili ntp’leri kontrol ediniz.</p>
<p>Başka bir önerimse Appliance için “Time sync” seçeneğini “time server” olarak seçmenizdir.</p>
<p><a href="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Steps-2-Time-Server.png" rel="attachment wp-att-861"><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-861" src="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Steps-2-Time-Server-1024x403.png" alt="vRA 7 - Installation Steps 2 Time Server" width="900" height="354" srcset="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Steps-2-Time-Server-1024x403.png 1024w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Steps-2-Time-Server-300x118.png 300w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Steps-2-Time-Server-768x303.png 768w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Steps-2-Time-Server-370x146.png 370w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Steps-2-Time-Server-770x303.png 770w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Steps-2-Time-Server.png 1335w" sizes="(max-width: 900px) 100vw, 900px" /></a></p>
<p>Bir sonraki adımsa vRA 6.x versiyonlarından hatırlayacağınız Prerequisite checker aracıyla ama bu sefer güzel bir özellikle beraber gelmektedir. Gerekli kontrolleri yaptıktan sonra eğer sorun bulursa sizin için gerekli düzenlemeleri yapmaktadır. Önce Run diyerek sistemi taramasını sağlayalım bu işlem 5-10 dk kadar sürebilir.</p>
<p><a href="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Prerequest-Check.png" rel="attachment wp-att-862"><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-862" src="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Prerequest-Check-1024x608.png" alt="vRA 7 - Installation Prerequest Check" width="900" height="534" srcset="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Prerequest-Check-1024x608.png 1024w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Prerequest-Check-300x178.png 300w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Prerequest-Check-768x456.png 768w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Prerequest-Check-370x220.png 370w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Prerequest-Check-770x458.png 770w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Prerequest-Check.png 1343w" sizes="(max-width: 900px) 100vw, 900px" /></a></p>
<p>Daha sonra bulduğu sıkıntıları fix tuşuna basarak onarmasını sağlayalım, bu esnada IaaS’ı birkaç kere yeniden başlatabilir.</p>
<p><a href="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Prerequest-Check-Fix.png" rel="attachment wp-att-863"><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-863" src="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Prerequest-Check-Fix-1024x433.png" alt="vRA 7 - Installation Prerequest Check Fix" width="900" height="381" srcset="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Prerequest-Check-Fix-1024x433.png 1024w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Prerequest-Check-Fix-300x127.png 300w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Prerequest-Check-Fix-768x325.png 768w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Prerequest-Check-Fix-370x157.png 370w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Prerequest-Check-Fix-770x326.png 770w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Prerequest-Check-Fix.png 1326w" sizes="(max-width: 900px) 100vw, 900px" /></a></p>
<p>Sonra ki adım vRA appliance’ının hostname’ini ayarlamak. Buraya FQDN’i yazmanızı öneririm. Resolve Automatically derseniz DNS kayıtlarında ne geçerliyse onu yazar.</p>
<p><a href="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-hostname.png" rel="attachment wp-att-864"><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-864" src="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-hostname-1024x295.png" alt="vRA 7 - Installation hostname" width="900" height="259" srcset="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-hostname-1024x295.png 1024w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-hostname-300x86.png 300w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-hostname-768x221.png 768w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-hostname-370x107.png 370w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-hostname-770x222.png 770w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-hostname.png 1131w" sizes="(max-width: 900px) 100vw, 900px" /></a></p>
<p>SSO administrator hesabını yaratalım.</p>
<p><a href="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-SSO.png" rel="attachment wp-att-865"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-865" src="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-SSO.png" alt="vRA 7 - Installation SSO" width="552" height="339" srcset="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-SSO.png 552w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-SSO-300x184.png 300w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-SSO-370x227.png 370w" sizes="(max-width: 552px) 100vw, 552px" /></a></p>
<p>Bu adımlardan sonra IaaS component’lerinin ayarlarını yapmamızı isteyecek, sırayla MsSQL</p>
<p><a href="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-MsSQL.png" rel="attachment wp-att-866"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-866" src="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-MsSQL.png" alt="vRA 7 - Installation MsSQL" width="963" height="416" srcset="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-MsSQL.png 963w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-MsSQL-300x130.png 300w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-MsSQL-768x332.png 768w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-MsSQL-370x160.png 370w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-MsSQL-770x333.png 770w" sizes="(max-width: 963px) 100vw, 963px" /></a></p>
<p>DEM servisi, burada agent’ı kurarken kullandığımız kullanıcı adını girmemiz gerekmektedir.</p>
<p><a href="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-DEM.png" rel="attachment wp-att-867"><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-867" src="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-DEM-1024x210.png" alt="vRA 7 - Installation DEM" width="900" height="185" srcset="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-DEM-1024x210.png 1024w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-DEM-300x62.png 300w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-DEM-768x158.png 768w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-DEM-370x76.png 370w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-DEM-770x158.png 770w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-DEM.png 1329w" sizes="(max-width: 900px) 100vw, 900px" /></a>Aynı şekilde Agent için de bilgileri girelim. Tekrar tekrar hatırlatmam gerekmektedir ki hala Agent adı olarak ne koyarsanız vRA endpoint yaratırken aynı isimle yaratmanızı istemektedir. Bu sebepten dolayı asla Agent’ın adını unutmayınız <img src="https://s.w.org/images/core/emoji/14.0.0/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p><a href="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Agent.png" rel="attachment wp-att-868"><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-868" src="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Agent-1024x294.png" alt="vRA 7 - Installation Agent" width="900" height="258" srcset="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Agent-1024x294.png 1024w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Agent-300x86.png 300w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Agent-768x221.png 768w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Agent-370x106.png 370w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Agent-770x221.png 770w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Agent.png 1326w" sizes="(max-width: 900px) 100vw, 900px" /></a></p>
<p>SSL’lerimizi yaratalım.</p>
<p><a href="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Appliance-Certificate.png" rel="attachment wp-att-869"><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-869" src="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Appliance-Certificate-1024x349.png" alt="vRA 7 - Installation Appliance Certificate" width="900" height="307" srcset="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Appliance-Certificate-1024x349.png 1024w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Appliance-Certificate-300x102.png 300w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Appliance-Certificate-768x261.png 768w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Appliance-Certificate-370x126.png 370w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Appliance-Certificate-770x262.png 770w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Appliance-Certificate.png 1316w" sizes="(max-width: 900px) 100vw, 900px" /></a></p>
<p>Artık son adım da ayarlarımızı “Valide” edelim ve her şey yerli yerindeyse kuruluma başlayalım.</p>
<p><a href="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Validation.png" rel="attachment wp-att-870"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-870" src="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Validation.png" alt="vRA 7 - Installation Validation" width="777" height="299" srcset="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Validation.png 777w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Validation-300x115.png 300w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Validation-768x296.png 768w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Validation-370x142.png 370w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Validation-770x296.png 770w" sizes="(max-width: 777px) 100vw, 777px" /></a></p>
<p>Kurulum tamamen otomatiktir ve Validation kısmında bir sorun çıkmamışsa kurulumu sorunsuz tamamlayacaktır.<a href="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Progress.png" rel="attachment wp-att-871"><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-871" src="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Progress-1024x529.png" alt="vRA 7 - Installation Progress" width="900" height="465" srcset="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Progress-1024x529.png 1024w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Progress-300x155.png 300w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Progress-768x397.png 768w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Progress-370x191.png 370w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Progress-770x398.png 770w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-Progress.png 1324w" sizes="(max-width: 900px) 100vw, 900px" /></a><a href="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-ending.png" rel="attachment wp-att-874"><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-874" src="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-ending.png" alt="vRA 7 - Installation ending" width="691" height="119" srcset="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-ending.png 691w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-ending-300x52.png 300w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-7-Installation-ending-370x64.png 370w" sizes="(max-width: 691px) 100vw, 691px" /></a></p>
<p>Tüm işlemler bu kadardır, eski kurulumlarla karşılaştırdığımda açıkçası çok başarılı bir iş yapıldığını söyleyebilirim.</p>
<p>Okuduğunuz için teşekkür ederim.</p><p>The post <a href="http://www.emrebozlak.com/vrealize-automation-7/">vRealize Automation 7</a> first appeared on <a href="http://www.emrebozlak.com">EMRE BOZLAK</a>.</p><p>The post <a href="http://www.emrebozlak.com/vrealize-automation-7/">vRealize Automation 7</a> appeared first on <a href="http://www.emrebozlak.com">EMRE BOZLAK</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>http://www.emrebozlak.com/vrealize-automation-7/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			<dc:creator>emrebozlak@gmail.com (Emre Bozlak)</dc:creator></item>
		<item>
		<title>vRA Ek Endpoint Tanımlamak</title>
		<link>http://www.emrebozlak.com/vra-ek-endpoint-tanimlamak/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=vra-ek-endpoint-tanimlamak</link>
					<comments>http://www.emrebozlak.com/vra-ek-endpoint-tanimlamak/#respond</comments>
		
		
		<pubDate>Mon, 07 Dec 2015 18:54:31 +0000</pubDate>
				<category><![CDATA[Automation]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[vcac]]></category>
		<category><![CDATA[Vmware]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[automation center]]></category>
		<category><![CDATA[Endpoint]]></category>
		<category><![CDATA[iaas]]></category>
		<category><![CDATA[vRA]]></category>
		<guid isPermaLink="false">http://www.emrebozlak.com/?p=844</guid>

					<description><![CDATA[<p>Geçen gün bir arkadaşımın vRealize Automation center’a ikinci bir vCenter endpoint olarak nasıl eklenir diye soru sorması üzerine bu yazıyı yazmaya karar verdim eminim bu kadar temel bir ihtiyaca hepimiz ihtiyaç duymaktayız. vRealize Automation Center herhangi bir kaynağa(vsphere,hyper-v,aws,orchestrator….gibi) endpointler üzerinden ulaşmaktadır. Siz bir talepte bulunduğunuz zaman IaaS server ilgili kaynağın proxy’si üzerinden bağlanır. Her kaynak [&#8230;]</p>
<p>The post <a href="http://www.emrebozlak.com/vra-ek-endpoint-tanimlamak/">vRA Ek Endpoint Tanımlamak</a> first appeared on <a href="http://www.emrebozlak.com">EMRE BOZLAK</a>.</p>
<p>The post <a href="http://www.emrebozlak.com/vra-ek-endpoint-tanimlamak/">vRA Ek Endpoint Tanımlamak</a> appeared first on <a href="http://www.emrebozlak.com">EMRE BOZLAK</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Geçen gün bir arkadaşımın vRealize Automation center’a ikinci bir vCenter endpoint olarak nasıl eklenir diye soru sorması üzerine bu yazıyı yazmaya karar verdim eminim bu kadar temel bir ihtiyaca hepimiz ihtiyaç duymaktayız.</p>
<p>vRealize Automation Center herhangi bir kaynağa(vsphere,hyper-v,aws,orchestrator….gibi) endpointler üzerinden ulaşmaktadır. Siz bir talepte bulunduğunuz zaman IaaS server ilgili kaynağın proxy’si üzerinden bağlanır. Her kaynak farklı bir proxy’e sahiptir.Proxy’ler IaaS üzerinde veya başka bir sunucuda olabileceği gibi bir sunucuda birden fazlada Proxy bulunabilir. İlk önce proxy’i kuracağımız sunucu üzerine “IaaS installer’ı” indirelim ve Administrator olarak çalıştıralım.</p>
<p><span id="more-844"></span></p>
<p>İlk ekranda vRA appliance’ı için daha önce belirtmiş olduğumuz root kullanıcısı ve şifreyle giriş yapalım. Sonra ki ekranda sırayla “Custom Install” ve aşağıda açılan panelde “Proxy Agents” seçeneğiyle devam edelim.</p>
<p><a href="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-additonal-Endpoint-Configuration-1.png"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-845" src="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-additonal-Endpoint-Configuration-1.png" alt="vRA additonal Endpoint - Configuration 1" width="796" height="595" srcset="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-additonal-Endpoint-Configuration-1.png 796w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-additonal-Endpoint-Configuration-1-300x224.png 300w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-additonal-Endpoint-Configuration-1-370x277.png 370w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-additonal-Endpoint-Configuration-1-770x576.png 770w" sizes="(max-width: 796px) 100vw, 796px" /></a></p>
<p>Bir sonra ki ekransa kendini gayet açıklamaktadır. Agent type olarak kullanmak istediğiniz kaynak türünü seçiniz. Agent name ise Windows service altında hangi isimle görüneceğidir, sonraki iki satıdaysa IaaS sunucunuz ve Model manager’ın adreslerini vermeniz gerekmektedir eğer benim yaptığım gibi IaaS rollerinin hepsini tek bir sunucuya kurduysanız her ikisi de aynı olacaktır.</p>
<p>Endpoint kısmıysa en önemli seçenek, Endpoint’e verdiğiniz isimle vRA portali içerisinden yaratacağınız endpoint’in ismi aynı olmalıdır aksi takdirde kesinlikle çalışmayacaktır. Tüm bilgileri doldurduktan sonra kurulumu gerçekleştirebilirsiniz.</p>
<p><a href="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-additonal-Endpoint-Install-Proxy-Agent.png"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-846" src="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-additonal-Endpoint-Install-Proxy-Agent.png" alt="vRA additonal Endpoint - Install Proxy Agent" width="794" height="596" srcset="http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-additonal-Endpoint-Install-Proxy-Agent.png 794w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-additonal-Endpoint-Install-Proxy-Agent-300x225.png 300w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-additonal-Endpoint-Install-Proxy-Agent-370x278.png 370w, http://www.emrebozlak.com/wp-content/uploads/2015/12/vRA-additonal-Endpoint-Install-Proxy-Agent-770x578.png 770w" sizes="(max-width: 794px) 100vw, 794px" /></a></p>
<p>Tüm bu işlemleri yaptıktan sonra son adımda portal üzerinden yeni bir endpoint tanımlamak ve ulaşmak istediğiniz kaynağın adresini yazmaktan ibarettir <img src="https://s.w.org/images/core/emoji/14.0.0/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p><p>The post <a href="http://www.emrebozlak.com/vra-ek-endpoint-tanimlamak/">vRA Ek Endpoint Tanımlamak</a> first appeared on <a href="http://www.emrebozlak.com">EMRE BOZLAK</a>.</p><p>The post <a href="http://www.emrebozlak.com/vra-ek-endpoint-tanimlamak/">vRA Ek Endpoint Tanımlamak</a> appeared first on <a href="http://www.emrebozlak.com">EMRE BOZLAK</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>http://www.emrebozlak.com/vra-ek-endpoint-tanimlamak/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			<dc:creator>emrebozlak@gmail.com (Emre Bozlak)</dc:creator></item>
		<item>
		<title>Endüstri 4.0</title>
		<link>http://management.emrebozlak.com/endustri-4-0/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=endustri-4-0</link>
					<comments>http://management.emrebozlak.com/endustri-4-0/#respond</comments>
		
		
		<pubDate>Sun, 29 Nov 2015 20:38:19 +0000</pubDate>
				<category><![CDATA[Management]]></category>
		<category><![CDATA[Strategy]]></category>
		<category><![CDATA[advanced analytics]]></category>
		<category><![CDATA[big data]]></category>
		<category><![CDATA[cloud computing]]></category>
		<category><![CDATA[endüstri 4.0]]></category>
		<guid isPermaLink="false">http://www.emrebozlak.com/?p=835</guid>

					<description><![CDATA[<p>Teknoloji her zaman endüstrinin itici güçlerinden biri olmuş ve onu şekillendirmiştir. 19. yy’da buhar güçüyle başlayan yolculuk, elektriğin fabrikalarda kullanılmasıyla hızlanan ve 70’li yıllarda otomasyon sistemlerinin kullanılmasıyla beraber günümüze kadar gelmektedir; günümüzdeyse endüstri tekrardan bir zıplama noktasındadır. Bu sefer daha önceki seferlerden fazlı olarak tici güç bilişim sektöründen gelmektedir. Big data, Advanced analytics, Cloud computing, [&#8230;]</p>
<p>The post <a href="http://management.emrebozlak.com/endustri-4-0/">Endüstri 4.0</a> first appeared on <a href="http://www.emrebozlak.com">EMRE BOZLAK</a>.</p>
<p>The post <a href="http://management.emrebozlak.com/endustri-4-0/">Endüstri 4.0</a> appeared first on <a href="http://www.emrebozlak.com">EMRE BOZLAK</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Teknoloji her zaman endüstrinin itici güçlerinden biri olmuş ve onu şekillendirmiştir. 19. yy’da buhar güçüyle başlayan yolculuk, elektriğin fabrikalarda kullanılmasıyla hızlanan ve 70’li yıllarda otomasyon sistemlerinin kullanılmasıyla beraber günümüze kadar gelmektedir; günümüzdeyse endüstri tekrardan bir zıplama noktasındadır. Bu sefer daha önceki seferlerden fazlı olarak tici güç bilişim sektöründen gelmektedir.</p>
<p>Big data, Advanced analytics, Cloud computing, IoT, augmented reality veya 3d printer gibi kavramlar artık sadece B2C veya dijital işletmeleri değil görece olarak daha muhafazakar olan üretim, madencilik ve enerji gibi sektörleri de dönüştürmeye başladılar. Bu dönüşümü başta Alman hükumeti olmak üzere bir çok kaynak Endüstri (Industry) 4.0 olarak adlandırmaktadır.</p>
<p><span id="more-835"></span></p>
<p>Eğer ağır sanayi veya madencilik sektöründeyseniz ham maddenin en verimli şekilde kullanılmanın önemini ve hatalı üretimi azaltacak yöntemleri her zaman arıyorsunuzdur. Bu noktada IoT, big data ve advanced analytics size fazlasıyla yardımcı olacaktır.</p>
<p>Birçok fabrika ve maden; üretim süreçlerinin her safhasına IoT cihazlarını dahil ederek gerçek zamanlı verileri toplamakta ve analiz etmektedirler. Arka taraftaki big data ve analiz uygulamaları tüm anormalileri, insanların fark edemediği malzeme ve ortam değişimlerini veya üretim hatalarını anında fark ederek bir sonraki safhaya geçilmeden düzeltilmesini sağlıyor veya süreçlerini tekrardan düzenleyerek zamandan/malzemeden tasarrufu sağlıyorlar. Örnek olarak bu yapı sayesinde bir madencilik firması çıkartılan ürünün işlenmesi sırasında sistemin gereğinden fazla oksijen aldığını fark etmiş ve bu hatayı düzelterek malzeme kaybını azaltmayı başararak, yıllık 20 milyon dolara yakın bir kazanç elde etmektedirler. Başka bir ilaç üretim tesisiyse malzemelerinin saflık derecelerini sürekli yakından izleyerek müşterilere hatalı mal gönderimini azaltmakta ve bu sayede hem müşteri memnuniyetini artırırken müşteriden daha az ürünün geri dönmesinden dolayı karlılık oranları da artmaktadır.</p>
<p>Bu yapıyı kurarken üretim planlama veya kalite kontrol birimlerinin kendilerini köklü olarak değiştirmelerine bile gerek yoktur. Eğer organizasyonunuz lean veya six sigma kullanıyorsa bu yapı onların alışkın oldukları yöntemi değiştirmek yerine tam tersine desteklemektedir, daha çok veri, daha iyi işlenmiş bilgi ve görselleştirme daha doğru sonuçlar elde edilmesini sağlamaktadır.</p>
<p>Başka bir yaklaşımsa üretim bantlarının bulut bilişimdeki gibi kısa süreli olarak başka firmalara kiralanması ve müşteri için özelleştirilmiş ürünlerin üretilmesidir. Bu fikirler yeni olmamakla beraber güncel teknolojilerle uygulanabilirliği kolaylaşmıştır. Üreticiler direk müşteri veya 3. parti firmaların sipariş sistemleriyle entegre olarak istek anında üretime başlayabilecekleri gibi ekosistemlerinde bulunan başka bir üreticiye veya müşteriye en yakın üreticiye otomatik olarak yönlenmesini sağlayabilirler. Başka bir artısıda müşterinin kendi ihtiyaçları doğrultusunda özelleştirdiği tasarımın 3D printerlar sayesinde artık üretim bandında ciddi değişikler yapılmadan üretimine başlanmasıdır.</p>
<p>Bir üretici artık merkezi bir fabrika bulunmanın yanında müşterilerine yakın küçük tesisler bulundurarak talep anında otomatik üretime başlayabilir. Bu sayede üreticiler lojistik ve depolama maliyetlerini düşürürken müşteriye daha hızlı bir şekilde ürünlerini teslim edebilirler.</p>
<p>Son olarak Augmented reality değinmek istiyorum. Augmented reality ve giyilebilir elektronik ürünleri üretim sektöründe kalite kontrolü,envanter, montaj ve iş makinelerinin bakımı gibi görevlerde kullanılabilirler. Mesela bir motor parçasının onarımı esnasında motorla ilgili teknik bilgilerin canlı olarak görüntü üzerinde gösterilmesi, sorunlu parçaların işaretlenmesi veya bir depoda aranan parçanın nerede olduğunun işaretlenmesi gibi kullanım yerleri bulunmaktadır.</p>
<p>Endüstri 4.0 akımı bu yazıya sığdırılamayacak kadar geniş ve kompleks bir konudur. Teknolojinin sadece IT ile olan kısımları haricinde bir çok dalını ve yeni iş modellerini de kapsamaktadır. Artık yeni nesil endüstride üretim kapasiteleri ve kalite standartları kadar sahip olunan veri ve veriden elde edilen bilginin ne kadar iyi olduğunda önem kazanmıştır. Mevcut kaynakların daha iyi kullanımından tutun, müşteride derinleşme ve yeni hizmetlerin yaratılmasına kadar tüm ihtiyaçlarımız bilgiden geçmektedir. Bu sebepten dolayı daha geleneksel yapımızdan çıkıp bilgi şirketlerine doğru kaymamız şarttır.</p>
<p>Okuduğunuz için teşekkürler.</p><p>The post <a href="http://management.emrebozlak.com/endustri-4-0/">Endüstri 4.0</a> first appeared on <a href="http://www.emrebozlak.com">EMRE BOZLAK</a>.</p><p>The post <a href="http://management.emrebozlak.com/endustri-4-0/">Endüstri 4.0</a> appeared first on <a href="http://www.emrebozlak.com">EMRE BOZLAK</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>http://management.emrebozlak.com/endustri-4-0/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			<dc:creator>emrebozlak@gmail.com (Emre Bozlak)</dc:creator></item>
		<item>
		<title>SRM – Recovery Test/Cleanup/Cancel Tuşunun Gelmemesi</title>
		<link>http://it.emrebozlak.com/srm-recovery-test-esnasinda-statelerin-kaybolmasi/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=srm-recovery-test-esnasinda-statelerin-kaybolmasi</link>
					<comments>http://it.emrebozlak.com/srm-recovery-test-esnasinda-statelerin-kaybolmasi/#respond</comments>
		
		
		<pubDate>Thu, 26 Nov 2015 09:15:23 +0000</pubDate>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[PowerCLI]]></category>
		<category><![CDATA[SRM]]></category>
		<category><![CDATA[Disaster Recovery]]></category>
		<category><![CDATA[powercli]]></category>
		<category><![CDATA[Powershell]]></category>
		<category><![CDATA[problem]]></category>
		<category><![CDATA[troubleshoot]]></category>
		<category><![CDATA[vmware]]></category>
		<guid isPermaLink="false">http://www.emrebozlak.com/?p=828</guid>

					<description><![CDATA[<p>Bundan bir kaç gün SRM ile Recovery Planlarını Test ederken bazı sıkıntılar yüzünden testi iptal etmek zorunda kaldım tam bu esnada SRM servisinin durması üzerine garip bir sorunla karşılaştım. SRM servisi durunca vCenter&#8217;ın tuttuğu Recovery tasklerinin state&#8217;i ile SRM&#8217;in stateleri tutmadığından dolayı aşağıda ki ekran görüntüsünde ki gibi bir durum oluştu. Bunun sebebi SRM servisinin [&#8230;]</p>
<p>The post <a href="http://it.emrebozlak.com/srm-recovery-test-esnasinda-statelerin-kaybolmasi/">SRM – Recovery Test/Cleanup/Cancel Tuşunun Gelmemesi</a> first appeared on <a href="http://www.emrebozlak.com">EMRE BOZLAK</a>.</p>
<p>The post <a href="http://it.emrebozlak.com/srm-recovery-test-esnasinda-statelerin-kaybolmasi/">SRM &#8211; Recovery Test/Cleanup/Cancel Tuşunun Gelmemesi</a> appeared first on <a href="http://www.emrebozlak.com">EMRE BOZLAK</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Bundan bir kaç gün SRM ile Recovery Planlarını Test ederken bazı sıkıntılar yüzünden testi iptal etmek zorunda kaldım tam bu esnada SRM servisinin durması üzerine garip bir sorunla karşılaştım. SRM servisi durunca vCenter&#8217;ın tuttuğu Recovery tasklerinin state&#8217;i ile SRM&#8217;in stateleri tutmadığından dolayı aşağıda ki ekran görüntüsünde ki gibi bir durum oluştu.</p>
<p><a href="http://www.emrebozlak.com/wp-content/uploads/2015/11/SRM-Recovery-Test.jpg"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-829" src="http://www.emrebozlak.com/wp-content/uploads/2015/11/SRM-Recovery-Test.jpg" alt="SRM - Recovery Test" width="583" height="59" srcset="http://www.emrebozlak.com/wp-content/uploads/2015/11/SRM-Recovery-Test.jpg 583w, http://www.emrebozlak.com/wp-content/uploads/2015/11/SRM-Recovery-Test-300x30.jpg 300w, http://www.emrebozlak.com/wp-content/uploads/2015/11/SRM-Recovery-Test-370x37.jpg 370w" sizes="(max-width: 583px) 100vw, 583px" /></a></p>
<p><span id="more-828"></span></p>
<p>Bunun sebebi SRM servisinin state’i ile veritabanı statelerinin tutmamasından veya SRM’in belli state tablolarını değiştirip ötekileri değiştirememesinden kaynaklanmaktadır. Semptomlar arasında Protection Groupların state’inin “Test complete” veya “Test in progress” gözükmesi, Recovery Planlardan hiçbirinin çalışıyor gözükmemesine rağmen tüm planların inaktif olması bulunmaktadır.</p>
<p>Aşağıdaki çözüm SRM 5.5 ve vCenter 5.5 için denenmiştir başka versiyonlarda nasıl tepki vereceği bilinmiyor. Bu işlemleri gerçekleştirebilmek için SRM ve vCenter sunucularında admin olmak aynı servislerin DB’lerinde değişiklik ve kayıt silme işlemlerinin yapılabilmesi gerekmektedir.</p>
<p>Böyle bir durumla karşılaşıldığında yapılabilecek adımlar aşağıdaki gibidir:</p>
<h3>Servisleri yeniden başlatmak</h3>
<p>Bu adımları aşağıdaki sırayla yapmanız önemlidir.</p>
<p>1)Protection ve Recovery site’da bulunan SRM servislerini kapatın.<br />
2)Her iki taraftaki vCenter servislerini yeniden başlatın<br />
3)Her iki taraftaki SRM servislerini yeniden açın.</p>
<h3>PowerCLI ile SRM Recovery Plan Cleanup komutunu çalıştırmak</h3>
<p>Yukarıdaki adımlar işe yaramazsa SRM API’si üzerinden SRM’e cleanup sinyali yollanabilir. SRM API’sine powercli ile bağlanmak için gerekli olan minimum powercli versiyonu 5.5 r2’dir.</p>
<p>İlk önce SRM sunucunun bağlı olduğu vCenter’a daha sonrada SRM sunucusuna bağlanalım.</p>
<pre>Connect-VIServer “vcenterhost” –User “Emre” –Password “Pa$$W0rd”
$srmServer=Connect-SRMServer –SrmServerAddress ”srmServer1” –User “DRuser” –Password “Drpass”
</pre>
<p>Burada önemli olan SRM bağlantısını bir değişkene atanmasıdır. Daha sonra bu connection string içerisinden methodlar çağrabilmemiz için aşağıda ki komutu giriyoruz.</p>
<pre>$srmMan = $srmServer.ExtensionData
</pre>
<p>Bu komutun çıktısı recovery planların moef id’sini verecektir eğer hangi recovery planı olduğunu bilmiyorsanız “GetInfo()” method’duyla tek tek bakabilirsiniz.</p>
<pre>$srmMan.Recovery.ListPlans()[0].GetInf0()
</pre>
<p>Bu komut hem daha kullanıcı dostu bir çıktı verecektir hem de Recovery planın durumu hakkında sizi bilgilendirecektir. Şu anda tüm Recovery planların durumu “Error” olarak gözükmektedir. İndeks sayısını değiştirerek doğru recovery planı bulalım.</p>
<p>Bir Recovery planın 5 durumu olabilir bu durumların neler olduğu ve nasıl kullanıldığı hakkında ilgili <a href="http://www.emrebozlak.com/powercli-srm-api-kullanimi/">yazıyı </a>okuyabilirsiniz. Biz aşağıda Cleanup state için “2” kullanıyoruz.</p>
<pre>$failover = New-Object VMware.VimAutomation.Srm.Views.SrmRecoveryPlanRecoveryMode
$failover.Value__ = 2
</pre>
<p>Ve bulduğumuz recovery planın cleanup state’ini çalıştırıyoruz.</p>
<pre>$srmMan.Recovery.ListPlans()[0].Start($failover)
</pre>
<p>vCenter üzerinden baktığımızda cleanup görevinin çalıştığını görmemiz gerekiyor eğer göremiyor veya başka bir görev tarafından kullanıldığına dair bir uyarı görürseniz vCenter ve SRM veri tabanlarından stateleri elle değiştirmeniz gerekmektedir.</p>
<h3>SRM ve vCenter veri tabanlarından taskların silinmesi</h3>
<p>Bu işlemleri vCenter için her iki tarafta SRM için sadece bir yerde yapmanız yeterlidir.</p>
<p><em>Önemli not: Aşağıda ki adımları yerine getirmeden önce mutlaka veritabanlarının yedeklerini alınız</em></p>
<p>vCenter veri tabanına girelim. <strong>“VPX_Task”</strong> tablosu içerisinde <strong>“DescriptionID”</strong> değer<strong> “com.vmware.vcDr.dr.recovery.RecoveryManager”</strong> olan ve<strong> “Complete_state” </strong>değeri <strong>“running”</strong> olan değerleri sorgulayalım.</p>
<pre>Select * from [VCDB].[VMW].[VPX_Task] where [DESCRIPTIONID] LIKE ‘com.vmware.vcDr.dr.recovery.RecoveryManager%’ and where [Complete_state] = ‘Running’
</pre>
<p>Şu anda vCenter’a SRM tarafından gönderilen ve hala çalışan görevleri göreceksiniz. Bunların vCenter tarafından gerçekten kullanılmadığına emin olun ve her iki taraftanda silin.</p>
<pre>Delete  FROM [VCDB].[dbo].[VPX_TASK] where [TASK_ID] = '&lt;taskid&gt;'
</pre>
<p>SRM’in veri tabanına girin ve “pdr_protectiongroup” tablosunu açalım, bu tablo tüm protection gruplarının ve durumlarının tutulduğu yerdir. Burada “state” kolonunun “6” olması gerekmektedir eğer farklı bir değerse değiştiriniz.</p>
<p>SRM ve vCenter’ı yeniden başlatıp biraz bekleyiniz. Her iki taraftaki DB eşitlendikten sonra tekrar SRM plugin ile giriş yaptığınızda herşeyin düzelmiş olduğunu göreceksiniz.</p>
<p>Umarım yardımcı olabilmişimdir <img src="https://s.w.org/images/core/emoji/14.0.0/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p><p>The post <a href="http://it.emrebozlak.com/srm-recovery-test-esnasinda-statelerin-kaybolmasi/">SRM – Recovery Test/Cleanup/Cancel Tuşunun Gelmemesi</a> first appeared on <a href="http://www.emrebozlak.com">EMRE BOZLAK</a>.</p><p>The post <a href="http://it.emrebozlak.com/srm-recovery-test-esnasinda-statelerin-kaybolmasi/">SRM &#8211; Recovery Test/Cleanup/Cancel Tuşunun Gelmemesi</a> appeared first on <a href="http://www.emrebozlak.com">EMRE BOZLAK</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>http://it.emrebozlak.com/srm-recovery-test-esnasinda-statelerin-kaybolmasi/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			<dc:creator>emrebozlak@gmail.com (Emre Bozlak)</dc:creator></item>
	</channel>
</rss>