Stelling van de dag. Boeing maak de software Open Source! Hoort, zegt het voort!

Vergelijkbare documenten
Test Automatisering? Mislukken Slagen gegarandeerd! Ruud Teunissen - Polteq Test Services BV

Adding value to test tooling

Adding value to test tooling

Continuous testing in DevOps met Test Automation

De kracht van de blueprint Het middelpunt van het Software Defined Data Center

Deployment met PowerShell DSC. 20 september 2017 EIC B.V.

Virtualizatie bij SIN

J2EE/.NET en de rol Applicatie Architectuur

Optimalisatie. BMC klantendag 4 maart 2010

Software Test Plan. Yannick Verschueren

kubernetes It compiles, ship it! Oscar Buse 13 februari 2018 Linux User Group Nijmegen

Continuous Delivery. Sander Aernouts

Een infra DevOps CI/CD straat

vra + NSX and it all comes together

IT Galaxy 2018 ON THE RIGHT TRACK ON THE RIGHT TRACK #PQRITG18 #PQRITG18

Software Processen. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 1. Het software proces

Git & RobotLib. Contents. De source is: ( )

Testing University. A fool with a tool is still a fool

Model driven Application Delivery

Frontend performance meting

CONTAINERIZATION OF APPLICATIONS WITH MICROSOFT AZURE PAAS SERVICES

DRIVEN BY AMBITION SUCCESVOL EXACT IMPLEMENTEREN IN DE PRIVATE CLOUD

Vorig jaar in 5v cluster, tot en met OO hoofdstukken, geen problemen. Nu in mengcluster, tot OO hoofdstukken, wel problemen bij 4h leerlingen

Agenda. Over KPN en de relatie tot Docker Contains paradigma De uitdagingen De benefits Vragen. 2 The good, the bad and the containers

Design Data Management voor FPGA ontwikkeling

Efficiëntieanalyse van het configuratiemanagementtool Puppet

Model Driven Development. Kosten, baten, organisatie

RESEARCH DATA MANAGEMENT INNOVATIE & SURF

Ervaringen met het opzetten van een MDD omgeving

Business Architectuur vanuit de Business

TENCompetence: ontwikkelen van een infrastructuur voor levenslang leren m.b.v. leertechnologie standaarden

Agenda. doelstelling situering voor- en nadelen functionaliteit opbouw voorwaarden besluitvorming

Samengaan van Geo-informatie en Service Oriëntatie

Bescherming van (software) IP bij uitbesteding van productie

Data en Applicatie Migratie naar de Cloud

Marc Koper Performancetesten voor dummies

Session Educa-on October 2013

DATAMANAGEMENT MET OPEN SOURCE

TFS als perfecte tool voor Scrum

RESEARCH DATA MANAGEMENT & ACCESS OP RESEARCH WORKSPACES

Making new energy flow. Eén platform voor jouw energie

Realize the Promise of Technology. Configuration Services

Dit document beschrijft belangrijke aandachtspunten voor de installatie van Deep Defender. Ook omschrijft dit document hoe de beheerder kan omgaan

Ralph van Roosmalen Automatisch testen Theorie en de praktijk

Vault Easy Best Practice voor AutoCAD

Testautomatisering werkt niet bij Continuous Delivery en DevOps

IPv6 in de praktijk. Teun Vink dsdsds. Tuesday, January 20, 2009

Ministerie van Infrastructuur en Milieu Beheerst naar beheer

End-to-End testen: de laatste horde

Architecten-debat 21 juni 2006 PI GvIB Themamiddag. Renato Kuiper. Principal Consultant Information Security

Howto Subversion. 1. Subversion structuur en uitleg

Hoe start ik een test competence center of excellence? Thomas Veltman

Van Hanzestad naar wereldhaven. Lunchlezing Thalia Topicus ~ Kenneth Veenstra

TENCompetence: infrastructuur

Informatie duurzaam digitaal toegankelijk mr M. J. Martin Berendse Algemeen Rijksarchivaris

JOB OPENING DEVOPS ENGINEER

Customer Case: WoningNet

PLM & CAD Consultancy

5/8 Patch management

Help je Power BI Analytics project om zeep 6 succesfactoren. Marc Wijnberg Gebruikersdag 2018

GETTING THE BEST OUT OF YOUR SOURCE CODE FIT TEST VOOR UNIFACE

