Skip to content

Commit

Permalink
changed the translation of a few words
Browse files Browse the repository at this point in the history
  • Loading branch information
hkan committed Jan 17, 2021
1 parent 05001ec commit e64037e
Show file tree
Hide file tree
Showing 13 changed files with 51 additions and 51 deletions.
14 changes: 7 additions & 7 deletions content/tr/admin-processes.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
## XII. Yönetici Süreci
### Yönetici/yönetim görevlerini tek seferlik işlem olarak çalıştırma
## XII. Yönetim Süreçleri
### Yönetim görevlerini tek seferlik süreçler olarak çalıştırma

[İşlem formasyonu](./concurrency) uygulama çalışırken uygulamanın sıradan işlerini (web isteklerini idare etmek gibi) yapmakta kullanılan işlemlerin bir dizisidir. Ayrı olarak, geliştiriciler çoğunlukla uygulamanın bir kereye mahsus yönetimsel veya bakım görevlerini yapmayı dileyecekler. Örneğin:
[Süreç formasyonu](./concurrency) uygulama çalışırken uygulamanın sıradan işlerini (web isteklerini idare etmek gibi) yapmakta kullanılan süreçlerin bir dizisidir. Ayrı olarak, geliştiriciler çoğunlukla uygulamanın bir kereye mahsus yönetimsel veya bakım görevlerini yapmayı dileyecekler. Örneğin:

