This document discusses guidelines for choosing a Git hosting service, whether cloud-based or on-premise. Key factors to consider include security, whether code needs to be private or public, support for multiple client sites, IT capabilities, performance, integration with other services, cost, and available features. Popular cloud-based options include GitHub, BitBucket, and Beanstalk, while on-premise options include GitHub Enterprise, GitLab, and Stash. The best choice depends on balancing these considerations according to each organization's unique needs and preferences.
2. Congratulation!!!
You've already made a major decision
which is: working with GIT.
You need now to decide: where to host the
GIT repositories for the collaboration
within your organization (and with others
if needed)?
Tip: moving from one hosting service to another is usually not
a big issue, so this is not such a 'big deal' if you'll have the
wrong decision. Still, it is better to make the right one.
2
3. There is no one solution that
fits all organizations - each
organization have different
factors to consider while
making that decision.
3
4. The main question to answer in most cases - is: should we
host the GIT repositories
locally on our servers or
should we use a cloud-based
hosting service.
4
5. For answering this question, you should
basically consider those factors:
Security
Private or public (or both)?
One client site or more?
Will IT handle it?
Performance
Integration with other services
Cost
5
6. Security
Moving to a cloud-based service is still a big
issue for many organizations, considering:
Data security when hosted on the cloud.
Network traffic security.
Tip: in many cases, the data is more secure
when hosted in the cloud-based service than
behind your local firewall.
6
7. Private or public (or both)?
Most organizations wants to keep the code
private.
Still, some code - in the open-source world - is
public.
In order to be able to publish the code you need
it to be accessible from the web – maintaining a
public repository on a local server is not an easy
and secure task.
7
8. One client site or more?
Many organizations has more than one site
where the users are located and should access
the code.
You can solve this issue using the VPN solution,
firewall-rules/features or by putting the
repositories in a cloud-based service.
8
9. Will IT handle it?
Hosting a GIT repositories locally requires IT to:
Handle Linux servers
(can be an issue in many Windows-based
organizations).
Maintain the service
(backup, installations/upgrades,
troubleshooting, storage, hardware & network
issues, etc.).
9
10. Performance
GIT is considered to be much faster and reliable
than other source-control systems.
Still:
Big repositories can be an issue for a slow
network infrastructure.
Some local solutions has bad performance.
Slow intranet can cause bad performance.
Using the wrong hardware for the hosted GIT
service can be an issue as well.
10
11. Integration with other services
GIT repositories usually integrate with other services such
as CI-servers, issue-tracking service, and more.
For good integration you should consider:
Are those services hosted locally or on the cloud?
How deep is that integration?
Can that integration be solved for a mix of cloud-based
and local services?
Tip: sometimes you should consider moving the other
services (from the could to a local server or the other way
around) instead of deciding the location of GIT according to
the other services location.
11
12. Cost
The cost is a key factor for the discussed
decision:
Hosting GIT repositories locally requires
hardware, human-resources and knowledge
Some on-premise GIT-hosting solutions are
expensive.
Same goes for few cloud-based GIT-hosting
solutions as well.
12
13. The following slides contains
introduction and a comparison
between some cloud-based GIT
hosting services and between some
on-premise solutions.
Please be noticed that:
Not all available solutions included:
●
- There are other options such as Gitolite, GitWeb with Gerrit and more.
- I've chose only services that includes features as such:
pull/merge request, code-web-viewer and more beside the basic GIT repositories hosting feature.
- Hosting services for open-source-only repositories are not covered here.
Those services are being updated all the time.
13
15. GitHub (cloud hosting service)
GitHub is the largest code host available (more than
10 million repositories).
●Fair prices (see: https://github.com/pricing).
●Many features (see: https://github.com/features).
●Highly reliable (see: https://status.github.com/).
●Supports both private and public repositories.
●Support many programming languages.
●Special client-applications for Mac and Windows
●
15
16. Assembla
Assembla is a large code hosting service (more than 1
million users).
●Fair prices (see: https://www.assembla.com/plans).
●
Unlimited private repositories number.
●
Many features (see: https://www.assembla.com/features?page=repositories#features).
●Supports only private repositories.
●Built in issue-tracking, task management and projects
management.
●
16
17. BitBucket
BitBucket is a large code hosting service.
●Fair prices (see: https://bitbucket.org/plans).
●
Unlimited private repositories number.
●
Many features (see: https://bitbucket.org/features).
●Supports both private and public repositories.
●Highly reliable (see: http://status.bitbucket.org/).
●Native integration with other Atlassian services (Jira,
etc.).
●Provides the best (free) Mac and Windows client –
SourceTree – that works with any Git hosting service.
●
17
18. Beanstalk
Beanstalk is a large code hosting service.
●Fair prices (see: http://beanstalkapp.com/pricing).
●Many features (see: http://beanstalkapp.com/features
).
●Supports only private repositories.
●Fairly reliable (see: http://status.beanstalkapp.com/)
●
18
19. Cloud-based GIT hosting - comparison
Hosting service
GitHub
Private
repositories
+
Public
repositories
+
BitBucket
Beanstalk
+
+
+
+
Fair prices
Assembla
+
Pons.
Limitation on
repos. number
+
Install base
Known as the
most advanced
tool out there
Cons.
+
+
Unlimited # of
private repo.
+
+
Native
integration with
Atlassian
services
Install base
Limitation on
repos. number
19
21. GitHub enterprise
GitHub enterprise on-premise is a fully featured
service based on the advanced GitHub cloud-based
hosting service.
●It is expensive and based on number of users (see:
●
https://enterprise.github.com/pricing).
21
22. GitLab
GitLab is a free of charge (there is an option for a
yearly support package) on-premise GIT hosting
service.
●GitLab has a large community.
●GitLab runs only on Ubuntu and is ruby-based.
●GitLab includes all the common features (merge
requests, code browsing, commits and branches
tracking, etc.)
●
22
23. Stash
Stash is Atlassian on-premise GIT hosting service.
●Stash has native integration with other Atlassian
services (Jira, etc.).
●Stash is expensive – prices based on users number
(see: https://www.atlassian.com/software/stash/pricing).
●Stash is fully featured (see:
https://www.atlassian.com/software/stash#whystash)
●Stash have an extendable API and Event mechanism
●
23
24. Gitorious
Gitorious is a free of charge on-premise GIT hosting
service.
●Gitorious includes many common features (merge
requests, code browsing, commits and branches
tracking, etc.)
●
24
25. On-premise GIT hosting - comparison
Hosting service
GitHub
enterprise
Free of charge
GitLab
Stash
+
High prices
+
+
+
Common
features
+
+
+
+
Unlimited # of
private repo.
Gitorious
+
+
+
API
Pros.
GitHub-based
features
Install base,
Community
Native
integration with
Atlassian
services,
Extendable API
Cons.
Price
Performance
Price
25
26. Bottom line, when selecting a GIT hosting
service you should decide whether to host
the service locally or use the cloud-based
service and consider it according to:
Security
Private or public (or both)?
One client site or more?
Can and will IT handle it?
Performance
Integration with other services
Cost
Features
26