Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
e-Devlet ve EBA
Yazılım Mimarileri
phpist 2013
Bu sunumdaki yer alan
tüm bilgiler herhangi bir
kurumu veya kuruluşu
kesinlikle bağlamaz
UI
UX
Kullanılabilirlik
Erişebilirlik
jQuery
php python
java
pL/sql
Redis.io
Mongo memcache
nginx
tornado
tomcat
*nix
java...
Sunum Planım
Ankara’daki yazılım projeleri nasıl
Kamudaki PHP’ye bakış
Bizim ekibin görüşü nasıl
e-Devlet Kapısı
* PHP’den...
Ankara’da
Yazdığı projesi çökmeyen
Çökse de belli etmeyen
Belli etse de hemen gelip uğraşan
Firma
dolayısıyla
YAZILIM DİLİ...
Çağrı Merkezi
Komple Çözüm
Hatasız
Devam Ettirilebilir
Her Mühendis Anlar
Aldığım hizmet ucuz
Ne aldığımı biliyorum
Window...
DEVLET
• PHP kötü bir dildir
• PHP’yi yazacak firma bulamayız
• PHP’nin çok açığı var
• PHP geliştirici bulamıyoruz
• PHP’...
Türkiye
• Firmalar .net aşığı
• Komple çözüm
• Destek sağlayamayız
• Güvenlik açığı çok
• Performans problemi var
• Eski P...
Biz ne yaptık
• Yazılım Projesi ne demek?
• Yazılım Projesi nasıl yönetilir?
• Yazılım Projesinde özellikler nasıl belirle...
e-Devlet Kapısı
Öncesi Sonrası
İlk versiyon 2008-2009
100.000 Kullanıcıya kadar
PORTLETLER
WSDL
Layer7 GW
İlk versiyon 2009-2012
14.000.000 Kullanıcıya kadar
PORTLETLER
WSDL
Layer7 Gateway
Güncel 2012-..
15.000.000 Kullanıcı
PHP -> Servlet
JAVA Servlet ->WSDL
Layer7 Gateway
PHP Seçtik Çünkü
Hızlı Deployment
Sorunsuz çalışan bir özelleşmiş FW
Hızlı
Hata tolere edebilen bir sunucu mimarisi
NGINX
...
Eğitim Bilişim Ağı
Bugünü ve sonrası
Modüler
Entegre edilebilir/olunabilir
Herkesin geliştirebileceği
Hızlı ve Az hata veren
Arayüzü güzel
Ekibi ve Müşterileri...
Güncel Mimari
Geliştirilmekte olan yapı
İstatistikler
~40k tekil ziyaretçi
~200k gösterim
~4 dk ortalama
kullanıcının harcadığı
süre
~480k satır PHP
~400k JAVA
~7...
PHP / NGINX / LOG
PSR-0
PSR-1
PSR-2
OOP
NETBEANS
JSON
Memcached
Twig
PHPUNIT
Selenium
PHP-FPM
NGINX
GitlabHQ
GIT
GELF/Gray...
JAVA SERVLET
JSON Output
PreparedStatement
SQL Injection Korumalı
MySQL connection pooling
Mongo bağlantısı daha iyi
Glass...
Sistem
Debian
Percona
Mongodb 2.4
PHP 5.4.x
NGINX
Memcache Clustered
Open Stack
KVM
Özelleşmiş LoadBlancer
PHP
JAVA SERVLET
LOG
DB
CACHE
IDM
EKİP
e-Devlet Kapısı
• 7-8 Mühendis
• 4-5 Networkçü
• 2-3 Sistemci
• 2-3 Analist
• 2-3 Tester
• 1 Ekip Lideri
• 1 Yönetici...
Hedeflerimiz
bunları size yaptırmak için planladık
Message Queue
RabbitMQ beğendik
Senkron / Asenkron işler olacak
Pipe
Thrift
API
Şuandaki tüm servislerimizi API
ile dışarıya açacağız.
İlk aşamada salt-okunur listeleme
fonksiyonları
Son aşamada içe...
oAuth 1.1a
EBA ile tüm sitelere giriş
yapılabilmesini yapacağız.
- wordpress plugin
- android için EBA Authenticator
- iOS...
Takip
MongoDB ile yapabiliriz diye
planladık
17 Milyon Kullanıcı
Gruplar (private/public)
Harici Modüller
- Sizin yaptığınız eğitime yönelik
projeler
- Analiz Araçları
- Raporlama araçları
- Depolama çözümleri
- ...
Teşekkür Ederim
huseyin.mert@eba.gov.tr
@hmert
Upcoming SlideShare
Loading in …5
×

Büyük Kamu Projelerinde PHP Kullanımı @ Phpİst 2013

3,629 views

Published on

Büyük Kamu Projelerinde PHP Kullanımı hakkında bilgiler verdiğim; e-Devlet Kapısı ve Eğitim Bilişim Ağı Yazılım mimarisi hakkında detaylı bilgiler verdiğim sunumum.

Published in: Technology
  • Be the first to comment

