

Atlassian biedt geweldige manieren om de behoefte van veel bedrijven aan facturering en facturatie op te lossen. Op de Atlassian Marketplace staan tal van add-ons die met Jira integreren om in die behoefte te voorzien. Deze add-ons kunnen zeer krachtig zijn en maken bijvoorbeeld een einde aan de noodzaak om talloze Excel-sheets samen te stellen of papieren bestanden te verzamelen om een klant te factureren.
Tempo Timesheets is een bekroonde invoegtoepassing voor tijdregistratie voor Jira die klanten voordelen biedt met realtime en nauwkeurige factureringsfuncties. In deze gastblogpost van Tempo's Maxime-Samuel Nie-Rouquette volgen we Pauls stappen om een nieuwe klant te factureren via Tempo Timesheets en de best practices die Paul toepast om maximaal voordeel te halen uit de add-on.
Snelle introductie
Paul zorgt voor de verzending van facturen naar klanten voor de R&D-inspanningen van zijn team. Voordat hij Tempo Timesheets gebruikte, gebruikte Paul het honoreringssysteem om de totale vergoeding te berekenen. Het honor-systeem zorgde voor veel problemen met klanten vanwege het gebrek aan nauwkeurigheid en transparantie en werd al snel vervangen door een meer praktische oplossing.
Stap 1 - Een klant toevoegen
Pauls nieuwe klant, Soylent Corp, heeft een overeenkomst getekend met Pauls bedrijf om een nieuw product te maken, Soylent Green. Wanneer zich een nieuwe klant aandient, is Pauls eerste stap om een nieuwe klant aan te maken, zodat hij een overzichtelijke rapportage heeft gedurende het hele verloop van een project. Paul begint het facturatieproces met het aanmaken van een klantaccount, zodat hij de tijd kan analyseren die zijn team besteedt aan factureerbare en niet-factureerbare zaken voor die specifieke klant.
Het tabblad 'Accounts' is een unieke functionaliteit van Tempo Timesheets en is zeer krachtig. In wezen kunt u hiermee de betrouwbaarheid, transparantie en nauwkeurigheid van de bijgehouden tijd voor klanten over meerdere projecten en teams verbeteren. Nieuwe projecten van een klant kunnen eenvoudig worden toegevoegd aan hun account.

Om een klantaccount aan te maken voor Soylent Corp, navigeert Paul naar de 'Accounts' pagina vanuit het Tempo Timesheets menu bovenaan de pagina. In de rechterbovenhoek van het scherm is het tabblad 'Klanten' waar nieuwe klanten worden toegevoegd. In dit geval voegt Paul Soylent Corp toe in het veld 'Naam' en SOY in het veld 'Sleutel'.
Stap 2 - Accountcategorieën en accounts aanmaken
Om volledig gebruik te kunnen maken van de accounts moet Paul accountcategorieën aanmaken. Deze categorieën stellen Tempo Timesheets in staat om te identificeren of de bestede tijd factureerbaar of niet-factureerbaar is, en worden gebruikt in combinatie met accounts om gegevens op de juiste manier weer te geven en te organiseren in rapporten.
De eerste accountcategorie die Paul aanmaakt is "RND", voor onderzoek en ontwikkeling, wat Pauls team identificeert als factureerbaar werk. Als het team bijvoorbeeld werkt aan een wiskundig model om de beste voedingsstoffen voor Soylent Green te vinden, dan wordt deze activiteit als factureerbaar bijgehouden omdat het onder "RND" valt.
Paul maakt ook "TRN" aan, voor training, wat door Pauls bedrijf wordt geclassificeerd als niet-factureerbaar werk. In het geval dat nieuwe leden aan het team worden toegevoegd en moeten worden ingewerkt, zou de trainingstijd als niet-factureerbaar worden beschouwd omdat deze onder "TRN" valt.

Om nieuwe accountcategorieën te openen en toe te voegen, klikt Paul op het tabblad 'Accountcategorieën' in het gedeelte 'Accounts' van het instellingenmenu. In dit geval voegt Paul 'RND' toe als sleutel, 'Onderzoek en ontwikkeling' als naam en classificeert het als een factureerbaar type. Voor 'Training' herhaalt Paul het proces, maar voegt 'intern' toe als type.
Nu de twee accountcategorieën (RND en TRN) zijn aangemaakt, is het een goede gewoonte om accounts aan te maken zodat de tijd correct wordt gekoppeld en de gegevens accuraat zijn tijdens het rapportage/facturatieproces. Eerder maakte Paul accountcategorieën aan om het systeem te helpen het type/de aard van de activiteiten te categoriseren. Nu neemt Paul die informatie op in de account zodat het eenvoudig is om de aard van het werk te begrijpen, voor wie het is, welke projecten in de account zijn opgenomen, enzovoort. Omdat Paul 2 accountcategorieën heeft gemaakt (een factureerbare en een niet-factureerbare), doet hij hetzelfde voor de accounts: een factureerbare en een niet-factureerbare. De accounts hebben dus de volgende informatie:

Paul gaat terug naar de accountpagina en voegt de twee accounts toe door op de knop Account aanmaken rechtsboven op de pagina te klikken. Wanneer het accountvenster verschijnt, hoeft hij alleen nog maar de juiste informatie in te vullen:
- Naam + Sleutel: Naam en tag voor het account (Soylent Billable +SOYLENTBIL)
- Lead: Sleutelpersoon voor het account (Paul)
- Categorie: de accountcategorie voor dit (Onderzoek en Ontwikkeling)
- Klant: naam van de klant (Soylent Corp)
- Contactpersoon: Contactpersoon bij de klant (Amy)
- Projecten: Verzamelt alle kwesties waarvoor factureerbare tijd is geregistreerd (Azome)
Paul herhaalt het proces voor de niet factureerbare account:

