Portál AbcLinuxu, 19. říjen 2017 05:52

Rozhovor: Shane Kerr a Michal Vaner, vývojáři BIND 10

24. 3. 2011 | Luboš Doležel
Články - Rozhovor: Shane Kerr a Michal Vaner, vývojáři BIND 10  

Tento týden se v Praze koná setkání vývojářů BIND 10, které hostuje CZ.NIC, správce domény .CZ. Dostali jsme příležitost popovídat si se Shanem Kerrem, programovým manažerem BIND 10 z ISC, ale také s Michalem Vanerem, kterého zaměstnal CZ.NIC, aby pracoval právě na BIND 10. BIND je pravděpodobně nejrozšířenější implementace jmenného serveru (DNS) na světě.

Obsah

Co BIND 10 přinese

link

Proč BIND 10? Proč jste jen nepokračovali v rozvoji BIND 9?

Shane Kerr: Hlavním důvodem je to, že v době, kdy Paul Vixie rozhodl, že vznikne BIND 10, byl BIND 9 cca. 10 let starý. A Internet se za těch 10 let dost změnil. V době, kdy vzniklo BIND 9, měla většina počítačů jen jedno CPU, lidé doma používali modemy a neměli širokopásmové připojení, počítače měly mnohem méně paměti. Bylo to odlišné prostředí. Taktéž softwarový trh s DNS se změnil, v době, kdy vznikl BIND 9, existoval akorát BIND 8. Mezitím vznikla celá řada nových DNS serverů a ty vznikly právě kvůli tomu, že BIND neuměl vše, co bylo potřeba.

Takže tu máme vysokovýkonnostní open source konkurenty, ty nemají tolik funkcí, mají velmi specifický soubor funkcí, ale fungují velmi dobře. Také tu máme DNS servery, které mají SQL backendy, například ISP a velkým firmám se hodí, když mohou data ukládat právě takto. Je velmi obtížné něco takového udělat s BIND 9 a s jinými produkty je to naopak snadné, takže jsme chtěli také dosáhnout toho, aby BIND uměl i podobné věci.

A předělat BIND 9, aby to zvládal, by znamenalo spoustu práce. Takže než abychom do BIND 9 zaváděli takové množství změn, rozhodli jsme se vytvořit nový software.

Rozhovor - konference BIND 10 v Praze

A jaké (další) nové funkce budou dostupné v BIND 10?

SK: Máme tam řadu funkcí, umíme SQL, akuálně tedy jen jeden typ SQL [databáze], ale myslím si, že pro nás bude dostatečně snadné přidat podporu pro další. Open source SQL se vývojářům obvykle velmi snadno používá. U BINDu 10 teď také máme mnohem větší modularitu. Pokud provozujete DNS server s BIND 9, musíte mít spuštěné všechno. Takže pokud například – zrovna dnes [na konferenci] jsme tu mluvili od Dynamic DNS – většina uživatelů pravděpodobně nepoužívá Dynamic DNS a i když to nepoužíváte, stejně musíte mít na toto spuštěný software, což přidává bezpečnostní rizika, komplikuje správu a další podobné věci.

S BIND 10 spouštíte jen věci, které opravdu používáte, takže se to snáze spravuje a je to bezpečnější a spolehlivější. Součástí modularity v našem podání je spouštění jednotlivých komponent, což má za následek větší robustnost: pokud má jedna komponenta problém, tento kus programu se zastaví a pokud je to možné, bude zrestartován. To znamená, že pokud máte v softwaru chybu nebo selže něco jiného jako např. disk, nemusíte nutně zastavit všechno, ale jen něco.

Pro BIND 10 také plánujeme další funkce, které jsme ještě neimplementovali, dnes tu také budeme mluvit o možnostech dalšího rozšíření tohoto softwaru. Pokud chcete, aby BIND 9 fungovalo nějakým jiným způsobem, je velmi obtížné tento software změnit. To je důvod, proč píšeme BIND 10, protože i pro nás bylo obtížné ten software nějak změnit. V BIND 10 je systém pluginů a háčků (hooks), takže jako zkušený administrátor, možná amatérský programátor, máte šanci změnit software, aby dělal to, co chcete. To jsou ty hlavní věci.

Dočetl jsem se, že u BIND 10 se už nebudou používat textové konfigurační soubory, nýbrž nějaké databázové soubory. Proč jste se tak rozhodli?

SK: Jedním z problémů, se kterými se můžete setkat při provozování BIND 9 a řady dalších DNS serverů, je to, že pokud uděláte změnu v konfiguraci, musíte službu zrestartovat. Netýká se to úplně všeho, ale u některých změn je restart služby nezbytný.

