May 6, 2020

Bitbucket versus Azure DevOps

Om moderne en professionele applicaties te ontwikkelen volgens de CI- en CD-methodiek, heb je goede tools nodig. In dit blogartikel bespreken we twee populaire en toonaangevende platforms: Bitbucket en Azure DevOps. Wat kun je met deze twee oplossingen? En hoe verhouden ze zich tot elkaar? Wij tonen het je.

Wat is Bitbucket?

Bitbucket begon in 2008 als onafhankelijke start-up, maar werd in 2010 gekocht door het Australische softwarebedrijf Atlassian. Het is een Git-samenwerkingsplatform dat primair is toegesneden op de behoeften van professionele ontwikkelteams. Bitbucket biedt gebruikers de mogelijkheid om vanuit één centrale omgeving projecten te plannen en samen te werken aan een code. Het testen en implementeren van codes is met deze tool ook geen probleem. Bitbucket werkt vanuit de cloud, maar is ook prima te beheren op jouw eigen servers.

Werken met Bitbucket

Bitbucket biedt een zeer divers spectrum aan functionaliteiten die alle fases van het ontwikkelingsproces (bouwen, testen en implementeren) stroomlijnen. Tijd dus om eens te kijken naar de belangrijkste features van deze handige tool.

De interface

De interface van Bitbucket voorziet in een dashboard dat een goed overzicht biedt van jouw werkzaamheden. Je kunt vanuit het dashboard navigeren naar de volgende onderdelen.

  • De repositories (opslagruimtes) waar je als gebruiker toegang tot hebt. Standaard staat de laatst bijgewerkte repository bovenaan, maar het is ook mogelijk om op naam, project of eigenaar te zoeken naar een specifieke repository.
  • De optie ‘Projects’ biedt de optie om repositories te groeperen en organiseren, zodat ze gemakkelijk vindbaar worden. Je ziet ook alle bestaande projecten en kunt gemakkelijk nieuwe projecten creëren. Door op een project te klikken, zie je ook alle repositories die er deel van uitmaken.
  • Het beoordelen en eventueel herzien van code is een cruciale stap in de ontwikkelcyclus. In Bitbucket doe je dit middels zogenoemde pull requests. Via de interface kunt je zowel de door jezelf als door andere teamleden aangemaakte pull requests bekijken.
  • Door te klikken op het kopje ‘Issues’, kun je toekomstige requests, meldingen over bugs en andere cruciale taakinformatie terugvinden.
  • Via de interface is het ook mogelijk om belangrijke instellingen van je account te bekijken en veranderen. Denk bijvoorbeeld aan settings op het gebied van notificaties, beveiliging en apps/integraties.

Pipes en pipelines

De pipes en pipelines vormen een belangrijk onderdeel van de Bitbucket-omgeving. De pipes fungeren als procesmatige bouwstenen en zorgen ervoor dat je CI- en CD-workflows gemakkelijk in pipelines kunt automatiseren. Pipes in Bitbucket gebruiken een script dat is ondergebracht in een Dockercontainer en worden geïntegreerd met een Yaml-bestand. Ze bestaan uit een aantal bestanden:

  • De code (script of binary) die de taak uitvoert.
  • Een Dockerbestand. Dit vertelt ons hoe we de container moeten bouwen waarbinnen het script draait.
  • Optionele metadata en README-documenten die het gemakkelijker maken om de opbouw van de pipe te begrijpen.
  • Eventuele CI- en CD-informatie die het gemakkelijker maakt om updates door te voeren.

 

Hier lees je precies hoe het maken van een pipe in zijn werk gaat. Je kunt trouwens een onbeperkt aantal pipes toevoegen aan een pipeline. Het gebruiken van pipes in Bitbucket garandeert een hoge mate van flexibiliteit. Je kunt kiezen uit een uitgebreide lijst met bestaande varianten, maar bijvoorbeeld ook zelf een nieuwe pipe ontwerpen als optimaal maatwerk een vereiste is. Met het systeem van pipes en pipelines creëer je in Bitbucket krachtige en geautomatiseerde workflows.

Overzicht met Bitbucket Deployments

Het onderdeel Bitbucket Deployments schept één centrale omgeving waar je implementaties kunt traceren en vooraf kunt bekijken. Het beheren en traceren van jouw code - vanaf de implementatie tot aan de livegang toe - wordt een koud kunstje dankzij de uitgebreide mogelijkheden tot beoordelen, bouwen, testen en implementeren.

Veiligheid

Op het gebied van veiligheid scoort Bitbucket beter dan de meeste andere Git-oplossingen. Je kunt gebruikers met toegang tot privé-inhoud bijvoorbeeld verplichten om verificatie in twee stappen in te schakelen. Daarnaast kun je bepaalde toegangsrechten voor specifieke gebruikers opheffen en beperkingen op branchniveau samenvoegen. SOC 2 Type II-audit zorgt er bovendien voor dat codes niet zoekraken en de cloudomgeving van Bitbucket te allen tijde blijft werken.

Integraties en koppelingen

Bitbucket biedt uitstekende integratie mogelijkheden met Jira en en Trello. Projecten zijn dus gemakkelijk te organiseren door Bitbucket-branches aan te maken vanuit Jira-issues of Trello-borden. Het vereist stellen van Jira-issuesleutels zorgt er bovendien voor dat elke wijziging aan een issue wordt gekoppeld in bevestigingsberichten. Bitbucket converteert automatisch de gevraagde issuesleutels naar koppelingen. Zo houd je bij een wijziging altijd het maximale overzicht!

Azure DevOps

