
Twitter’da alanında uzman kişilerin değerli paylaşım serilerini (flood) okumak kime keyif vermiyor ki? Hatırlarsınız geçtiğimiz aylarda Yapı Kredi Bankası Genel Müdür Yardımcısı Yakup Doğan’ın kripto para işine girenlerle ilgili hiciv dolu tweetlerini sizlerle paylaşmıştık.
Dikkatimizi çeken, oldukça öğretici bir tweet serisinin bu seferki sahibi Eren Türkay. Kendisi Amazon Web Services’te Sistem Geliştirme Mühendisi olarak çalışıyor. Kendisi Amazon’da geçirdiği 2 yıl boyunca edindiği operasyonel tecrübeleri Twitter’de paylaştı. DevOps veya benzeri işler yapan herkesin işine yarayabileceğini düşündüğü(müz) bu “flood” ile sizleri baş başa bırakıyoruz:
1- Mitigate the impact. Herhangi bir operasyonun ilk kuralı. Öncelikle hata ne sebepten olursa olsun yapılması gereken hatayı o anda tam anlamıyla çözmek yerine yara bandı sarmak yönettiğiniz sistemin servis verebilmesini sağlamak.
— Eren Türkay (@erenturkay) June 18, 2018
2- Graphs and Dashboard. Hatayı incelerken gözünüz ve kulağınız bunlar olacak. Eğer elinizde metrik ve bu metrikleri göreceğiniz bir sayfa yoksa hatayı anlamanız çok zor olacaktır. Karanlıkta ışıksız yol almak gibi, düşe kalka yolunuzu bulursunuz ama bunu istemezsiniz.
— Eren Türkay (@erenturkay) June 18, 2018
3- Alarm. Elinizde metrik olduğu zaman bu metrikler üzerinde alarm tanımlamanız ve bu alarmların mantıklı olması önemlidir. Alarmları gerçekten ihtiyacınız ölçüsünde tanımlamalısınız. Her alarm müdahale edilecek bir alarm olmayabilir …
— Eren Türkay (@erenturkay) June 18, 2018
3 (..) ve fazla alarm gelmesi ilerde bunu normalleştirmenize, müdahale etmemenize sebep olabilir ve var olan problemi gözden kaçırdığınız için ilerde daha büyük bir probleme yol açabilir. (normalization of deviance)
— Eren Türkay (@erenturkay) June 18, 2018
3 (..) Aynı zamanda bu alarmları tanımlarken hata payı bırakmanız gerekmekte. Yönettiğiniz sistem problemsiz olarak 20k/s sunabiliyor ve normal trafiğiniz 5k civarında mı, öyleyse 10k/s için alarm tanımlamanız mantıklı olabilir. Bunun için bir formül yok malesef.
— Eren Türkay (@erenturkay) June 18, 2018
4- Servis Bağımlılıkları. Yönettiğiniz servisin bağımlılıklarının ne olduğunu ve bu bağımlılıklar çalışmaz hale geldiğinde neler yaşandığını bilmeniz gerekmekte. Hiçbir servis 100% çalışma garantisi ver(e)mez ve bu senaryoyu hesaba katmalısınız.
— Eren Türkay (@erenturkay) June 18, 2018
5- Exponential Backoff. Bağımlı olduğunuz servisi çağırırken, servis ulaşılamaz hale geldiğinde tekrar tekrar, sürekli denemek o servisin halihazırda kötü olan durumunu daha kötü yapacaktır. Bir nevi kendi ayağınıza sıkmak diyebiliriz ve çokça karşılaşılan bir durum.
— Eren Türkay (@erenturkay) June 18, 2018
5 (..) Bunun yerine servis ulaşılamaz hale geldiğinde geri çekilip, belli aralıklarla tekrar denemek, hala ulaşılamaz ise bu bekleme süresini daha da uzatmak yapacağınız en doğru şey olacaktır. https://t.co/JdANbMhbGu
— Eren Türkay (@erenturkay) June 18, 2018
6- Runbooks. Her alarm için bu alarm geldiğinde ne yapılması gerektiğine dair takip edilecek bir belge olması işinizi kolaylaştıracaktır. Şirkette tek kişi siz olabilirsiniz ancak şirketiniz büyüdüğü zaman o anki operatörün o olaya müdahale edebilmesi gerekmekte.
— Eren Türkay (@erenturkay) June 18, 2018
7- Canary. Servisinizi sürekli dışardan, bir müşteri gibi çağıran ve bu çağrıları metrik olarak sunan araçlarınız olmalı. Servisinizi müşteri gözünden görmelisiniz. Sizin kontrolünüzde olmayan hataları görmenizde yardımcı olacaktır.
— Eren Türkay (@erenturkay) June 18, 2018
7 (..) Örneğin içerden gelen metrikler normal iken, dışarıdan ulaşmak isteyen bir kullanıcı hata rapor ettiğinde ‘her şey normal’ demeniz hatayı tespit etmede zaman harcayacağınız anlamına gelir. Bu yüzden mümkün olduğunca diverse şekilde müşteri gibi çağrılar yapmalısınız.
— Eren Türkay (@erenturkay) June 18, 2018
Bütün şirketin kullandığı, binlerce sunucu ile hizmet veren bir takımdayım (Infrastructure DNS) ve 2 yılda edindiğim tecrübelerin özeti bu şekilde. Tabii ki bunlar mutlak doğru anlamına gelmiyor. Umarım işinize yarar. Baştaki yazım hatası için kusura bakmayın :)
— Eren Türkay (@erenturkay) June 18, 2018
Bütün şirketin kullandığı, binlerce sunucu ile hizmet veren bir takımdayım (Infrastructure DNS) ve 2 yılda edindiğim tecrübelerin özeti bu şekilde. Tabii ki bunlar mutlak doğru anlamına gelmiyor. Umarım işinize yarar. Baştaki yazım hatası için kusura bakmayın 🙂
— Eren Türkay (@erenturkay) June 18, 2018
* Bu yazı Eren Türkay'ın bilgisi dahilinde paylaşılmış ve kendisinin en başta yazım yanlışı yaptığı tweet yazıya eklenmemiştir.