Pokud provozujete server s desítkami tisíc domén a obsluhujete tisíce požadavků za sekundu, nechce se vám služby restartovat. Takže jedním z našich cílů pro BIND 10 je to, že nikdy nemusíte službu restartovat. Proto jedna z věcí, co jsme udělali, je, že jsme každý kus softwaru napsali tak, že pokud změnite konfiguraci, ihned to zohlední, takže nemusíte program restartovat. Pro nás bylo mnohem snaží toho dosáhnout, pokud se konfigurační soubor podobá databázi.

Jako model jsme použili router. Pokud váš poskytovatel zavede peering s jiným ISP, nemusíte měnit konfigurační soubor a restartovat router, maximálně jen změníte nastavení a ono to hned začne fungovat. Ale ani nechceme lidi zastrašit, pokud chtějí používat konfiguraci ve starém stylu, budeme podporovat načítání takového souboru při spouštění serveru.

Michal Vaner: Měli jsme takový nápad, že bychom měli nástroj, který by vám zobrazil konfigurační soubor na požádání – protože tato databáze se dá konec konců vyjádřit jako textový soubor – takže kdyby se všechno rozbilo, mohli byste otevřít editor a pokusit se najít chybu, ale to by nemělo správně nikdy být potřeba. Každopádně tohle by vám otevřelo váš oblíbený editor, zobrazilo nastavení a na závěr by jej to zapsalo. Toto ještě není implementované, protože aktuální konfigurační frontend je spíše vývojovým prototypem. Byl vytvořen ještě než jsem se připojil týmu a bylo to takové krátkodobé řešení, ale tak nějak to zůstalo. Protože, že jo, pro vývojáře není konfigurační frontend ta nejdůležitější věc, kterou chcete řešit.

Vývoj a testování

link

Slyšel jsem, že jste přešli k C++, je to pravda?

SK: Ano, ve skutečnosti používáme dva jazyky. Používáme C++ a také Python. BIND 9 byl napsán v C, protože je až doposud nejoblíbenějším jazykem pro implementaci „internetového softwaru“. Zvolili jsme C++, protože je to modernější jazyk, dává vám vysoký výkon, můžete mít stejný výkon jako v případě C, pokud svůj software napíšete správně, ale dává vám také mnohem více funkčnosti. Umožňuje nám to psát kód bezpečněji než dříve; jedna z věcí na BIND 9 je to, že musíte dávat velký pozor na to, jestli uvolňujete paměť a na další typické problémy C. S C++ máme mnohem méně problémů.

C++ je nicméně jazykem pro experty, pro průměrného programátora je, řekl bych, víc než dvojnásobně obtížnější než C. Jako další jazyk jsme si vybrali Python a důvodem je to, že se jedná o moderní jazyk, který je velmi dobře podporovaný a – no Michal by asi nesouhlasil – usnadňuje čtení a psaní kódu těm, kdo nejsou experti.

Části kritické na výkon děláme v C++ a na všechno ostatní, kde jen můžeme, pak používáme Python.

Jak testujete BIND? Jak se testuje software, který budou používat tisíce společností a bude pod takovou zátěží?

SK: Aktuálně máme nastaven proces, který vyžaduje kontrolu veškerého kódu, než je zařazen do hlavního stromu. Tohle je zvyklost, kterou já i ISC používáme už od počátku, a znamená to, že každý kus kódu je prohlédnut alespoň dvěma inženýry. Je to takový napůl neformální proces.

Pak máme také nastaveny coding standards (pravidla psaní kódu) a také existuje pravidlo, že pro všechen kód musí existovat unit testy. Nový kód a všechny změny musí mít unit test, který kód ověřuje. Nejprve se píší testy, pak se píše kód a pak až je hotovo. Ale nemáme 100% pokrytí kódu, protože některý kód byl napsán, ještě než jsme toto zavedli, a navíc některé kusy kódu je velmi obtížné testovat tímto způsobem.

Máme také takovou věc, jmenuje se to „continuous integration“, kdy máme sadu strojů, které kompilují náš software a spouští unit testy, kdykoliv uděláme v kódu změnu. Nemáme takhle testovány všechny platformy, ale ty obvyklé ano, prostě ta obvyklá unixová prostředí. Testujeme na několika odrůdách Linuxu, potom testujeme na FreeBSD, NetBSD, Solarisu a také na OS X. Ověřujeme, že je možné kód zkompilovat a spouštět pod těmito systémy.

To je to, jak to děláme dnes. Také se zajímáme o způsoby, jak zvýšit a zlepšit naše testování, takže zkoumáme systémové testy a to jsou testy, které netestují konkrétní funkce, ale celý program. Takže například nás zajímá myšlenka fuzz testů, kdy serveru posíláme v podstatě náhodná data a ověřujeme, že vše běží v pořádku. Dále pak děláme porovnávací test BIND 10 versus jiný DNS software, takže si vezmeme server, strčíme do něj předdefinovanou zónu, vezmeme si sadu zaznamenaných požadavků, a ty pak posíláme BINDu 9 – a v budoucnu dalším serverům – a BINDu 10. Pak porovnáváme výsledky a ověřujeme, že jsou shodné. Pokud nejsou, jeden ze serverů má v sobě chybu.

