SlideShare a Scribd company logo
1 of 40
Gitlab
Спустя год в продакшене
Андрей Куманяев
Gitlab MVP
Undev
1-й коммит – 11.2012
Запуск в продакшен – 05.2013
Вопросы?
@zzetorg
#devconf #gitlab
Что ждем?
• Создание репозиториев и управление ими
• Предоставление доступа к репозиториям (clone/push/manage)
• Просмотр кода через web интерфейс
• Быстро и легко вносить правки в код
• Понятная и удобная история проекта
• Diff
• Git blame
Gitlab
• Repository management
• Code view / edit
• Merge / Pull Requests
• Code review
• Issue tracker
• Wiki’s
• Snippets
• etc…
Project
Group
Team
Permissions
• Non authorized user
• Guest
• Reporter
• Developer
• Master
• Owner
Permissions
Защита от дурака
X: Кто перезаписал репозиторий (git push --force origin develop)?
Y: Я
X: Зачем? Там был мой код.
Y: Я вмержил свою фичу, запушил код.
Y: git ругнулся, что нужно забрать код из репозитория.
Y: Я попытался, были конфликты, не было время их решать.
Y: И я пушнул с ‘-f’
Fork && Merge Request
Fork && Merge Request
• Это – контентная область слайда.
• Желательно создавать новые слайды, дублируя (copy/paste)
этот слайд в качестве образца, чтобы сохранить общую
стилистику презентации. Также рекомендуется для набора
текста использовать шрифт Trebuchet.
Merge Request && Code Review
Snippets
• Это – контентная область слайда.
• Желательно создавать новые слайды, дублируя (copy/paste)
этот слайд в качестве образца, чтобы сохранить общую
стилистику презентации. Также рекомендуется для набора
текста использовать шрифт Trebuchet.
Issues
• Это – контентная область слайда.
• Желательно создавать новые слайды, дублируя (copy/paste)
этот слайд в качестве образца, чтобы сохранить общую
стилистику презентации. Также рекомендуется для набора
текста использовать шрифт Trebuchet.
Issues
• Gitlab
• Redmine
• JIRA
• etc…
Search
• Projects
• Groups
• Merge Requests
• Issues
• Code in project (single)
… %LIKE% ...
git grep …
Search
• Это – контентная область слайда.
• Желательно создавать новые слайды, дублируя (copy/paste)
этот слайд в качестве образца, чтобы сохранить общую
стилистику презентации. Также рекомендуется для набора
текста использовать шрифт Trebuchet.
Gitlab + elasticsearch
• Projects
• Groups
• Merge Requests
• Issues
• Code
• Commits
• Files
Gitlab hooks
• Push
• Tag
• Merge Request
• Issue
• System hook
Gitlab Services
Gitlab + Jenkins
Gitlab Gitlab Hook pluginJenkins
Gitlab Gitlab Hook plugin Jenkins
Gitlab + Jenkins
Сюда пишется заголовок слайда, также до 3
строк, не больше!
• Это – контентная область слайда.
• Желательно создавать новые слайды, дублируя (copy/paste)
этот слайд в качестве образца, чтобы сохранить общую
стилистику презентации. Также рекомендуется для набора
текста использовать шрифт Trebuchet.
API
Users
Session
Projects
Project Snippets
Repositories
Repository Files
Commits
Branches
Merge Requests
Issues
Milestones
Notes (comments)
Deploy Keys
System Hooks
Groups
API
Clients
php-gitlab-api - PHP
Laravel API Wrapper for GitLab CE - PHP / Laravel
Ruby Wrapper - Ruby
python-gitlab - Python
java-gitlab-api - Java
node-gitlab - Node.js
NGitLab - .NET
Events
Все события должны иметь прямое или косвенное отношение к
проекту
• Push
• Merge Request
• Issue
• Note
• Team
Notifications
• Подписаться можно на:
– Project
– Merge Request
– Issue
– Pushes (через подключение сервиса)
Events (undev)
• Фиксируются все события, которые были описаны в DSL
Target Sourceaction
Target
SourceTarget
Target
action
Notifications (undev)
• Подписаться можно на:
– Проект
– Группу проектов
– Команду пользователей
– Пользователя
• Подписаться можно на конкретные действия (action)
Gitlab under microscope
Ruby on Rails
Postgresql/Mysql
Redis
Sidekiq
Unicorn/Puma
Gitlab
Gitlab
• Own private server
– Gitlab CE
• DigitalOcean hosting
– Gitlab CE
• Gitlab Cloud
– Gitlab CE
– Gitlab EE
Gitlab private installation
• Deb packages
• Chef/puppet/ansible
• Docker
• Gitlab installer
• How-to 
https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md
https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/install/installation.md
https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/install/requirements.md
Gitlab requirements
CPU
1 core
2 cores
4 cores
8 cores
16 cores
32 cores
64 cores
Operating Systems
Ubuntu
Debian
CentOS
RedHat Enterprise
Linux
Scientific Linux
Oracle Linux
Memory
512MB - min
1GB - up to 100 users
2GB - up to 500 users
4GB - up to 2,000 users
8GB - up to 5,000 users
16GB - up to 10,000 users
32GB - up to 20,000 users
64GB - up to 40,000 users
Кастомизация Gitlab
|-- home
| |-- git
| |-- .ssh
| |-- authorized_keys
| |-- gitlab
| |-- gitlab-satellites
| |-- gitlab-shell
| |-- repositories
|-- var
| |-- git
| |-- .ssh
| |-- authorized_keys
| |-- repositories/
|-- some_path
| |-- gitlab
| |-- releases
| |-- some_release/
| |-- current/
| |-- shared
| |-- gitlab-satellites/
| |-- gitlab-shell
| |-- releases
| |-- some_release/
| |-- current/
Если появились вопросы?
• Maintenance policy
• Troubleshooting guide
• Mailing list and Stack Overflow
• Feature request forum
• Contributing guide
• #gitlab IRC channel на Freenode
• GitLab Book написанная энтузиастом Jonathan M. Hethey
• Gitter chat room
• GitLab Youtube Channel
• GitLab documentation
• Issue tracker
Вопросы?
Куманяев Андрей
me@zzet.org
twitter.com/zzetorg
github.com/zzet

