SlideShare une entreprise Scribd logo
1  sur  66
Télécharger pour lire hors ligne
Lightweight and reproducible environments
with
Vagrant & Puppet
& Java
About me
•Hendrik Ebbers
•Lead of JUG Dortmund
•Senior Java Architect at
GmbH in Dortmund, Germany
•DataFX, ControlsFX,AquaFX,
MarvinFX,Vagrant-Binding @hendrikEbbers
www.guigarage.com
hendrik.ebbers@web.de
Let´s talk about this one...
Content
•Virtualization
•Vagrant
•Puppet
•Chef
•JavaVagrant-Binding API
Virtualization
Machines
Virtual Machines
VM templates automated VM
creation
Evolution of VMs
Antipattern by
example
By only using VMs we
can rebuild any customer
system
For each new customer the
best matching VM is copied.
So no initial setup is needed!
Why not deploy all
linux 64bit customer
installations on one
server VM?
Because we copy the VMs on
our Laptops when we travel
to the Customer. And we
only need the system for one
Customer then.
So you have a
virtualized Server for
every Customer where
all developers work on?
No! Only one developer works
on one VM. If a developer
starts working for a customer
he simply copies the VM of
another developer or customer.
D
evelopers
Customers
A
B
C
D
E
1 2 3 4 5 6
One month
later...
Someone updated our SVN.
Eclipse can't use it
anymore
Oh, it took me 15 minutesto update Eclipse and theSVN plugin
And this was only the
first of 50 VMs!!!
Automated VM creation
Vagrant
VirtualBox
Puppet
Chef
Java
•Don‘t repeat yourself
•„Infrastructure-As-Code“
Automated VM creation
Devs & Ops havetime for other
stuff
Vagrant
Vagrant
•configure virtual machines by script
•create new instances on the fly
•manage theVM lifecycle
Vagrant
VM
create
managelifecycle
http://www.vagrantup.com
$ vagrant box add lucid32 http://
files.vagrantup.com/lucid32.box
$ vagrant init lucid32
$ vagrant up
Vagrant
add template VM to
Vagrant
creates VM
configuration-script
start the virtual
machine
Vagrant
•build on top of VirtualBox
•written in Ruby
access by shell &
Ruby
Vagrant
•provides 2 template boxes by default
•simple config-files
•easy ssh connection, shared folder, etc.
Vagrant::Config.run do |config|
config.vm.box = "lucid32"
end
Ubuntu Lucid
32- & 64-bit
it´s just Ruby
see great Vagrant
documentation
Vagrant 1.1.x
•Released this spring
•PlugIn API
•New Providers
Vagrant::Config.run do |config|
config.vm.box = "lucid32"
end
Vagrant.configure("1")
„1“ for Vagrant 1.0.x
„2“ for Vagrant 1.1.x
Provider & Provisioner
•PlugIn API for Providers
•Virtual Box,AWS,VMWare Fusion
•PlugIn API for Provisioners
•Shell, Puppet, Chef,Ansible
Demo
Puppet
Puppet
•configure your machines (nodes) by script
•install and configure software & services
https://puppetlabs.com
Puppet
class apache {
exec { 'apt-get update':
command => '/usr/bin/apt-get update'
}
package { "apache2":
ensure => present,
}
service { "apache2":
ensure => running,
require => Package["apache2"],
}
}
include apache
Apache2 is
installed &
started on node
Puppet
•package individual components in modules
•many online documentations & books out
there
Vagrant
&
Puppet
Vagrant & Puppet
•define yourVM withVagrant & configure it
with Puppet
•Puppet is pre-installed onVagrant boxes
Vagrant defines
the box
Puppet defines
the content
Vagrant & Puppet
Vagrant::Config.run do |config|
config.vm.box = "lucid32"
config.vm.provision :puppet do |puppet|
puppet.manifests_path = "manifests"
puppet.manifest_file = "my_manifest.pp"
end
end
path to Puppet
script
Vagrantfile
Chef
Chef
•Just another Provisioner
•Similar to Puppet (at the first look)
conventions
•Modules = recipes
•Module collection = cookbook
Chef
config.vm.provision :chef_solo do |chef|
chef.cookbooks_path = "my_cookbooks"
chef.add_recipe "apache2"
chef.json = { :apache => { :site_enabled => true } } end
end
path to
cookbooks
use this recipe
configure
Vagrant
&
Chef
Vagrant & Chef
•define yourVM withVagrant & configure it
with Chef
•Chef is pre-installed onVagrant boxes
just like Puppet
Demo
Vagrant-
Binding
configure & manage
VMs in Java
Vagrant-Binding
•Java Wrapper aroundVagrant
•create & startVMs at runtime
•onlyVirtualBox is required
Let´s have a look
Vagrant-Binding
•Builder APIs
•JUnit support
•Puppet support
Builder API
VagrantVmConfig vmConfig = new VagrantVmConfigBuilder()
! ! ! ! .withLucid32Box()
! ! ! ! .withName("myLittleVm")
! ! ! ! .withHostOnlyIp("192.168.50.4")
! ! ! ! .build();
VagrantEnvironment environment = ...;
environment.up();
! ! !
environment.getVm(0).createConnection().execute("touch /tmp1");
environment.destroy();
also builder API
available
builder API for VM
manage VM lifecycle
ssh connection
Demo
JUnit support
@Test
public void testJdbc() {
MySql dbHandler = new MySql(ip, db, user, pwd);
dbHandler.createMyTable();
dbHandler.insertRow();
assertEquals(1, dbHandler.getRowCount());
dbHandler.clearAndClose();
}
what if table already
exists?
what if host not reachable?
parallel
processes?
JUnit support
@Rule
public VagrantTestRule testRule =
new VagrantTestRule(createConfig());
public static VagrantConfiguration createConfig() {
//Configure VM with MySQL-Server & static ip
}
@Test public void testJdbc() {...}
create VM start VM run UnitTest destroy VM
default JUnit annotation
manage VM lifecycle
use builder API for VM
specification use the VM
Demo
QA Portal
•Manage all test machines withVagrant &
Puppet
•Manage lifecycle with Java
Super App Nightly Build with MySQL
Default installation of the App with MySQL DB Server
Super App Nightly Build with Oracle DB
Default installation of the App with Oracle DB Server
Super App Nightly Build without Database
Use this to check the default Errors in UI at startup
state: down
state: running
started by: John
state: down
Mockup
Workflow example
Create VM-
Definition
Upload to
portal
Add Link to
Jenkins-Job
User starts
QA
Create &
configure VM
use
Trigger Jenkins
build
use
feedback
Test the
nightly build
let´s find
some bugs
deploy the
nightly
destroy VM
in portal
just a click
in the portal
Vagrant-Binding
https://github.com/guigarage/vagrant-binding
fork me on github
Roadmap
•RemoveVirtualBox as dependency (VMWare &
AWS support)
•Chef support
•Simpler management of Environments
•Better Builder APIs
•CreateVagrant boxes at runtime
Puppet Forge
Puppet Forge access
•Puppet provied a Repo for default modules
•REST API Let´s use this
Puppet Forge access
File moduleFolder = new File("...");
PuppetForgeClient client = new PuppetForgeClient();
! !
! !
List<PuppetForgeModuleDescription> allDescriptions =
! client.findModules("mongodb");
! !
for(PuppetForgeModuleDescription desc : allDescriptions) {
! System.out.println("Installing " + desc.getFullName());
! PuppetForgeModule module = client.findModule(desc);
! client.installToModulesDir(moduleFolder, module);
}
search
install as module
at runtime
Demo
Veewee
Veewee
•Build newVM definitions
•Provides > 100 OS templates
•Customize the definition
•Export toVM definition asVagrant Box
Veewee templates
Veewee
$ bundle exec veewee vbox templates | grep -i ubuntu
$ bundle exec veewee vbox define 'mybuntubox'
'ubuntu-12.10-server-amd64'
$ bundle exec veewee vbox build 'mybuntubox'
list all ubuntu
templates
define new VM
for Virtual Box
build VM for
Virtual Box
Veewee
$ bundle exec veewee vbox export 'myubuntubox'
$ vagrant box add 'myubuntubox' 'myubuntubox.box'
Vagrant.configure("2") do |config|
config.vm.box = "myubuntubox"
end
Export VM instance
as box
add box to
Vagrant
use VM template
in Vagrantfile
Vagrant-Binding
2.0
Vagrant-Binding 2.0
•Support of Vagrant 1.1.x
•Virtual Box and AWS Provider API
•Veewee wrapper
•Better Chef and Puppet API
•Basic Java / Groovy Provisioner API
Thanks
for
watching
@hendrikEbbers
www.guigarage.com
hendrik.ebbers@web.de

