1. Bulut Odaklı Yazılım
Geliştirmede
Yeni Roller ve Sorumluluklar
Gökhan Şengün
devnot – Developer Summit İstanbul 2018
gokhansengun@gmail.com
@gokhansengun
gokhansengun.com
medium.com/@gokhansengun
2. •Bulut Hizmet Çeşitleri
•IaaS, PaaS, SaaS, CaaS, FaaS
•Önemi/Etki Alanı Artan ve Azalan
Roller
•Uygulama Geliştirme Döngüsünde
Değişen Mekanikler
•Değişimler ve Getirdikleri
Ajanda
4. IaaS (Infrastructure as a Service) Servis olarak altyapıyı sunma
• Bulut hizmet sağlayıcı sanal ya da çıplak metal sunucu sağlıyor
• Bulut hizmet sağlayıcı sunucu donanım bakımını üstleniyor
• Kullanıcı sunucu üzerine işletim sistemi, platform ve uygulama
kurulumu yapıyor
• Kullanıcı işletim sistemi ve platformun yamalama ve bakımını
üstleniyor
• Hizmet sağlayıcı verdiği hizmeti değişik kriterlere göre ve
genellikle süre bazında faturalıyor
• Örnekler
• AWS EC2 (Elastic Compute Cloud)
• Azure Compute Services
• Google Compute Engine
Bulut Hizmet Çeşitleri
5. PaaS (Platform as a Service) Servis olarak platformu sunma
• Bulut hizmet sağlayıcı sunucu ile birlikte uygulamanın koşacağı
platformu (JVM, Node.js, PHP runtime) da sağlıyor
• Bulut hizmet sağlayıcı sunucu ve platform bakımını üstleniyor
• Kullanıcı sadece kendi uygulamasının güncellemesini yapıyor
• Hizmet sağlayıcı sistemin belirli sınırlar içerisinde ölçeklemesini
yapıyor
• Hizmet sağlayıcı verdiği hizmeti değişik kriterlere göre ve
genellikle süre bazında faturalıyor
• Örnekler
• Heroku
• AWS Elastic Beanstalk
• Azure App Service
• Google App Engine
• OpenShift
• CloudFoundry
Bulut Hizmet Çeşitleri
8. SaaS (Software as a Service) Servis olarak yazılımı sunma
• Hizmet sağlayıcı platformun yanında platform ve uygulama
güvenliği dahil uygulamayı da sağlıyor
• Kullanıcı sadece uygulamayı kullanıyor
• Hizmet sağlayıcı verdiği hizmeti değişik kriterlere göre faturalıyor
• Örnekler
• Gmail
• Office 365
• Salesforce
• Dropbox
• Slack
• Adisyo
• Blazemeter
Bulut Hizmet Çeşitleri
13. CaaS (Container as a Service) Servis olarak konteyner sunma
• Hizmet sağlayıcı konteyner platformunu sunuyor
• Örnekler
• GKE (Google Container Engine)
• AKS (Azure Kubernetes Service)
• ACS (Amazon Container Service)
• EKS (Amazon Elastic Container Service for Kubernetes)
FaaS (Function as a Service) Servis olarak fonksiyon sunma
• Hizmet sağlayıcı kullanıcının fonksiyonlarını koşturabileceği
platformu sağlıyor
• Örnekler
• Amazon Lambda
• Google Cloud Functions
• Azure Functions
Bulut Hizmet Çeşitleri
14. Bir Bakışta Neler Değişiyor?
• Veri merkezi işletmesinden kesin olarak kurtuluyoruz
• Elektrik gitti
• Su bastı
• Kepçe fiber kablosunu kopardı bahaneleri artık yok.
• PaaS ile platform güvenliği ve işletmesinden de kurtuluyoruz
• Ürün ve hizmetlerimizi IaaS ve PaaS ile hazırlayıp SaaS modeli ile
satıp ilk yatırım maliyetimizi hafifletiyoruz
• Ana işimiz olmayan ancak ihtiyaç duyduğumuz yan hizmetleri (log
yönetimi, cache yönetimi, vb) dışarıdan temin ediyoruz. Böylece;
• Hizmet sunan aynı hizmeti çok kişiye sağladığı için
• Ucuza malediyor
• Daha kaliteli yapıyor
• Hizmet alan ise kaliteyi ucuza alıyor, işine odaklanıyor
16. Önemi/Etki Alanı Artan Roller
Ürün Yöneticisi, Ön Yüz Tasarımcı, Ön Yüz Geliştirici
• Bulut üzerinden sunulan ürünlerin
• Genele hitap etmesi
• Kolay ve etkili kullanılması
• Eksik özelliklerin ürünün ruhuna uygun tamamlanması
• Ürünün zamana ayak uydurması
Uygulama/Sistem Güvenliği Uzmanı
• Bulut üzerinden sunulan ürünlerin
• Servislerin genele açılması sebebiyle artan risk
• 3. parti servislerin kullanımı sebebiyle meydana çıkan riskler
Site Reliability Engineer
• Bulut üzerinden sunulan ürünlerin
• Ölçeklenmesi
• Kararlılığının artırılması
17. Kendini Dönüştürmesi Gereken Roller
Sistem Mühendisi, Ağ Mühendisi -> Cloud, DevOps
Mühendisi
• Buluta taşınan sistem ve ağ ekipmanlarından dolayı yönetecek
ekipman/ağ kalmaması
• Bulutta kullanılan kaynakların maliyet etkin biçimde
kullanılması/kullandırılması
• Yönetilen sistemin en uygun biçimde buluta uygun hale
getirilmesi
• Sistemin bulut üzerinde yedekliliğinin sağlanması
18. Önemi/Etki Alanı Azalan Roller
Manuel Test Mühendisi
• Bulut üzerinden sunulan ürünlerin
• Fonksiyon ve kullanım çeşitliliği bakımından manuel testi imkansız hale
getirmesi
• Müşteri memnuniyetsizliği direkt müşteri kaybına sebep olacağı için
test otomasyon yatırımına hizmet sağlayan tarafından katlanılması
• Daha fazla ve maliyet etkin insan kaynağının test otomasyon yapar hale
gelmesi
Sistem İzleme Mühendisi (NOC, vb)
• Bulut hizmet sağlayıcıların
• Otomatik izleme ve müdahale desteği sağlaması
• APM (Application Performance Monitoring) araçları ile uygulama
hatalarının izlenmesinin kolaylaşması
• Uçtan uca test ve izleme yapan araçların test otomasyon ile
entegrasyonu
20. Uygulama ve Platform Arasında Kontratlar
Loglama
• Uygulama loglarını konsola yazar, dosya, vb ile uğraşmaz
• Platform, uygulamanın konsoluna yazdığı logları istenen log
seviyesinde istenen yere (syslog, logstash, fluentd, vb) aktarır
Metrik Toplama
• Uygulama çalışma zamanı ile ilgili metrikleri sunar
• Platform, uygulamanın sunduğu uçtan (endpoint) periyodik
sorgular yaparak metrikleri kaydeder
Yeniden Başlatılma
• Uygulama sağlıklı çalışıp çalışmadığını sunar
• Platform, periyodik olarak uygulamanın sağlıklı çalışıp
çalışmadığını kontrol eder ve sağlıklı çalışmıyorsa uygulamayı
yeniden başlatır
21. Uygulama ve Platform Arasında Kontratlar
Versiyon Güncelleme
• Uygulama versiyon güncellemeden habersizdir
• Platform, uygulamanın yeni versiyonunu ayağa kaldırıp trafiği ona
yönlendirmeye başlar
• Platform, başarılı geçiş sonrası eski versiyonu öldürür
Kimlik Doğrulama ve Yetkilendirme
• Uygulama bir servise ulaşmak için yürütmesi gereken kimlik
doğrulama ve yetkilendirme prosedürlerinden habersizdir
• Platform, uygulama adına gerekli kimlik doğrulama ve
yetkilendirme prosedürlerini yürütür
22. Uygulama ve Platform Arasında Kontratlar
Devre Kesici Kalıp (Circuit Breaker Pattern)
• Uygulama devre kesiciden habersizdir
• Platform belirlenen aralıklar ve eşik değere göre devreyi açmaya
karar verir
24. Değişimler ve Getirdikleri
Kullanılan Yazılım Dillerinde Değişiklikler
• Servislerin küçülmesi
• Derlenmeden çalışan dillerle daha pratik kodlama yapılması
• Yeni iş gücünün derlenmeden çalışan dillere yatkınlığı
• Node.js, Python, Ruby, vb kullanımında artış
Artan 3. Parti Bağımlılıklar
26. Değişimler ve Getirdikleri
3. Parti Bağımlılıklarla Gelen Güvenlik Problemleri
• 3. parti bağımlılıkların denetlendiği servisleri kullanmak şart
27. Değişimler ve Getirdikleri
3. Parti Bağımlılıklarla Gelen Güvenlik Problemleri
• 3. parti bağımlılıkların denetlendiği servisleri kullanmak şart
28. Değişimler ve Getirdikleri
3. Parti Bağımlılıklarla Gelen Lisans
Problemleri
• 3. parti bağımlılıkların lisanslarının
uygulama lisansına uyumluluğunu
araştırmak şart
3. Parti Bağımlılıklarla Gelen
Yönetim Problemleri
• Azer Koçulu ”leftpad”i npm’den sildi
ve …