Paul heeft nu met succes de noodzakelijke basis gelegd voor Pauls team om hun gelogde tijd onder de juiste categorieën en velden te tonen - in realtime!
Stap 3 - Tijd loggen
Nu de basis is gelegd, moeten Paul en zijn team hun tijd registreren om de transparantie en nauwkeurigheid te bieden die ze willen bieden.

Er zijn meerdere manieren om tijd bij te houden en die tijd te koppelen aan factureerbare en niet-factureerbare tijd voor een klant/project. Het hangt allemaal af van de manier waarop een bedrijf is opgezet om te werken en tijd bij te houden. In dit geval hebben we gewoon de 'factureerbare' en 'niet-factureerbare' uren in het werklog venster aangepast. In Pauls bedrijf kan iedereen factureerbare en niet-factureerbare uren bijhouden. Taylor werkte vandaag bijvoorbeeld 8 uur aan een modelleringstaak, maar vond dat slechts 7 uur factureerbaar waren, omdat ze 1 uur aan relevante ondergeschikte taken deed die ze niet factureerbaar achtte.
De grootste uitdaging waar Paul nu voor staat is om zijn team hun tijd accuraat en consistent te laten bijhouden en loggen. Hier zijn enkele best practices.
- Paul kan zijn systeembeheerder vragen om maandelijks timesheets goed te keuren om het team te 'dwingen' om de tijd correct bij te houden.
- Het team kan de realtime tracker gebruiken die te vinden is in het Tempo submenu ('Tracker'). Met deze methode kunnen gebruikers eenvoudig de timer van de tracker pauzeren wanneer ze overdag onderbroken worden (telefoontjes, ongeplande vergaderingen, pauzes, enz.), of de timer stoppen om het werklogvenster automatisch te laten verschijnen met de reeds ingevulde tijd.

- Pauls team kan het werklog venster ook openen met behulp van de sneltoets van het bijbehorende venster. Als de sneltoets ergens in Jira wordt ingedrukt, verschijnt het werklog venster om de gebruiker zijn tijd te laten loggen. Dit is handig voor gebruikers als ze snel hun tijd willen loggen als ze ergens mee bezig zijn.
Stap 4 - Het aangepaste rapport voor de factuur van de klant maken
Als het project is afgerond of als het tijd is om de voortgang te laten zien, kan Paul eenvoudig een rapport maken. Een rapport geeft de tijd weer die is besteed aan problemen, zowel factureerbare als niet-factureerbare, en werkt al die informatie in realtime bij.
Het is nu een maand geleden sinds de start van het project en Soylent Corp vraagt hun maandelijkse factuur op, die ook dienst doet als rapport. Pauls team heeft deze maand 291 uur aan het project gewerkt, maar slechts 237 uur zijn factureerbaar. Paul wil deze metriek misschien toch aan Soylent Corp laten zien om aan te tonen dat het team tijd achter de schermen heeft besteed om de klant beter van dienst te zijn. Via het aangepaste rapport kan Paul nu een overzicht krijgen van de uren die zijn team deze maand voor Soylent Corp heeft gewerkt.

Paul kan een aangepast rapport maken vanuit het Tempo submenu bovenaan de pagina of via het pictogram aan de linkerkant van de pagina. In dit geval wil hij alleen de informatie voor de maand april weergeven die relevant is voor Soylent Corp en eenvoudig filteren op Soylent Corp. Omdat Paul zowel de factureerbare als niet-factureerbare taken wil weergeven waaraan deze maand is gewerkt, groepeert hij op Account + Issues. Tenslotte voegt Paul de kolom Factureerbaar toe (te vinden in de rasterweergave) om inzicht te krijgen in de uitsplitsing van factureerbare en niet-factureerbare tijd en de totale som voor elk.
Takeaway
Paul was in staat om de basis te creëren en een aantal werkwijzen te promoten bij zijn team, zodat hij zijn klant gemakkelijk kan voorzien van accurate en transparante informatie met één klik op de knop. Het zal niemand verbazen dat deze methode veel beter is dan het erewoordsysteem, omdat het binnen Jira werkt, dus het is ook erg handig voor zijn team om de tijd bij te houden (omdat het dezelfde omgeving is waar ze dagelijks mee werken). Uiteindelijk is er voor Paul en zijn bedrijf veel waarde te halen uit de tijd die intern wordt bespaard door de tijd consequent bij te houden.
De bovenstaande stappen bieden een zeer eenvoudige manier om Tempo Timesheets in te stellen om een aantal facturen te maken. Elk bedrijf heeft echter zijn eigen unieke manier van werken en het bijhouden van tijd, dus de methode die vandaag is onderzocht is misschien niet voldoende voor de behoeften van uw bedrijf. Als u beter wilt begrijpen hoe dit zou kunnen passen bij uw interne methodologie, raden wij u aan een bezoek te brengen aan Tempo.io of contact op te nemen met onze klantenservice, zodat zij u kunnen begeleiden bij het optimaliseren van uw bedrijfspraktijk met Tempo Timesheets.
Over Tempo Timesheets
Tempo Timesheets is een oplossing voor tijdregistratie en rapportage die naadloos integreert met Jira om teams en managers te helpen tijd te registreren voor boekhouding, salarisadministratie, facturering aan klanten, naleving, verbeterde efficiëntie en prognoses.
De belangrijkste functies zijn:
' Pijnloze tijdregistratie. Timesheets biedt een beter overzicht van werktijd voor facturering, kostenmeting, interne tijd en uitgevoerd werk.
' Flexibele rapportage. Flexibele rapportage. Ga dieper in op geschatte versus werkelijke tijd besteed aan JIRA-problemen, factureerbare tijd en meer.
' Kostenplaatsbeheer. Beheer van kostenplaatsen. Krijg beter zicht op alle activiteiten en werkzaamheden die zijn uitgevoerd voor klanten, interne projecten en ontwikkeling.
Met dank aan Maxime-Samuel Nie-Rouquette van Tempo voor het schrijven van deze gastbijdrage!
Bij ACA gebruiken we Tempo Timesheets ook voor onze facturering en facturatie en we zijn ook Silver Partner. We hebben onze eigen add-on voor Tempo Timesheets ontwikkeld waarmee gebruikers hun Tempo logboekvelden kunnen aanpassen, Javascript kunnen toevoegen aan Jira en de stijl en het gedrag van Jira kunnen aanpassen.