Software Test Plan. Yannick Verschueren

Identity Management Gebruikers en Rechten in Beheer (GRiB)

Data Driven: Show & tell

Risk & Requirements Based Testing

HIRLAM Plans for academic research models. Tilly Driesenaar Scientific secretary HIRLAM

Nieuwe licentietechnologie EPLAN Versie 2.8 Donderdag 10 januari Licensing EPLAN 2.8

Stoomboot & de toekomst

Software Configuration Management Plan

Virtual Research Environment van concept richting oplossingen

ESET Anti-Ransomware Setup

Auditen van Agile projecten

DOCKER & CONFIGURATIEMANAGEMENT. Docker Meetup

Software Defined Datacenter Visie van Cisco. Erwin uit de Bos Datacenter Strategie Specialist NL Versie: 5 februari 2015

Software Development Done Right. Continuous Delivery. Bas Tichelaar

GETTING THE BEST OUT OF YOUR SOURCE CODE MODERNISEREN MET UNIFACE

Performance Essentials

TAM. Control Model for Effective Testing

Resultaat gerichter Testen

VACATURE. Technisch consultant

Plug and Play in de machinebouw. Zelf configurerende machines

Welke standaard is het beste? 4 december 2008, Bianca Scholten, bianca.scholten@task24.nl, tel

Javascript oefenblad 1

Beveiligingsbeleid Perflectie. Architectuur & Procedures

Zelftest Java concepten

Open source VoIP Networks

Accelerate? Automate!

Introductie. NAV performance. Derk Jan Oelemans. Manager Development, BI en E-Business Qurius Business Solutions

techtwo, liefde voor e-commerce Magento 2 komt er aan, wat nu?

CareConnect Fin Pre-requirements

Oracle Application Server Portal Oracle Gebruikersgroep Holland Oktober 2003

Testen als continuous enabler

Pijlers van Beheer. Bram van der Vos

SOLVING SET PARTITIONING PROBLEMS USING LAGRANGIAN RELAXATION

Levenslang leren. TENCompetence: naar een integraal persoonlijk competentiemanagement voor een leven lang leren. TENCompetence. Wat is TENCompetence?

Chris de Kok TDI 3. Vak: Software Architectuur Datum: Docent: Fons van Kesteren

DYNAMIC INFRASTRUCTURE Helping build a smarter planet

Verwantschap tussen open data, open standaarden en open source software

Projectdocument Minecraft Mod Builder

Transcriptie:

Stelling van de dag Boeing brengt gauw nieuwe software Software probleem bij de 737 Max 8 Closed source software blijkt gevaarlijk Closed source software kost mensenlevens Boeing maak de software Open Source! Hoort, zegt het voort!

NLLGG Landelijke Bijeenkomst 16 maart 2019 Martin Simons Webhuis @webhuis #TheCFEngineRoadshow

Introduction Martin Simons 1984 Mainframe, stropdas IT er 1998 Linux enthousiast / later trainer 2007 Specialisme CFEngine 2014 Initiator CFEngine Debian-team 2014 CFEngine trainer 2019 My Coming Out, ik ben een IT Nerd!

Infrastructuur als code Ontwikkeling van automation lijdt onder: Richtingenstrijd en egotripperij Tooling fetisjsme Methodische discussies Een automation project: Is een software ontwikkelingsproject Moet je managen als een software project

Succes in Automation Wat heb je nodig voor succes? Duidelijk doel Leider met een vaste hand (politiek) Plan met haalbare stappen Duidelijke opzet Development workflow Framework

Development workflow Onderdelen Development Workflow Ondersteunt meerdere developers Ondersteunt meerdere parallele branches Ondersteunt fixes Testomgeving Uitrol van de nieuwe release Bouwt op en sluit aan op het framework

Meerdere Developers Iedereen gebruikt git, doe dat dus zelf ook! Git https://cfengine.com/cfengine-code-editors/ Neil Watson vim_cf3 core/contrib/eclipse-cfenginecodestyle.xml Branches Development Production Laat master voor wat het is, wel updaten.

Development testing Gescheiden omgevingen (en soms Hub s) Sandbox Development (production like) Test (production like) Acceptatie (production like) Pre-Productie (production like) Productie (production like)

