
InterSystems IRIS: een cloudgebaseerd uniform dataplatform
InterSystems IRIS is een compleet cloudgebaseerd uniform dataplatform dat organisaties in staat stelt snel en in realtime datarijke oplossingen te ontwikkelen en die te implementeren en te onderhouden. In tegenstelling tot andere benaderingen, waarbij vaak meerdere technologieën moeten worden geïmplementeerd en geïntegreerd, biedt InterSystems IRIS veel van de cruciale mogelijkheden die ontwikkelaars van oplossingen nodig hebben in één enkel product, waaronder:
- Multi-workload (gelijktijdige transactionele en analytische) databasemanagementmogelijkheden;
- Multi-model (relationeel, meerdimensionaal, object en document) databasemanagementmogelijkheden;
- Een allesomvattend interoperabiliteitsplatform voor het integreren van ongelijksoortige datasilo's en -applicaties; en
- Gestructureerde, ongestructureerde en open analyticsmogelijkheden die zowel batch- als realtime use cases ondersteunen.
InterSystems IRIS ondersteunt en automatiseert implementatie in verschillende omgevingen. Hierdoor kunnen organisaties applicaties flexibel en snel inzetten, naar behoefte op- en afschalen en gebruik maken van Continuous Integration and Delivery (CI/CD), DevOps en andere agile methodologieën.

InterSystems Cloud Manager
InterSystems Cloud Manager (ICM) is inbegrepen bij InterSystems IRIS en biedt gebruikers een eenvoudige, intuïtieve manier om diensten op verschillende virtuele en fysieke clusters te provisionen en te implementeren.
ICM levert de voordelen van Infrastructure as Code (IaC), een onveranderlijke infrastructuur en gecontaineriseerde implementatie van InterSystems IRIS-gebaseerde applicaties. Met InterSystems profiteren organisaties van de efficiëntie, flexibiliteit en herhaalbaarheid van cloudomgevingen en gecontaineriseerde software, zonder ingrijpende ontwikkelingen of aanpassingen.
ICM biedt de volgende functies en voordelen:
- Geautomatiseerde provisioning en implementatie, plus opdrachtregelbeheer van grootschalige cloudgebaseerde InterSystems IRIS-configuraties;
- Integratie van InterSystems IRIS-gebaseerde applicaties in de DevOps-toolchain van een onderneming;
- Meer flexibiliteit door snelle herprovisioning en herimplementatie wanneer nodig; en
- Stabiliteit, robuustheid en risicominimalisatie door eenvoudig versiebeheer van zowel de applicatie als de omgeving waarin de applicatie wordt uitgevoerd.
ICM kan virtuele compute nodes en bijbehorende resources provsionen op de volgende platforms:
- Amazon Web Services (AWS)
- Google Cloud Platform (GCP)
- Microsoft Azure
- VMware vSphere
- Reeds bestaande virtuele en bare-metal omgevingen
De levenscyclusfasen van ICM
De rol van ICM in de levenscyclus van een applicatie wordt geïllustreerd in de volgende afbeelding:

Definitie
Elke ICM-implementatie wordt gedefinieerd aan de hand van de inhoud van JSON-geformatteerde configuratiebestanden. Deze bestanden bevatten bijna alle instellingen die nodig zijn om InterSystems IRIS-configuraties te provisionen en te implementeren. Zodra het gewenste type en aantal compute nodes en andere details, waaronder beveiligingsreferenties en InterSystems IRIS-licenties, zijn gespecificeerd, kan de provisioning-fase van start gaan.
Provisioning
ICM ondersteunt drie belangrijke provisioning-activiteiten: het aanmaken (provisionen), configureren en vernietigen (unprovisionen) van compute nodes en bijbehorende resources in een cloudomgeving.
ICM voert provisioning-taken uit met behulp van Terraform van HashiCorp. Terraform is een open-source tool voor het veilig en efficiënt bouwen en wijzigen van infrastructuur en het toepassen van versiebeheer. De tool is compatibel met zowel bestaande aanbieders van clouddiensten als maatoplossingen.
ICM vult Terraform op de volgende manieren aan:
- ICM voert meerdere Terraform-taken parallel uit om alle nodetypes gelijktijdig te configureren, voor snellere provisioning;
- ICM biedt programmatische toegang tot Terraform met behulp van Java;
- ICM definieert de gewenste infrastructuur in een generiek JSON-formaat.
ICM voert ook enkele post-provisioning configuratietaken uit met SSH op dezelfde manier, waarbij opdrachten parallel worden uitgevoerd op meerdere nodes voor een snellere uitvoering.
Implementatie
ICM implementeert vooraf gebouwde InterSystems IRIS-images in Docker-containers op de compute nodes die ICM provisiont. Deze containers zijn platformonafhankelijk en volledig overdraagbaar, hoeven niet te worden geïnstalleerd en zijn gemakkelijk af te stellen. ICM zelf wordt geïmplementeerd in een Docker-container. Een gecontaineriseerde applicatie draait op de kernel van het hostsysteem, waarbij de container de applicatie alleen voorziet van de elementen die nodig zijn om de applicatie uit te voeren en toegankelijk te maken. Dit zijn onder andere de vereiste verbindingen, diensten en interfaces: een runtime-omgeving, de code, bibliotheken, omgevingsvariabelen en configuratiebestanden.
Implementatietaken worden uitgevoerd door aanroepen naar Docker te versturen.
ICM vult Docker op de volgende manieren aan:
- ICM voert Docker-opdrachten in parallelle threads uit op alle machines, waardoor langdurige taken, zoals het downloaden van afbeeldingen, minder tijd kosten;
- ICM kan taken orkestreren, zoals rolling upgrades met applicatie-specifieke eisen.
Beheer
ICM stelt gebruikers in staat om zowel geprovisionde cloud nodes als de containers die erop zijn geïmplementeerd op diverse manieren te beheren en ermee te communiceren. Ze kunnen bijvoorbeeld opdrachten uitvoeren op de cloudhosts of binnen de containers, bestanden kopiëren naar de hosts of de containers, containers upgraden en direct communiceren met InterSystems IRIS.
Naast het uitvoeren van afzonderlijke opdrachten op meerdere nodes tegelijk biedt ICM de mogelijkheid om individuele nodes in de implementatie op verschillende niveaus interactief te beheren. Gebruikers kunnen bijvoorbeeld:
- een shell openen op een compute node om te communiceren met het besturingssysteem;
- een shell openen binnen een container om te communiceren met de besturingsomgeving;
- een beveiligde InterSystems IRIS-sessie openen rechtstreeks op een actieve InterSystems IRIS-instantie.
Zakelijke drijfveren voor cloudimplementatie
Infrastructure as a Service (IaaS) wordt meer en meer toegepast nu organisaties steeds vaker nieuwe en bestaande applicaties en workloads in de cloud implementeren. Gartner1 voorspelt dat de omzet van de wereldwijde markt voor openbare clouddiensten in 2018 zal oplopen tot 186,4 miljard dollar, doordat een cloudinfrastructuur meerdere operationele en strategische voordelen biedt, waaronder:
- Meer flexibiliteit met minder risico's. De scheiding van componenten en het eenvoudige versiebeheer bij IaaS en containerisatie maken implementatie herhaalbaar en betrouwbaar met minder inspanning.
- Lagere TCO en opstartkosten. IaaS kan op een kostenefficiënte manier worden gebruikt, bijvoorbeeld om resources alleen beschikbaar te stellen wanneer ze nodig zijn.
- Flexibel schalen. Verticaal en horizontaal schalen is sneller en eenvoudiger in de cloud en de capaciteit kan voortdurend worden afgestemd op de veranderende workloads.
- Ondersteuning voor hybride implementaties. On-premises- en datacenterimplementaties kunnen indien nodig worden overgeheveld naar openbare en particuliere cloudinfrastructuur.
- Ondersteuning van voor Continuous Integration and Delivery (CI/CD) en DevOps-methodologieën. Met containers kunnen applicaties verplaatst worden van de ontwikkelingsomgeving naar de test- en productieomgeving zonder sporen achter te laten. Daarnaast scheiden containers de build-fase van het run-proces, ondersteunen ze on-demand levering van applicaties en bevorderen ze de integratie met DevOps-toolchains.
Containers
Een container image is een lichtgewicht, stand-alone, uitvoerbaar pakketje met een stukje software en alles wat nodig is om die software uit te voeren: code, runtime, systeemtools, systeembibliotheken en instellingen. Een container is een draaiende instantie van een container image.
Container images verpakken applicaties in platformonafhankelijke, volledig draagbare runtimeoplossingen, waarin alle afhankelijkheden zijn vervuld en geïsoleerd, die kunnen worden uitgevoerd wanneer een container nodig is. Hierdoor kan een ontwikkelaar een gecontaineriseerde applicatie eenvoudig tussen omgevingen verplaatsen, bijvoorbeeld van de ontwikkelingsomgeving naar de test- of productieomgeving. Zo ontstaan er minder conflicten tussen afdelingen met verschillende doelstellingen. Ontwikkelaars kunnen zich bijvoorbeeld concentreren op hun nieuwste code en bibliotheken, terwijl operations engineers zich kunnen concentreren op de algehele infrastructuur van de oplossing, inclusief netwerken, high availability en duurzaamheid van data.
Op dezelfde manier biedt containerisatie de flexibiliteit en herhaalbaarheid die nodig zijn om een revolutie teweeg te brengen in de manier waarop veel organisaties reageren op zakelijke en technologische behoeften. Containers zorgen voor een duidelijke scheiding tussen het provisioningproces van applicaties, inclusief de build-fase van het run-proces, en stellen organisaties in staat om een uniforme aanpak voor de provisioning van applicaties te hanteren, inclusief een meer agile leveringsmethodologie (bijv. DevOps) en architectuur (bijv. microservices).
Door code en data netjes te scheiden, maken containers het mogelijk om zowel de applicatie als de omgeving naadloos te implementeren op een onveranderlijke, door software ondersteunde infrastructuur. Dit zorgt ervoor dat applicaties snel en eenvoudig kunnen worden geïmplementeerd en geüpgraded, dat de risico's en kosten van infrastructuurupdates afnemen en dat gebruiksgemak en DevOps-aanpassing worden ondersteund. Organisaties kunnen op InterSystems IRIS gebaseerde oplossingen implementeren met behulp van InterSystems IRIS container images, waar ze applicaties aan kunnen toevoegen om geïntegreerde containers te implementeren.
Een gecontaineriseerde applicatie blijft weliswaar volledig binnen de container, maar draait niet volledig op het besturingssysteem (OS) waarop de container draait, noch bevat de container een volledig besturingssysteem waarop de applicatie kan draaien. In plaats daarvan draait een applicatie in een container op de kernel van het hostsysteem, terwijl de container alleen de elementen levert die nodig zijn om de applicatie uit te voeren en deze toegankelijk te maken voor de vereiste verbindingen, diensten en interfaces: een runtime-omgeving, de code, bibliotheken, omgevingsvariabelen en configuratiebestanden.
Omdat alleen deze elementen worden verpakt en de applicatie native wordt uitgevoerd, is een container zeer efficiënt, omdat deze draait in een discreet, beheerbaar proces dat niet meer geheugen gebruikt dan andere uitvoerbare bestanden. Tegelijkertijd is de container volledig overdraagbaar, blijft deze volledig geïsoleerd van de hostomgeving en heeft hij alleen toegang tot lokale bestanden en poorten als dat zo is geconfigureerd. Tot slot zorgen containers voor standaard en inzichtelijk applicatieconfiguratie, -gedrag en -toegang. Op welke fysieke, virtuele of cloudsystemen en OS-platforms op Linux-gebaseerde InterSystems IRIS-containers ook worden uitgevoerd, gebruikers kunnen er op dezelfde manier mee communiceren als met traditionele InterSystems IRIS-instanties die op Linux-systemen worden uitgevoerd.
Implementatie van sharded InterSystems IRIS-architecturen met ICM
ICM ondersteunt sharded2 (maar ook niet-sharded) InterSystems IRIS-architecturen. ICM zorgt voor de provisioning en implementatie van de vereiste dataservers, applicatieservers, shard-servers, webservers en loadbalancers, en in het geval van gemirrorde configuraties ook voor arbiter nodes.
Dataservers kunnen worden gemirrord voor een hoge beschikbaarheid van data. In een sharded cluster kunnen zowel de shard-masterserver (die niet-sharded data opslaat) als de shard-dataservers (die sharded data opslaan) worden gemirrord.
Conclusie
Met behulp van InterSystems IRIS en InterSystems Cloud Manager kunnen organisaties makkelijker gebruik maken van cloudinfrastructuur en geavanceerde implementatiemethoden en nieuwe softwareontwikkelingsprocessen invoeren om de ontwikkeling, de implementatie en het onderhoud van realtime, datarijke oplossingen te vereenvoudigen. Met de technologie van InterSystems kunnen organisaties flexibeler en meer agile worden en risico's en kosten verlagen zonder dat dit ten koste gaat van prestaties, schaalbaarheid, betrouwbaarheid of veiligheid.
InterSystems is de motor achter 's werelds belangrijkste applicaties. In de zorg, de financiële sector, de overheidssector en andere sectoren waar levens en banen op het spel staan, is InterSystems de kracht achter alles wat belangrijk is. InterSystems is een in 1978 opgericht particulier bedrijf met een hoofdkantoor in Cambridge, Massachusetts (VS) en vestigingen over de hele wereld. De softwareproducten van InterSystems worden dagelijks gebruikt door miljoenen mensen in meer dan tachtig landen.
Ga voor meer informatie naar InterSystems.com/IRIS
.
1. Gartner voorspelt een wereldwijde omzetgroei van de openbare cloud in 2018 van 21,4 procent, april 2018
2. Een database shard is een horizontale partitie van data in een database.