What others have also read


Tegenwoordig is het moeilijk om mensen te vinden die nog nooit van de tools van Atlassian hebben gehoord. Niet verwonderlijk, want ze hebben een revolutie teweeggebracht in de manier waarop we teambeheer benaderen en ze bieden alles wat je nodig hebt om dagelijkse werkzaamheden uit te voeren. Atlassian tools waren al behoorlijk populair voor de pandemie. In de afgelopen jaren heeft het zijn productensuite uitgebreid door kleinere startups zoals Trello en Bitbucket over te nemen. Volgens de statistieken die Atlassian op hun website deelt, zijn er meer dan 10 miljoen gebruikers van hun producten in 190 landen. Een van de redenen waarom de tools van Atlassian zo populair zijn voor omgevingen op afstand is dat Atlassian 9 kantoren verspreid over de hele wereld heeft. Doordat ze zelf (gedeeltelijk) op afstand samenwerken, weten ze wat andere teams nodig hebben om productief te worden. Hun werkwijzen bevorderen de cultuur van gedistribueerde teams over de hele wereld. Jira Jira is waarschijnlijk een van de bekendste tools voor taakbeheer. In elke Agile-omgeving , of het nu Scrum, Kanban of een mix van beide is, kun je de voortgang van het team effectief beheren. Jira vereenvoudigt het beheer van ontwikkelteams, sprintplanning en backlogprioritering. Een van de grootste problemen bij het runnen van een team op afstand is vaak een gebrek aan zichtbaarheid van de voortgang, en dat is eenvoudig op te lossen met Jira Software. Het is super eenvoudig en snel om taakschattingen toe te voegen en burndown grafieken te genereren om de snelheid van het hele team of van een bepaald teamlid te meten. Het is ook mogelijk om de task tracker in te schakelen om te zien hoeveel tijd het kost om een bepaalde taak te voltooien. Bitbucket Werken met versiebeheersystemen is een integraal onderdeel van softwareontwikkeling. De meerderheid van de softwareontwikkelaars gebruikt Git, waardoor het het populairste VCS is (geen verrassing, je vindt tutorials over het gebruik van Git in bijna elke cursus voor webontwikkeling ). Met een steeds groeiend aantal projecten hebben teams één centraal beheersysteem nodig om alle repositories te beheren. Bitbucket helpt je hierbij, omdat het alle teamleden in staat stelt om samen te werken aan code, testen en implementeren. Een van de grootste voordelen van Bitbucket is natuurlijk dat het heel goed integreert met andere Atlassian-producten. Het is ook handig om aparte Bitbucket-takken te maken van Jira-taken of Trello-kaarten. Trello Trello is een samenwerkingstool die is ontworpen om al je projecten te organiseren in borden volgens het Kanban-schema. Het biedt een visueel overzicht van je project door taken in lijsten te sorteren, deadlines in te stellen, verschillende labels op kaarten te zetten en ze aan een bepaald teamlid toe te wijzen. Met Trello kun je vanuit het niets een nieuw bord maken of een sjabloon aanpassen voor elk gebruiksscenario, zodat jij en je team er in een paar minuten aan kunnen werken. Talrijke add-ons kunnen het projectbeheer nog verder vereenvoudigen door de functionaliteit te verbeteren (bv. aangepaste velden voor kaarten inschakelen, stemmen of bulkacties uitvoeren om de prioritering te versnellen) en te integreren met 146 tools van derden . Ongeacht de grootte van het team, is Trello even perfect voor solopreneurs, kleine startups en giganten van externe operaties zoals Google en Kickstarter die Trello al gebruiken om hun projecten te runnen. Als je aan de slag wilt met Trello, bekijk dan deze handige beginnersgids . Confluence Voor zowel remote als non-remote teams is het van cruciaal belang om processen en workflows gedocumenteerd te houden zodat iedereen op één lijn zit. Atlassian Confluence is een perfecte knowledge base tool die het mogelijk maakt om ruimtes voor verschillende afdelingen te organiseren, projectdocumentatie op één plek te houden en te groeperen. Het is ook mogelijk om de toegang tot gevoelige bestanden te beperken om ze beschikbaar te maken voor bepaalde groepen of leden en de vorige documentversies te bekijken om wijzigingen bij te houden. Statuspagina Met teams op afstand wordt tijdige communicatie over kritieke incidenten vereenvoudigd met de Atlassian tool Status Page. Met Status Page kun je iedereen op de hoogte houden van wereldwijde problemen zoals onderhoud of onverwachte uitval. Het is ook een geweldige tool voor bedrijven die websites beheren en een groot klantenbestand hebben om een overload aan support tickets en chatverzoeken te voorkomen. Gebruikers kunnen een melding maken, de voortgang van het oplossen van problemen laten zien, updates geven over wat er aan de hand is en uiteindelijk het probleem markeren als 'opgelost' wanneer dat gepast is. Met behulp van Status Page is het mogelijk om openbare pagina's te maken voor externe gebruikers, publiekspecifieke pagina's (bijv. sommige klantgroepen) en privépagina's voor interne doeleinden (bijv. voor NBPM, oftewel no blame post mortem rapporten), voor meer gerichte communicatie afhankelijk van het publiek. De kracht van alles wat Atlassian is Het mooie van Atlassian-producten is dat ze gemakkelijk met elkaar te integreren zijn en een ecosysteem vormen waarmee je het beheer kunt vereenvoudigen door сomponenten uit het ene systeem om te zetten in bruikbare items in een ander systeem. Dankzij deze nauwe integratie is het bijvoorbeeld eenvoudig om Trello Cards om te zetten in Jira tickets, Bamboo builds te controleren in Bitbucket of gebruik te maken van de API's om integraties te maken met tools van derden. Met een groot aantal professionele tools kunnen werknemers zich tegenwoordig afgeleid en minder productief voelen. Gelukkig biedt de integratie van de Atlassian tools ook hier een oplossing. Door een gedeelde pagina aan te maken in Confluence, bij te dragen aan de taken op Jira of zich te abonneren op een Statuspagina, kunnen gebruikers eenvoudig op de hoogte blijven van alle updates zonder alle verschillende tools proactief te hoeven volgen, omdat je automatische e-mailmeldingen kunt instellen zodra er een wijziging plaatsvindt. Inpakken Toen de pandemie begon, hadden veel bedrijven het moeilijk door lockdowns, problemen met leveranciers en economische recessie. Vooral onder zulke omstandigheden zijn de tools van Atlassian een grote hulp bij de overgang naar werken op afstand. De meeste van hun producten zijn gratis voor kleine teams tot 10 gebruikers, waardoor ze alle voordelen hebben van effectieve oplossingen voor projectbeheer. Met alle middelen voor beheer kunnen kleine bedrijven hun bedrijf op afstand draaiende houden en zorgen voor groei en ontwikkeling. Met de verschuiving naar werken op afstand en de positieve resultaten op het gebied van productiviteit, vragen veel bedrijfseigenaren zich af of ze wel terug moeten keren naar kantoor als de pandemie voorbij is en meer dan 70% van de bedrijven is van plan om ten minste gedeeltelijk op afstand te blijven werken. Dus hoewel de wereld verandert en we niet weten of werken op afstand kantoren volledig zal vervangen, is één ding zeker: als je Atlassian voor het eerst op afstand hebt geprobeerd, zul je het mee willen nemen naar kantoor of waar dan ook. Als je op zoek bent naar een partner van Atlassian, kijk dan wat wij je kunnen bieden! {% module_block module "widget_80c5e578-bd71-44da-abe5-b5f7c0e9a938" %}{% module_attribute "buttons" is_json="true" %}{% raw %}[{"appearance":{"link_color":"light","primary_color":"primary","secondary_color":"primary","tertiary_color":"light","tertiary_icon_accent_color":"dark","tertiary_text_color":"dark","variant":"primary"},"content":{"arrow":"right","icon":{"alt":null,"height":null,"loading":"disabled","size_type":null,"src":"","width":null},"tertiary_icon":{"alt":null,"height":null,"loading":"disabled","size_type":null,"src":"","width":null},"text":"Check out our Atlassian services"},"target":{"link":{"no_follow":false,"open_in_new_tab":false,"rel":"","sponsored":false,"url":{"content_id":null,"href":"https://acagroup.be/en/services/atlassian/","href_with_scheme":"https://acagroup.be/en/services/atlassian/","type":"EXTERNAL"},"user_generated_content":false}},"type":"normal"}]{% endraw %}{% end_module_attribute %}{% module_attribute "child_css" is_json="true" %}{% raw %}{}{% endraw %}{% end_module_attribute %}{% module_attribute "css" is_json="true" %}{% raw %}{}{% endraw %}{% end_module_attribute %}{% module_attribute "definition_id" is_json="true" %}{% raw %}null{% endraw %}{% end_module_attribute %}{% module_attribute "field_types" is_json="true" %}{% raw %}{"buttons":"group","styles":"group"}{% endraw %}{% end_module_attribute %}{% module_attribute "isJsModule" is_json="true" %}{% raw %}true{% endraw %}{% end_module_attribute %}{% module_attribute "label" is_json="true" %}{% raw %}null{% endraw %}{% end_module_attribute %}{% module_attribute "module_id" is_json="true" %}{% raw %}201493994716{% endraw %}{% end_module_attribute %}{% module_attribute "path" is_json="true" %}{% raw %}"@projects/aca-group-project/aca-group-app/components/modules/ButtonGroup"{% endraw %}{% end_module_attribute %}{% module_attribute "schema_version" is_json="true" %}{% raw %}2{% endraw %}{% end_module_attribute %}{% module_attribute "smart_objects" is_json="true" %}{% raw %}null{% endraw %}{% end_module_attribute %}{% module_attribute "smart_type" is_json="true" %}{% raw %}"NOT_SMART"{% endraw %}{% end_module_attribute %}{% module_attribute "tag" is_json="true" %}{% raw %}"module"{% endraw %}{% end_module_attribute %}{% module_attribute "type" is_json="true" %}{% raw %}"module"{% endraw %}{% end_module_attribute %}{% module_attribute "wrap_field_tag" is_json="true" %}{% raw %}"div"{% endraw %}{% end_module_attribute %}{% end_module_block %}
Lees verder

