Skip naar hoofdcontent

JamOps

Wil jij in je organisatie aan de slag met DevOps? Dan wil je nieuwe functionaliteiten zo snel mogelijk beschikbaar maken voor de eindgebruiker, zónder dat die snelheid ten koste gaat van de kwaliteit, veiligheid en goede werking van je code. JamOps maakt het mogelijk om DevOps te werken met Mendix, door het controleren en committen van je code voor een groot deel te automatiseren. 

Maak gebruik van Continuous Integration and Delivery

JamOps maakt Continuous Integration and Delivery mogelijk. Continuous Integration is een proces waarbij nieuwe stukjes code automatisch getest en geïntegreerd worden in de laatste versie van de applicatie. Als een test faalt, dan moet de code eerst gecorrigeerd worden voordat hij wordt ge?ntegreerd. Dit ondervangt veel handmatige handelingen en voorkomt conflicten en bugs. Continuous Delivery zorgt er vervolgens voor dat aanpassingen na het testen automatisch doorgezet worden naar de gewenste omgeving. Dankzij deze processen kunnen eindgebruikers zo snel mogelijk gebruik maken van nieuwe functionaliteiten. 

Static Code Analyser

Voorkom veelvoorkomende programmeerfouten

Een belangrijk onderdeel van JamOps is de static code analyzer, die controleert op veelvoorkomende programmeerfouten. Denk aan ongebruikte variabelen, lege catchblokken en verkeerd copy/paste-gedrag. In de analyzer zijn dit soort fouten omgezet naar regels waar de code aan moet voldoen. Na een commit krijg je binnen een minuut te zien aan welke regels niet is voldaan, zodat je dit direct kunt oplossen. Per project kun jij bepalen welke regels je wilt laten controleren. Misschien gebruik je bijvoorbeeld geen PascalCase, maar een andere naming convention. Dan kun je PascalCase uitschakelen en een andere naming convention inschakelen. Sommige regels kun je zelf configureren, zodat ze voldoen aan jullie manier van werken.

Security scans

Voorkom cyberaanvallen, datalekken en reputatieschade

Om ervoor te zorgen dat ieder nieuw stukje code veilig is, voert JamOps een aantal automatische testen uit. Dat doet JamOps op drie niveaus:

  • Static Application Security Testing (SAST): controle op onveilige patronen in de code. 
  • Dynamic Application Security Testing (DAST): controle op datatoegankelijkheid en de geldigheid van SSL-certificaten. 
  • Software Composition Analysis (SCA): controle op bekende onveiligheden binnen afhankelijkheden, zoals het gebruikte Mendix framework, de Mendix modules uit de Mendix App Store en de Java libraries.

Probeer je iets te committen wat niet veilig is? Dan krijg je direct een melding, zodat je het kunt oplossen. 

Unit testing

Voorkom bugs

Om bugs te voorkomen is het slim om unit tests in te zetten. Een unit test is een test die controleert of de uitkomst van je code is zoals je had verwacht. Matcht de uitkomst van de test niet met wat je verwacht had? Dan klopt er waarschijnlijk iets niet in je code. Zo kun je fouten op tijd oplossen. Unit tests ontwikkel je in Mendix en worden door JamOps automatisch uitgevoerd. Zo houd je jouw applicatie vrij van bugs.

Stroomlijn je processen

Deploy meerdere applicaties tegelijk

Als je veel applicaties moet deployen ben je daar vaak lang mee bezig, want dat kan niet tegelijk. Met JamOps kun je jouw deployments op de juiste volgorde inplannen en automatisch laten uitvoeren, door middel van Cloud Actions.

Voorkom dataverlies

Als een object (dat data bevat) wordt opgeslagen, dan controleert Mendix of er gerelateerde data aanwezig is die niet is opgeslagen. Mendix slaat deze alsnog automatisch op, om de juiste werking van Mendix te garanderen. Als de gebruiker uitlogt kan het echter gebeuren dat Mendix de automatisch opgeslagen gegevens weer verwijdert uit de database. Is dat niet gewenst? Dan ben je dus productiedata verloren zonder dat je het doorhad. Maak je gebruik van JamOps? Dan krijgen de ontwikkelaars op het moment dat dit gebeurt een melding en wordt de ci/cd pipeline on hold gezet. Zo kunnen zij kijken hoe het probleem is ontstaan en het oplossen. Vervolgens kan de pipeline weer vervolgd worden.

Bespaar tijd op het beheer van Java dependencies

