Привіт, Хабр!


Минулого тижня ми випустили нову версію Upsource 2017.1 — перше велике оновлення в цьому році. У нову версію увійшло безліч нових функцій, ряд поліпшень в частині юзабіліті і не тільки. Тепер до ваших послуг крос-проектний текстовий пошук, браузерні повідомлення, відстеження прогресу рев'ю, підтримка squash/rebase, нові воркфлоу, базова підтримку GitLab і багато іншого!

Подивіться стислий огляд нової версії англійською мовою:



Читати далі →

Вийшов GitLab 8.16: Підтримка Google Container Engine, вбудований Prometheus + тайм-трекінг в CE

Історія з видаленням бази звичайно затьмарила всі інші новини про ГитЛаб. Так що якщо ви пропустили релізний пост про зміни і нові функції в GitLab 8.16, нижче — його переклад:
Наша мета — зробити участь у розробці доступним для кожного. Для цього ми робимо інструментарій GitLab простим у використанні, налаштуванні і обслуговуванні. попередній версії GitLab ми реалізували просту настройку безперервної інтеграції (continuous integration, CI) і автоматичне розгортання (deploy) в Kubernetes. А в першому релізі нового року ми робимо наступний крок до нашої мети.

Читати далі →

sudo rm -rf або хроніка інциденту з базою даних GitLab.com від 2017/01/31


Він п'янів повільно, але все-таки сп'янів, як-то відразу, стрибком; і коли в хвилину просвітління побачив перед собою розрубаний дубовий стіл в абсолютно незнайомій кімнаті, оголений меч у своїй руці і плеще в долоні безгрошових донів навколо, то подумав, що пора йти додому. Але було пізно.

Аркадій і Борис Стругацькі
31 січня 2017 року відбулася важлива для світу OpenSource подія: один з адмінів GitLab.com, намагаючись полагодити реплікацію, переплутав консолі і видалив основну базу PostgreSQL, в результаті чого було втрачено велику кількість даних, і сам сервіс пішов в офф-лайн. При цьому всі 5 різних способів бекапа/реплікації виявилися неробочими. Відновилися ж з LVM-знімка, випадково зробленої за 6 годин до видалення бази. It, як кажуть, happens. Але треба віддати належне команді проекту, так як вони знайшли в собі сили поставитися до всього з гумором, не втратили голову і проявили дивовижну відкритість, написавши про все в твіттері і виклавши в загальний доступ, по суті, внутрішній документ, в якому команда в реальному часі вела опис розгортаються подій.
Під час його читання буквально відчуваєш себе на місці бідного YP, який в 11 годин вечора після важкого трудового дня і безрезультатної боротьби з Постгресом, стомлено мружачись, вбиває в консоль бойового сервера фатальне
sudo rm -rf
і тисне Enter. Через секунду він розуміє, що накоїв, скасовує видалення, але вже пізно — бази більше немає...
З причини важливості і в багатьох сенсах поучительности цього випадку, ми вирішили повністю перевести на російську мову його журнал-звіт, зроблений співробітниками GitLab.com у процесі роботи над інцидентом. Результат ви можете знайти під катом.
Читати далі →

Вийшов GitLab 8.15

В останньому релізі минулого року ми завершуємо наш Майстер-план і хочемо показати вам дещо цікаве з того, над чим ми працювали.

У GitLab 8.15 з'явилася фіча Auto Deploy – автоматизована налаштування розгортання і додатків для рев'ю (Review Apps). Для проекту на Ruby on Rails така настройка займе менше хвилини. Подивіться, як це працює, у відео на 1:42.
до того Ж, доступ до ваших середовищ (environments) став швидше і простіше: через термінал безпосередньо в GitLab (там же 5:18)
Ми хочемо дати кожному можливість використовувати всю міць контейнерів (containers), безперервної інтеграції і розгортання (continuous integration and deployment, скорочено CD/CI), додатків для рев'ю (review apps) і планувальників контейнерів (container schedulers). У GitLab 8.15 ми взяли на себе всю складну роботу по налаштуванню, і вся вона відбувається абсолютно прозоро. У демонстраційному відео ми налаштовуємо і розгортаємо Ruby-додаток з review apps, кількома середовищами і чатопсом (chatops, управління інфраструктурою через інтеграцію з чатом) на кластер Kubernetes приблизно за 12 хвилин. Без GitLab таке завдання зазвичай займає дні, якщо не тижні.
Для більшості з нас грудень — місяць свят і подарунків. GitLab теж отримав в подарунок багато нових фіч.

Читати далі →

Docker, GitLab, безкоштовні SSL-сертифікати та інші плюшки сучасної веб-розробки