Binnen ACA werken meerdere teams aan verschillende (of dezelfde!) projecten. Elk team heeft zijn eigen expertisedomeinen, zoals het ontwikkelen van software op maat, marketing en communicatie, mobiele ontwikkeling en meer. De teams die gespecialiseerd zijn in Atlassian-producten en cloud-expertise combineerden hun kennis om een zeer beschikbare Atlassian-stack op Kubernetes te creëren. Niet alleen konden we op deze manier onze interne processen verbeteren, we konden deze oplossing ook aan onze klanten aanbieden! In deze blogpost leggen we uit hoe onze Atlassian- en cloudteams een hoogbeschikbare Atlassian-stack bovenop Kubernetes hebben gebouwd. We bespreken ook de voordelen van deze aanpak en de problemen die we onderweg zijn tegengekomen. Hoewel we er verdomd dichtbij zijn, zijn we toch niet perfect 😉 Tot slot bespreken we hoe we deze setup monitoren. De opzet van onze Atlassian-stack Onze Atlassian stack bestaat uit de volgende producten: Amazon EKS Amazon EFS Atlassian Jira Data Center Atlassian Confluence gegevenscentrum Amazon EBS Atlassian Bitbucket datacenter Amazon RDS Zoals je kunt zien, gebruiken we AWS als cloud provider voor onze Kubernetes setup. We maken alle resources aan met Terraform. We hebben een aparte blogpost geschreven over hoe onze Kubernetes setup er precies uitziet. Je kunt het hier lezen ! De afbeelding hieronder zou je een algemeen idee moeten geven. Het volgende diagram geeft je een idee van de opzet van ons Atlassian Data Center. Hoewel er een paar verschillen zijn tussen de producten en de opstellingen, blijft de kern hetzelfde. De applicatie wordt gestart als een of meer pods die worden beschreven door een StatefulSet. De pods worden node-0 en node-1 genoemd in het bovenstaande diagram. Het eerste verzoek wordt naar de load balancer gestuurd en wordt doorgestuurd naar de node-0 pod of de node-1 pod. Verkeer is sticky, dus al het volgende verkeer van die gebruiker wordt naar node-1 gestuurd. Zowel pod-0 als pod-1 hebben persistente opslag nodig die gebruikt wordt voor de plugin cache en indexen. Op elk van de pods wordt een ander Amazon EBS volume gemount. De meeste gegevens zoals je JIRA issues, Confluence ruimtes, ... worden opgeslagen in een database. De database wordt gedeeld, node-0 en node-1 maken beide verbinding met dezelfde database. We gebruiken meestal PostgreSQL op Amazon RDS. De node-0 en node-1 pod moeten ook grote bestanden delen die we niet in een database willen opslaan, bijvoorbeeld bijlagen. Hetzelfde Amazon EFS volume wordt op beide pods gemount. Wanneer er wijzigingen worden aangebracht, bijvoorbeeld een bijlage wordt geüpload naar een issue, is de bijlage onmiddellijk beschikbaar op beide pods. We gebruiken CloudFront (CDN) om statische assets te cachen en de responstijden op het web te verbeteren. De voordelen van deze opzet Door deze opzet te gebruiken, kunnen we gebruikmaken van de voordelen van Docker en Kubernetes en de datacenterversies van de Atlassian-tooling. Er zijn veel voordelen verbonden aan deze manier van werken, maar we hebben de belangrijkste voordelen hieronder opgesomd. Het is een zelfherstellend platform : containers en worker nodes vervangen zichzelf automatisch als er een storing optreedt. In de meeste gevallen hoeven we niets te doen en zorgt de stack voor zichzelf. Natuurlijk is het nog steeds belangrijk om storingen te onderzoeken, zodat je ze in de toekomst kunt voorkomen. Precies nul downtime implementaties : wanneer we de eerste node binnen het cluster upgraden naar een nieuwe versie, kunnen we de oude versie nog steeds aan onze klanten serveren op de tweede. Zodra de upgrade is voltooid, wordt de nieuwe versie geserveerd vanaf het eerste knooppunt en kunnen we het tweede knooppunt upgraden. Op deze manier blijft de applicatie beschikbaar, zelfs tijdens upgrades. Deployments zijn voorspelbaar : we gebruiken dezelfde Docker-container voor ontwikkeling, staging en productie. Daarom hebben we er vertrouwen in dat de container in onze productieomgeving kan starten na een succesvolle deploy naar staging. Applicaties met hoge beschikbaarheid: als er een storing optreedt op een van de nodes, kan het verkeer worden omgeleid naar de andere node. Op deze manier heb je de tijd om het probleem te onderzoeken en de kapotte node te repareren terwijl de applicatie beschikbaar blijft. Het is mogelijk om gegevens van het ene naar het andere knooppunt te synchroniseren . Zo kan het synchroniseren van de index van de ene node naar de andere om een corrupte index te herstellen in slechts enkele seconden gebeuren, terwijl een volledige herindexering veel langer kan duren. Je kunt een hoog beveiligingsniveau implementeren op alle lagen (AWS, Kubernetes, applicatie, . ..) AWS CloudTrail voorkomt ongeautoriseerde toegang op AWS en stuurt een waarschuwing in geval van een afwijking. AWS Config voorkomt wijzigingen in AWS-beveiligingsgroepen. Je kunt meer te weten komen over hoe je je cloud kunt beveiligen met AWS Config in onze blogpost. Terraform zorgt ervoor dat wijzigingen op de AWS-omgeving door het team worden goedgekeurd voordat ze worden uitgerold. Aangezien het upgraden van Kubernetes master en worker nodes weinig tot geen impact heeft, draait de stack altijd op een recente versie met de laatste beveiligingspatches. We gebruiken een combinatie van namespacing en RBAC om ervoor te zorgen dat applicaties en implementaties alleen toegang hebben tot bronnen binnen hun naamruimte met de minste privileges . Netwerkbeleid wordt uitgerold met Calico. We weigeren standaard al het verkeer tussen containers en staan alleen specifiek verkeer toe. We gebruiken recente versies van de applicaties van Atlassian en implementeren beveiligingsberichten wanneer deze door Atlassian worden gepubliceerd. Geïnteresseerd om zelf de kracht van Kubernetes te benutten? Op onze website vind je meer informatie over hoe we je kunnen helpen! {% module_block module "widget_3d4315dc-144d-44ec-b069-8558f77285de" %}{% module_attribute "buttons" is_json="true" %}{% raw %}[{"appearance":{"link_color":"light","primary_color":"primary","secondary_color":"primary","tertiary_color":"light","tertiary_icon_accent_color":"dark","tertiary_text_color":"dark","variant":"primary"},"content":{"arrow":"right","icon":{"alt":null,"height":null,"loading":"disabled","size_type":null,"src":"","width":null},"tertiary_icon":{"alt":null,"height":null,"loading":"disabled","size_type":null,"src":"","width":null},"text":"Apply the power of Kubernetes"},"target":{"link":{"no_follow":false,"open_in_new_tab":false,"rel":"","sponsored":false,"url":null,"user_generated_content":false}},"type":"normal"}]{% endraw %}{% end_module_attribute %}{% module_attribute "child_css" is_json="true" %}{% raw %}{}{% endraw %}{% end_module_attribute %}{% module_attribute "css" is_json="true" %}{% raw %}{}{% endraw %}{% end_module_attribute %}{% module_attribute "definition_id" is_json="true" %}{% raw %}null{% endraw %}{% end_module_attribute %}{% module_attribute "field_types" is_json="true" %}{% raw %}{"buttons":"group","styles":"group"}{% endraw %}{% end_module_attribute %}{% module_attribute "isJsModule" is_json="true" %}{% raw %}true{% endraw %}{% end_module_attribute %}{% module_attribute "label" is_json="true" %}{% raw %}null{% endraw %}{% end_module_attribute %}{% module_attribute "module_id" is_json="true" %}{% raw %}201493994716{% endraw %}{% end_module_attribute %}{% module_attribute "path" is_json="true" %}{% raw %}"@projects/aca-group-project/aca-group-app/components/modules/ButtonGroup"{% endraw %}{% end_module_attribute %}{% module_attribute "schema_version" is_json="true" %}{% raw %}2{% endraw %}{% end_module_attribute %}{% module_attribute "smart_objects" is_json="true" %}{% raw %}null{% endraw %}{% end_module_attribute %}{% module_attribute "smart_type" is_json="true" %}{% raw %}"NOT_SMART"{% endraw %}{% end_module_attribute %}{% module_attribute "tag" is_json="true" %}{% raw %}"module"{% endraw %}{% end_module_attribute %}{% module_attribute "type" is_json="true" %}{% raw %}"module"{% endraw %}{% end_module_attribute %}{% module_attribute "wrap_field_tag" is_json="true" %}{% raw %}"div"{% endraw %}{% end_module_attribute %}{% end_module_block %} De kracht van Kubernetes toepassen Problemen die we tegenkwamen tijdens de installatie De migratie naar deze stack was niet alleen maar leuk en aardig. We zijn onderweg zeker een aantal moeilijkheden en uitdagingen tegengekomen. Door ze hier te bespreken, hopen we dat we jouw migratie naar een vergelijkbare setup kunnen vergemakkelijken! Sommige plugins (meestal oudere plugins) werkten alleen op de standalone versie van de Atlassian applicatie. We moesten een alternatieve plugin vinden of ondersteuning van een leverancier gebruiken om dezelfde functionaliteit op Atlassian Data Center te krijgen. We moesten enkele wijzigingen aanbrengen in onze Docker-containers en netwerkbeleid (bijv. firewallregels) om ervoor te zorgen dat beide nodes van een applicatie met elkaar konden communiceren. De meeste applicaties hebben wat extra tools in de container. Bijvoorbeeld Synchrony voor Confluence, ElasticSearch voor BitBucket, EazyBI voor Jira, enzovoort. Deze extra tools moesten allemaal gerefactored worden voor een multi-node opstelling met gedeelde gegevens. In onze vorige opstelling draaide elke applicatie op zijn eigen virtuele machine. In een Kubernetes-context zijn de applicaties verspreid over een aantal worker nodes. Daarom kan één worker node meerdere applicaties draaien. Elke node van elke applicatie wordt gepland op een worker node die voldoende resources beschikbaar heeft. We moesten een goed plaatsingsbeleid implementeren zodat elk knooppunt van elke applicatie voldoende geheugen beschikbaar heeft. We moesten er ook voor zorgen dat een applicatie een andere applicatie niet kon beïnvloeden als deze om meer resources vroeg. Er waren ook enkele uitdagingen met betrekking tot load balancing. We moesten een aangepast sjabloon maken voor nginx ingress-controller om ervoor te zorgen dat websockets correct werken en dat alle gezondheidscontroles binnen de applicatie een gezonde status rapporteren. Daarnaast hadden we een andere loadbalancer en URL nodig voor ons BitBucket SSH-verkeer in vergelijking met ons webverkeer naar de BitBucket UI. Onze vorige installatie bevatte veel gegevens, zowel op het bestandssysteem als in de database. We moesten alle gegevens migreren naar een Amazon EFS-volume en een nieuwe database in een nieuw AWS-account. Het was een uitdaging om een manier te vinden om een consistent synchronisatieproces te hebben dat ook niet te lang duurde, omdat tijdens de migratie alle applicaties down waren om gegevensverlies te voorkomen. Uiteindelijk konden we aan deze criteria voldoen en konden we succesvol migreren. Onze Atlassian-stack monitoren We gebruiken de volgende tools om alle resources binnen onze setup te monitoren Datadog om alle componenten te monitoren die zijn gemaakt binnen onze stack en om logging van alle componenten te centraliseren. Je kunt meer lezen over het monitoren van je stack met Datadog in onze blogpost hier . NewRelic voor APM-monitoring van het Java-proces (Jira, Confluence, Bitbucket) binnen de container. Als onze monitoring een afwijking detecteert, wordt er een alert aangemaakt binnen OpsGenie . OpsGenie zorgt ervoor dat deze waarschuwing naar het team of de oproepkracht wordt gestuurd die verantwoordelijk is voor het oplossen van het probleem. Als de oproepkracht de waarschuwing niet op tijd bevestigt, wordt de waarschuwing geëscaleerd naar het team dat verantwoordelijk is voor die specifieke waarschuwing. Conclusie Kortom, we zijn erg blij dat we zijn overgestapt op deze nieuwe stack. De combinatie van de voordelen van Kubernetes en de Atlassian Data Center versies van Jira, Confluence en BitBucket voelt als een grote stap in de goede richting. We hebben elke dag profijt van de verbeteringen op het gebied van self-healing, deployment en monitoring en het onderhoud is een stuk eenvoudiger geworden. Geïnteresseerd in je eigen Atlassian Stack? Wil je ook de kracht van Kubernetes benutten? Op onze website vind je meer informatie over hoe we je kunnen helpen ! Ons Atlassian hostingaanbod
Lees verder

