gitlab as an alternative development platform for github.com

26
GitLab as an Alternative Development Platform for Github.com LinuxCon Europe 2014 October 13, 2014 Ralf Lang Linux Consultant / Developer B1 Systems GmbH [email protected] B1 Systems GmbH - Linux/Open Source Consulting, Training, Support & Development

Upload: b1-systems-gmbh

Post on 12-Jul-2015

415 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: GitLab as an Alternative Development Platform for Github.com

GitLab as an Alternative DevelopmentPlatform for Github.comLinuxCon Europe 2014 October 13, 2014

Ralf LangLinux Consultant / Developer

B1 Systems [email protected]

B1 Systems GmbH - Linux/Open Source Consulting, Training, Support & Development

Page 2: GitLab as an Alternative Development Platform for Github.com

Introducing B1 Systems

founded in 2004operating both nationally and internationallymore than 60 employees; low employee turnoverProvider for IBM, SUSE, Oracle & HPvendor-independent (hardware and software)Focus:

ConsultingSupportDevelopmentTrainingOperationsSolutions

B1 Systems GmbHGitLab as an Alternative Development

Platform for Github.com 2 / 26

Page 3: GitLab as an Alternative Development Platform for Github.com

Areas of Expertise

Virtualization (XEN, KVM & RHEV)Systems management (Spacewalk, Red Hat Satellite, SUSEManager)Configuration management (Puppet & Chef)Monitoring (Nagios & Icinga)IaaS Cloud (OpenStack & SUSE Cloud)High availability (Pacemaker)Shared Storage (GPFS, OCFS2, DRBD & CEPH)File Sharing (ownCloud)Packaging (Open Build Service)Providing on-site systems administration and/or development

B1 Systems GmbHGitLab as an Alternative Development

Platform for Github.com 3 / 26

Page 4: GitLab as an Alternative Development Platform for Github.com

Partners

B1 Systems GmbHGitLab as an Alternative Development

Platform for Github.com 4 / 26

Page 5: GitLab as an Alternative Development Platform for Github.com

GitLab – An Open Source Software toCollaborate on Code

B1 Systems GmbHGitLab as an Alternative Development

Platform for Github.com 5 / 26

Page 6: GitLab as an Alternative Development Platform for Github.com

Why Managed Version Control?

easy management of privilegesinline feedback optionsenforce reviewsspend time coding, not managing tools and users

B1 Systems GmbHGitLab as an Alternative Development

Platform for Github.com 6 / 26

Page 7: GitLab as an Alternative Development Platform for Github.com

Why Should I run my own VCS?

firm control over source code accessno external parties involveddedicated resourceseasily integrates with custom tools and reportskeep sensitive information in-house

B1 Systems GmbHGitLab as an Alternative Development

Platform for Github.com 7 / 26

Page 8: GitLab as an Alternative Development Platform for Github.com

What is GitLab?

GitLab is an Open source software to collaborate on code.GitLab is based on Git, the most widely adopted version controlsystem for software development.GitLab helps to ensure software quality by providing afeature-rich review system.GitLab simplifies distributed working on projects with acentralized server.

B1 Systems GmbHGitLab as an Alternative Development

Platform for Github.com 8 / 26

Page 9: GitLab as an Alternative Development Platform for Github.com

Some GitLab Features

code reviewbug trackingpersonal and private branchesmanagement of numerous Git repositories25,000 users on a single serverhighly available active/active cluster possiblecode snippetsaccess controlissue trackingWeb hooksWiki

B1 Systems GmbHGitLab as an Alternative Development

Platform for Github.com 9 / 26

Page 10: GitLab as an Alternative Development Platform for Github.com

GitLab is Collaborative

unlimited number of public and private repositoriesunlimited number of public and private collaboratorsintegrates with LDAPintegrates with external ticket systems e.a. RedmineOmnibus package supports configuring an external database(PostgreSQL or MySQL)works with JIRA for issue trackingdisplays merge request status for builds on Jenkins CI(only Enterprise Edition)

B1 Systems GmbHGitLab as an Alternative Development

Platform for Github.com 10 / 26

Page 11: GitLab as an Alternative Development Platform for Github.com

Who Else Uses GitLab?

More than 100,000 organizations, amongst others:AT&TBellCERNFraunhoferInterpolNASARed Hat

B1 Systems GmbHGitLab as an Alternative Development

Platform for Github.com 11 / 26

Page 12: GitLab as an Alternative Development Platform for Github.com

Who Works on GitLab?