MV: No, nemusí tam být vyloženě chyba...

SK: Pravda, musíme v takovém případě alespoň vědět, oč jde. Také nás zajímají různé standardizované sady testů. Jedna z věcí, která mě osobně velmi zaujala, je testovací sada ověřující rekurzivní DNS. V současnosti je rekurzivní řešení požadavků v podstatě neotestované, protože tento problém je obtížné testovat. U autoritativního DNS nastavíte server, pošlete požadavek a dostanete odpověď, je to velice přímočaré. Kdežto u rekurzivního DNS fungujete tak trochu jako proxy, takže posíláte namísto uživatele řadu požadavků, což má za následek to, že v testovacím prostředí musíte simulovat všechny ostatní autoritativní servery a předdefinovat chybové stavy. Pokud vím, tak tahle věc, kterou právě teď stavíme, nikde na světě neexistuje. Tohle by snad lidem mělo dodat důvěru, že software bude dělat to, co má.

Produkční nasazení BIND 10

link

Kdy bude BIND 10 hotov?

SK: Dnes ráno jsme vydali konečnou verzi BIND 10 za druhý rok vývoje, takže si to můžete stáhnout a můžete to používat.

MV: No, záleží na tom, co považujete za hotové... Pokud to chcete používat na svém osobním serveru a jste ochoten si s tím hrát, tak to svým způsobem hotové je.

Ale pro produkční nasazení?

SK: O tom, co to znamená „vhodné pro produkční nasazení“, jsme už vedli několik diskuzí. Problém je v tom, že vnímání každého člověka o vhodnosti pro produkční nasazení se odvíjí od prostředí, který dotyčný používá. Takže aktuálně nabízíme jinou řadu funkcí, jiné výkonnostní vlastnosti a robustnost, nicméně uvažujeme o tom, že co se provozu jako autorativní server týče, měli bychom být připraveni na produkční nasazení v září.

Tento týden jsme zrovna zanepráznění plánováním. Možná to přijde o něco později, ale za 6 až 8 měsíců by BIND měl být připraven pro jakékoliv produkční nasazeníjako autoritativní server. Co se rekurzivního serveru týče, to zabere o několik měsíců déle, ale příští rok touhle dobou by mělo být možné používat BIND 10 v libovolném produkčním prostředí a budete moci mít důvěru v to, že nabídne stabilitu a rozumný výkon a všechny funkce, o kterých jsme mluvili.

A jaká jsou další témata, která jste tady v ČR řešili?

SK: Náš aktuální vývojový tým je z celého světa. ISC má vývojáře, které zaměstnává ze všech koutů světa, a pracujeme tedy na dálku. Také máme lidi, které nám někdo „daruje“, jako tady Michala CZ.NIC, máme také lidi pracující z JPRS (japonský doménový registrátor) a CNNICu (čínský registrátor). A to je opravdu hezký model, protože díky tomu na tomto softwaru pracují ti nejlepší vývojáři z celého světa.

Ale je také často velmi složité vést diskuze, když jste od sebe devět časových zón a nevidíte se. Proto se několikrát za rok scházíme; tohle je naše poslední setkání za druhý rok vývoje a první za třetí rok a zde plánujeme naší práci na další rok. Zaměřujeme se hlavně na to, abychom vše dotlačili vše do stádia připravenosti pro produkční nasazení. Dokončili jsme většinu funkcí, musíme dodělat ty zbylé a pracovat na stabilitě a výkonu.

Vývojáři a BIND 10

link

Jak si mezi sebou rozdělujete práci? Máte prostě vedoucího, který řekne ty uděláš tohle a ty se zaměříš na tamto?

SK: To není můj styl (smích), i když Michal by možná nesouhlasil. Já a Larissa Shupiro, která je produktovým manažerem všech produktů od ISC, vybíráme funkce, které se budou dělat v následujících dvou týdnech, a pak vyjednáváme s týmem ohledně toho, jaké funkce si myslí, že zvládnou udělat. A jeden z našich vývojářů – Steven Morris – organizuje práci a sleduje, co už bylo uděláno. Používáme také online systémy pro spolupráci (online collaboration tools). Pokud půjdete na náš veřejný web – bind10.isc.org – můžete vidět postup prací na všem, co děláme. Můžete si prohlížet jednotlivé tickety a jak nám to jde.

Snažíme se veškerou naší práci dělat veřejně. Při předchozích projektech jsme používali model „katedrála“ – jestli znáte rozdíl bazar vs. katedrála... ISC má velmi zkušené vývojáře, kteří znají potřebné technologie dobře. A ti jdou do svých kanceláří, rozhodne se, jaké funkce jsou potřeba, pracují na nich a pak po roce vyjde nová verze a oni se zase na rok vrátí do kanceláře. Toto posledních 10 let fungovalo dobře, ale já to chtěl u BIND 10 změnit, protože si nemyslím, že by kolem ostatních projektů ISC byla nějaká komunita, a co já mám na open source rád a co jej podle mě dělá lepším než closed source je to, že se vývojáři a uživatelé setkávají a pracují na řešení problémů společně.