Contenu connexe

Tendances

Tendances (20)

Improve your Java Environment with Docker
Improve your Java Environment with DockerImprove your Java Environment with Docker
Improve your Java Environment with Docker
 
Improved development workflows using vagrant
Improved development workflows using vagrantImproved development workflows using vagrant
Improved development workflows using vagrant
 
Continuous Delivery and Infrastructure as Code
Continuous Delivery and Infrastructure as CodeContinuous Delivery and Infrastructure as Code
Continuous Delivery and Infrastructure as Code
 
Codecoon - A technical Case Study
Codecoon - A technical Case StudyCodecoon - A technical Case Study
Codecoon - A technical Case Study
 
Using JHipster for generating Angular/Spring Boot apps
Using JHipster for generating Angular/Spring Boot appsUsing JHipster for generating Angular/Spring Boot apps
Using JHipster for generating Angular/Spring Boot apps
 
Enabling Hybrid Workflows with Docker/Mesos @Orbitz
Enabling Hybrid Workflows with Docker/Mesos @OrbitzEnabling Hybrid Workflows with Docker/Mesos @Orbitz
Enabling Hybrid Workflows with Docker/Mesos @Orbitz
 
Infrastructure as Data with Ansible
Infrastructure as Data with AnsibleInfrastructure as Data with Ansible
Infrastructure as Data with Ansible
 
