Python ile RESTful Mikro Servisler Geliştirmek
Selçuk Bozdağ
Havelsan EHSİM A.Ş., Ankara
[email protected]
Özet: Mikro servisler, yazılım uygulamalarını geliştirmek için birbirinden bağımsız biçimde
çalıştırılabilen ve yüklenebilen yazılım uygulamalarıdır. UNIX felsefesinde yer alan “tek bir
görevi en iyi şekilde yapmak ve diğer görevlerle iletişim kurabilmek” ilkesinden yola çıkarak,
her türlü uygulamanın birden çok mikro servise ayrılmasını esas alır.
Çok katmanlı, tek bir çatıyı kullanarak büyük bir uygulamayı geliştirmek yerine, uygulamayı
birbirinden bağımsız servisler olarak da tasarlamak mümkündür. Facebook, Twitter, Yahoo!
ve Google gibi şirketlerin ürünleri tek bir takım içerisinde dağıtık olarak çalışan, bağımsız
olarak gerçekleştirilmiş buna rağmen birbirleriyle entegre olabilen mikro servislerden
oluşmaktadırlar. Örneğin Google, kendisine ait sosyal ağ projesi Google+ için YouTube ya da
Blogspot blog uygulamasındaki içerikleri kolayca kullanabilmektedir.Bunun için YouTube ve
Blogspot üzerinde çalışan mikro servislerden faydalanmaktadır.
HTTP protokolünü temel alan RESTful mimarilerle geliştirilen mikro servisler sayesinde,
veri erişiminde standart ve bakımı kolay iletişim sunulabilinmektedir.
Kurs boyunca, bu mimarilerin en temel bloğu olan mikro servislerin Python dili ve araçları ile
güvenliği ön planda tutarak nasıl geliştirileceğini örneklerle anlatılıyor olacaktır.
Amaç ve Kapsam
Kursun amacı, yazılım geliştirme mimarisi olarak mikro servis mimarisini tanıtmak ve Python
ile geliştirilen ağ uygulamalarında bu mimarinin nasıl gerçekleştirilebileceğini öğretmektir.
Öğrenme Amaçları
Bu eğitim sonunda kursiyerler,
–
–
–
–
Açık verinin ne demek olduğunu,
Veri paylaşımının insan-makine ve makine-makine arasında nasıl sağlanması
gerektiğini,
Veri paylaşımında mikro servis mimarisinin neden, ne zaman ve nasıl
kullanılabileceğini,
Python dili ile edinilen teorik bilgileri pratikte nasıl uygulayabileceklerini
öğreneceklerdir. Eğitimin en önemli kazancı sistematik ve pragmatik servislerle, verilerin
İnternet protokolüne uygun olarak ağ nötr ortamlarda dağıtık olarak nasıl paylaşabileceğini
öğrenmektir.
Hedef Kitle
–
–
Yazılım Geliştiricileri
Yazılım Mimarları
Ön Koşullar
Kursiyerlerin , başlangıç seviyesinde yazılım örüntüleri ve Python dili ile programlama
bilgilerine sahip olmaları gerekmektedir.
Ön Hazırlıklar
Kursiyerlerin eğitimde kendi kişisel bilgisayarlarını sağlamaları gerekmektedir. Eğitim
sürecinde gerekli yazılımlar İnternet üzerinden indirileceği için, İnternet bağlantısı
sağlanmalıdır. İndirilecek olan yazılımların hepsi özgür yazılımlardır. Herhangi bir işletim
sistemine bağımlılık bulunmamaktadır. Bununla birlikte eğitmen bilgisayarı ve eğitimde
kullanılacak işletim sistemi Debian Linux olacaktır. Kursiyerlerin Debian ya da Debian tabanlı
bir işletim sistemini(Pardus Linux, Ubuntu, Mint vb) bilgisayarlarına yüklemiş olmaları
önerilmektedir.
Eğitim sunularının ve canlı kodlama oturumlarının yansıtılması için VGA girişi olan bir
projeksiyon cihazı eğitimene sağlanmalıdır. Eğitmen, kendi kişisel bilgisayarı ile eğitimi
gerçekleştirecek olup, gerekli özgür yazılımları indirebilmesi için, İnternet bağlantısına ihtiyaç
duymaktadır.
Eğitim Notları ve Örnek Kodlar
Eğitim notları hem -İnternetten indirilebilir biçimde- elektronik ortamda hem de basılı olarak
kursiyerlere dağıtılacaktır.
Eğitim sırasında verilen örnekler ve kurs sırasında gerçekleştirilen egzersizlere ait kodlar ise
-Internetten indirilebilir biçimde- elektronik ortamda kurs bitiminde paylaşılacaktır.
Azami Katılımcı Sayısı
Azami kursiyer sayısı 25 kişi olarak sınırlandırılmıştır. Daha fazla başvuru olması durumunda,
kursiyer adaylarına uygulanacak bir anket sonucunda 25 kişilik mevcut oluşturulacaktır.
Eğitmen Hakkında
Selçuk Bozdağ, on yılı aşan bir süredir yazılım geliştiriciliği ve mimarlığı yapmaktadır. 2002
yılında Hacettepe Üniversitesi, Bilgisayar Mühendisliği bölümünden mezun olduktan sonra,
Havelsan, KoçSistem, Meteksan Savunma, Pfizer UK ve Innova şirketlerinde açık kaynaklı
yazılımlar kullanarak kurumsal ve savunma sanayi yazılımları geliştirmiştir. 2013 yılında,
Fatih Projesi kapsamında geliştirilen Akıllı Tahtalar için Pardus Linux dağıtımında masaüstü
ortamının geliştirilmesinde de görev almıştır. Pfizer UK için Django ortamında geliştirdiği
laboratuvar yönetim sistemi özgür bir yazılım olarak dağıtılmaktadır. Sistem yazılımlarının
ölçeklenebilir ve dağıtık ortamlarda geliştirilmesi konusunda özelleşmiştir. Halen Havelsan
EHSİM A.Ş.'de uzman yazılım mühendisi olarak görev yapmaktadır.
Eğitim Programı
31 Ocak 2015, Cumartesi
Verileri İnternet Ağında Yayınlamak
– Öğleden Önce: Web Uygulamalarında Kullanılan Yazılım Mimarileri ve Örüntüleri
– Öğleden Sonra: Mikro Servis Mimarisi, Portlar ve Adaptörler Yazılım Örüntüsü
1 Şubat 2015, Pazar
Django ile Sistematik Uygulamalar Geliştirmek
– Öğleden Önce: Django Çatısı Temel Eğitimi – Bölüm 1
– Öğleden Sonra: Django Çatısı Temel Eğitimi – Bölüm 2
2 Şubat 2015, Pazartesi
RESTful Tasarım Mimarisi
– Öğleden Önce: RESTful Django
– Öğleden Sonra: Kompozit Django Servisleri ile Verilerin Dışarı Açılması
3 Şubat 2015, Salı
Veriye Erişimde Güvenlik
– Öğleden Önce: Mikro Servislerin Güvenliği ve Django'da Uygulamaları
– Öğleden Sonra: İstemci Entegrasyonu
Download

Python ile RESTful Mikro Servisler Geliştirmek