Efektivní vývoj vyžaduje jednu platformu
V SiteOne vyvíjíme webové stránky a aplikace pro desítky různých klientů, o jejichž vývoj se stará více než třicet našich FE/BE vývojářů. Jejich produkční provoz zajišťují naši správci serverů, kteří se starají o desítky našich fyzických serverů ve 3 datacentrech v Praze. Na nich běží zhruba 120 virtuálních serverů a celkem přes 1 100 produkčních i náhledových domén pro stovky projektů, které jsme za 20 let existence vyvinuli a pořád je provozujeme.
Abychom naší práci pro naše klienty dokázali dělat kvalitně, efektivně i konkurenceschopně, museli jsme se včas rozhodnout při výběru technologií a frameworků, nad kterými naší “platformu” postavíme a kterou budou naší stávající i budoucí kolegové skvěle ovládat. Podle našich zkušeností nejde dělat kvalitní a zároveň efektivně vyvinutý software bez toho, aby byli vývojáři “kovaní” v konkrétním frameworku a aby nad ním ideálně měli i různé generátory kódu, které ušetří otročinu typu “CRUD”, práci na vrstvě nad relační DB, tvorbu procesů na pozadí, vytváření aplikačních monitoringů či jiné denní rutinní úkoly.
V oblasti bezpečnosti celá naše platforma poskytuje různé námi vyvinuté nebo konfigurované úrovně ochrany - od firemních procesů (zálohování a aktivních či pasivních monitoringů, nasmlouvaných ochran od ISP, přes routery, síťové firewally, WAF, webservery) až po aplikační či databázové servery a další provozní technologie. Vždy si uvědomujeme rezervy v různých oblastech a vkládáme do nich každoročně velké množství energie, času i peněz. Absolutní bezpečnost totiž neexistuje. Útočníci i dostupné nástroje jdou neustále kupředu, proto musíme i my. Není ale rozhodně denní chleba, aby se objevovaly zranitelnosti, které lze zneužít plošně (navíc triviálně) a jde jimi napáchat největší škody. Pokud tedy pomineme platformy typu Wordpress a zejména jeho různé 3rd-party pluginy.
Od roku 2010 tvoří jednu z našich hlavních součásti BE framework Nette. Nad ním máme desítky vlastních composer balíčků a generátorů tvořících základ SiteOne CMS i různých generací našich API backendů (SOAP, AMF, RPC, REST, GraphQL) a ORM vrstev nad různými databázemi. Díky tomu všemu jsme schopni skutečně reusovat některá hotová řešení mezi projekty a zároveň ho zpětně v projektech vylepšovat a aktualizovat.