* Veritabanı değişikliklerini (İng. migrations) çalıştırmak (Django'da `manage.py migrate`, Rails'de `rake db:migrate`).
* Veri modelindeki (İng. migrations) değişiklikleri veritabanına yansıtmak (Django'da `manage.py migrate`, Rails'de `rake db:migrate`).
* Herhangi bir kodu çalıştırmak veya canlı yayın veritabanındaki verileri denetlemek için konsolu ([REPL](http:https://en.wikipedia.org/wiki/Read-eval-print_loop) kabuğu olarak da bilinir) çalıştırmak. Çoğu dil hiçbir argüman olmadan (`python` veya `perl`), veya bazı durumlarda ayrı komutlarla (Ruby için `irb`, Rails için `rails console`) bir REPL sağlar.
* Uygulamanın kod deposundaki betikleri çalıştırmak (`php scripts/fix_bad_records.php`).

Bir kerelik yönetim işlemleri uygulamanın sıradan [işlemleri](./processes) ile aynı ortamlarda çalışmalıdır. Bu yönetim işlemleri de aynı [sürümdeki](./build-release-run) aynı [kod tabanı](./codebase) ve [yapılandırmayı](./config) kullanarak çalışır. Yönetim kodları da uygulama kodu ile aynı kod deposunda bulunmalıdır.
Tek sefer çalıştırılması gereken yönetsel işlere ait süreçler de, uygulamanın uzun süre çalışan sıradan [süreçleri](./processes) ile birebir aynı ortamda, aynı [sürümdeki](./build-release-run) [kod tabanı](./codebase) ve [yapılandırmayı](./config) kullanarak çalışmalıdır. Uyum sorunu yaşamamak için, uygulamanın yönetimini sağlayan kod da uygulama ile birlikte geliştirilmeli ve yayınlanmalıdır.

Aynı [bağımlılık yalıtımı](./dependencies) teknikleri bütün işlem yönetiminde kullanılmalıdır. Örneğin, eğer Ruby web işlemleri `bundle exec thin start` komutunu kullanıyorsa, veritabanı göçü de `bundle exec rake db:migrate` komutu kullanmalıdır. Aynı durumda, Virtualenv kullanan bir Python programı, Tornado web sunucusu ve herhangi bir `manage.py` yönetici işlemlerinin ikisini de çalıştırabilmek için `bin/python` kullanmalıdır.
Aynı [bağımlılık yalıtımı](./dependencies) teknikleri bütün süreç tiplerinde kullanılmalıdır. Örneğin, eğer Ruby web süreçleri `bundle exec thin start` komutunu kullanıyorsa, veritabanı göçü de `bundle exec rake db:migrate` komutu kullanmalıdır. Aynı durumda, Virtualenv kullanan bir Python programı, Tornado web sunucusu ve herhangi bir `manage.py` yönetici süreçlerinin ikisini de çalıştırabilmek için `bin/python` kullanmalıdır.

On iki faktör, REPL kabuğunu kendisi sağlayan ve tek seferlik betikleri çalıştırmayı kolaylaştıran dilleri fazlasıyla destekler. Yerel dağıtımda, geliştiriciler uygulamanın dizininde doğrudan komut satırında tek seferlik yönetici işlemlerini çalıştırır. Canlı yayın dağıtımında ise, geliştiriciler bu gibi bir işlemi çalıştırmak için ssh veya dağıtımın çalışma ortamı tarafından sağlanan diğer uzak komut çalıştırma mekanizmasını kullanabilir.
On iki faktör, REPL kabuğunu kendisi sağlayan ve tek seferlik betikleri çalıştırmayı kolaylaştıran dilleri fazlasıyla destekler. Yerel dağıtımda, geliştiriciler uygulamanın dizininde doğrudan komut satırında tek seferlik yönetici süreçlerini çalıştırır. Canlı yayın dağıtımında ise, geliştiriciler bu gibi bir süreci çalıştırmak için ssh veya dağıtımın çalışma ortamı tarafından sağlanan diğer uzak komut çalıştırma mekanizmasını kullanabilir.
2 changes: 1 addition & 1 deletion content/tr/background.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@ Bu belgeye katkıda bulunan kişiler, yüzlerce uygulamanın geliştirilmesi ve

Bu belge birçok yazılım servisinde edindiğimiz deneyim ve gözlemlerimizin bir sentezidir. Uygulama geliştirme aşamasındaki ideal pratiklerin, uygulamaların zaman içindeki organik büyüyüşlerine gösterilen özel ilginin, bir uygulamanın kodları üzerinde çalışan geliştiriciler arasındaki işbirliği dinamiklerinin, ve <a href="http:https://blog.heroku.com/archives/2011/6/28/the_new_heroku_4_erosion_resistance_explicit_contracts/" target="_blank">yazılım erozyonunun getirdiği masraftan kaçınmanın</a> toplamı niteliğindedir.

Motivasyonumuz modern uygulama geliştirmelerinde gördüğümüz bazı sistemik problemlere olan farkındalığı arttırmak, bahsi geçen problemler için ortak bir terminoloji belirlemek, ve bu problemlere karşı bir dizi çözüm konsepti sunmaktır. Martin Fowler'ın kitapları olan *<a href="https://books.google.com/books/about/about/Patterns_of_enterprise_application_archi.html?id=FyWZt5DdvFkC" target="_blank">Patterns of Enterprise Application Architecture</a>* ve *<a href="https://books.google.com/books/about/Refactoring.html?id=1MsETFPD3I0C" target="_blank">Refactoring</a>*'den ilham alınmıştır.
Motivasyonumuz modern uygulama geliştirmelerinde gördüğümüz bazı sistemik problemlere olan farkındalığı arttırmak, bahsi geçen problemler için ortak bir terminoloji belirlemek, ve bu problemlere karşı bir dizi çözüm konsepti sunmaktır. Bu konsept oluşturulurken, Martin Fowler'ın kitapları olan *<a href="https://books.google.com/books/about/about/Patterns_of_enterprise_application_archi.html?id=FyWZt5DdvFkC" target="_blank">Patterns of Enterprise Application Architecture</a>* ve *<a href="https://books.google.com/books/about/Refactoring.html?id=1MsETFPD3I0C" target="_blank">Refactoring</a>*'den ilham alınmıştır.
4 changes: 2 additions & 2 deletions content/tr/backing-services.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
## IV. Yardımcı servisler
### Yardımcı servislere iliştirilmiş kaynaklar olarak davranmak
### Yardımcı servisleri iliştirilmiş kaynaklar olarak ele almak

Bir *yardımcı servis* uygulamanın kendi işlevselliğinin bir parçası olarak ağ üzerinden tükettiği herhangi bir servistir. Örnekler veritabanları ([MySQL](http:https://dev.mysql.com/) veya [CouchDB](http:https://couchdb.apache.org/) gibi), mesajlaşma/kuyruk sistemleri ([RabbitMQ](http:https://www.rabbitmq.com/) veya [Beanstalkd](https://beanstalkd.github.io)), e-posta göndermek için SMTP servisi ([Postfix](http:https://www.postfix.org/) gibi) ve önbellekleme sistemlerini ([Memcached](http:https://memcached.org/) gibi) içerir.
Bir *yardımcı servis* uygulamanın kendi işlevselliğinin bir parçası olarak ağ üzerinden tükettiği herhangi bir servistir. Yardımcı servislere örnek olarak; veritabanları ([MySQL](http:https://dev.mysql.com/) veya [CouchDB](http:https://couchdb.apache.org/) gibi), mesajlaşma/kuyruk sistemleri ([RabbitMQ](http:https://www.rabbitmq.com/) veya [Beanstalkd](https://beanstalkd.github.io)), e-posta göndermek için SMTP servisleri ([Postfix](http:https://www.postfix.org/) gibi) ve önbellekleme sistemleri ([Memcached](http:https://memcached.org/) gibi) gösterilebilir.

Veritabanları gibi yardımcı servisler, geleneksel olarak uygulamayı da yöneten sistem yöneticileri tarafından yönetilirler. Ancak bu yerel servislere ilave olarak, uygulama üçüncü parti uygulamalar tarafından sağlanan ve yönetilen servislere de sahip olabilirler. Bunlardan bazıları; SMTP servisleri ([Postmark](http:https://postmarkapp.com/) gibi), metrik toplama servisleri ([New Relic](http:https://newrelic.com/) veya [Loggly](http:https://www.loggly.com/) gibi), statik içerik barındırma servisleri ([Amazon S3](http:https://aws.amazon.com/s3/) gibi) ve hatta API-erişilebilir tüketici servisleridir ([Twitter](http:https://dev.twitter.com/), [Google Maps](http:https://code.google.com/apis/maps/index.html), ve [Last.fm](http:https://www.last.fm/api) gibi).

Expand Down
4 changes: 2 additions & 2 deletions content/tr/build-release-run.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ Bir [kod tabanı](./codebase) üç aşamada (geliştirme dağıtımı olmayan) d

* *Derleme aşaması* kod deposunun *derleme* olarak bilinen çalıştırılabilir bir pakete çevrilmesidir. Dağıtım evresi tarafından seçilen commit'teki kod kullanılır. Sistem, üçüncü parti [bağımlılıkları](./dependencies) toparlar ve çalıştırılabilirleri ve statik dosyaları derler.
* *Yayınlama aşaması*, derleme aşaması tarafından üretilmiş derlemeyi alır ve dağıtımı güncel [yapılandırmasıyla](./config) birleştirir. Son durumda oluşan *yayın* derleme ve yapılandırmanın ikisini de içerir ve çalışma ortamında çalıştırmak için hazırdır.
* *Çalıştırma evresi* (aynı zamanda "runtime" olarak bilinir) seçili yayının karşılığındaki [işlemleri](./processes) başlatarak, çalıştırma ortamındaki uygulamayı çalıştırır.
* *Çalıştırma evresi* (aynı zamanda "runtime" olarak bilinir) seçili yayının karşılığındaki [süreçleri](./processes) başlatarak, çalıştırma ortamındaki uygulamayı çalıştırır.

![Kod, sürüm oluşturmak için yapılandırmayla birleşmiş derlemeye dönüşür.](/images/release.png)

Expand All @@ -15,4 +15,4 @@ Dağıtım araçları genelde yayın yönetim araçları da sunar. En dikkat çe

Her yayın zaman damgası gibi (`2011-04-06-20:32:17` gibi) özel bir ID'ye veya her yeni yayında artan bir numaraya (`v100` gibi) sahip olmalıdır. Yayınlar yalnızca eklemeli bir defterdir ve bir kere oluşturulduğu zaman değiştirilemez. Herhangi bir değişiklik yeni bir yayın oluşturmalıdır.

Derlemeler, geliştiricilerin kod değişikliklerini kod depolarına yüklemesiyle başlatılır. Çalıştırma evresi ise, sunucuların yeniden başlatılması veya çökmüş işlemlerin tekrar ayağa kaldırılması gibi durumlarda otomatik olarak gerçekleştirilir. Bu yüzden çalıştırma evresi olabildiği kadar az sayıda hareketli parçaya sahip olmalıdır ki, gecenin bir yarısında, işinin başında olan hiçbir geliştirici yokken bozulmasın. Derleme evresi ise daha karmaşık olabilir, çünkü hatalar dağıtımı çalıştıran geliştiricilerin her zaman önündedir.
Derlemeler, geliştiricilerin kod değişikliklerini kod depolarına yüklemesiyle başlatılır. Çalıştırma evresi ise, sunucuların yeniden başlatılması veya çökmüş süreçlerin tekrar ayağa kaldırılması gibi durumlarda otomatik olarak gerçekleştirilir. Bu yüzden çalıştırma evresi olabildiği kadar az sayıda hareketli parçaya sahip olmalıdır ki, gecenin bir yarısında, işinin başında olan hiçbir geliştirici yokken bozulmasın. Derleme evresi ise daha karmaşık olabilir, çünkü hatalar dağıtımı çalıştıran geliştiricilerin her zaman önündedir.
6 changes: 3 additions & 3 deletions content/tr/codebase.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
## I. Kod Tabanı
### Versiyon kontrol sistemi üzerinde tek bir kod tabanı, birden fazla dağıtım
### Sürüm kontrol sistemi üzerinde tek bir kod tabanı, birden fazla dağıtım

On iki faktör bir uygulama her zaman [Git](http:https://git-scm.com/), [Mercurial](http:https://mercurial.selenic.com/) veya [Subversion](http:https://subversion.apache.org/) gibi bir versiyon kontrol sistemiyle izlenir. Bu versiyon kontrol sistemindeki dosya veritabanına kod deposu (İng. code repository) veya kısaca depo (İng. repo) denir.
On iki faktör bir uygulama her zaman [Git](http:https://git-scm.com/), [Mercurial](http:https://mercurial.selenic.com/) veya [Subversion](http:https://subversion.apache.org/) gibi bir sürüm kontrol sistemiyle izlenir. Bu sürüm kontrol sistemindeki dosya veritabanına kod deposu (İng. code repository) veya kısaca depo (İng. repo) denir.

Bir *kod tabanı*, tek bir depo (Subversion gibi merkezi versiyon kontrol sistemi) ya da kök *commit* paylaşan birden fazla depodan (Git gibi merkezi olmayan versiyon kontrol sistemi) oluşur.
Bir *kod tabanı*, tek bir depo (Subversion gibi merkezi sürüm kontrol sistemi) ya da kök *commit* paylaşan birden fazla depodan (Git gibi merkezi olmayan sürüm kontrol sistemi) oluşur.

![Bir kod tabanı bir çok dağıtımla eşlenir](/images/codebase-deploys.png)

Expand Down
14 changes: 7 additions & 7 deletions content/tr/concurrency.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
## VIII. Eş Zamanlılık
### İşlem modeli yardımıyla dağıtıklaştırma
### Süreç modeli yardımıyla dağıtıklaştırma

Herhangi bir bilgisayar programı bir kere çalıştığı zaman bir veya daha fazla işlem tarafından temsil edilir. Web uygulamaları çeşitli işlem çalıştırma formlarına sahiptir. Örneğin, PHP işlemleri Apache'nin alt işlemi olarak çalışır, ve istek hacmine göre ihtiyaç duyuldukça başlatılır. Java işlemleri karşıt yaklaşımı benimser; JVM, başlangıçta büyük miktarda sistem kaynağı (CPU ve bellek) ayıran büyük bir işlemi başlatır, ve eşzamanlılık iş parçacıkları (İng. threads) aracılığıyla dahili olarak yönetilir. Her iki durumda, çalışan işlemler, uygulamanın geliştiricilerine minimum düzeyde görünürdür.
Herhangi bir bilgisayar programı bir kere çalıştığı zaman bir veya daha fazla süreç tarafından temsil edilir. Web uygulamaları çeşitli süreç çalıştırma formlarına sahiptir. Örneğin, PHP süreçleri Apache'nin alt süreci olarak çalışır, ve istek hacmine göre ihtiyaç duyuldukça başlatılır. Java süreçleri karşıt yaklaşımı benimser; JVM, başlangıçta büyük miktarda sistem kaynağı (CPU ve bellek) ayıran büyük bir süreci başlatır, ve eşzamanlı iş parçacıkları (İng. threads) aracılığıyla JVM içerisinde dahili olarak yönetilir. Her iki durumda, çalışan süreçler, uygulamanın geliştiricilerine minimum düzeyde görünürdür.

![Ölçek, çalışan işlemler olarak ifade edilir, iş yükü çeşitliliği ise işlem tipi olarak tanımlanır.](/images/process-types.png)
![Ölçek, çalışan süreçler olarak ifade edilir, iş yükü çeşitliliği ise süreç tipi olarak tanımlanır.](/images/process-types.png)

**On iki faktör uygulamasında, işlemler birinci sınıf üyelerdir.** On iki faktör uygulamasındaki işlemler arkaplan servis programları çalıştırmak için olan [unix işlem modeli](https://adam.herokuapp.com/past/2011/5/9/applying_the_unix_process_model_to_web_apps/)nden güçlü ipuçları alır. Bu modeli kullanarak geliştirici, uygulamasının her iş tipini bir *işlem tipine* atayarak, farklı iş yüklerini kontrol etmek için uygulamasını planlayabilir. Örneğin, HTTP istekleri web işlemleri tarafından işlenir ve uzun çalışan arkaplan görevleri, işçi işlemler tarafından işlenir.
**On iki faktör uygulamasında, süreçler birinci sınıf üyelerdir.** On iki faktör uygulamasındaki süreçler arkaplan servis programları çalıştırmak için olan [Unix süreç modeli](https://adam.herokuapp.com/past/2011/5/9/applying_the_unix_process_model_to_web_apps/)nden güçlü ipuçları alır. Bu modeli kullanarak geliştirici, uygulamasının her iş tipini bir *süreç tipine* atayarak, farklı iş yüklerini kontrol etmek için uygulamasını planlayabilir. Örneğin, HTTP istekleri web süreçleri tarafından işlenir ve uzun çalışan arkaplan görevleri, işçi süreçler tarafından işlenir.

Bu, çalışma zamanı (İng. runtime) içindeki iş parçacıkları veya [EventMachine](https://github.com/eventmachine/eventmachine), [Twisted](http:https://twistedmatrix.com/trac/) ve [Node.js](http:https://nodejs.org/) gibi araçlarda bulunan asenkron/olay-bazlı model gibi, işlemlerin kendi çok-kanallılığını hariç tutmaz. Fakat bir sanal makinanın dikey ölçekte büyümesinin bir sınırı vardır. Bu yüzden uygulama aynı zamanda birden fazla fiziksel makinede çalışan çoklu işlemleri içerebilmelidir.
Bu, çalışma zamanı (İng. runtime) içindeki iş parçacıkları veya [EventMachine](https://github.com/eventmachine/eventmachine), [Twisted](http:https://twistedmatrix.com/trac/) ve [Node.js](http:https://nodejs.org/) gibi araçlarda bulunan asenkron/olay-bazlı model gibi, süreçlerin kendi çok-kanallılığını hariç tutmaz. Fakat bir sanal makinanın dikey ölçekte büyümesinin bir sınırı vardır. Bu yüzden uygulama aynı zamanda birden fazla fiziksel makinede çalışan çoklu süreçleri içerebilmelidir.

Bu işlem modeli, konu ölçeklendirmeye geldiğinde gerçekten farkını ortaya koyar. Paylaşımsız, yatay olarak bölümlenebilir bir doğası olan on iki faktör uygulama işlemleri, daha fazla eş zamanlılık eklemenin kolay ve güvenilir bir iş olduğu anlamına gelir. İşlem tipleri dizisi ve her bir tipin işlem sayısı *işlem formasyonu* olarak bilinir.
Bu süreç modeli, konu ölçeklendirmeye geldiğinde gerçekten farkını ortaya koyar. Paylaşımsız, yatay olarak bölümlenebilir bir doğası olan on iki faktör uygulama süreçleri, daha fazla eş zamanlılık eklemenin kolay ve güvenilir bir iş olduğu anlamına gelir. Süreç tipleri dizisi ve her bir tipin süreç sayısı *süreç formasyonu* olarak bilinir.

On iki faktör uygulama işlemleri [asla arkaplan işlemleri başlatmamalı](http:https://dustin.github.com/2010/02/28/running-processes.html) ya da PID dosyaları yazmamalıdır. Bunun yerine, [çıktı akışlarını](./logs) kontrol etmek, çökmüş işlemlere cevap vermek, kullanıcı sebepli tekrar başlatma ve kapatmaları işlemek için işletim sistemlerinin işlem yöneticisine ([systemd](https://www.freedesktop.org/wiki/Software/systemd/) gibi bulut platformunda yayınlanmış işlem yöneticisi veya geliştirme sırasında [Foreman](http:https://blog.daviddollar.org/2011/05/06/introducing-foreman.html)'e benzer araçlar) dayanır.
On iki faktör uygulama süreçleri [asla arkaplan süreçleri başlatmamalı](http:https://dustin.github.com/2010/02/28/running-processes.html) ya da PID dosyaları yazmamalıdır. Bunun yerine, [çıktı akışlarını](./logs) kontrol etmek, çökmüş süreçlere cevap vermek, kullanıcı sebepli tekrar başlatma ve kapatmaları süreçek için işletim sistemlerinin süreç yöneticisine ([systemd](https://www.freedesktop.org/wiki/Software/systemd/) gibi bulut platformunda yayınlanmış süreç yöneticisi veya geliştirme sırasında [Foreman](http:https://blog.daviddollar.org/2011/05/06/introducing-foreman.html)'e benzer araçlar) dayanır.
Loading

0 comments on commit e64037e

Please sign in to comment.