Binnen een project zijn er altijd bepaalde Java-componenten die afhankelijk van elkaar zijn (dependencies). Om conflicten te voorkomen is het belangrijk dat je altijd de nieuwste versie van elk afhankelijke Java-component hebt. Dit kan een ingewikkeld en arbeidsintensief proces zijn, omdat al die afhankelijkheden weer afhankelijk zijn van andere componenten. Daarom hebben wij de Dependency Check toegevoegd aan JamOps. Deze zorgt voor de nieuwste versie van elk Java-component en ruimt oude en dubbele versies op.

Waarom is JamOps anders?

Ontwikkelaars hebben het vaak druk en zijn met meerdere projecten tegelijk bezig. Het kan dan lastig zijn om steeds te controleren of je code veilig en van goede kwaliteit is. Er bestaan al een tijdje tools om dit te automatiseren. Die tools analyseren de broncode regelmatig (bijvoorbeeld elke nacht) en sturen vervolgens een rapport met fouten op. Deze tools hebben alleen een aantal grote nadelen:

  • De ontwikkelaar heeft tijdens het ontwikkelen niet door dat er iets fout gaat en kan daar dus niet direct op inspelen. 
  • Ontwikkelaars hebben vaak andere urgente taken en het niet volgen van conventies heeft geen consequenties. Daardoor blijft het rapport liggen. 
  • Fouten stapelen zich hierdoor op, waardoor het steeds meer werk wordt om ze terug te vinden en te corrigeren.

Met JamOps voorkom je dit. Het grootste voordeel van JamOps is de snelle feedback. Je commit je wijzigingen en JamOps geeft het direct aan als er iets misgaat. Zo kan de ontwikkelaar de issues oplossen, terwijl hij of zij nog in de context van de taak is. Tot de issues zijn opgelost gaat de pipeline niet verder en blijft de deploy uit. Zo voorkom je dat gebruikers problemen ervaren met de applicatie.

Hierdoor wordt het werk een stuk efficiënter. Omdat er vanaf het begin op de juiste manier wordt ontwikkeld, blijft het project ‘clean’ en consistent. Zo hoeven er achteraf geen problemen te worden opgelost en kan iedereen makkelijk aan de slag met elkaars project.

Gebruik JamOps zoals jij dat wilt

  • JamOps draait on-premise of in de cloud
  • Mogelijkheid om JamOps te draaien in je eigen tenant
  • Eigen styling en inlogmechanisme zijn mogelijk
  • Je eigen conventies kunnen verwerkt worden in JamOps

Alle functionaliteiten op een rij

Quality control
  • Scans op best practices, conventies en performance
  • Unit Tests
  • Terugdraaien van handmatige deploys als deze versie gekoppeld is aan een build met violations
  • Uptime monitoring
Security
  • Anonieme entity scan
  • Vulnerability scans
  • Controle op het nog aanstaan van demo users
  • Scans op security rules
  • Controle op certificaten die verlopen
  • Controle op Autocommit foutmeldingen
Efficiency
  • Inplannen en uitvoeren van cloud diensten, zoals omgeving starten, stoppen, deployen en maken van backups
  • Geautomatiseerde mobiele Mendix builds voor Android en iOS
  • Automatisch opruimen van Java libraries
  • Dependencies toevoegen aan een Mendix-project, inclusief alle transitive dependencies
  • Exporteren van Mendix modules, waarbij alleen de benodigde dependencies worden opgenomen
  • Hernoemen
Overzichten
  • Overzichten van applicaties, met de gebruikte Mendix versie 
  • Overzichten van Mendix modules en waar ze gebruikt worden
  • Overzichten van Mendix constanten en scheduled tasks en waar ze gebruikt worden

De kosten

De kosten voor JamOps zijn afhankelijk van een aantal factoren. Bijvoorbeeld van het aantal apps dat je beheert en de hoeveelheid maatwerk die nodig is. Ben je benieuwd wat de kosten zouden zijn in jouw geval? We brengen jouw situatie graag voor je in kaart, zodat we een kostenplaatje kunnen schetsen. Vrijwel altijd heb je JamOps binnen korte tijd terugverdiend, doordat je efficiënter gaat werken en minder tijd kwijt bent aan het oplossen van problemen.

Benieuwd naar JamOps? Bekijk hieronder alvast een voorproefje.

Wil je meer informatie?

Armando Jacobus

Neem contact op met Armando Jacobus via:

Schrijf je nu in voor een kennismakingsgesprek, een Mendix demo of een App in a Day sessie!