More Related Content

What's hot

Опыт внедрения Docker .
 Опыт внедрения Docker .  Опыт внедрения Docker .
Опыт внедрения Docker . phpfriendsclub
 
Понимая Git /git/. Git изнутри наружу
Понимая Git /git/. Git изнутри наружуПонимая Git /git/. Git изнутри наружу
Понимая Git /git/. Git изнутри наружуGDG Odessa
 
Git для продолжающих
Git для продолжающихGit для продолжающих
Git для продолжающихIvan Evtukhovich
 
Дмитрий Пронин – Python для веба
Дмитрий Пронин – Python для вебаДмитрий Пронин – Python для веба
Дмитрий Пронин – Python для вебаYandex
 
Git, как инструмент управления веб-контентом
Git, как инструмент управления веб-контентомGit, как инструмент управления веб-контентом
Git, как инструмент управления веб-контентомAlex Musayev
 
Deploy.rb, Ilya Zykin, Rails club2016
Deploy.rb, Ilya Zykin, Rails club2016Deploy.rb, Ilya Zykin, Rails club2016
Deploy.rb, Ilya Zykin, Rails club2016zykin-ilya
 
Новый дом для репозитория или история переезда на Git lab
Новый дом для репозитория или история переезда на Git labНовый дом для репозитория или история переезда на Git lab
Новый дом для репозитория или история переезда на Git labitconnect2016
 
Стажировка 2014, занятие 4. Git, Github и Open source.
Стажировка 2014, занятие 4. Git, Github и Open source.Стажировка 2014, занятие 4. Git, Github и Open source.
Стажировка 2014, занятие 4. Git, Github и Open source.7bits
 
Дизайн платформа в Avito - Александр Лобашев (Avito)
Дизайн платформа в Avito - Александр Лобашев (Avito)Дизайн платформа в Avito - Александр Лобашев (Avito)
Дизайн платформа в Avito - Александр Лобашев (Avito)AvitoTech
 
GIT: что внутри, и как это работает?
GIT: что внутри, и как это работает?GIT: что внутри, и как это работает?
GIT: что внутри, и как это работает?Tados
 
Илья Биин: Организация совместной работы Go и Python-based сервисов в Ostrovo...
Илья Биин: Организация совместной работы Go и Python-based сервисов в Ostrovo...Илья Биин: Организация совместной работы Go и Python-based сервисов в Ostrovo...
Илья Биин: Организация совместной работы Go и Python-based сервисов в Ostrovo...Yandex
 