Zatím nic takového nemáme, protože tento software ještě není moc zajímavý, ale to se zlepšuje, takže doufáme, že budeme mít více uživatelů. Všechno je na našich stránkách, máme mailing listy, kde se můžete pobavit s vývojáři a další podobné věci...

Rozhovor - konference BIND 10 v Praze Rozhovor - konference BIND 10 v Praze Rozhovor - konference BIND 10 v Praze

Jak se vlastně člověk dostane k vývoji BINDu?

SK: Co se lidí jako Michal týče, Paul Vixie mluvil s Ondřejem Surým z NICu, jestli by nechtěli sponzorovat BIND 10, a Ondřej řekl, že „v naší společnosti nic takového dělat nemůžeme, nemůžeme posílat peníze na projekt mimo ČR“. Nevím, jestli jde o právní věc nebo vnitřní pravidla společnosti, nicméně Paul Vixie se zeptal, jestli by nemohli někoho zaměstnat a odpověď byla, že to ano. Takže se na tom dohodli a já jsem pak mluvil s Ondřejem a on se zeptal, co potřebujeme, já jsem řekl, že velmi dobrého vývojáře, který má rád ostrá jídla... Ondřej řekl, že dobrého vývojáře najdou, ale s tím ostrým jídlem v ČR že neví (smích). A podařilo se jim najít Michala a musím ho pochválit, že je velmi dobrý.

V ISC si hledáme vývojáře sami, používáme na to obvyklé způsoby. Pokud známe experty v oboru, tak je zaměstnáme, pokud si nějakou práci zrovna hledají... ale ukazuje se, že takových lidí není mnoho. Není to jako vývojáři databázových systémů nebo webů v PHP, na světě je asi tak sto lidí, kteří píší tento typ softwaru. Takže najít lidi je obtížné.

Aktuálně se snažíme najít zkušené vývojáře a věci kolem DNS se mohou pak naučit. V minulosti jsme se snažili najít přímo vývojáře DNS, ale to je moc obtížné.

Co považujete za největší rizika pro DNS?

SK: No, já jsem teda technolog... ale po technické stránce se DNS rozvíjí docela hezky, stává se z toho sofistikovanější technologie, což znamená, že je složitější, potřebujete získat více zkušeností, potřebujete propracovanější stroje, redundantní řešení, řešení pro dobrou správu a údržbu. Částečně jde o evoluci, ale DNSSEC tomu také hodně pomohl. Z technogické stránky se DNS stává spolehlivějším, robustnějším, nabízí více funkčnosti.

Tudíž si myslím, že všechna rizika pro DNS přicházejí od politiků, kteří rozhodují, jak některé věci budou vypadat... různé země mají různé firewally, USA nedávno začaly konfiskovat domény, které považují za nevhodné, a další podobné věci... A to všechno je to, odkud budou problémy přicházet. Protože technologie dozrály a vlády si s tím začínají hrát.

MV: Vidím velký problém a tím jsou obyčejní uživatelé. Standard říká, že zóna má vypadat tak či onak, ale pak máte 10 % zón, které vypadají jinak a my to musíme také podporovat. Pak jsou tu někteří, kteří chtějí... jak bych to řekl... nasazovat svým zákazníkům růžové brýle... Například existují ISP, u kterých když napíšete do prohlížeče špatně doménové jméno, ukážou vám své reklamy namísto toho, aby poslali informaci, že záznam neexistuje.

Jo, to bude asi i případ OpenDNS, nebo jak se to jmenovalo...

SK: Jojo, OpenDNS, to je jejich obchodní model. Poskytují (snad) vysoce kvalitní rekurzivní DNS a pokud se někde překlepnete, šup a máte tam reklamu.

Michal Vaner a práce na BIND

link

A jak ses ty, Michale, dostal k práci na DNS serveru?

MV: Studuji na VŠ a začal jsem uvažovat nad tím, že studování teorie je hezké, ale nenaučí vás to všechno. Takže jsem se chtěl dostat ke skutečnému programování a zmínil jsem to několika přátelům. A jeden z nich se znal s Ondřejem Surým a řekl mi, že CZ.NIC hledá vývojáře, „měl bych se jim o tobě zmínit?“ A já řekl, proč ne, jednoho večera mi přišel e-mail, jestli bych neměl zájem předvést, jak mi to jde, a sejít se a pak jsem tu práci prostě dostal.

Rozhovor - konference BIND 10 v Praze

A z jaké VŠ jsi? Z Karlovky?

MV: Jo, z Karlovky.

