e-ticarette yazılım ve altyapı

67
24 Ekim 2013

Upload: murat-kader

Post on 08-Jul-2015

229 views

Category:

Documents


5 download

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 Teams

TRANSCRIPT

Page 1: E-ticarette Yazılım ve Altyapı

24 Ekim 2013

Page 2: E-ticarette Yazılım ve Altyapı

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

Page 3: E-ticarette Yazılım ve Altyapı

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

Page 4: E-ticarette Yazılım ve Altyapı

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.

Page 5: E-ticarette Yazılım ve Altyapı

Ana hatları ile 2 kategori’de

low level (assembler)

high level (C++, C# .. )

6000’den fazla

Page 6: E-ticarette Yazılım ve Altyapı
Page 8: E-ticarette Yazılım ve Altyapı
Page 9: E-ticarette Yazılım ve Altyapı

http://langpop.com/

Php Java Python

ASP, .NET Ruby

Page 10: E-ticarette Yazılım ve Altyapı
Page 11: E-ticarette Yazılım ve Altyapı

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, ...

Page 12: E-ticarette Yazılım ve Altyapı

Programming Language & IDE

Frameworks Servers RDBMS

SCM CI Issue Tracking Testing

Dependency Management

UI DesignWikiModelling Tools

...

Page 13: E-ticarette Yazılım ve Altyapı

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.

Page 14: E-ticarette Yazılım ve Altyapı

Classic Waterfall

Iterative Waterfall

Spiral

Lean

Agile / Scrum

...

Page 15: E-ticarette Yazılım ve Altyapı

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ü

Page 16: E-ticarette Yazılım ve Altyapı
Page 17: E-ticarette Yazılım ve Altyapı

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

Page 18: E-ticarette Yazılım ve Altyapı

• 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

Page 19: E-ticarette Yazılım ve Altyapı

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

Page 20: E-ticarette Yazılım ve Altyapı

• 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

Page 21: E-ticarette Yazılım ve Altyapı
Page 22: E-ticarette Yazılım ve Altyapı

• İş 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)

Page 23: E-ticarette Yazılım ve Altyapı

• Scrum - Rugby hücum taktiği:

– Top, tüm oyuncularla birlikte karşı sahaya taşınarak atak yapılmaktadır.

Page 24: E-ticarette Yazılım ve Altyapı

• 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

Page 25: E-ticarette Yazılım ve Altyapı

• 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.

Page 26: E-ticarette Yazılım ve Altyapı

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)

Page 27: E-ticarette Yazılım ve Altyapı

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)

Page 28: E-ticarette Yazılım ve Altyapı

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...

Page 29: E-ticarette Yazılım ve Altyapı
Page 30: E-ticarette Yazılım ve Altyapı

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

Page 31: E-ticarette Yazılım ve Altyapı

Ö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ı

Page 32: E-ticarette Yazılım ve Altyapı

Ö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.

Page 33: E-ticarette Yazılım ve Altyapı

http://www.youtube.com/watch?v=XU0llRltyFM

Page 34: E-ticarette Yazılım ve Altyapı

Developer

Software Architect

Sys. Administrator

Business Analyst

Software and Hardware Help Desk

Test Engineer

BI Reporting Specialist

Database Administrator

Page 35: E-ticarette Yazılım ve Altyapı

E-Ticaret’te yazılımcı kimdir ?

E-Ticaret için yazılımcı nereden bulunur ? Startup Kahramanları

We Made IT Possible

Page 36: E-ticarette Yazılım ve Altyapı

CMS

Joomla, Wordpress, Xcart,osCart, phpCart,magento,drupal,oscommerce etc.

Outsource Yazılım

Outsource

Freelance

Inhouse

Page 37: E-ticarette Yazılım ve Altyapı

CMS Magento, PrestaShop, Drupal e-commerce, Zen-Cart,CubeCart, osCommerce, VirtueMart, FatFreeCart

Hosted Cms Shopify, wosbee,incir, sopsy

Custom Scripts

Page 38: E-ticarette Yazılım ve Altyapı

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

Page 39: E-ticarette Yazılım ve Altyapı

IT ekibinizde kimlere ihtiyacınız var ?

En az kaç kişi olmalı

Proje Yönetimi

Page 40: E-ticarette Yazılım ve Altyapı

• 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

Page 41: E-ticarette Yazılım ve Altyapı

İş Gereksinimi (Business Requirement) İş Analizi Planlama Wireframe, Prototype, Mockup Commitment UI / Ux design Yazılım Canlı Geçişi Babysitting

Page 42: E-ticarette Yazılım ve Altyapı

1 – İş Gereksinimi (Beklentiyi Anlama)

Yeni Proje

Bug Fix

Yeni Geliştirme

Bakım

Page 43: E-ticarette Yazılım ve Altyapı

2- Analiz

Gereklilikler

Problem çıkarabilecek noktalar

Performans sorunları

Gerekli olan beceriler

Page 44: E-ticarette Yazılım ve Altyapı

3- Planlama

Zaman Planı

Altyapı

Güvenlik

Ekip

Page 45: E-ticarette Yazılım ve Altyapı

3- Wireframe, Prototype, Mockup

Brainstorming

Templates

CheckList

Page 46: E-ticarette Yazılım ve Altyapı

4 - Commitment

IT ekibi commitment

Business Owner Commitment

Page 47: E-ticarette Yazılım ve Altyapı

4 – UI / Ux design Templates Fonts Concept UX tests

Page 48: E-ticarette Yazılım ve Altyapı

http://www.youtube.com/watch?v=95RoKSFyQ_k

Page 49: E-ticarette Yazılım ve Altyapı

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ı

Page 50: E-ticarette Yazılım ve Altyapı

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ı

Page 51: E-ticarette Yazılım ve Altyapı

6 – BabySitting Proactive Monitoring

Datachecks

Bug fixes

Maintenance

Next Phase Planing

Feedbacks

Page 52: E-ticarette Yazılım ve Altyapı

• 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

Page 53: E-ticarette Yazılım ve Altyapı

RedundancyRealtime failoversystems

Wmware Fault-tolerant systems

Page 54: E-ticarette Yazılım ve Altyapı

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

Page 55: E-ticarette Yazılım ve Altyapı

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

Page 56: E-ticarette Yazılım ve Altyapı
Page 57: E-ticarette Yazılım ve Altyapı

AWS Case Study: Chaordic Systems

Page 58: E-ticarette Yazılım ve Altyapı

Load balancing methods- Round Robin- Ratio (member)- Dynamic Ratio- Fastest (node)- Least Connections- Least Sessions

Page 59: E-ticarette Yazılım ve Altyapı

Master To Slave Replication

Page 60: E-ticarette Yazılım ve Altyapı

Master To Master Replication

(Multi-Master Replication)

Page 61: E-ticarette Yazılım ve Altyapı

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

Page 62: E-ticarette Yazılım ve Altyapı

In Memory Cache Layers

Page 63: E-ticarette Yazılım ve Altyapı

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

Page 65: E-ticarette Yazılım ve Altyapı
Page 66: E-ticarette Yazılım ve Altyapı
Page 67: E-ticarette Yazılım ve Altyapı

İletişim BilgileriEmail: [email protected] : +90536 2402424