Rempl — крутая платформа для крутых инструментов - Роман Дворнов (Avito)
Rempl — крутая платформа для крутых инструментов - Роман Дворнов (Avito)Rempl — крутая платформа для крутых инструментов - Роман Дворнов (Avito)
Rempl — крутая платформа для крутых инструментов - Роман Дворнов (Avito)AvitoTech
 
Работаем с API по-взрослому - Максим Кислов (Badoo)
Работаем с API по-взрослому - Максим Кислов (Badoo)Работаем с API по-взрослому - Максим Кислов (Badoo)
Работаем с API по-взрослому - Максим Кислов (Badoo)AvitoTech
 
Артем Курбатов — Мастер-класс «Динамический БЭМ-сайт на Node.js»
Артем Курбатов — Мастер-класс «Динамический БЭМ-сайт на Node.js»Артем Курбатов — Мастер-класс «Динамический БЭМ-сайт на Node.js»
Артем Курбатов — Мастер-класс «Динамический БЭМ-сайт на Node.js»Yandex
 
Go в продакшене Яндекса: отчёт после года использования — Вячеслав Бахмутов
Go в продакшене Яндекса: отчёт после года использования — Вячеслав БахмутовGo в продакшене Яндекса: отчёт после года использования — Вячеслав Бахмутов
Go в продакшене Яндекса: отчёт после года использования — Вячеслав БахмутовYandex
 
Плюсы и минусы Go для разработчиков на C++, Вячеслав Бахмутов
Плюсы и минусы Go для разработчиков на C++, Вячеслав БахмутовПлюсы и минусы Go для разработчиков на C++, Вячеслав Бахмутов
Плюсы и минусы Go для разработчиков на C++, Вячеслав БахмутовYandex
 

What's hot (20)

Опыт внедрения Docker .
 Опыт внедрения Docker .  Опыт внедрения Docker .
Опыт внедрения Docker .
 
Понимая Git /git/. Git изнутри наружу
Понимая Git /git/. Git изнутри наружуПонимая Git /git/. Git изнутри наружу
Понимая Git /git/. Git изнутри наружу
 
Git basis
Git basisGit basis
Git basis
 
Git
GitGit
Git
 
Git для продолжающих
Git для продолжающихGit для продолжающих
Git для продолжающих
 
Дмитрий Пронин – Python для веба
Дмитрий Пронин – Python для вебаДмитрий Пронин – Python для веба
Дмитрий Пронин – Python для веба
 
Git, как инструмент управления веб-контентом
Git, как инструмент управления веб-контентомGit, как инструмент управления веб-контентом
Git, как инструмент управления веб-контентом
 
Deploy.rb, Ilya Zykin, Rails club2016
Deploy.rb, Ilya Zykin, Rails club2016Deploy.rb, Ilya Zykin, Rails club2016
Deploy.rb, Ilya Zykin, Rails club2016
 
Новый дом для репозитория или история переезда на Git lab
Новый дом для репозитория или история переезда на Git labНовый дом для репозитория или история переезда на Git lab
Новый дом для репозитория или история переезда на Git lab
 
Стажировка 2014, занятие 4. Git, Github и Open source.
Стажировка 2014, занятие 4. Git, Github и Open source.Стажировка 2014, занятие 4. Git, Github и Open source.
Стажировка 2014, занятие 4. Git, Github и Open source.
 
Дизайн платформа в Avito - Александр Лобашев (Avito)
Дизайн платформа в Avito - Александр Лобашев (Avito)Дизайн платформа в Avito - Александр Лобашев (Avito)
Дизайн платформа в Avito - Александр Лобашев (Avito)
 
GIT: что внутри, и как это работает?
GIT: что внутри, и как это работает?GIT: что внутри, и как это работает?
GIT: что внутри, и как это работает?
 
Илья Биин: Организация совместной работы Go и Python-based сервисов в Ostrovo...
Илья Биин: Организация совместной работы Go и Python-based сервисов в Ostrovo...Илья Биин: Организация совместной работы Go и Python-based сервисов в Ostrovo...
Илья Биин: Организация совместной работы Go и Python-based сервисов в Ostrovo...
 