І знову здрастуйте!
Майже п'ять років вже не писав тут нових статей, хоча, якщо чесно, завжди знав, що рано чи пізно почну це робити знову. Не знаю як вам, а мені все таки це справа завжди здавалося досить захоплюючим.
Починати написання нового матеріалу після такого тривалого відпочинку від цієї справи — найважче. Але якщо мета поставлена — треба йти до кінця. Почну трохи здалеку.
Все своє свідоме життя основним родом моєї діяльності була і залишається донині веб-розробка. Саме тому, зізнаюся відразу, що даний матеріал варто сприймати саме як спроба побудови Docker-кластера від системного адміністратора любителя, але ніяк не професіонала. У цій статті я не можу не претендувати на експертну думку у кластеризації і навіть, більше того, сам же хочу перевірити достовірність власного досвіду.
Під хабракатом ви знайдете Quick Start по використанню Docker на рівні, необхідному для вирішення конкретних завдань, зазначених нижче, без заглиблення в "ліс" віртуалізації та інших супутніх тем. Якщо ви досі хочете почати успішно використовувати цю сучасну технологію, тим самим значно спростивши цілий ряд процесів: від розробки веб-продуктів і до розгортання і перенесення їх під яку-небудь сучасне обладнання — прошу під кат!
Opening Illustration - Docker
Читати далі →

Вийшов GitLab 8.14

Уявіть, що ви робите рев'ю коду нової фічі. Крім якості коду вам також цікаво, як вона буде виглядати і працювати у вашому продукті і наскільки зручно буде її використовувати. Раніше вам довелося б перервати процес розробки на власній робочій машині, зробити checkout на проверяемую гілку, провести потрібні міграції БД і запустити всю робочу середу (development environment), необхідну для застосування. Тепер вам достатньо зайти в мерж-реквест цієї гілки на GitLab. Там буде посилання на вже працюючий додаток, розгорнуте в окремій середовищі.
Нарешті, рев'ю завершено, і ви даєте колезі зворотний зв'язок у чаті.
Замість того, щоб вирішувати, хто з вас піде заводити нову задачу в трекері, ви можете створити завдання і оцінити час на її розробку, не виходячи з чату. Аналітика циклу розробки (cycle analytics) відразу врахує цю оцінку і буде показувати вам весь шлях завдання до випуску на production, повідомляючи про можливі вузьких місцях.
Усе це і багато іншого можливо в новій версії GitLab 8.14. У ній з'явився облік робочого часу, додатки для рев'ю (Review Apps), команди чат (chat commands) і нові можливості аналітики циклу розробки.
Читати далі →

GitLab Flow

Це переклад досить важливою статті про GitLab Flow, альтернативу Git і GitHub flow. Стаття була написана в 2014, так що скріншоти встигли застаріти. Тим не менше сама стаття більш ніж актуальна, особливо якщо ви до цих пір йдіть на Git Flow. Нижче сама стаття:


Розгалуження і злиття гілок в git влаштовано набагато простіше, ніж в попередніх системах контролю версій, таких як SVN. Тому є багато способів організації командної роботи над кодом, і більшість з них досить гарні. Принаймні, вони дають багато переваг в порівнянні з тим, що було до git. Але сам по собі git — не срібна куля, і в багатьох командах організація робочого процесу з git має ряд проблем:
  • Не описаний точним чином весь робочий процес,
  • Вноситься непотрібна складність,
  • Немає зв'язку з трекером завдань (issue tracker).
Ми хочемо представити вам GitLab flow — чітко певний набір практик, що вирішує ці проблеми. Він об'єднує в одну систему:

Читати далі →

Автоматичне розгортання Django з GitLab

У цій статті я опишу налаштування автоматичного розгортання веб-додатки на стеку Django + uWSGI + PostgreSQL + Nginx з репозиторію на сервісі GitLab.com. Викладене також стосується кастомних інсталяції GitLab. Передбачається, що читач має досвід у створенні веб-додатків на Django, а так само досвід адміністрування Linux-систем.
Читати далі →

Реліз GitLab 8.13

Ми подорожуємо по світу і дуже раді зустрічам з нашими користувачами.
В цьому місяці ми з гордістю хочемо вам представити безліч нововведень, про які ви просили нас як особисто, так і через наш трекер задач.
Тепер можна створювати кілька дощок завдань (issue boards), а перебуваючи на сторінці дошки — швидко заводити нові завдання. Життя мерж-конфліктів стала ще важче і більш швидкоплинний, тому що тепер їх можна дозволяти безпосередньо в GitLab. Покращена система Cycle Analytics дозволяє ще простіше стежити за тим, яка версія коду виконується в кожному з оточень (environments), а також надає вам миттєву зворотний зв'язок.
Званням MVP цього місяця нагороджується Марк Зигфридт (Marc Siegfriedt) за його внесок у створення точки входу (endpoint) API для коміта кількох файлів одразу. Марк виявив терпіння і наполегливість у роботі над цим складним мерж-реквестом. Спасибі, Марку!

Читати далі →

GitLab про політику управління проектами open source

Деякі скептично висловлюються щодо ГитЛаба — мовляв ось ви перестанете підтримувати безкоштовний Community Edition(CE), і що ми будемо робити? Не перестанемо. Публікуємо для вас переклад статті на цю тему.


Нещодавно ми зафіксували нашу політику щодо підтримки ПЗ з відкритим кодом (open source) і нашу відданість цим методом розробки. Коротко нашу політику можна описати так: потрібно приймати рішення в інтересах проекту, при цьому не забуваючи про бізнес, який цей проект підтримує. У цій статті я хочу поділитися з вами думками про деякі правила в нашій політиці.

Читати далі →