Dockerizing BDD : Ruby-Cucumber Example
Dockerizing BDD : Ruby-Cucumber ExampleDockerizing BDD : Ruby-Cucumber Example
Dockerizing BDD : Ruby-Cucumber Example
 
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
 
Building a PaaS at HubSpot
Building a PaaS at HubSpotBuilding a PaaS at HubSpot
Building a PaaS at HubSpot
 
ATDD with Behat and Selenium (LDNSE6)
ATDD with Behat and Selenium (LDNSE6)ATDD with Behat and Selenium (LDNSE6)
ATDD with Behat and Selenium (LDNSE6)
 
Using JHipster 4 for generating Angular/Spring Boot apps
Using JHipster 4 for generating Angular/Spring Boot appsUsing JHipster 4 for generating Angular/Spring Boot apps
Using JHipster 4 for generating Angular/Spring Boot apps
 
Automated Deployment with Capistrano
Automated Deployment with CapistranoAutomated Deployment with Capistrano
Automated Deployment with Capistrano
 
Raffaele Rialdi
Raffaele RialdiRaffaele Rialdi
Raffaele Rialdi
 
Raffaele Rialdi
Raffaele RialdiRaffaele Rialdi
Raffaele Rialdi
 
Conquering AngularJS Limitations
Conquering AngularJS LimitationsConquering AngularJS Limitations
Conquering AngularJS Limitations
 
ZendCon 2015 - DevOps for Small Teams
ZendCon 2015 - DevOps for Small TeamsZendCon 2015 - DevOps for Small Teams
ZendCon 2015 - DevOps for Small Teams
 
Test-Driven Infrastructure with Chef
Test-Driven Infrastructure with ChefTest-Driven Infrastructure with Chef
Test-Driven Infrastructure with Chef
 
Continuous Updating with VersionEye at code.talks 2014
Continuous Updating with VersionEye at code.talks 2014Continuous Updating with VersionEye at code.talks 2014
Continuous Updating with VersionEye at code.talks 2014
 
codemotion-docker-2014
codemotion-docker-2014codemotion-docker-2014
codemotion-docker-2014
 

En vedette

Lightweight and reproducible environments with vagrant and Puppet
Lightweight and reproducible environments with vagrant and PuppetLightweight and reproducible environments with vagrant and Puppet
Lightweight and reproducible environments with vagrant and Puppet
Hendrik Ebbers
 
Vagrant-Binding JUG Dortmund
Vagrant-Binding JUG DortmundVagrant-Binding JUG Dortmund
Vagrant-Binding JUG Dortmund
Hendrik Ebbers
 

En vedette (15)

Devoxx UK 2013: Sandboxing with the Vagrant-Binding API
Devoxx UK 2013: Sandboxing with the Vagrant-Binding APIDevoxx UK 2013: Sandboxing with the Vagrant-Binding API
Devoxx UK 2013: Sandboxing with the Vagrant-Binding API
 
webcomponents (Jfokus 2015)
webcomponents (Jfokus 2015)webcomponents (Jfokus 2015)
webcomponents (Jfokus 2015)
 