Rempl — крутая платформа для крутых инструментов - Роман Дворнов (Avito)
Rempl — крутая платформа для крутых инструментов - Роман Дворнов (Avito)Rempl — крутая платформа для крутых инструментов - Роман Дворнов (Avito)
Rempl — крутая платформа для крутых инструментов - Роман Дворнов (Avito)
 
Git
GitGit
Git
 
Работаем с API по-взрослому - Максим Кислов (Badoo)
Работаем с API по-взрослому - Максим Кислов (Badoo)Работаем с API по-взрослому - Максим Кислов (Badoo)
Работаем с API по-взрослому - Максим Кислов (Badoo)
 
Артем Курбатов — Мастер-класс «Динамический БЭМ-сайт на Node.js»
Артем Курбатов — Мастер-класс «Динамический БЭМ-сайт на Node.js»Артем Курбатов — Мастер-класс «Динамический БЭМ-сайт на Node.js»
Артем Курбатов — Мастер-класс «Динамический БЭМ-сайт на Node.js»
 
Git for you
Git for youGit for you
Git for you
 
Go в продакшене Яндекса: отчёт после года использования — Вячеслав Бахмутов
Go в продакшене Яндекса: отчёт после года использования — Вячеслав БахмутовGo в продакшене Яндекса: отчёт после года использования — Вячеслав Бахмутов
Go в продакшене Яндекса: отчёт после года использования — Вячеслав Бахмутов
 
Плюсы и минусы Go для разработчиков на C++, Вячеслав Бахмутов
Плюсы и минусы Go для разработчиков на C++, Вячеслав БахмутовПлюсы и минусы Go для разработчиков на C++, Вячеслав Бахмутов
Плюсы и минусы Go для разработчиков на C++, Вячеслав Бахмутов
 

Viewers also liked

SCM Gitlab Advanced
SCM Gitlab AdvancedSCM Gitlab Advanced
SCM Gitlab AdvancedAman Patial
 
140412 非ビジネス書プレゼン会資料 太平記
140412 非ビジネス書プレゼン会資料 太平記140412 非ビジネス書プレゼン会資料 太平記
140412 非ビジネス書プレゼン会資料 太平記Akihisa Hosino
 
โครงงานคอม ใบที 7
โครงงานคอม ใบที 7โครงงานคอม ใบที 7
โครงงานคอม ใบที 7StampPamika
 
.NET compiler platform codename Roslyn
.NET compiler platform codename Roslyn.NET compiler platform codename Roslyn
.NET compiler platform codename RoslynPiotr Benetkiewicz
 
SCM (Source Control Management) - Git Basic
SCM (Source Control Management) - Git Basic SCM (Source Control Management) - Git Basic
SCM (Source Control Management) - Git Basic Aman Patial
 

Viewers also liked (7)

SCM Gitlab Advanced
SCM Gitlab AdvancedSCM Gitlab Advanced
SCM Gitlab Advanced
 
Gitlab Flash Talk
Gitlab Flash TalkGitlab Flash Talk
Gitlab Flash Talk
 
140412 非ビジネス書プレゼン会資料 太平記
140412 非ビジネス書プレゼン会資料 太平記140412 非ビジネス書プレゼン会資料 太平記
140412 非ビジネス書プレゼン会資料 太平記
 
โครงงานคอม ใบที 7
โครงงานคอม ใบที 7โครงงานคอม ใบที 7
โครงงานคอม ใบที 7
 
Introduction to GIT
Introduction to GITIntroduction to GIT
Introduction to GIT
 
.NET compiler platform codename Roslyn
.NET compiler platform codename Roslyn.NET compiler platform codename Roslyn
.NET compiler platform codename Roslyn
 
SCM (Source Control Management) - Git Basic
SCM (Source Control Management) - Git Basic SCM (Source Control Management) - Git Basic
SCM (Source Control Management) - Git Basic
 

Similar to Gitlab devconf

Scino: DVCS на примере Git
Scino: DVCS на примере GitScino: DVCS на примере Git
Scino: DVCS на примере GitSCINO
 
Gradle. Новый уровень автоматизации для Android
Gradle. Новый уровень автоматизации для AndroidGradle. Новый уровень автоматизации для Android
Gradle. Новый уровень автоматизации для AndroidSQALab
 
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs..."How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...Provectus
 
