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

Preview:

DESCRIPTION

Gitlab Спустя год в продакшене. Андрей Куманяев Gitlab MVP Undev. 1- й коммит – 11.2012 Запуск в продакшен – 05.2013. Вопросы?. @ zzetorg # devconf # gitlab. Что ждем?. Создание репозиториев и управление ими Предоставление доступа к репозиториям ( clone/push/manage ) - PowerPoint PPT Presentation

Citation preview

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.

APIUsersSessionProjectsProject SnippetsRepositoriesRepository FilesCommitsBranchesMerge RequestsIssuesMilestonesNotes (comments)Deploy KeysSystem HooksGroups

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

Events

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

• Push• Merge Request• Issue• Note• Team

Notifications

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

Events

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

Target Sourceaction

Target

SourceTarget

Targetaction

actionaction

Notifications (undev)

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

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

Gitlab under microscope

Ruby on RailsPostgresql/MysqlRedisSidekiqUnicorn/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.mdhttps://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/install/installation.mdhttps://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/install/requirements.md

Gitlab requirements

CPU

1 core2 cores4 cores 8 cores16 cores32 cores64 cores

Operating Systems

UbuntuDebianCentOSRedHat Enterprise LinuxScientific LinuxOracle Linux

Memory512MB - 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

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

github.com/zzet