Hoe werkt CFEngine? Alles in CFEngine is een policy Policies op een centraal punt: de Hub Clients halen de policies van de Hub Elke client voert policies periodiek zelf uit Belangijke ondersteuning: Masterfiles Bootstrap principe

Componenten CFEngine

Tweetrapsraket Een CFEngine run bestaat uit twee delen De policy update, pull van de Hub De policy uitvoering, autonoom De agent gaat twee keer aan het werk!

Waarom een framework Doel Host isolation Schone leesbare code Update en uitvoering hangen samen Platforms komen, plaforms gaan het framework blijft bestaan

Wat is een Framework? Een goed Framework verzorgt de Implementatie opzet, ontwerp en oplossing Toekomstvastheid, is Flexibel en Generiek Scherpe grens tussen tool en oplossing Benutting van de tool faciliteiten Besturing van de uitvoering Aansluiting op de Development workflow

Use the system Een strakke organisatie is alles CFEngine is hierbij van grote hulp met Classes System variables, let op van de client! Veel ingebouwde sterke editing functies Uitgebreide promise types Krachtige impliciete functies als looping Alles vanuit het perspectief van de client

Besturing met system variables Bij policy update en uitvoering Grote rol voor platform variabelen Vendor Release van het platform Architectuur Omgevings variabelen Netwerk Domein Hostname

Policy update Bij policy update system variables Ophalen algemene policies Verzorgen host isolation Met System Variables (Gratis!) Host gebonden data (gevorderd) Voorbeeld: "$(roadshow_inputs)/domain/$(sys.domain).cf" copy_from => r_rcp("$(master_data)/domains/$(sys.domain).cf", $(sys.policy_hub)) "$(roadshow_inputs)/platform/$(sys.flavor)" copy_from => r_rcp("$(master_roadshow)/$(vendor)/$(sys.flavor)/", $(sys.policy_hub))

Uitvoering policies Besturing met system variables Classify voor de hostname Platform Weer vanuit het perspectief van de client bundle agent roadshow { methods: "Determine the role organisation and geograph" usebundle => classify; "We require the domain information" "Carry out the platform specific policies" usebundle => ${do_roadshow.class_domain}; usebundle => platform($(classify.vendor)); reports: } "${this.bundle} role: $($(classify.role).role_name)";

Classify De kracht van de CFEngine DSL, regex Voorbeeld hostnaming convention bundle agent classify { classes: "parsed_all" expression => regextract("^(...)(..)(.)(..)(..)(.).*", $(sys.uqhost), "part"); vars: "role" "organisation" "environment" "department" "location" "instance" "vendor" string => "$(part[1])"; string => "$(part[2])"; string => "$(part[3])"; string => "$(part[4])"; string => "$(part[5])"; string => "$(part[6])"; string => $(inventory_linux.id_array[1]); reports: } "$(this.bundle) role: $(role) $(role_input)";

Platform Platform is een common policy! bundle agent platform(vendor) { methods: "We desire common policies in place" usebundle => common; "We desire vendor specific policies in place" usebundle => $(vendor); reports: "$(this.bundle): $(vendor) $(sys.flavour)"; }

Vendor (debian) Vendor is een specifieke policy! In dit geval debian. bundle agent debian { methods: "We desire debian_common policies in place" usebundle => debian_common; "We desire sys.flavour policies in place" usebundle => $(sys.flavour); reports: } "$(this.bundle): $(sys.flavour)";

Uitrollen Al dat moois met een simpel script! Update de repo op de hub Stop en gooi alle policy bestanden weg Kopieer de standaard masterfiles Kopieer de updates eroverheen Kopieer de eigen policy files Start de CFEngine hub opnieuw Ga koffie drinken

Succes? CFEngine implementatie DirecTV al sinds 2014. Nu al meer dan 25 000 nodes.. Management commitment: Optimale facilitering Geen politiek in het project Geruisloos project

Literatuur Prof Dr Mark Burgess et al A static theory of promises http://arxiv.org/abs/0810.3294 Promises, Impositions, and other Directionals http://arxiv.org/abs/1401.3381 A Promise Theory Perspective on Data Networks http://arxiv.org/abs/1405.2627 Brian Bennett en Aleksey Tsalolikhin https://digitalelf.net/cf-primer/#%281%29 Linux Magazine linux-magazine.com/w3/issue/101/cfengine.pdf

CFEngine Je gaat het pas zien as je het door heb -- Johan Cruijff