Gradle. Новый уровень автоматизации для Android
Gradle. Новый уровень автоматизации для AndroidGradle. Новый уровень автоматизации для Android
Gradle. Новый уровень автоматизации для AndroidAnton Rutkevich
 
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)Ontico
 
Непрерывная интеграция - шаг к непрерывному деплойменту
Непрерывная интеграция - шаг к непрерывному деплойментуНепрерывная интеграция - шаг к непрерывному деплойменту
Непрерывная интеграция - шаг к непрерывному деплойментуИгорь Родионов
 
непрерывная интеграция шаг к непрерывному деплою родионов игорь
непрерывная интеграция   шаг к непрерывному деплою родионов игорьнепрерывная интеграция   шаг к непрерывному деплою родионов игорь
непрерывная интеграция шаг к непрерывному деплою родионов игорьdrupalconf
 
Масштабируемая архитектура фронтенда
Масштабируемая архитектура фронтендаМасштабируемая архитектура фронтенда
Масштабируемая архитектура фронтендаRoman Dvornov
 
Непрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
Непрерывная интеграция шаг к непрерывному деплою. Родионов ИгорьНепрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
Непрерывная интеграция шаг к непрерывному деплою. Родионов ИгорьPVasili
 
Практика разработки веб-серверов на Rust
Практика разработки веб-серверов на RustПрактика разработки веб-серверов на Rust
Практика разработки веб-серверов на RustMichael Pankov
 
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)Ontico
 
My Open Source (Sept 2017)
My Open Source (Sept 2017)My Open Source (Sept 2017)
My Open Source (Sept 2017)Roman Dvornov
 
Разработчикам надоело собирать, а QA ждать: Как CI решает эти проблемы"— Вова...
Разработчикам надоело собирать, а QA ждать: Как CI решает эти проблемы"— Вова...Разработчикам надоело собирать, а QA ждать: Как CI решает эти проблемы"— Вова...
Разработчикам надоело собирать, а QA ждать: Как CI решает эти проблемы"— Вова...Improve Group
 
SPb Jenkins Meetup #5. Jenkins in da Cloud. Внутренности
SPb Jenkins Meetup #5. Jenkins in da Cloud. ВнутренностиSPb Jenkins Meetup #5. Jenkins in da Cloud. Внутренности
SPb Jenkins Meetup #5. Jenkins in da Cloud. ВнутренностиOleg Nenashev
 
Тестирование серверной конфигурации
Тестирование серверной конфигурацииТестирование серверной конфигурации
Тестирование серверной конфигурацииTimur Batyrshin
 
QA MeetUp - Тимур Батыршин: "Тестирование серверной конфигурации"
QA MeetUp - Тимур Батыршин: "Тестирование серверной конфигурации"QA MeetUp - Тимур Батыршин: "Тестирование серверной конфигурации"
QA MeetUp - Тимур Батыршин: "Тестирование серверной конфигурации"Provectus
 
Фронтенд для миллионов (Орёл)
Фронтенд для миллионов (Орёл)Фронтенд для миллионов (Орёл)
Фронтенд для миллионов (Орёл)Anastasia Goryacheva
 
Devconf 2011 - PHP - Как разрабатывается фреймворк Yii
Devconf 2011 - PHP - Как разрабатывается фреймворк YiiDevconf 2011 - PHP - Как разрабатывается фреймворк Yii
Devconf 2011 - PHP - Как разрабатывается фреймворк YiiAlexander Makarov
 

Similar to Gitlab devconf (20)

Git presentation
Git presentationGit presentation
Git presentation
 
Scino: DVCS на примере Git
Scino: DVCS на примере GitScino: DVCS на примере Git
Scino: DVCS на примере Git
 
Gradle. Новый уровень автоматизации для Android
Gradle. Новый уровень автоматизации для AndroidGradle. Новый уровень автоматизации для Android
Gradle. Новый уровень автоматизации для Android
 
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs..."How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
 
Gradle. Новый уровень автоматизации для Android
Gradle. Новый уровень автоматизации для AndroidGradle. Новый уровень автоматизации для Android
Gradle. Новый уровень автоматизации для Android
 
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)
 
Sivko
SivkoSivko
Sivko
 
