e-ticarette yazılım ve altyapı
DESCRIPTION
E-ticarette Yazılım ve Altyapı Startup Heroes, Developers We Made IT Possible Software and Hardware Help Desk Saving %40 Time for IT teams Hazır Yazılım Deri ceket gibidir, hep birşeylerin ekliğini hisedersin. Before going down Proactive Monitoring ‘Mükemmel iyinin düşmanıdır’, Voltaire ‘Engineering is nothing but optimization’ Yazılım, yaşayan bir organizmadır... İhmale gelmez. In IT Complete Solution means, Agile Swat TeamsTRANSCRIPT
24 Ekim 2013
1984 yılında İstanbul’da doğdu. 2003 , Adex 2004, Portakal Bilişim 2006, Microsoft 2007, Vision DMR 2007, Estore 2009, OttoGroup – limango – arabulvar -Ogli
İletişim BilgileriEmail: [email protected] : +90536 2402424
Big Scale Systems, Logistic Operations, E-commerce Payment, Cache Systems, Mysql Databases ,Php Development , Linux Administration , FrontEnd Development, Network Structures
Tanışma Yazılım Nedir ? Popüler Yazılım Dilleri E-ticaret İçin Hangi Yazılım Dili ve Platformu Teknoloji Seçimi - Checklist Yazılım Yaşam Döngüsü Proje Yönetimi
Agile / Scrum IT Ekibi Yapılanması E-Ticaret için IT çözümleri IT Ekibi- Proje Planı
E-Ticaret – Genel Altyapı Yük Dağılımı (Load Balancing) Database Replikasyonu Web Server Seçimi Memcache Startup’lar için Adım adım Altyapı Soru / Cevap / Yorum Free Format Teşekkürler
Yazılım, yaşayan bir organizmadır... İhmale gelmez.
Yazılım[1] (İng. software), değişik ve çeşitli görevler yapma amaçlı tasarlanmış elektronik araçların birbirleriyle haberleşebilmesini ve uyumunu sağlayarak görevlerini ya da kullanılabilirliklerini geliştirmeye yarayan makina komutlarıdır.
Ana hatları ile 2 kategori’de
low level (assembler)
high level (C++, C# .. )
6000’den fazla
http://spectrum.ieee.org/at-work/tech-careers/the-top-10-programming-languages
Sistemsel Altyapı
Uygulama Sunucuları
Web Sunucuları
Veritabanı Sunucuları
Load Balancer
Cluster/Session Replication
Firewall, Router, DNS, Disk, ...
Yazılımsal Altyapı
Yazılım Dili / Platformu
Frameworkler, Entegrasyonlar
Önyüz, Orta Katman ve Veri Katmanı
Yazılım Yaşam Döngüsü
Performans
Loglama, Monitoring, Fraud Önleme, Güvenlik, ...
Programming Language & IDE
Frameworks Servers RDBMS
SCM CI Issue Tracking Testing
Dependency Management
UI DesignWikiModelling Tools
...
Geliştirdiğiniz bir yazılım projesinin planlanmasından başlayarak teslimatına kadar geçirmiş olduğu bütün aşamalara ve bu aşamalardan oluşan döngüye, Yazılım Geliştirme Yaşam Döngüsü denir.
Bir yazılım projesinin geliştirilmesi, sadece kodlamadan oluşmamaktadır. Basitçe bir proje geliştirilirken projenin planlama, analiz, tasarım, üretim ve test aşamaları yer almaktadır ve almalıdır. Bu aşamalar bir kere gerçekleştirildikten sonra proje tamamlanmayabilir. Bu aşamaların bir döngü halinde düşünülmesi gerekmektedir. Proje tamamlandıktan sonra gelecek istekler, hata düzeltmeleri, projeye eklenecek yeni modüller vs konular için bu süreç devam etmektedir. Bu döngüye yazılım geliştirme yaşam döngüsü adı verilmektedir.
Classic Waterfall
Iterative Waterfall
Spiral
Lean
Agile / Scrum
...
Teknik Analiz
Yazılım Geliştirme: Görsel, Html, Yazılım
Testler & QA
Test ortamları: Dev, FT, UAT, Staging, PROD
Unit Testler
FonksiyonelTestler
UI Testleri
A / B Testleri
Kullanıcı Kabul Testleri
SEO Testleri
Güvenlik Testleri
Bug Takibi ve Çözümü
ROI’ı maksimize etmek için
Hedeflenen sürede
Hedeflenen bütçede
Hedeflenen kalitede
Hedeflenen kapsamda ve işlevsellikte
Aksaklıklar yaşamadan
Ekip oyunundan keyif alarak başarmak
• E-Ticaret;
Çok dinamik
Son teknolojiyi yakından takip eden
Teknolojiyi drive eden
Online, anında, hızlı
Basit ve Kompleks
Web siteniz sizin ürününüz
Ekip/takım oyunu, birimler arası koordinasyon şart
Başarılı29%
Başarısız
18%
Belirsiz53%
2004
Başarılı32%
Başarısız24%
Belirsiz44%
2009
The Standish Group Chaos Raporları -Yazılım projelerinin;
▪ %32'si zamanında, bütçesinde ve gereksinimleri karşılayacak şekilde sonuçlanıyor
▪ %44’ünde ihtiyaçlar değişiyor, belirsiz bir sürece giriliyor
▪ %24’ü başarısızlıkla sonuçlanıyor
• Ortalama 6 ay/1 yıl süren bir projede zamanla ihtiyaçların, dinamiklerin, sektörün değişmesi, yeni gereksinimlerin ortaya çıkması – Waterfall’ın dezavantajı
• Bu nedenle DONE kavramının olmayışı – Proje ne zaman bitecek?
İş
Zaman
Planlanan
Gerçekleşen
• İş sahibi/müşteri ile proje ekipleri, hatta proje ekipleri içindeki birimler arasındaki koordinasyon, iletişim, işbirliği eksikliği, motivasyon kaybı – Waterfall’ın dezavantajı
• Nitelikli olmayan ekip – Mutfaktaki bıçakların keskin olmayışı
• Optimizasyon yapılmaması, en iyi en mükemmel değil, o günün şartlarına uygun en iyi çözüm
– ‘Mükemmel iyinin düşmanıdır’, Voltaire
– ‘Engineering is nothing but optimization’
• Yanlış seçimler (teknoloji, mimari, donanım, vs)
• Scrum - Rugby hücum taktiği:
– Top, tüm oyuncularla birlikte karşı sahaya taşınarak atak yapılmaktadır.
• Agile Manifesto:
– Kent Beck, Martin Fowler, Ken Schwaber, Jeff Sutherland... gibi toplam 17 kişi tarafından 2001 yılında yayınlandı
Önemli Az Önemli
Kişiler ve takım çalışması Süreç ve araçlardan
Çalışan yazılım Detaylı dokümantasyondan
Müşteri ile beraber çalışmak Sözleşme ve anlaşmalardan
Değişime açık olup, uygulamak Plana bağlı kalmaktan
• Amaç en baştan nihai ürünü, en mükemmeli tasarlamak değildir. Belirli periyotlarla çalışan prototipler sunmak ve markette ilk yer almaktır.
• Agile olmak "Kervan yolda düzülür" demek değildir. Aksine sık sık planlayıp, değişen sektör dinamiklerine yeniden ayak uydurmak, değişime açık olmak demektir. Beklentiyi yönetmek için iyi bir yoldur.
• Agile olmak müşteriyle içiçe olmak demektir. Belirli periyotlarla çalışan bir prototip sunmak, feedback almak, bu feedbacklerle kendini iyileştirmek, geliştirmek ve bir sonraki süreci planlamak demektir.
1. Müşteri ile bir araya gelinir
2. İhtiyaçlar belirlenir ve taskler çıkarılır (Product Backlog)
3. Bu taskler önceliklendirilir ve puanlanır (poker game, Sprint Planning)
4. Takımın 2 veya 4 haftalık hızına (Team Velocity) göre önceliği yüksek işler listeye alınır (Sprint Backlog)
5. Takım her sabah 15 dakikalık durum değerlendirme toplantısı yapar (Daily Scrum). İletişimi, koordinasyonu ve motivasyonu arttırır.
• Dün ne yaptım
• Bugün ne yapacağım
• Karşılaştığım problemler
6. 2 veya 4 hafta sonunda çalışan prototip ile müşteriye demo yapılır, feedback alınır, gerekliyse değişiklik yapılacaktır. (Sprint Review)
7. Takım, 2 veya 4 hafta sonunda neleri iyi yaptığını, neleri kötü yaptığını, neleri iyileştirmesi gerektiğini tartışır (Sprint Retrospective) – Continuous improvement
8. Takım, bir sonraki Sprint için tekrar müşteriyle bir araya gelir ve yeni bir Sprint Planning toplantısı başlar...
Felsefe:
• Self organization:
• Commitment
• Trust
• Cross-functional teams
• Transparency
• DONE kavramı
• Timebox
• Inspect & adapt
• Kaizen (continuous improvement)
• Retrospective
• K.I.S.S. & basit olanı yapmak zordur
Özetle E-ticarete Faydaları:
• Sık sık planlama yapıldığı için, müşteriyle sık sık biraraya gelindiği için;
– 6 ay/1 yıl gibi bir süre sonunda hüsranla karşılaşılmaz,
– ROI maksimize edilir,
– Proje başarısı yükselir,
– Üretkenlik artar,
– Maliyetler düşer
• Değişime, yeni gereksinimlere açık olduğu için dinamik, güncel ve kullanılacak fonksiyonalitede bir ürün tasarlamanızı sağlar - Pareto Kuralı
Özetle E-ticarete Faydaları:
• 6 ay/1 yıl gibi bir süre sonunda değil de 2-4 hafta gibi periyotlarla çalışan prototipler sunduğu için markette ilk yer almanızı sağlar, rekabet gücünüz artar.
• İletişim ve koordinasyon yüksek olduğu için azimli ve motivasyonu yüksek, yaptığı işten keyif alan bir ekip ortaya çıkar (S.W.A.T. team).
• Kurum kültürünüze timebox, DONE, transparency gibi kavramları yerleştirir.
http://www.youtube.com/watch?v=XU0llRltyFM
Developer
Software Architect
Sys. Administrator
Business Analyst
Software and Hardware Help Desk
Test Engineer
BI Reporting Specialist
Database Administrator
E-Ticaret’te yazılımcı kimdir ?
E-Ticaret için yazılımcı nereden bulunur ? Startup Kahramanları
We Made IT Possible
CMS
Joomla, Wordpress, Xcart,osCart, phpCart,magento,drupal,oscommerce etc.
Outsource Yazılım
Outsource
Freelance
Inhouse
CMS Magento, PrestaShop, Drupal e-commerce, Zen-Cart,CubeCart, osCommerce, VirtueMart, FatFreeCart
Hosted Cms Shopify, wosbee,incir, sopsy
Custom Scripts
Outsource Yazılım
Done Kavramı
Proje Detayları
Dökümantasyon
Projenin Tanımı ve görevlerin atanması
Proje için gerekli olan süre
Proje ve zaman planı ile ilgili commitment
IT ekibinizde kimlere ihtiyacınız var ?
En az kaç kişi olmalı
Proje Yönetimi
• Platforma karar verin
• İhtiyacınız olan IT yeteneklerine karar verin
• Elinizde ne bulunduğunu kontrol edin
• Basit düşünün
• Riskleri gözden geçirin
İş Gereksinimi (Business Requirement) İş Analizi Planlama Wireframe, Prototype, Mockup Commitment UI / Ux design Yazılım Canlı Geçişi Babysitting
1 – İş Gereksinimi (Beklentiyi Anlama)
Yeni Proje
Bug Fix
Yeni Geliştirme
Bakım
2- Analiz
Gereklilikler
Problem çıkarabilecek noktalar
Performans sorunları
Gerekli olan beceriler
3- Planlama
Zaman Planı
Altyapı
Güvenlik
Ekip
3- Wireframe, Prototype, Mockup
Brainstorming
Templates
CheckList
4 - Commitment
IT ekibi commitment
Business Owner Commitment
4 – UI / Ux design Templates Fonts Concept UX tests
http://www.youtube.com/watch?v=95RoKSFyQ_k
5 -Yazılım
Web programlarının hazırlanması
Plana göre altyapının oluşturulması
Fonksiyon testlerinin yapılması
Güvenlik testlerinin yapılması
6 – Canlı Geçişi Tests: UX test , function tests, browser test
etc. Canlı geçişi için, olası senaryoların
hazırlanması A,B,C ve hatta D planın hazır halde bulunması
Canlı geçişi için checklist hazırlanması
6 – BabySitting Proactive Monitoring
Datachecks
Bug fixes
Maintenance
Next Phase Planing
Feedbacks
• E-ticaret’te Kullanılan Genel Altyapı Terimleri• Redundancy• Shortterm Backups• Long Term Backups• Proactive Monitoring• Reactive Monitoring
• Load Balancing• Database Replications• WebServer Seçimi (apache - nginx etc. )• Memcache
RedundancyRealtime failoversystems
Wmware Fault-tolerant systems
Short Term Backups• Every 30 Minute Rotater• Every 1 hour in 24 hour Rotater• EveryDay• Every Monday• 1st of month
Long Term Backups (2 year)• Everyday• Every Monday• First of Month• Milestones
NetApp for Microsoft Environments
Proactive Monitoring• Limited Disk quato• Service concurrent limit• Que limit• High cpu usage• High ram usage
Service is
ONLINE
Service is OFFLINE / limited Service
Reactive Monitoring• Service up or down• Server up or down• Connectivity check• System fault
AWS Case Study: Chaordic Systems
Load balancing methods- Round Robin- Ratio (member)- Dynamic Ratio- Fastest (node)- Least Connections- Least Sessions
Master To Slave Replication
Master To Master Replication
(Multi-Master Replication)
http://www.whisperdale.net/11-nginx-vs-cherokee-vs-apache-vs-lighttpd.html
http://blog.celingest.com/en/2013/02/25/nginx-vs-apache-in-aws/
http://www.cyberciti.biz/tips/howto-performance-benchmarks-a-web-server.html
In Memory Cache Layers
Memcache Kullanımı
İlk İstekİlk istek, database tarafından karşılanır ve kullanıcıya dönen yanıt ile aynı anda Memcache üzerinede yazılır.
http://www.9lessons.info/2012/02/memcached-with-php.html
2. Gelen istekGelen istek doğrudan Memcache tarafından cevaplanır .
Memcache Kullanımı
http://www.9lessons.info/2012/02/memcached-with-php.html
İletişim BilgileriEmail: [email protected] : +90536 2402424