IT od kuchni w Nokaut.pl Tadeusz Magiera, Marcin Grzybowski, Sławomir Pawęska, Przemysław Wróblewski
Dec 05, 2014
IT od kuchni w Nokaut.pl
Tadeusz Magiera, Marcin Grzybowski, Sławomir Pawęska, Przemysław Wróblewski
Nokaut.pl w liczbach
- 12 mln ofert- ponad 100 mln zdjęć- 400GB danych w MySQL- największa tabela ponad 200 mln rekordów- 3 mln req/dzień po kontent dynamiczny- 20 mln req/dzień po kontent statyczny- RAM: 816GB, dyski: 51.03TB, 172 rdzenie CPU (bez HT)
Ludzie
już nie startup..
Działy
DziałUtrzymania
DziałFrontendu
DziałBackendu
DziałAdministratorów
DziałAplikacji
Mobilnych
Działy projektowe
Działy utrzymania/małych projektów
25+ osób
Rozwój
● Regularne spotkania wewnętrzne o Technologiach IT i Jakości IT
● Cykl szkoleń wewnętrznych● Szkolenia otwarte (Andrzej Krzywda o RoR)● Konferencje (Front-Trends, RuPy, EuRuKo i
jak zawsze polecam trójmiejskie infoShare)● Firmowa biblioteczka
Procesy
Jakość
● Testy jednostkowe ● Inspekcje kodu (oswajamy się)● Testy wydajnościowe Jmeter● Testy funkcjonalne Selenium● Narzędzia Continous Integration
CruiseControl i TeamCity● Standardy kodowania● Post-commit hooki wyłapujące błędy
składniowe i niezgodność ze standardami
Proces zmian na produkcji● Serwery deweloperskie
● Serwery testowe
○ dostępne dla wszystkich programistów
● Serwer przedprodukcyjny /
Serwer 1%
● Serwery produkcyjne○ proces komunikacji o zmianach
dane deweloperskie
dane deweloperskie lub produkcyjne dane i konfiguracja produkcyjna
● Do obsługi bugów wykorzystujemy Bugzilli● Proces projektowy wspiera Acunote
(Scrumowy) i Wrike (harmonogramy)
Technologie
Środowiska wytwarzania
Narzędzia deweloperskie
● RubyMine, PhpStorm to edytory które coraz bardziej lubimy
● ErrBit do zbierania błędów● Rsyslog do centralnego logowania i
agregowania logów● Webistrano/Capistrano do deployu kodu
Infrastruktura
● Beyond główna serwerownia, 30+ serwerów 1U (HP DL160G6), sieć 1 Gbit, VLan-y
● Hetzner dodatkowe serwery mające mniejszy priorytet
● Amazon S3 przechowuje kontent statyczny (~2 TB danych), serwowanie z warstwą keszującą w Beyond
Infrastruktura
Wirtualizacja● Linux VServer na wszystkich maszyny
Linuksowych● KVM do wirtualizowania pozostałych
systemów
Sposób obsługi WWW
● LoadBalancing na HaProxy● Failovery przez HeartBeata● Nginx + PHP-FPM do serwowania PHP● Varnish + Nginx do kontentu statycznego
Technologie WWW
● Memcache, MemcacheDB do keszowania● MySQL, MongoDB jako storage● PostgreSQL do transakcji● ActiveMQ do kolejek● SOLR do wyszukiwania
Technologie backendowe
● Ruby, Railsy, gearman do starszych aplikacji● JRuby + TorqueBox wraz ze udostępnianymi przez
JBoss-a usługami do nowo tworzonych rozwiązań● MySQL, Memcache wspomagająco● MongoDB
Monitoring
● Zabbix system do monitoringu - kontrola 2000+ wskaźników pracy serwerów i aplikacji rozbudowana o 1000+ triggerów reagujących na przekroczenie zdefiniowanych wartości progowych.
● Host-tracker, Watchscript
dostępność podstawowych stron wszystkich utrzymywanych serwisów
Co czytamy?
Clean Code to pozycja która powinna być obowiązkowa na studiach :)
High Performance MySQL czyli po prostu biblia MySQL dla tych którzy operują na sporej ilości danych
Kilka wyborów technologicznych
● SSD vs HDD Enterprise vs HDD Desktop● Blade vs Rack● SVN vs GIT