Azure DevOps is een door techgigant Microsoft ontwikkeld CI/CD-platform dat het mogelijk maakt om DevOps eenvoudig te integreren in jouw organisatie en een volledige DevOps-toolset naar de cloud te brengen. Naast de krachtige features, zoals versiebeheer, het plannen en traceren van projecten en automatische builds en deployments, kun je jouw toolset altijd en overal benaderen. Backups en onderhoud zijn bovendien voor rekening van Microsoft.

Werken met Azure DevOps

Ontwikkelen in de cloud met Azure DevOps vereist geen ingewikkelde serverinstallaties en -integraties, waardoor het platform snel en gemakkelijk in gebruik te nemen is. We nemen de belangrijkste features van een van de paradepaardjes uit de Microsoft-stal kort onder de loep.

Azure Pipelines

Net als in Bitbucket, worden in Azure belangrijke onderdelen van de workflow ondergebracht in pipelines (Azure Pipelines). Denk bijvoorbeeld aan cruciale onderdelen van het ontwikkelproces zoals (CI-)builds en releasemanagement. Je kunt bovendien ook publieke Github-repositories aan Azure Pipelines koppelen. Daarnaast kun je met Azure Pipelines:

  • alle programmeertalen (denk aan Node.js, Python, PHP, Java en nog veel meer) en besturingssystemen gebruiken;
  • containers implementeren naar Kubernetes of afzonderlijke hosts;
  • een groot aantal ontwikkel-, test- en implementatietaken uitvoeren en honderden extensies (denk aan Slack of SonarCloud) gebruiken;
  • software middels continuous delivery implementeren naar elke cloud.

Azure Boards

Azure Boards is de plek waar je de belangrijkste agile tools vindt. Denk bijvoorbeeld aan backlogs en alle functionaliteiten die samenhangen met scrum en taakbeheer. Het is ook de plek waar je werkzaamheden kunt bijhouden met kanbanplanborden en teamdashboards. Overzichtelijke scrumborden en planningshulpmiddelen helpen jouw teams bij het uitvoeren van sprints en het plannen van vergaderingen.

Azure Repositories

Hier vind je alle ondersteuning voor repositories in de vorm van TFVC en Git (native in Azure DevOps). Bovendien heb je de mogelijkheid om per project een onbeperkt aantal repositories aan te maken. Validaties en extensies vanuit de marktplaats toevoegen is ook geen probleem. Je beschikt bovendien over ongelimiteerde hosting voor persoonlijke Git-opslagplaatsen. Of het nu gaat om een hobbyproject of een opslagplaats met een mondiale reikwijdte, Azure DevOps levert de functionaliteiten en infrastructuur om van elk goed uitgetekend project een doorslaand succes te maken.    

Azure Test Plans

Azure Test Plans verzorgt en ondersteunt de administratie rondom handmatig en exploratief testen. Deze functionaliteit omvat ook het beheer van testcases en de rapportage over testvoorbereiding en testresultaten.

Azure Security Center

Het Azure Security Center biedt geavanceerde veiligheidsoplossingen. De beveiligingsoplossing vertrouwt grotendeels op machine learning om de ontelbare signalen te duiden die kunnen wijzen op bedreigingen als RDP-aanvallen of SQL-injecties. Daarnaast levert de beschermingslaag van Azure DevOps concrete aanbevelingen voor het oplossen van veiligheidsissues. Zo houd je jouw cloudomgeving, gegevens en servers altijd veilig. 

Integratiemogelijkheden

Ook wat betreft integratiemogelijkheden heeft Azure DevOps de gebruiker veel te bieden. GitHub, Kubernetes, Docker, Visual Studio, Eclipse, Jenkins en IntelliJ vormen een bescheiden greep uit de vele platforms en ontwikkeltools die prima samengaan met Azure DevOps.

Bitbucket of Azure DevOps?

Bitbucket en Azure DevOps zijn allebei tools met een zeer divers en uitgebreid spectrum aan CI- en CD-functionaliteiten. Bitbucket valt bijvoorbeeld op door de intuïtieve interface, de uitgebreide integratiemogelijkheden met Jira, de ruime autorisatiemogelijkheden en de soepele, gestroomlijnde samenwerking met andere producten uit de stal van Atlassian.

 

Azure DevOps heeft vooral een streepje voor op het gebied van extenties. Het ecosysteem van de MS-dienst is op dit vlak veelzijdiger dan dat van Bitbucket. Daarnaast heeft Azure DevOps een lage instapdrempel; installeren en configureren kost weinig tijd en moeite, waardoor je snel aan de slag kunt. Azure DevOps is wel wat prijziger dan Bitbucket.

Samen op zoek naar de juiste oplossing

Wat de beste tool voor jouw is, hangt helemaal af van de organisatie en je persoonlijke eisen en wensen. Welke functionaliteiten en integraties zijn essentieel voor het bouwen van de oplossingen waar je de meeste behoefte aan heeft? Heb je veel of juist weinig tot geen ervaring met een van beide tools? En welke workflows passen het beste bij jouw overige bedrijfsprocessen? De ideale oplossing kan dus per organisatie sterk verschillen.

 

Het is daarom goed om met een gespecialiseerde partner naar het ontwikkelproces te kijken en in nauw overleg te bepalen welk platform en welke maatwerkoplossing het beste past. ACC ICT is zo’n partner. Wij weten hoe je CI- en CD-pipelines effectief en betrouwbaar inricht omdat managed OTAP ons specialisme is. Wij ondersteunen softwareontwikkelaars, DevOps-teams en online-dienstverleners, ongeacht het onderliggende platform of het type cloud.

Deel deze post
Ronald Kers
Ronald behoort tot de harde kern die meer dan 10 jaar in dienst is bij ACC ICT. Als contentmarketeer schrijft Ronald graag over technologische ontwikkelingen binnen de IT-branche. Met een achtergrond als system administrator weet hij als geen ander complexe materie in begrijpelijke taal uit te leggen.