Technologie nás baví

Špičkové open–source technologie, vývoj a inovace jsou v Seznamu jako doma. A abyste se jako doma u nás cítili i vy, technologie i techniku si můžete vybrat podle svého přání.

A B C D E F G H I J K L M N O P Q R S T V W

A

Aerospike

Databáze notifikací pro uživatele zobrazované v přihlašovací části hlavičkové lišty služeb.

Airflow

Používáme pro management datových pipeline. Produkty a služby, které Seznam nabízí, se skládají z velkého počtu navzájem propojených modulů a datových toků a vytvářejí tak velmi komplexní a sofistikovaný systém. Airflow nám pomáhá udržovat tento systém pod kontrolou a v optimální kondici.

Android

V Seznamu vyvíjíme pokročilé Android aplikace. Prozkoumejte naše projekty a přidejte se k inovacím na aplikace.seznam.cz.

Ansible

Ansible využíváme jako klíčový nástroj pro automatizaci konfigurace a správy infrastruktury. Umožňuje nám rychle a efektivně nasazovat a aktualizovat software, spravovat konfigurační soubory a monitorovat stav serverů. Díky Ansible je možné centralizovaně řídit a orchestrovat procesy v rámci IT infrastruktury, což zvyšuje efektivitu práce a zajišťuje spolehlivý provoz našich služeb.

B

Bash

Bash je skvělý interpret příkazů a jazyk pro triviální skripty.

BIRD

BIRD je routovací deamon instalovaný na servery v naší DC infrastruktuře.

C

C#

Využíváme C# k přizpůsobení a vývoji našeho systému Helios s důrazem na výkonnost a bezpečnost.

C++

V C++ píšeme převážně backendy, od kterých vyžadujeme vyšší výkon, než poskytuje Python. Najdete ho například ve výdeji fulltextového vyhledávání a výdeji reklamy.

Calico

Síťová vrstva používaná v OpenStacku/Kubernetu ve SCIFu.

Cassandra

Databáze, kterou používáme na ukládání metadat o webech pro účely kvalitnějšího vydávání reklamy.

CatBoost

CatBoost je našim oblíbencem z rodiny gradient boosting frameworku. Využíváme ho pro jeho schopnosti rychle dosáhnout dobrých výsledku v oblasti modelování. Je to typicky jeden z prvních modelů, který zkoušíme během fáze prototypování a nezřídka se dostane až do produkce.

Ceph

Ceph, jako open-source systém pro ukládání dat, je klíčový pro naše úložiště s vysokou mírou škálovatelnosti a odolnosti.

Cilium

V Seznamu využíváme Cilium pro propojení clusterů v rámci projektu Unified ACL, které zajišťuje efektivní správu přístupu.

CISCO

Cisco zařízení u nás najdeme zejména v datacentru, kde používáme fixní modelovou řadu Nexus. Ale také v kancelářích pro WIFI infrastrukturu, kde používáme např. Cisco Catalyst.

Clickhouse

Slouží jako offline část naší feature store. Ukládáme do něj data sloužící hlavně pro modelování a analýzy.

CoreDNS

CoreDNS je základem našich Kubernetes clusterů v SCIF, kde zajišťuje robustní správu DNS záznamů.

Couchbase

Couchbase se používají jako různé víceméně perzistencní cache. Na Zboží.cz například drží vyrenderované HTML kódy stránek.

CSS

CSS používá každá naše webová služba. Využíváme také pre-processory jako LESS, Sass, Stylus nebo post-processory jako PostCSS.

D

Dart

Dart je jazyk úzce spojený s Flutterem a využíváme ho primárně pro vývoj multiplatfomních mobilních aplikací. Je jednoduchý, a i proto nám umožňuje psát efektivně přehledný kód. Díky sound null safety a obecně velké vyzrálosti jazyka jsou naše codebase rovněž velmi stabilní.

Django

Framework, který nám usnadnuje práci s DB a tvorbou API.

Docker

Docker hojně využíváme pro vývoj a deployment aplikací, finální image nasazujeme převážně v Kubernetes.

E

Elasticsearch

Elasticsearch používáme na některé specifické případy vyhledávání, ale i jako backendovou databázi třeba pro Zboží.cz. Zároveň slouží jako jedno z možných úložišť pro aplikační logy.

Envoy

Proxy server Envoy tvoří poslední úroveň interního loadbalanceru, který zpracovává veškerý traffic Seznamu a posílá ho dál na jednotlivé Kubernetes pody, případně další endpointy.

ESLint