Непрерывная интеграция - шаг к непрерывному деплойменту
Непрерывная интеграция - шаг к непрерывному деплойментуНепрерывная интеграция - шаг к непрерывному деплойменту
Непрерывная интеграция - шаг к непрерывному деплойменту
 
непрерывная интеграция шаг к непрерывному деплою родионов игорь
непрерывная интеграция   шаг к непрерывному деплою родионов игорьнепрерывная интеграция   шаг к непрерывному деплою родионов игорь
непрерывная интеграция шаг к непрерывному деплою родионов игорь
 
Масштабируемая архитектура фронтенда
Масштабируемая архитектура фронтендаМасштабируемая архитектура фронтенда
Масштабируемая архитектура фронтенда
 
Непрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
Непрерывная интеграция шаг к непрерывному деплою. Родионов ИгорьНепрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
Непрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
 
Практика разработки веб-серверов на Rust
Практика разработки веб-серверов на RustПрактика разработки веб-серверов на Rust
Практика разработки веб-серверов на Rust
 
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
 
My Open Source (Sept 2017)
My Open Source (Sept 2017)My Open Source (Sept 2017)
My Open Source (Sept 2017)
 
Разработчикам надоело собирать, а QA ждать: Как CI решает эти проблемы"— Вова...
Разработчикам надоело собирать, а QA ждать: Как CI решает эти проблемы"— Вова...Разработчикам надоело собирать, а QA ждать: Как CI решает эти проблемы"— Вова...
Разработчикам надоело собирать, а QA ждать: Как CI решает эти проблемы"— Вова...
 
SPb Jenkins Meetup #5. Jenkins in da Cloud. Внутренности
SPb Jenkins Meetup #5. Jenkins in da Cloud. ВнутренностиSPb Jenkins Meetup #5. Jenkins in da Cloud. Внутренности
SPb Jenkins Meetup #5. Jenkins in da Cloud. Внутренности
 
Тестирование серверной конфигурации
Тестирование серверной конфигурацииТестирование серверной конфигурации
Тестирование серверной конфигурации
 
QA MeetUp - Тимур Батыршин: "Тестирование серверной конфигурации"
QA MeetUp - Тимур Батыршин: "Тестирование серверной конфигурации"QA MeetUp - Тимур Батыршин: "Тестирование серверной конфигурации"
QA MeetUp - Тимур Батыршин: "Тестирование серверной конфигурации"
 
Фронтенд для миллионов (Орёл)
Фронтенд для миллионов (Орёл)Фронтенд для миллионов (Орёл)
Фронтенд для миллионов (Орёл)
 
Devconf 2011 - PHP - Как разрабатывается фреймворк Yii
Devconf 2011 - PHP - Как разрабатывается фреймворк YiiDevconf 2011 - PHP - Как разрабатывается фреймворк Yii
Devconf 2011 - PHP - Как разрабатывается фреймворк Yii
 