Matfyz?

MV: Jo, z matfyzu :-)

Tohle už tu asi bylo zodpovězeno, ale v čem vám pomáhá toto setkání vývojářů?

MV: Jsou to dvě věci. Jedna věc je vidět ostatní lidi a potykat si s kolegy programátory. A druhá věc je, že kdybyste úplně oddělil všechny programátory a oni museli spolupracovat na vývoji nějakého softwaru, nefungovalo by to. Takže musíme prodiskutovat věci, které je těžké řešit online nebo po telefonu. A to potom máme třeba čtyři setkání za rok a odkládáme věci, které je nutné takhle řešit, na další z těchto setkání. Řešíme priority, co budeme dělat jako první a co až později, vedeme technické diskuze, jak ošetříme tohle a tamto...

Dělal jste něco na BINDu ještě než jste začal dělat pro CZ.NIC?

MV: Ne, to ani ne. Předtím jsem jen načetl všechny specifikace protokolů a tak.

Na jakých projektech jste dělal před tímto?

MV: Nějakou dobu jsem pracoval v SUSE jako správce balíčků (Shane se začíná pomalu odsouvat dál od Michala) Odsedáváš si, protože...

SK: Ne, já mám rád všechny Linuxy, to je v pohodě :-)

MV: No však já neříkám, že jsem to _používal_ (smích)... A pracoval jsem také na projektu, co se jmenuje Sherlock Holmes, indexační software pro webové stránky, ale měl jsem i několik vlastních projektů, kterým se nedostalo velké pozornosti.

Oblíbená distribuce a postoj k open source

link

Takže jaké distribuce (oba dva) používáte?

SK: Zrovna jsem přešel z Ubuntu, v poslední době na mě byli trochu moc šílení, takže na desktop jsem si dal Fedoru a na notebook Arch Linux a na všech mých serverech mám Debian.

MV: Já používám Gentoo, protože já jsem ten typ člověka, co se snaží všechno rozbít, třikrát nebo čtyřikrát do měsíce.

Co pro vás znamená open source?

MV: Mám rád open source, protože mi umožňuje si s věcmi hrát, navyknul jsem si na to mít systém natolik přizpůsobený sobě samotnému, že by jej už nikdo jiný nemohl používat. A občas narazím na to, že daný program nedělá to, co bych chtěl, ale asi jsem také jediný, komu se to tak nelíbí, takže si to upravím, aby to třeba používalo tohle tlačítko myši místo jiného a podobné věci. A tohle je na open source skvělé.

Pak je tu vývojářský pohled na věc. Psaní s open source je snazší, existuje spousta nástrojů, které mohu zdarma používat, spousta knihoven... a také pokud narazíte na problém s knihovnou, ke které nemáte zdrojový kód, najít řešení je docela těžké. To se mi stalo takhle jednou s ASIO, náš kód nefungoval, dostával se do nekonečné smyčky... prošel jsem kód a našel jsem příčinu. Ukázalo se, že chyba byla v mém kódu, ale kdybych neměl možnost pochopit vnitřní fungování knihovny, nevím, jestli bych ji dokázal najít.

SK: Michalův pohled na věc je docela podobný mému. Líbí se mi, že pokud chci něco udělat jinak, tak můžu. Práce v proprietárním prostředí je pro mě dost frustrující, ať už jsou to Windows nebo OS X. A z hlediska vývojáře, všichni například jsme trochu leniví a pokud vyvíjíte open source, tak víte, že na ten kód se někdo bude dívat. Takže samozřejmě píšete software tak, abyste vyřešili daný problém, ale píšete jej i pro pozdější vývojáře, kteří ten kód vezmou, přečtou si ho a upraví ho. To je něco, co by se mělo dělat vždycky, ale u open source je pro to větší motivace. Takže si myslím, že píšu lepší kód.

Také si myslím, že kultura spjatá s používáním open source je důležitá. Snažím se přesvědčovat organizace, aby začaly používat open source, a především vlády. Myslím si, že je obzvlášť důležité, aby občané měli možnost přistupovat k datům, která vláda má, mohli je používat a samostatně kontrolovat... a pokud jsou formuláře v proprietárních formátech a zákony jsou takové, že musíte používat speciální programy na některé věci, tak musíte důvěřovat nějaké společnosti. A open source znamená, že nemusím důvěřovat nikomu.

Bezpečnost, správa zdrojového kódu

link

Jaké to je být zodpovědný za software používaný po celém světě, když se třeba objeví nějaké bezpečnostní problémy; jaké to je mít tu zodpovědnost?

SK: Je to docela super, no, abych pravdu řekl, BIND 10 se ještě nedočkal velkého produkčního užívání. Stále jde o čtyři nebo pět počítačů, které to používají takovým způsobem. Doufáme, že jich brzy bude víc.