Extreme Gui Makeover
Extreme Gui MakeoverExtreme Gui Makeover
Extreme Gui Makeover
 
Lightweight and reproducible environments with vagrant and Puppet
Lightweight and reproducible environments with vagrant and PuppetLightweight and reproducible environments with vagrant and Puppet
Lightweight and reproducible environments with vagrant and Puppet
 
Web Components & Polymer 1.0 (Webinale Berlin)
Web Components & Polymer 1.0 (Webinale Berlin)Web Components & Polymer 1.0 (Webinale Berlin)
Web Components & Polymer 1.0 (Webinale Berlin)
 
Jgrid
JgridJgrid
Jgrid
 
JavaFX Enterprise
JavaFX EnterpriseJavaFX Enterprise
JavaFX Enterprise
 
DataFX - JavaOne 2013
DataFX - JavaOne 2013DataFX - JavaOne 2013
DataFX - JavaOne 2013
 
Bonjour for Java
Bonjour for JavaBonjour for Java
Bonjour for Java
 
Vagrant-Binding JUG Dortmund
Vagrant-Binding JUG DortmundVagrant-Binding JUG Dortmund
Vagrant-Binding JUG Dortmund
 
DataFX 8 (JavaOne 2014)
DataFX 8 (JavaOne 2014)DataFX 8 (JavaOne 2014)
DataFX 8 (JavaOne 2014)
 
BUILDING MODERN WEB UIS WITH WEB COMPONENTS @ Devoxx
BUILDING MODERN WEB UIS WITH WEB COMPONENTS @ DevoxxBUILDING MODERN WEB UIS WITH WEB COMPONENTS @ Devoxx
BUILDING MODERN WEB UIS WITH WEB COMPONENTS @ Devoxx
 
JavaFX Enterprise (JavaOne 2014)
JavaFX Enterprise (JavaOne 2014)JavaFX Enterprise (JavaOne 2014)
JavaFX Enterprise (JavaOne 2014)
 
Feature driven development
Feature driven developmentFeature driven development
Feature driven development
 
Test Driven Development with JavaFX
Test Driven Development with JavaFXTest Driven Development with JavaFX
Test Driven Development with JavaFX
 

Similaire à Vagrant Binding JayDay 2013

Avoiding surprises with Chef and Vagrant
Avoiding surprises with Chef and VagrantAvoiding surprises with Chef and Vagrant
Avoiding surprises with Chef and Vagrant
andygale
 
Open source and cross platform .net
Open source and cross platform .netOpen source and cross platform .net
Open source and cross platform .net
Ibon Landa
 
Node.js, Vagrant, Chef, and Mathoid @ Benetech
Node.js, Vagrant, Chef, and Mathoid @ BenetechNode.js, Vagrant, Chef, and Mathoid @ Benetech
Node.js, Vagrant, Chef, and Mathoid @ Benetech
Christopher Bumgardner
 
Virtualize and automate your development environment for fun and profit
Virtualize and automate your development environment for fun and profitVirtualize and automate your development environment for fun and profit
Virtualize and automate your development environment for fun and profit
Andreas Heim
 
Getting started with puppet and vagrant (1)
Getting started with puppet and vagrant (1)Getting started with puppet and vagrant (1)
Getting started with puppet and vagrant (1)
Puppet
 

Similaire à Vagrant Binding JayDay 2013 (20)

AppCatalyst and Photon OS
AppCatalyst and Photon OSAppCatalyst and Photon OS
AppCatalyst and Photon OS
 
Opscode Webinar: Managing Your VMware Infrastructure with Chef
Opscode Webinar: Managing Your VMware Infrastructure with ChefOpscode Webinar: Managing Your VMware Infrastructure with Chef
Opscode Webinar: Managing Your VMware Infrastructure with Chef
 
Deploy High Availability Kubernetes with Kubespray
Deploy High Availability Kubernetes with KubesprayDeploy High Availability Kubernetes with Kubespray
Deploy High Availability Kubernetes with Kubespray
 
Avoiding surprises with Chef and Vagrant
Avoiding surprises with Chef and VagrantAvoiding surprises with Chef and Vagrant
Avoiding surprises with Chef and Vagrant
 
Docker and Puppet for Continuous Integration
Docker and Puppet for Continuous IntegrationDocker and Puppet for Continuous Integration
Docker and Puppet for Continuous Integration
 