Nástroj pro kontrolu a opravu code style JavaScriptového a TypeScriptového kódu pro lépe udržovatelný kód.

etcd

Slouží jako úložiště metadat pro Kubernetes. Zároveň ho některé služby (jako třeba Mapy.cz) používají přímo pro sychnronizaci dávkových úloh.

F

Fastlane

Nástroj pro automatizaci tvorby release a testovacích verzí našich iOS aplikací.

Firebase

Firebase používáme hlavně jako místo pro ukládání testovacích verzí aplikací, analytický nástroj a remote config.

Flask

Flask, flexibilní Python framework, máme rádi pro jeho modulárnost a rychlé nasazení, což umožňuje efektivní vývoj škálovatelných backendových služeb.

Flink

Framework pro streamové zpracování dat z různých zdrojů (např. Kafka, Hadoop atd.). Díky němu v reálném čase servírujeme data klientům, učíme naše modely anebo zpřesňujeme relevanci vydávané reklamy.

Flutter

Flutter díky své jednoduchosti, extrémně vysoké výkonosti a běhu na jakémkoli zařízení, které umí kreslit pixely, nám pomáhá zvyšovat efektivitu vývojového týmu. A navíc udržuje aplikace stejné na všech platformách. Naprostá kontrola nad vykreslováním UI nám taky dává možnost aplikace vyvíjet v souladu s platformními specifiky za přidání našeho osobitého brandu.

G

Galera Cluster

Galera Cluster, nadstavba MySQL/MariaDB, je v Seznamu klíčová pro vysokou dostupnost SQL databází s všesměrovou replikací.

Git

V GITu verzujeme veškerý kód i většinu konfigurací. Filozofie použití se liší v závislosti na službě. Reklamní systémy mají monorepo, většina ostatních služeb pak desítky až nižší stovky menší repozitářů.

GitLab

Interně provozovaný GitLab drží veškeré naše zdrojové kódy. GitLab CI pipelines se starají o buildy a nasazování.

Golang

Většina našich backend systémů běží na Go, třeba například domovská stránka. Přešli jsme na něj z Pythonu kvůli vyššímu výkonu a paralelizmu, a protože ho máme rádi.

Grafana

Grafanu používáme na sledování, jak se naším aplikacím v provozu vede.

Grafana Loki

Grafana Loki nám umožňuje efektivně spravovat aplikační logy pro velké objemy dat, které by nezvládl Elasticsearch.

GraphQL

Jazyk pro dotazování API, který využíváme na Streamu, Diskuzích či domovské stránce Seznamu. Jedná se o moderní alternativu k REST API.

H

Hadoop

V Hadoopu žije většina dat našeho fulltextového vyhledávače. Používá se i na jiných službách, kde potřebujeme zpracovávat velké množství dat, jako je třeba webová analytika nebo reklamní systémy.

HBase

NoSQL databáze určená pro rychlé vyhledání i skenování uložených dat, do které můžete navíc psát custom kód na všech možných úrovních. V reklamních systémech v ní mají inzerenti uložené statistiky o úspěšnosti reklamy.

Hive

Databáze, kterou používáme ke zpracování velkých dat. Například pro analytické výpočty, ale i pro ad-hoc dotazy a ladění.

HTML

Většinu seznamáckých webů už generují různé front-end frameworky, ale je dobré vědět, že někde tam vespod je pořád HTML. Nebo spíš DOM.

I

IMA.js

Seznamácký open-source framework pro vývoj univerzálních aplikací, na kterém běží největší české obsahové portály jako Novinky.cz, Seznam Zprávy, Sport.cz atd.

Impala

Apache Impala je open source neboli nativní analytická databáze pro otevřená data a tabulky.

iOS

V Seznamu vyvíjíme rozmanité aplikace pro iOS, mrknout na ně můžete na webu aplikace.seznam.cz.

J

Java

V Javě píšeme převážně věci, které nějak souvisejí s big daty a Hadoopem. Např. fulltextový robot, který neúnavně stahuje pořád dokola celý internet.

JavaScript

JavaScript používáme pro vývoj dynamických frontendů i backendů, často v kombinaci s TypeScriptem pro lepší škálovatelnost a údržbu kódu.

Jenkins

Používáme ho jako automatizační nástroj. Například k sestavování aplikací.

Jest

Jeden z nečastěji používaných nástrojů pro psaní jednotkových a integračních testů pro komponenty psané v JavaScriptu a TypeScriptu, a to zejména frontendy.

JUNIPER

Juniper boxy převážně používáme v kancelářích pro access vrstvu a jako firewally.

Jupyter