We weten allemaal dat je Jira Service Management kunt gebruiken voor je IT-helpdesk , maar wist je dat je het ook kunt gebruiken voor facilitair beheer? Nee? Dan heb je je zeker niet voorgesteld dat je heftrucks, schaarliften en zo'n beetje alles kunt huren met Jira. In deze blogpost laat ik je zien hoe we Jira Service Management naar een heel nieuw niveau hebben getild als het gaat om mogelijkheden en integratie. Het opzetten van Jira Service Management Onze klant Clarebout , een van 's werelds grootste producenten van aardappelproducten, wilde hun volledige fabrieksoperaties op Jira aansluiten. Als boer in mijn vrije tijd kon ik daar geen nee tegen zeggen. We begonnen met de IT-helpdesk en hielden het simpel, maar effectief. Aangezien helpdesks de kern vormen van de competentie van Jira, verliep dit proces soepel. (De screenshots hieronder zijn in het Nederlands, Engels is niet de hoofdtaal bij Clarebout). Facilitair beheer in Jira Service Management Nadat we de IT-afdeling van het bedrijf hadden behandeld, gingen we verder met het facilitair beheer. We hebben een servicedesk opgezet voor het melden van zaken als een gat in de vloer, gebroken glas, defecte lampen, enzovoort. Omdat de faciliteit van Clarebout in dit geval een voedselverwerkende fabriek is, is het stellen van prioriteiten op basis van risico's een van de belangrijkste functies. De melder van een incident kan 3 factoren instellen (Ernst, Blootstelling en Waarschijnlijkheid) die we gebruiken om het globale risico van dat incident te berekenen. Als het risico te hoog is, sluiten we de fabriek. Geen enkele aardappel is het waard om een mensenleven te riskeren! Voor IT-infrastructuur, fabriekslocaties en andere CMDB-gegevens gebruikten we Mindville Insight en wat aangepaste scripts in combinatie met Lansweeper voor populatie. Omdat ik thuis mijn eigen boerderij en tractoren heb, zat ik echt in mijn comfortzone bij Clarebout. Zozeer zelfs dat ik (samen met de belanghebbenden natuurlijk) besloot om Jira naar nieuwe hoogten te brengen, letterlijk. Het volgende waar ik me op ging richten was materieel zoals heftrucks en hoogwerkers. Beheer van apparatuur Ten eerste wilden we dat de medewerkers en externe partners de benodigde apparatuur konden huren om hun onderhoud in de faciliteit uit te voeren. Na het kiezen van een type uitrusting, moeten huurders hun vereisten specificeren, zoals hoogte, of de uitrusting koelkastbestendige olie nodig heeft, waar ze het nodig hebben, enzovoort. Zodra de bestelling is goedgekeurd, kan de huurder de apparatuur ophalen bij het beveiligingskantoor. Hier wordt het pas echt leuk: alle werknemers moeten een geldig certificaat hebben om de apparatuur te bedienen. Om veilig te kunnen controleren wie een vergunning heeft om bepaalde apparatuur te bedienen, hebben we de gegevens van elke werknemer in Insight geïmporteerd. Het systeem voert vervolgens de nodige controles uit wanneer iemand een apparaat aanvraagt, en alleen als hij of zij het apparaat mag bedienen, overhandigt de beveiliging het apparaat. Een belangrijk onderdeel van het runnen van een verhuurbedrijf is planning. Dit is waar Structure en Structure.Gantt om de hoek komen kijken. Met de Structure.Gantt app kunnen we apparatuur visualiseren, volgen en beheren in gebruiksvriendelijke Agile Gantt-diagrammen. Kortom, het geeft ons een duidelijk overzicht van welke materialen ter plaatse zijn, gereserveerd zijn of in gebruik zijn. (De afbeelding hieronder is onscherp om de privacy van onze klant te beschermen, maar geeft je toch een idee van hoe het eruit ziet). Cool, vind je niet? Maar waarom zou je het hierbij laten? Kapotte apparatuur melden Afgezien van het verhuurgedeelte, staat de apparatuur van het bedrijf verspreid over het hele gebouw. En zoals met alle apparatuur, is er onderhoud nodig of soms gaat het gewoon kapot en moet het gerepareerd worden. Gelukkig kunnen gebruikers kapotte apparatuur eenvoudig melden via Jira. Insight stelt ons in staat om een op locatie gebaseerde selectie van apparatuur te gebruiken. De eerste stap om een kapot of beschadigd apparaat te melden is dus om te selecteren waar je precies in de fabriek bent en op basis van die locatie een beperkte lijst van heftrucks op die specifieke locatie te krijgen. Op deze manier hoeven gebruikers geen eindeloze lijsten met apparatuur door te spitten voordat ze een probleem melden. Na het selecteren van de juiste apparatuur definiëren gebruikers het probleem en geven ze aan of de apparatuur beschadigd is of alleen defect is om het ticket te voltooien. Jira stuurt het ticket vervolgens automatisch naar een derde partij, afhankelijk van welke storing het is: banden gaan naar een bandenbedrijf, algemene zaken naar de leverancier, accu's naar de accuspecialisten, enzovoort. Met Elements Copy Sync hebben we een linkend en een gesynchroniseerd issue gemaakt in het teams/verkopers project. Op die manier kunnen de teams of leveranciers die verantwoordelijk zijn voor het repareren van een apparaat zo snel mogelijk aan de slag. Gebruikers kunnen dus schade aan bijvoorbeeld een vorkheftruck of een gebouw melden. Maar hoe zit het met het koppelen van deze gebeurtenissen? Natuurlijk is dat een mogelijkheid, maar op een meer 'traditionele' manier dan waar je waarschijnlijk aan denkt. Gebruikers hoeven alleen maar op hun binnenlocatie te klikken en te zien welke tickets er op die locatie openstaan. Als er een beschadigde vorkheftruck is en je hebt een beschadigde poort, op dezelfde dag, op dezelfde locatie... 1+1=2. 😉 Ik hoop dat je het leuk vond om dit te lezen, want ik heb het met veel plezier geïmplementeerd! Als je wilt zien wat we nog meer met Jira hebben gedaan bij Clarebout, kun je hier altijd onze case study lezen . Geïnteresseerd welke Atlassian oplossingen we jou zouden kunnen bieden? Bekijk onze Atlassian diensten! {% module_block module "widget_73256e0c-c9d0-434a-8ac2-1f2d113ce6c9" %}{% module_attribute "buttons" is_json="true" %}{% raw %}[{"appearance":{"link_color":"light","primary_color":"primary","secondary_color":"primary","tertiary_color":"light","tertiary_icon_accent_color":"dark","tertiary_text_color":"dark","variant":"primary"},"content":{"arrow":"right","icon":{"alt":null,"height":null,"loading":"disabled","size_type":null,"src":"","width":null},"tertiary_icon":{"alt":null,"height":null,"loading":"disabled","size_type":null,"src":"","width":null},"text":"View our Atlassian service"},"target":{"link":{"no_follow":false,"open_in_new_tab":false,"rel":"","sponsored":false,"url":null,"user_generated_content":false}},"type":"normal"}]{% endraw %}{% end_module_attribute %}{% module_attribute "child_css" is_json="true" %}{% raw %}{}{% endraw %}{% end_module_attribute %}{% module_attribute "css" is_json="true" %}{% raw %}{}{% endraw %}{% end_module_attribute %}{% module_attribute "definition_id" is_json="true" %}{% raw %}null{% endraw %}{% end_module_attribute %}{% module_attribute "field_types" is_json="true" %}{% raw %}{"buttons":"group","styles":"group"}{% endraw %}{% end_module_attribute %}{% module_attribute "isJsModule" is_json="true" %}{% raw %}true{% endraw %}{% end_module_attribute %}{% module_attribute "label" is_json="true" %}{% raw %}null{% endraw %}{% end_module_attribute %}{% module_attribute "module_id" is_json="true" %}{% raw %}201493994716{% endraw %}{% end_module_attribute %}{% module_attribute "path" is_json="true" %}{% raw %}"@projects/aca-group-project/aca-group-app/components/modules/ButtonGroup"{% endraw %}{% end_module_attribute %}{% module_attribute "schema_version" is_json="true" %}{% raw %}2{% endraw %}{% end_module_attribute %}{% module_attribute "smart_objects" is_json="true" %}{% raw %}null{% endraw %}{% end_module_attribute %}{% module_attribute "smart_type" is_json="true" %}{% raw %}"NOT_SMART"{% endraw %}{% end_module_attribute %}{% module_attribute "tag" is_json="true" %}{% raw %}"module"{% endraw %}{% end_module_attribute %}{% module_attribute "type" is_json="true" %}{% raw %}"module"{% endraw %}{% end_module_attribute %}{% module_attribute "wrap_field_tag" is_json="true" %}{% raw %}"div"{% endraw %}{% end_module_attribute %}{% end_module_block %}
Lees verderWant to dive deeper into this topic?
Get in touch with our experts today. They are happy to help!

Want to dive deeper into this topic?
Get in touch with our experts today. They are happy to help!

Want to dive deeper into this topic?
Get in touch with our experts today. They are happy to help!

Want to dive deeper into this topic?
Get in touch with our experts today. They are happy to help!