DevOps Camp 2017 NYC Local Development using Vagrant by Anthony Alvarez
DevOps Camp 2017 NYC Local Development using Vagrant by Anthony AlvarezDevOps Camp 2017 NYC Local Development using Vagrant by Anthony Alvarez
DevOps Camp 2017 NYC Local Development using Vagrant by Anthony Alvarez
 
Open source and cross platform .net
Open source and cross platform .netOpen source and cross platform .net
Open source and cross platform .net
 
Node.js, Vagrant, Chef, and Mathoid @ Benetech
Node.js, Vagrant, Chef, and Mathoid @ BenetechNode.js, Vagrant, Chef, and Mathoid @ Benetech
Node.js, Vagrant, Chef, and Mathoid @ Benetech
 
Vagrant for local and team WordPress Development
Vagrant for local and team WordPress DevelopmentVagrant for local and team WordPress Development
Vagrant for local and team WordPress Development
 
Virtualize and automate your development environment for fun and profit
Virtualize and automate your development environment for fun and profitVirtualize and automate your development environment for fun and profit
Virtualize and automate your development environment for fun and profit
 
Real World Enterprise Reactive Programming using Vert.x
Real World Enterprise Reactive Programming using Vert.xReal World Enterprise Reactive Programming using Vert.x
Real World Enterprise Reactive Programming using Vert.x
 
Vagrant&amp;ansible
Vagrant&amp;ansibleVagrant&amp;ansible
Vagrant&amp;ansible
 
Real World Enterprise Reactive Programming using Vert.x
Real World Enterprise Reactive Programming using Vert.xReal World Enterprise Reactive Programming using Vert.x
Real World Enterprise Reactive Programming using Vert.x
 
Getting started with puppet and vagrant (1)
Getting started with puppet and vagrant (1)Getting started with puppet and vagrant (1)
Getting started with puppet and vagrant (1)
 
Puppet and Vagrant in development
Puppet and Vagrant in developmentPuppet and Vagrant in development
Puppet and Vagrant in development
 
Virtualization for Developers
Virtualization for DevelopersVirtualization for Developers
Virtualization for Developers
 
DevOps, A brief introduction to Vagrant & Ansible
DevOps, A brief introduction to Vagrant & AnsibleDevOps, A brief introduction to Vagrant & Ansible
DevOps, A brief introduction to Vagrant & Ansible
 
Making Developers Productive with Vagrant, VirtualBox, and Docker
Making Developers Productive with Vagrant, VirtualBox, and DockerMaking Developers Productive with Vagrant, VirtualBox, and Docker
Making Developers Productive with Vagrant, VirtualBox, and Docker
 
Vagrant Plugin development
Vagrant Plugin developmentVagrant Plugin development
Vagrant Plugin development
 
Vagrant
VagrantVagrant
Vagrant
 

Plus de Hendrik Ebbers

Plus de Hendrik Ebbers (9)

Java Desktop 2019
Java Desktop 2019Java Desktop 2019
Java Desktop 2019
 
Java APIs- The missing manual (concurrency)
Java APIs- The missing manual (concurrency)Java APIs- The missing manual (concurrency)
Java APIs- The missing manual (concurrency)
 
Beauty & the Beast - Java VS TypeScript
Beauty & the Beast - Java VS TypeScriptBeauty & the Beast - Java VS TypeScript
Beauty & the Beast - Java VS TypeScript
 
Java 11 OMG
Java 11 OMGJava 11 OMG
Java 11 OMG
 
Java APIs - the missing manual
Java APIs - the missing manualJava APIs - the missing manual
Java APIs - the missing manual
 
Multidevice Controls: A Different Approach to UX
Multidevice Controls: A Different Approach to UXMultidevice Controls: A Different Approach to UX
Multidevice Controls: A Different Approach to UX
 
Java WebStart Is Dead: What Should We Do Now?
Java WebStart Is Dead: What Should We Do Now?Java WebStart Is Dead: What Should We Do Now?
Java WebStart Is Dead: What Should We Do Now?
 
Java ap is you should know
Java ap is you should knowJava ap is you should know
Java ap is you should know
 
JavaFX JumpStart @JavaOne 2016
JavaFX JumpStart @JavaOne 2016JavaFX JumpStart @JavaOne 2016
JavaFX JumpStart @JavaOne 2016
 

Dernier

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Dernier (20)

MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 

Vagrant Binding JayDay 2013