ISC má dost dobrou infrastrukturu pro řešení bezpečnostních problémů, máme nastavené procesy... Je to dost strašidelné, když píšete software a začnou se objevovat vaše první bezpečnostní problémy, ale pravda je taková, že každý software má chyby a každá chyba je potenciální bezpečnostní problém. Takže musíte udělat věci taky, aby bezpečnostní problémy nevznikaly tak snadno, dále pak všechno testování a další záležitosti, které jsem tu zmiňoval, také pomáhají předcházet bezpečnostním problémům a dále jsme tu na konferenci dnes problírali, jak si zajistíme bezpečnostní audity a kontrolování kódu třetími stranami.

Navzdory tomu všemu bezpečnostní problémy vždycky vznikají, můžete ošetřit všechny ty obvyklé bezpečnostní nedostatky, jako že nemáte buffer overflow, znaménkové chyby a podobné věci, ale vždy bude docházet ke sofistikovaným útokům. Takže musejí existovat systémy, které pomohou korektně vyřešit situaci, kdy se nějaký problém objeví. V ISC máme politiku plného zveřejnění všech podrobností o chybě (full disclosure), náš kód je open source, takže by to snad ani jinak nešlo, i kdybychom chtěli... ale když obdržíme hlášení o chybě a vypadá to na bezpečnostní chybu, snažíme se to opravit ve spolupráci s tím, kdo to nahlásil, a máme také BIND Forum, kde jsou lidi, kteří platí za to, aby měli bližší přístup k vývojovému procesu BINDu; ti dostávají upozornění jako první. Cíl je ten, aby lidé, kteří například provozují kořenové jmenné servery, měli čas aktualizovat, než ti zlí začnou útočit.

Ne vždycky to ale takhle proběhne. Jsou lidé, kteří chybu publikují a je nutné to vyřešit okamžitě.

Pro BIND 10 ještě fórum nemáme. Mít jej budeme, ale software ještě není hotový pro tento typ produkčního nasazení. Ale nastavíme všechny procesy... Například jsme přešli ze Subversion na Git, který nám umožňuje řešit bezpečnostní problémy, aniž bychom vše ihned zveřejňovali.

A proč Git a ne třeba Mercurial nebo Bazaar?

SK: Když tento projekt začínal, šlo o první projekt ISC, který měl veřejný repozitář se zdrojovým kódem. A to byla věc, na které jsem já trval. Chtěl jsem, aby byl projekt veřejný od samotného počátku. Já jsem zvolil Subversion, protože jsem jej používal už předtím. Sám jsem začínal na CVS a bylo to strašné, nesnášel jsem to, ale byla to jediná tehdy dostupná věc.

Po roce práce na projektu jsme zjistili, že v našem procesu jsou problémy týkající se kontroly kódu, začleňování kódu atd., prodlužoval se checkout repozitáře... a bylo nám jasné, že musíme přejít na nějaký modernější software. Takže jsme nechali jednoho vývojáře, aby si hrál s Mercurialem, druhý si hrál zase s Gitem. Oba dva ověřili, že tyto SCM splňují naše požadavky a fungují dobře. A stalo se to, že vývojář používající Mercurial se do něj zamiloval, začal jej používat pro všechnu svojí práci a postavil jej před SVN repozítář jako proxy. A vývojář používající Git se do Gitu také zamiloval a postavil jej před Subversion jako proxy.

Nepodařilo se nám přijít na rozumný způsob, jak se mezi nimi rozhodnout, a tak si Keith Mitchell hodil mincí a skončili jsme u Gitu!

Závěr

link

Byl jste už někdy v Praze?

SK: Byl jsem v Praze před několika lety, bylo tu setkání IETF, které tu bude i příští týden, což je jeden z důvodů, proč se tu my scházíme právě tento týden. Líbí se mi to tu, když jsem tu byl naposledy, tak jsem tu strávil dva dny navíc, prošel jsem si město, prohlédl si památky, byl jsem na věži atd. Jediná stížnost, kterou mám na Prahu, je to, že je to tu oproti jiným městům těžší pro vegetariány.


Shane Kerr se pak pochlubil něčím, co prokazuje jeho oddanost open source a Linuxu. Ukázal nám své (pravé) tetování, které má už snad 7 let. Na otázku, co bude dělat, kdyby přešel třeba na FreeBSD, řekl, že to se nikdy nestane!

Rozhovor - konference BIND 10 v Praze

Další články z této rubriky

Michal Švec ze SUSE na téma Virtualizace a SLES
Rozhovor s Radkem Špimrem, IBM na téma nových serverů IBM Power Systems LC
Zpověď startupu na vlně IBM
ČVUT jako MIT? Lendl, Navrátilová, Jágr, Sáblíková, nebo absolvent FELu?
Práce vývojáře je dobrodružství

Diskuse k tomuto článku

