gitlab devconf

40
Gitlab Спустя год в продакшене Андрей Куманяев Gitlab MVP Undev

Upload: andrey-kumanyaev

Post on 28-May-2015

785 views

Category:

Software


9 download

TRANSCRIPT

Page 1: Gitlab devconf

GitlabСпустя год в продакшене

Андрей Куманяев

Gitlab MVP

Undev

Page 2: Gitlab devconf

1-й коммит – 11.2012Запуск в продакшен – 05.2013

Page 3: Gitlab devconf

Вопросы?

@zzetorg

#devconf #gitlab

Page 4: Gitlab devconf
Page 5: Gitlab devconf

Что ждем?

• Создание репозиториев и управление ими• Предоставление доступа к репозиториям

(clone/push/manage)• Просмотр кода через web интерфейс• Быстро и легко вносить правки в код• Понятная и удобная история проекта• Diff• Git blame

Page 6: Gitlab devconf

Gitlab

• Repository management• Code view / edit• Merge / Pull Requests• Code review• Issue tracker• Wiki’s• Snippets• etc…

Page 7: Gitlab devconf

Project

Page 8: Gitlab devconf

Group

Page 9: Gitlab devconf

Team

Page 10: Gitlab devconf

Permissions

• Non authorized user• Guest• Reporter• Developer• Master• Owner

Permissions

Page 11: Gitlab devconf

Защита от дурака

X: Кто перезаписал репозиторий (git push --force origin develop)?Y: ЯX: Зачем? Там был мой код.Y: Я вмержил свою фичу, запушил код.Y: git ругнулся, что нужно забрать код из репозитория.Y: Я попытался, были конфликты, не было время их решать.Y: И я пушнул с ‘-f’

Page 12: Gitlab devconf

Fork && Merge Request

Page 13: Gitlab devconf

Fork && Merge Request

• Это – контентная область слайда.• Желательно создавать новые слайды, дублируя

(copy/paste) этот слайд в качестве образца, чтобы сохранить общую стилистику презентации. Также рекомендуется для набора текста использовать шрифт Trebuchet.

Page 14: Gitlab devconf

Merge Request && Code Review

Page 15: Gitlab devconf

Snippets

• Это – контентная область слайда.• Желательно создавать новые слайды, дублируя

(copy/paste) этот слайд в качестве образца, чтобы сохранить общую стилистику презентации. Также рекомендуется для набора текста использовать шрифт Trebuchet.

Page 16: Gitlab devconf

Issues

• Это – контентная область слайда.• Желательно создавать новые слайды, дублируя

(copy/paste) этот слайд в качестве образца, чтобы сохранить общую стилистику презентации. Также рекомендуется для набора текста использовать шрифт Trebuchet.

Page 17: Gitlab devconf

Issues

• Gitlab• Redmine• JIRA• etc…

Page 18: Gitlab devconf

Search

• Projects• Groups• Merge Requests• Issues• Code in project (single)

… %LIKE% ...

git grep …

Page 19: Gitlab devconf

Search

• Это – контентная область слайда.• Желательно создавать новые слайды, дублируя

(copy/paste) этот слайд в качестве образца, чтобы сохранить общую стилистику презентации. Также рекомендуется для набора текста использовать шрифт Trebuchet.

Page 20: Gitlab devconf

Gitlab + elasticsearch

• Projects• Groups• Merge Requests• Issues• Code• Commits• Files

Page 21: Gitlab devconf

Gitlab hooks

• Push• Tag• Merge Request• Issue

• System hook

Page 22: Gitlab devconf

Gitlab Services

Page 23: Gitlab devconf

Gitlab + Jenkins

Gitlab Gitlab Hook pluginJenkins

Gitlab Gitlab Hook plugin Jenkins

Page 24: Gitlab devconf

Gitlab + Jenkins

Page 25: Gitlab devconf

Сюда пишется заголовок слайда, также до 3 строк, не больше!

• Это – контентная область слайда.• Желательно создавать новые слайды, дублируя

(copy/paste) этот слайд в качестве образца, чтобы сохранить общую стилистику презентации. Также рекомендуется для набора текста использовать шрифт Trebuchet.

Page 26: Gitlab devconf

APIUsersSessionProjectsProject SnippetsRepositoriesRepository FilesCommitsBranchesMerge RequestsIssuesMilestonesNotes (comments)Deploy KeysSystem HooksGroups

Page 27: Gitlab devconf

API

Clients

php-gitlab-api - PHPLaravel API Wrapper for GitLab CE - PHP / LaravelRuby Wrapper - Rubypython-gitlab - Pythonjava-gitlab-api - Javanode-gitlab - Node.jsNGitLab - .NET

Page 28: Gitlab devconf

Events

Все события должны иметь прямое или косвенное отношение к проекту

• Push• Merge Request• Issue• Note• Team

Page 29: Gitlab devconf

Notifications

• Подписаться можно на:– Project– Merge Request– Issue– Pushes (через подключение сервиса)

Page 30: Gitlab devconf

Events (undev)

• Фиксируются все события, которые были описаны в DSL

Target Sourceaction

Target

SourceTarget

Targetaction

actionaction

Page 31: Gitlab devconf

Notifications (undev)

• Подписаться можно на:– Проект– Группу проектов– Команду пользователей– Пользователя

• Подписаться можно на конкретные действия (action)

Page 32: Gitlab devconf

Gitlab under microscope

Ruby on RailsPostgresql/MysqlRedisSidekiqUnicorn/Puma

Page 33: Gitlab devconf
Page 34: Gitlab devconf

Gitlab

Page 35: Gitlab devconf

Gitlab

• Own private server– Gitlab CE

• DigitalOcean hosting– Gitlab CE

• Gitlab Cloud– Gitlab CE– Gitlab EE

Page 36: Gitlab devconf

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

Page 37: Gitlab devconf

Gitlab requirements

CPU

1 core2 cores4 cores 8 cores16 cores32 cores64 cores

Operating Systems

UbuntuDebianCentOSRedHat Enterprise LinuxScientific LinuxOracle Linux

Memory

512MB - min

1GB - up to 100 users2GB - up to 500 users4GB - up to 2,000 users8GB - up to 5,000 users16GB - up to 10,000 users32GB - up to 20,000 users64GB - up to 40,000 users

Page 38: Gitlab devconf

Кастомизация 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/

Page 39: Gitlab devconf

Если появились вопросы?

• 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

Page 40: Gitlab devconf

Вопросы?

Куманяев Андрей

[email protected]/zzetorg

github.com/zzet