Gitlab devconf

  • 1. Gitlab Спустя год в продакшене Андрей Куманяев Gitlab MVP Undev
  • 2. 1-й коммит – 11.2012 Запуск в продакшен – 05.2013
  • 4.
  • 5. Что ждем? • Создание репозиториев и управление ими • Предоставление доступа к репозиториям (clone/push/manage) • Просмотр кода через web интерфейс • Быстро и легко вносить правки в код • Понятная и удобная история проекта • Diff • Git blame
  • 6. Gitlab • Repository management • Code view / edit • Merge / Pull Requests • Code review • Issue tracker • Wiki’s • Snippets • etc…
  • 10. Permissions • Non authorized user • Guest • Reporter • Developer • Master • Owner Permissions
  • 11. Защита от дурака X: Кто перезаписал репозиторий (git push --force origin develop)? Y: Я X: Зачем? Там был мой код. Y: Я вмержил свою фичу, запушил код. Y: git ругнулся, что нужно забрать код из репозитория. Y: Я попытался, были конфликты, не было время их решать. Y: И я пушнул с ‘-f’
  • 12. Fork && Merge Request
  • 13. Fork && Merge Request • Это – контентная область слайда. • Желательно создавать новые слайды, дублируя (copy/paste) этот слайд в качестве образца, чтобы сохранить общую стилистику презентации. Также рекомендуется для набора текста использовать шрифт Trebuchet.
  • 14. Merge Request && Code Review
  • 15. Snippets • Это – контентная область слайда. • Желательно создавать новые слайды, дублируя (copy/paste) этот слайд в качестве образца, чтобы сохранить общую стилистику презентации. Также рекомендуется для набора текста использовать шрифт Trebuchet.
  • 16. Issues • Это – контентная область слайда. • Желательно создавать новые слайды, дублируя (copy/paste) этот слайд в качестве образца, чтобы сохранить общую стилистику презентации. Также рекомендуется для набора текста использовать шрифт Trebuchet.
  • 18. Search • Projects • Groups • Merge Requests • Issues • Code in project (single) … %LIKE% ... git grep …
  • 19. Search • Это – контентная область слайда. • Желательно создавать новые слайды, дублируя (copy/paste) этот слайд в качестве образца, чтобы сохранить общую стилистику презентации. Также рекомендуется для набора текста использовать шрифт Trebuchet.
  • 20. Gitlab + elasticsearch • Projects • Groups • Merge Requests • Issues • Code • Commits • Files
  • 21. Gitlab hooks • Push • Tag • Merge Request • Issue • System hook
  • 23. Gitlab + Jenkins Gitlab Gitlab Hook pluginJenkins Gitlab Gitlab Hook plugin Jenkins
  • 25. Сюда пишется заголовок слайда, также до 3 строк, не больше! • Это – контентная область слайда. • Желательно создавать новые слайды, дублируя (copy/paste) этот слайд в качестве образца, чтобы сохранить общую стилистику презентации. Также рекомендуется для набора текста использовать шрифт Trebuchet.
  • 26. API Users Session Projects Project Snippets Repositories Repository Files Commits Branches Merge Requests Issues Milestones Notes (comments) Deploy Keys System Hooks Groups
  • 27. API Clients php-gitlab-api - PHP Laravel API Wrapper for GitLab CE - PHP / Laravel Ruby Wrapper - Ruby python-gitlab - Python java-gitlab-api - Java node-gitlab - Node.js NGitLab - .NET
  • 28. Events Все события должны иметь прямое или косвенное отношение к проекту • Push • Merge Request • Issue • Note • Team
  • 29. Notifications • Подписаться можно на: – Project – Merge Request – Issue – Pushes (через подключение сервиса)
  • 30. Events (undev) • Фиксируются все события, которые были описаны в DSL Target Sourceaction Target SourceTarget Target action
  • 31. Notifications (undev) • Подписаться можно на: – Проект – Группу проектов – Команду пользователей – Пользователя • Подписаться можно на конкретные действия (action)
  • 32. Gitlab under microscope Ruby on Rails Postgresql/Mysql Redis Sidekiq Unicorn/Puma
  • 33.
  • 35. Gitlab • Own private server – Gitlab CE • DigitalOcean hosting – Gitlab CE • Gitlab Cloud – Gitlab CE – Gitlab EE
  • 36. Gitlab private installation • Deb packages • Chef/puppet/ansible • Docker • Gitlab installer • How-to  https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/install/installation.md https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/install/requirements.md
  • 37. Gitlab requirements CPU 1 core 2 cores 4 cores 8 cores 16 cores 32 cores 64 cores Operating Systems Ubuntu Debian CentOS RedHat Enterprise Linux Scientific Linux Oracle Linux Memory 512MB - min 1GB - up to 100 users 2GB - up to 500 users 4GB - up to 2,000 users 8GB - up to 5,000 users 16GB - up to 10,000 users 32GB - up to 20,000 users 64GB - up to 40,000 users
  • 38. Кастомизация Gitlab |-- home | |-- git | |-- .ssh | |-- authorized_keys | |-- gitlab | |-- gitlab-satellites | |-- gitlab-shell | |-- repositories |-- var | |-- git | |-- .ssh | |-- authorized_keys | |-- repositories/ |-- some_path | |-- gitlab | |-- releases | |-- some_release/ | |-- current/ | |-- shared | |-- gitlab-satellites/ | |-- gitlab-shell | |-- releases | |-- some_release/ | |-- current/
  • 39. Если появились вопросы? • Maintenance policy • Troubleshooting guide • Mailing list and Stack Overflow • Feature request forum • Contributing guide • #gitlab IRC channel на Freenode • GitLab Book написанная энтузиастом Jonathan M. Hethey • Gitter chat room • GitLab Youtube Channel • GitLab documentation • Issue tracker