V Jupyteru mazlí data jak výzkumníci strojového učení, tak analytici i vývojáři honící svoje bugy.

Jupyter lab

Většina analýz a modelování se u nás odehrává právě v prostředí Jupyter notebooku.

K

Kafka

Přes Kafku posíláme veškeré události v našem reklamním systému a infrastruktuře jako např. pro sběr logů. Taky ji využíváme při doručování notifikací (upozornění) uživatelům.

Kibana

Kibana je oblíbený klikací klient pro Elasticsearch. Používáme ji pro prohlížení aplikačních logů, případně pro vizualizaci rozličných nasbíraných dat.

Kotlin

Programovací jazyk pro vývoj aplikací na platformě Android a rozvoj interního YouTracku. Implementace backendového serveru pro výdej reklamy, jehož primárním cílem je plně nahradit Javu díky svojí intuitivnosti a kompatibilitě s JVM.

Kubeflow

Prostředí, ve kterém provozujeme část ML infrastruktury, je to naše hlavní odpověd v oblasti automatizace ML.

Kubernetes

V Seznamu nasazujeme do Kubernetes širokou paletu kontejnerizovaných aplikací, což zvyšuje efektivitu a flexibilitu našeho vývoje.

L

Linux

Linux je základem pro většinu našich serverů a s rozmachem kontejnarizace se stává stále oblíbenější mezi našimi vývojáři.

Logstash

Logstash zpracovává napříč Seznamem aplikační logy, které potom ukládáme do Elasticsearche.

Lua

Lua se v Seznamu vyskytuje jako embedded jazyk v nginx proxy. Využívají ji například Mapy.cz, Zboží.cz nebo anti-AdBlock.

M

MariaDB

Nové instalace SQL databází běží většinou na platformě MariaDB, které spravujeme naším infrastrukturním týmem přes 200 clusterů.

MongoDB

NoSQL databáze, kterou používá většina našich obsahových služeb.

MyRocks

Používá se jako databáze na projektu Uživatelský profil.

MySQL

MySQL je u nás nejpoužívanější SQL databází spravovanou naším infrastrukturním týmem.

N

.NET

Používáme pro programový rozvoj ERP Helios, kam píšeme všechna naše API.

Nginx

Drtivá většina síťových požadavků, které dorazí do Seznamu, někde po cestě potká nginx. Na většině služeb ho používáme jako standardní proxy server. Jednodušší požadavky vyřídí rovnou, složitější přepošle na nějaké backendové API. Odvážnější týmy, jako jsou Mapy.cz, Zboží.cz nebo tým anti-AdBlocku, píšou některé funkcionality přímo do něj v Lua nebo C modulech.

Node.js

Běhové prostředí JavaScriptu, který např. v kombinaci s IMA.js používáme pro server-side rendering našich stránek. Některé odvážnější služby jako např. Podcasty a další mikro služby běhají v Node.JS i backendy.

O

OpenStack

Ačkoliv v Seznamu běží více OpenStack služeb, nejčastěji narážíme na OpenStack Nova, což je pro nás standardní způsob virtualizace čehokoliv, co potřebuje perzistentní stav. Kromě vývojářských virtuálek nad OpenStackem provozujeme MySQL, PostgreSQL, Elasticsearch, Kafku a mnoho dalších.

OpenStack Swift

OpenStack Swift využíváme jako sekundární storage systém pro efektivní ukládání dat v konkurenci s Cephem.

P

PaloAlto

Nová generace FW v Seznamu, která se začíná používat nejen v našich DC, pro oddělení menších sítí, ale i jako FW pro kanceláře a pobočky.

Pandas

Patří mezi naši nejpoužívanější knihovnou pro práci s daty, jejich analýzy, čištění a obecně manipulaci.

PHP

V reklamě používáme pro tvorbu modulů do WordPressu.

Playwright

V Playwrightu píšeme E2E testy pro služby, jako jsou Novinky.cz, Seznam Zprávy nebo třeba Sport.cz, kde se nám hodně osvědčil debug režim.

PostgreSQL

PostgreSQL v Seznamu využíváme jako alternativní SQL databázi, oblíbená je zejména pro svá GIS rozšíření na Mapách a v dalších aplikacích.

Postman

Aplikaci používáme na vytváření kolekcí requestů na testování a debug našich back-end aplikací.

Prometheus

Náš primární nástroj pro sběr provozních metrik. Pokud je všechno v pořádku, kreslíme z něj grafy v Grafaně, pokud ne, vyskakují nám alerty.

Puppeteer