Max avatar 24.3.2011 08:20 Max | skóre: 65 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Rozhovor: Shane Kerr a Michal Vaner, vývojáři BIND 10
Odpovědět | Sbalit | Link | Blokovat | Admin
Dost dobře. Moc pěkný rozhovor a docela blázen s tetováním :). Mno, po přečtení tohoto rozhovoru se snad ty plačící víly z předposlední zprávičky o bindu uklidní :).
Zdar Max
Měl jsem sen ... :(
24.3.2011 09:34 R
Rozbalit Rozbalit vše Re: Rozhovor: Shane Kerr a Michal Vaner, vývojáři BIND 10
No velmi ma neukludnilo konstatovanie, ze v C++ netreba uvolnovat pamat... a ze pouzivaju co najviac Pythonu, lebo na to netreba expertov.
24.3.2011 10:02 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: Rozhovor: Shane Kerr a Michal Vaner, vývojáři BIND 10
konstatovanie, ze v C++ netreba uvolnovat pamat

Vy tam něco takového vidíte? Tak to jsme asi každý četli jiný rozhovor…

Max avatar 24.3.2011 10:06 Max | skóre: 65 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Rozhovor: Shane Kerr a Michal Vaner, vývojáři BIND 10
Zase bych to nepřekrucoval ;-). Doporučil bych ti, aby jsi si to znovu přečetl a zkusil těch pár vět pochopit.
Zdar Max
Měl jsem sen ... :(
24.3.2011 14:28 Michal Vaner
Rozbalit Rozbalit vše Re: Rozhovor: Shane Kerr a Michal Vaner, vývojáři BIND 10
No, uvolňovat paměť potřeba samozřejmě je. Ale v mnohých případech to udělá něco za nás, ať už je to std::string místo char *, nebo boost::shared_ptr. Prostě je toho místa na chyby méně, což neznamená, že tam nebudou, ale znamená to, že jich tam bude méně.
24.3.2011 10:04 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: Rozhovor: Shane Kerr a Michal Vaner, vývojáři BIND 10
Spíš naopak. Rozhovor potvrzuje, že primární konfigurace bude ta v databázi, navíc sice slibují možnosti importu textové konfigurace, ale nezaručují i možnost exportu…
Max avatar 24.3.2011 11:06 Max | skóre: 65 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Rozhovor: Shane Kerr a Michal Vaner, vývojáři BIND 10
Zkus si to přečíst ještě jednou. Primární bude konfigurace v db, ale kdo chce, může použít klasický konfigurák, viz :

Ale ani nechceme lidi zastrašit, pokud chtějí používat konfiguraci ve starém stylu, budeme podporovat načítání takového souboru při spouštění serveru.


A dále Michal Vaner vyslovil myšlenku, že by se mohl v budoucnu vytvořit nástroj na import/export konfiguráku z/do db
Takže myslím, že ok.
Nebo jsem to pochopil nějak špatně?
Díky
Zdar Max
Měl jsem sen ... :(
24.3.2011 11:15 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: Rozhovor: Shane Kerr a Michal Vaner, vývojáři BIND 10
Jinak řečeno, potvrzujete, co jsem napsal: primární konfigurace bude ta v databázi, sice bude import z textové formy, ale není jisté, jestli bude i export (a nakolik bude jeho výstup prakticky použitelný).
24.3.2011 12:34 Atom321 | skóre: 20
Rozbalit Rozbalit vše Re: Rozhovor: Shane Kerr a Michal Vaner, vývojáři BIND 10
Primární konfiguraci si klidně můžete udržovat v textovém souboru. Že si ji Bind po každém startu do nějaké interní databázové formy, je pro Vás nepodstatný implementační detail.
24.3.2011 12:46 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: Rozhovor: Shane Kerr a Michal Vaner, vývojáři BIND 10
Pokud ten BIND budu od začátku spravovat jen já a upravím si podle toho startovací skripty, tak ano. Ale co když třeba převezmu instalaci po někom jiném nebo budu někomu jinému pomáhat s problémem? Co když budu řešit bugreport někoho, kdo to tak nedělá?
24.3.2011 13:57 JoHnY2
Rozbalit Rozbalit vše Re: Rozhovor: Shane Kerr a Michal Vaner, vývojáři BIND 10
Bude vas to pekne stvat, ale nic moc s tim nenadelate. SW se s casem meni. Nastesti/bohuzel zalezi od prikladu a nasazeni.
24.3.2011 14:40 Michal Vaner
Rozbalit Rozbalit vše Re: Rozhovor: Shane Kerr a Michal Vaner, vývojáři BIND 10
Jen malé upřesnění. Ta „databáze“, je databáze v širším smyslu, on to doopravdy je textový soubor, který se povaluje na disku. Takže je možné ho vzít, zeditovat, nahrát na disketu, nadiktovat po telefonu… Jen to není onen doporučení způsob použití.

A export samozřejmě podporován bude. Sami se to snažíme používat, takže to snad nevyjde nepoužitelné. Ale je pravda, že si často nejsme jistí, co uživatelé chtějí a potřebují, takže jakékoliv nápady a názory uvítáme (nejlépe na mailling listu či jabberu) ;-).
24.3.2011 14:54 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: Rozhovor: Shane Kerr a Michal Vaner, vývojáři BIND 10
Tak to je dobrá zpráva, z těch popisů jsem měl pocit, že je to něco jako sqlite nebo něco na ten způsob. Po ne zrovna příjemných zkušenostech s AVG jsem se toho docela bál.
24.3.2011 10:25 Jirka
Rozbalit Rozbalit vše Re: Rozhovor: Shane Kerr a Michal Vaner, vývojáři BIND 10
Odpovědět | Sbalit | Link | Blokovat | Admin
Jen drobny preklep: Product Manager(ka) od ISC se jmenuje Larissa Shapiro
multi avatar 24.3.2011 11:06 multi | skóre: 38 | blog: JaNejsemOdsut
Rozbalit Rozbalit vše Re: Rozhovor: Shane Kerr a Michal Vaner, vývojáři BIND 10
Odpovědět | Sbalit | Link | Blokovat | Admin
SK: Ne, já mám rád všechny Linuxy,
Na to ja dycky odpovidam Linux je jen jeden .....

(at uz jako SW nebo jako podstatne jmeno)
svoboda je: když chci, tak můžu; kutilův web; bezdrátová čidla teploty vývoj softwaru
24.3.2011 11:18 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: Rozhovor: Shane Kerr a Michal Vaner, vývojáři BIND 10
Z kontextu je jasné, že v tomto případě je slovem "Linux" myšlena linuxová distribuce…
26.3.2011 13:31 mtmr
Rozbalit Rozbalit vše štítky
Odpovědět | Sbalit | Link | Blokovat | Admin
Proč jen to má tolik štítků?
28.3.2011 13:41 imploder | skóre: 11
Rozbalit Rozbalit vše Re: Rozhovor: Shane Kerr a Michal Vaner, vývojáři BIND 10
Odpovědět | Sbalit | Link | Blokovat | Admin
To je zdaleka nejlepší rozhovor, co jsem tady kdy četl.

Drobné nedostatky, co jsem objevil:
  1. "nasazovat svým zákazníkům nasazovat růžové brýle"
  2. proč se MV nejdřív tyká a hned potom vyká?
Obchodní model, kde se vydělává na zobrazování reklam, když se uživatel překlepne, je docela humus. Je to sice OSS, ale zároveň adware. Líbí se vám pořád ještě OSS, když musí kvůli výdělku fungovat takhle? Podle mě to ukazuje, že myšlenka vyvíjet OSS jako ziskový projekt v mnoha případech stojí na vodě. Placená podpora (to do SW samotného nijak nezasahuje) nebo zobrazování reklam (to už do SW zasahuje, znehodnocuje ho) jsou takové obezličky, jak vydělávat na něčem, co je zadarmo. Je v tom rozpor: reálnou práci dělají především vývojáři, ale za tu se neplatí; platí (někteří) uživatelé za podporu a firmy za reklamy - příjemce těch plateb ale může být v podstatě kdokoliv, nemusí to být nikdo z hlavních vývojářů toho SW a nemusí jim dát ani korunu. Pokud na nich zatím nikdo takhle neparazituje, je to jenom štěstí, open-source licence takové parazitování umožňuje.
28.3.2011 15:23 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
Rozbalit Rozbalit vše Re: Rozhovor: Shane Kerr a Michal Vaner, vývojáři BIND 10
To zobrazování reklam je odkaz na OpenDNS? Protože pokud vím, na těch není open source zhola nic (snad až na to, že jejich servery možná nějaký ten oss pohání).
When your hammer is C++, everything begins to look like a thumb.
28.3.2011 19:52 imploder | skóre: 11
Rozbalit Rozbalit vše Re: Rozhovor: Shane Kerr a Michal Vaner, vývojáři BIND 10
Myslel jsem, že si tím vydělává OpenDNS. Když to jenom tuhle možnost nabízí pro provozovatele DNS serverů, tak to je něco jiného.
29.3.2011 08:55 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
Rozbalit Rozbalit vše Re: Rozhovor: Shane Kerr a Michal Vaner, vývojáři BIND 10
Já reagoval na
Obchodní model, kde se vydělává na zobrazování reklam, když se uživatel překlepne, je docela humus. Je to sice OSS, ale zároveň adware.
Ta věta nedává smysl, protože OpenDNS není opensource, jenom adware.
When your hammer is C++, everything begins to look like a thumb.
29.3.2011 09:09 imploder | skóre: 11
Rozbalit Rozbalit vše Re: Rozhovor: Shane Kerr a Michal Vaner, vývojáři BIND 10
No jo, to je fakt. Už to radši nebudu komentovat.

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.