Büyük Kamu Projelerinde PHP Kullanımı @ Phpİst 2013

  1. 1. e-Devlet ve EBA Yazılım Mimarileri phpist 2013
  2. 2. Bu sunumdaki yer alan tüm bilgiler herhangi bir kurumu veya kuruluşu kesinlikle bağlamaz
  3. 3. UI UX Kullanılabilirlik Erişebilirlik jQuery php python java pL/sql Redis.io Mongo memcache nginx tornado tomcat *nix javascript mysql postgresql
  4. 4. Sunum Planım Ankara’daki yazılım projeleri nasıl Kamudaki PHP’ye bakış Bizim ekibin görüşü nasıl e-Devlet Kapısı * PHP’den öncesi PHP’den sonrası Eğitim Bilişim Ağı * Nasıl yaptık ve ne noktayı hedefliyoruz * Ne zorluklar yaşadık * Neler yapacağız/yapacaksınız Size Sorularım
  5. 5. Ankara’da Yazdığı projesi çökmeyen Çökse de belli etmeyen Belli etse de hemen gelip uğraşan Firma dolayısıyla YAZILIM DİLİ Kazanır
  6. 6. Çağrı Merkezi Komple Çözüm Hatasız Devam Ettirilebilir Her Mühendis Anlar Aldığım hizmet ucuz Ne aldığımı biliyorum Windows gibi
  7. 7. DEVLET • PHP kötü bir dildir • PHP’yi yazacak firma bulamayız • PHP’nin çok açığı var • PHP geliştirici bulamıyoruz • PHP’de kütüphane az • PHP projelerinin arayüzü kötü • PHP geliştiricileri tembel • PHP’de standart yok • PHP’de problem yaşasak yalnızız • PHP’deki hatayı herkes görür
  8. 8. Türkiye • Firmalar .net aşığı • Komple çözüm • Destek sağlayamayız • Güvenlik açığı çok • Performans problemi var • Eski PHP’ciler .net’ci oldu • Türkçe kaynak yok • OOP ne la? • WordPress çok cpu yiyor
  9. 9. Biz ne yaptık • Yazılım Projesi ne demek? • Yazılım Projesi nasıl yönetilir? • Yazılım Projesinde özellikler nasıl belirlenir? • Yazılım Projesinde FAZ’lar nasıl belirlenir? • Yazılım Projesinde yol haritasında değişiklik neden ve nasıl yapılır • Yazılım Projesinde hata çıkınca ne yapılır?
  10. 10. e-Devlet Kapısı Öncesi Sonrası
  11. 11. İlk versiyon 2008-2009 100.000 Kullanıcıya kadar PORTLETLER WSDL Layer7 GW
  12. 12. İlk versiyon 2009-2012 14.000.000 Kullanıcıya kadar PORTLETLER WSDL Layer7 Gateway
  13. 13. Güncel 2012-.. 15.000.000 Kullanıcı PHP -> Servlet JAVA Servlet ->WSDL Layer7 Gateway
  14. 14. PHP Seçtik Çünkü Hızlı Deployment Sorunsuz çalışan bir özelleşmiş FW Hızlı Hata tolere edebilen bir sunucu mimarisi NGINX Hızlıca adapte olunabilecek bir altyapı dizayn edilmiş olması Sağlam 1-2 tane GURU developer İnanmış bir ekip
  15. 15. Eğitim Bilişim Ağı Bugünü ve sonrası
  16. 16. Modüler Entegre edilebilir/olunabilir Herkesin geliştirebileceği Hızlı ve Az hata veren Arayüzü güzel Ekibi ve Müşterileri MUTLU
  17. 17. Güncel Mimari Geliştirilmekte olan yapı
  18. 18. İstatistikler ~40k tekil ziyaretçi ~200k gösterim ~4 dk ortalama kullanıcının harcadığı süre ~480k satır PHP ~400k JAVA ~70 Proje 3 MongoDB replica 1 MySQL 10 Memcache 10 önyüz 3 Servis (Glassfish) 10 Mutlu Mühendis 1 Analist 1 Tester
  19. 19. PHP / NGINX / LOG PSR-0 PSR-1 PSR-2 OOP NETBEANS JSON Memcached Twig PHPUNIT Selenium PHP-FPM NGINX GitlabHQ GIT GELF/Graylog REGISTER GLOBAL :P
  20. 20. JAVA SERVLET JSON Output PreparedStatement SQL Injection Korumalı MySQL connection pooling Mongo bağlantısı daha iyi GlassFish Tüm exeptionlar yakalanmış Her işlem LOG’lanmış JSR-254 uygun JOIN az çok az
  21. 21. Sistem Debian Percona Mongodb 2.4 PHP 5.4.x NGINX Memcache Clustered Open Stack KVM Özelleşmiş LoadBlancer
  22. 22. PHP JAVA SERVLET LOG DB CACHE IDM
  23. 23. EKİP e-Devlet Kapısı • 7-8 Mühendis • 4-5 Networkçü • 2-3 Sistemci • 2-3 Analist • 2-3 Tester • 1 Ekip Lideri • 1 Yönetici • 15 Milyon Kullanıcı • %5 Aktif • Operasyon çok az Eğitim Bilişim Ağı • 2-10 Mühendis • 2 Networkçü • 1 Sistemci • 2 Analist • 1 Tester • 1 Ekip Lideri • 2 Yönetici • 17 Milyon Kullanıcı • Tahmini %10 Aktif • Sürekli operasyon
  24. 24. Hedeflerimiz bunları size yaptırmak için planladık
  25. 25. Message Queue RabbitMQ beğendik Senkron / Asenkron işler olacak Pipe Thrift
  26. 26. API Şuandaki tüm servislerimizi API ile dışarıya açacağız. İlk aşamada salt-okunur listeleme fonksiyonları Son aşamada içerik ekleyebilme özellikleri
  27. 27. oAuth 1.1a EBA ile tüm sitelere giriş yapılabilmesini yapacağız. - wordpress plugin - android için EBA Authenticator - iOS için - Cross Platform
  28. 28. Takip MongoDB ile yapabiliriz diye planladık 17 Milyon Kullanıcı Gruplar (private/public)
  29. 29. Harici Modüller - Sizin yaptığınız eğitime yönelik projeler - Analiz Araçları - Raporlama araçları - Depolama çözümleri - Uzaktan yönetim
  30. 30. Teşekkür Ederim huseyin.mert@eba.gov.tr @hmert

×