Puppeteer nám slouží pro generování obrázků regresních testů a E2E testů na službách, jako jsou Novinky.cz, Seznam Zprávy, Sport.cz atd. Postupně Puppeteer nahrazujeme za Storybook a Playwright.

Python

Python je převažující jazyk pro backendy v Seznamu. Najdete ho nejen na obsahovkách, Mapách, Firmách, Zboží či v reklamních systémech. Dokonce i celý výzkum funguje převážně na Pythonu. Zkrátka je všude, kde není důvod používat něco jiného.

PyTorch

Využíváme pro pokročilé modely neuronových sítí, a to hlavně v oblasti NLP.

Q

QApe

Seznamácky open-source pro autonomní testování a reportování chyb z webových stránek.

R

RabbitMQ

Distribuovaný message broker. V Seznamu ho najdete na CDN a na Zboží.cz.

React

V Reactu je napsaná většina obsahových i oborových služeb (např. Seznam Zprávy, Novinky.cz, Sport.cz, Sauto.cz, Sbazar.cz nebo Zboží.cz) a nejspíš ho v Seznamu najdete i jinde.

Redis

In-memory databáze, nejčastěji používaná jako read a write cache našich backendů.

Redux

Redux je open-source JavaScriptová knihovna pro správu a centralizaci stavu aplikace.

REST API

REST API je v Seznamu standardní způsob, jakým se webová stránka baví s backendovým API. Najdete ho prakticky všude, kde nenajdete GraphQL.

S

Scala

Jazyk, ve kterém jsme začali psát joby ve Sparku a Flinku. Až ho někteří fanoušci u nás začali používat skoro na všechno.

Scylla

Do Scylly ukládáme data, která si chtějí uživatelé přenášet mezi zařízeními, a také data potřebná pro výdej reklamy.

Spark

Využívají ho převážně kolegové z výzkumu a analytiky. Slouží ke zpracování a analýze logů ve vyhledávání a v reklamních systémech (Spark a pySpark) a k přípravě datových sad pro učení modelů strojového učení.

Storybook

Přes Storybook zobrazujeme jednotlivé komponenty, když generujeme obrázky pro regresní testy. Nahradili jsem s ním původní custom řešení přes Puppeteer.

StyleLint

Nástroj pro kontrolu a opravu code style CSS kódu včetně nadstaveb, jako je třeba LESS, Sass pro lépe udržovatelný kód.

Swift

Programovací jazyk pro vývoj aplikací pro platformu iOS. Na iOS ho používáme majoritně místo Objective-C.

T

Tableau

Tableau je nástroj pro vizualizaci dat, který umožňuje uživatelům snadno vytvářet interaktivní reporty, dashboardy a analýzy dat.

Tailwind

CSS framework (pro efektivnější frontendový vývoj), využíváme ho pro rychlý vývoj webových uživatelských rozhraní.

TensorFlow

Tensorflow runtime využíváme na CDN pro klasifikaci obrázků a videí. Využíváme ho jako vstup pro lepší ořez produktových obrázků nebo pomocí neuronové sítě připravené výzkumným týmem detekujeme potenciálně nevhodný obsah ve videu.

Terraform

Terraform je klíčovým prvkem pro správu infrastruktury jako kódu (Infrastructure as Code). Terraform umožňuje definovat prostředí naší infrastruktury prostřednictvím deklarativního jazyka a poté automatizuje nasazení a správu těchto zdrojů napříč cloudovými platformami. Díky Terraformu je možné jednoduše vytvářet, upravovat a odstraňovat komponenty infrastruktury, jako jsou virtuální stroje, databázové instance nebo síťová zařízení, a to s minimální manuální intervencí. Tímto způsobem Seznam.cz efektivně škáluje svou infrastrukturu, zvyšuje automatizaci a minimalizuje chybovost při provozu a správě SCIF prostředí.

TestFlight

Pomocí TestFlightu ukládáme testovací verze aplikací.

TypeScript

V TypeScriptu píšeme většinu nových webových front-endů pro zajištění typové kontroly.

V

Vitess

Middleware umožňující téměř transparentní sharding nad MySQL databázemi.

Vue.js

Framework, který využíváme v administraci domovské stránky Seznamu spolu s Nuxt.js a Vuetify.

W

Webpack

Modulární rozšiřitelný bundler pro frontend, který využíváme pro vytvoření balíků (bundlů) kódu pro prohlížeče ze zdrojového kódu.

Technologií máme spousty, stačí si jen vybrat, která vám nejlíp sedne. Mrkněte na volné židle, které teď máme k dispozici.