ВПЗ (open your source, b*tch!)

Мене тішить дум­ка, що керів­ни­цтво ком­па­нії пози­тив­но оці­ни­ло пра­гне­н­ня випу­сти­ти у від­кри­те пла­ва­н­ня пев­ні вну­трі­шні напра­цю­ва­н­ня.

Оскіль­ки я займа­ю­ся систе­ма­ми збе­рі­га­н­ня даних і вір­ту­а­лі­за­ці­єю, деякі речі потре­бу­ють бра­ти gcc і зати­шну сіше­чку в руки, щоб інте­гру­ва­ти всі­ля­кі фрон­тен­ди з усі­ля­ки­ми бекен­да­ми. Оскіль­ки я ще й при­скі­пли­вий, мені зда­є­ться, що вихо­дять дово­лі які­сні речі. Зві­сно, пов­ні­стю код пока­зу­ва­ти нема сен­су (кому ціка­ві суто наші вузь­ко­спе­ци­фі­чні шту­чки?), а от загаль­ні супу­тні бібліо­те­ки, напи­са­ні для полег­ше­н­ня собі жит­тя, тре­ба роз­да­ва­ти всім.

Із того, що ми зараз випу­сти­ли:

  • pfcquirks — NIH-бібліо­те­ка дуже кори­сних для мене обгор­ток над стан­дар­тни­ми фун­кці­я­ми для робо­ти з пам’яттю та string'ами, вико­ри­сто­ву­є­ться у всьо­му, що я пишу на Сі;
  • pfzjob — обгор­тка над ZMQ-соке­та­ми, вико­ри­сто­ву­є­ться як висо­ко­про­ду­ктив­не, надій­не й бага­то­по­то­чне ядро для інте­гра­ції медіа-фрон­тен­да і мід­длен­да з бекен­дом на GlusterFS;
  • pfpthquirks — ще одна NIH-бібліо­те­ка для тих, кого задра­ло ручка­ми гра­ти­ся з POSIX-пото­ка­ми;
  • pfpf — мега­ро­зроб­ка з дикої сумі­ші epoll+pthreads+SO_REUSEPORT, вико­ри­сто­ву­ва­ло­ся в нас як пер­спе­ктив­не ядро для інте­гра­ції фрон­тенд-бекенд, поки я не пішов у бік ZMQ;
  • pfglfsquirks — малень­ка бібліо­те­чка з кіль­кох обгор­ток для GlusterFS C API, у якій коду рані­ше було тро­хи біль­ше, але через непо­трі­бність його було вичи­ще­но.

Зауваж­те pf-пре­фі­кси у всіх бібліо­те­ках :).

Окрім бібліо­тек ми ще заре­лі­зи­ли кіль­ка малень­ких і кори­сних ути­літ:

  • pingtcp — шту­ка, якою я вирі­шив для себе дві зада­чі: вико­ри­ста­ти не-deprecated API для мере­же­во­го про­гра­му­ва­н­ня, а також запу­сти­ти це API через мере­жу TOR (а сама ути­лі­та про­сто міряє час TCP-хенд­шей­ка, при цьо­му, наскіль­ки я знаю, її бла­го­по­лу­чно вико­ри­сто­ву­ють наші мере­же­ви­ки);
  • glcopy — малень­ка, але гор­да інно­ва­цій­на ути­лі­та для масо­во­го копі­ю­ва­н­ня фай­лів між кіль­ко­ма GlusterFS-нода­ми без FUSE.

А ще у від­кри­тий доступ викла­де­но ifcfg-скри­пти для VETH, яки­ми я нама­га­ю­ся пра­виль­но вирі­ши­ти про­бле­му фла­па­н­ня L2-мостів у Ліну­ксі на гіпер­ві­зо­рах із купою вір­ту­а­лок. Скри­пти про­сті, дово­лі дов­го тесту­ва­ли­ся в мене на робо­чо­му місці, а тепер я їх зага­няю у про­да­кшн і схре­щую паль­ці, щоб усе було ОК =).

Із того, чим займав­ся не я, ми випу­сти­ли моди­фі­ко­ва­ний rtmp-модуль для nginx'а, яким хло­пці з моні­то­рин­гу ріша­ють свої зада­чі по відео­спо­сте­ре­жен­ню.

Нао­ста­нок хочу заува­жи­ти, що готу­є­ться мега­ре­ліз висо­ко­про­ду­ктив­но­го, haproxy-поді­бно­го, але про­сто­го як дро­ва HA-DNS-балан­су­валь­ни­ка. Зараз він успі­шно про­йшов вну­трі­шнє тесту­ва­н­ня, і якщо вийде так, що через ньо­го справ­но обслу­го­ву­ва­ти­ме­ться ввесь клі­єнт­ський DNS-тра­фік, то ми його обов’язкомо від­да­мо в opensource.

Мітки: ,

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

*

Цей сайт використовує Akismet для зменшення спаму. Дізнайтеся, як обробляються ваші дані коментарів.