since September 2011an active community with hundreds of contributorsmanaged by GitLab.comEnterprise support by GitLab B.V.

B1 Systems GmbHGitLab as an Alternative Development

Platform for Github.com 12 / 26

Page 13: GitLab as an Alternative Development Platform for Github.com

Traditional Git Workflow

1 Clone the repository.2 Create a branch.3 Modify source code.4 Check in.5 Create a patch or push changes to upstream.

B1 Systems GmbHGitLab as an Alternative Development

Platform for Github.com 13 / 26

Page 14: GitLab as an Alternative Development Platform for Github.com

Disadvantages & Drawbacks

Write access:Every committer needs write access on projects.⇒ intended workflows could be omittedFormat patch:Every committer submits his patches and has to wait for themaintaining of a reviewer.⇒ still a labor-intensive and error-prone process

B1 Systems GmbHGitLab as an Alternative Development

Platform for Github.com 14 / 26

Page 15: GitLab as an Alternative Development Platform for Github.com

The Gitlab Workflow

1 Fork repository into own name space.2 Full access to own forked copy.3 Edit online in browser or in local checkouts.4 Create Merge Request.5 Reviewer comments on diffs on the platform.6 Automated process for pulling forks back into the mainstream

repository.

⇒ no need to grant or revoke access⇒ no hassle with long threads of patch e-mails⇒ enforces review paradigms⇒ little setup costs for additional team members

B1 Systems GmbHGitLab as an Alternative Development

Platform for Github.com 15 / 26

Page 16: GitLab as an Alternative Development Platform for Github.com

Internal Issue/Review System

APIs for external ticketingaccess Redmine tickets through commit messages in Gitor use internal ticketing

API for Gitlab CIcontinuous Integration: Automated builds and test suite runs oncommitimproved software qualityuse dead code detectors or code coverage tools

B1 Systems GmbHGitLab as an Alternative Development

Platform for Github.com 16 / 26

Page 17: GitLab as an Alternative Development Platform for Github.com

Access Control

GitLab provides an access control for user and groups based onpermission levels.Users’ abilities depend on their access level on a particularproject or group.If a user is both in a project group and in the project itself thehighest permission level is used.The GitLab administrator receives all permissions.

B1 Systems GmbHGitLab as an Alternative Development

Platform for Github.com 17 / 26

Page 18: GitLab as an Alternative Development Platform for Github.com

GitLab Continuous Integration

integrates with the GitLab installation to run tests for projectslogin with GitLab accountSimply add projects with one clickon-premises software: can be installed on arbitrary (Linux)server(s)

B1 Systems GmbHGitLab as an Alternative Development

Platform for Github.com 18 / 26

Page 19: GitLab as an Alternative Development Platform for Github.com

The GitLab Dashboard – Project Overview

B1 Systems GmbHGitLab as an Alternative Development

Platform for Github.com 19 / 26

Page 20: GitLab as an Alternative Development Platform for Github.com

The GitLab Dashboard – Commits

B1 Systems GmbHGitLab as an Alternative Development

Platform for Github.com 20 / 26

Page 21: GitLab as an Alternative Development Platform for Github.com

The GitLab Dashboard – Workflow

B1 Systems GmbHGitLab as an Alternative Development

Platform for Github.com 21 / 26

Page 22: GitLab as an Alternative Development Platform for Github.com

The GitLab Dashboard – New Project

B1 Systems GmbHGitLab as an Alternative Development

Platform for Github.com 22 / 26

Page 23: GitLab as an Alternative Development Platform for Github.com

The GitLab Dashboard – Projects

B1 Systems GmbHGitLab as an Alternative Development

Platform for Github.com 23 / 26

Page 24: GitLab as an Alternative Development Platform for Github.com

The GitLab Dashboard – Project Files

B1 Systems GmbHGitLab as an Alternative Development

Platform for Github.com 24 / 26

Page 25: GitLab as an Alternative Development Platform for Github.com

More Information on GitLab . . .

GitLab.com:GitLab.com

GitLab Continuous Integration (CI):https://about.gitlab.com/gitlab-ci/

Official GitLab Documentation:http://doc.gitlab.com/ce/

B1 Systems GmbHGitLab as an Alternative Development

Platform for Github.com 25 / 26

Page 26: GitLab as an Alternative Development Platform for Github.com

Thank you for your attention!For further information, please contact:

[email protected] or +49 (0)8457 - 931096

B1 Systems GmbH - Linux/Open Source Consulting, Training, Support & Development