büyük kamu projelerinde php kullanımı @ phpİst 2013
DESCRIPTION
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.TRANSCRIPT
e-Devlet ve EBA
Yazılım Mimarileriphpist 2013
Bu sunumdaki yer alan
tüm bilgiler herhangi bir
kurumu veya kuruluşu
kesinlikle bağlamaz
UIUX
Kullanılabilirlik
Erişebilirlik
jQuery
php python
java
pL/sql
Redis.io
Mongo memcache
nginxtornado
tomcat
*nix
javascript
mysql
postgresql
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
Ankara’daYazdığı projesi çökmeyen
Çökse de belli etmeyen
Belli etse de hemen gelip uğraşan
Firma
dolayısıyla
YAZILIM DİLİ
Kazanır
Çağrı Merkezi
Komple Çözüm
Hatasız
Devam Ettirilebilir
Her Mühendis Anlar
Aldığım hizmet ucuz
Ne aldığımı biliyorum
Windows gibi
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
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
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?
e-Devlet KapısıÖncesi Sonrası
İlk versiyon 2008-2009100.000 Kullanıcıya kadar
PORTLETLER
WSDL
Layer7 GW
İlk versiyon 2009-201214.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
Hızlıca adapte olunabilecek bir altyapı dizayn edilmiş olması
Sağlam 1-2 tane GURU developer
İnanmış bir ekip
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
MUTLU
Güncel MimariGeliş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
~70 Proje
3 MongoDB replica
1 MySQL
10 Memcache
10 önyüz
3 Servis (Glassfish)
10 Mutlu Mühendis
1 Analist 1 Tester
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
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
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
• 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
Hedeflerimizbunları size yaptırmak için planladık
Message QueueRabbitMQ 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çerik ekleyebilme
özellikleri
oAuth 1.1aEBA ile tüm sitelere giriş
yapılabilmesini yapacağız.
- wordpress plugin
- android için EBA Authenticator
- iOS için
- Cross Platform
TakipMongoDB 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
- Uzaktan yönetim