SlideShare ist ein Scribd-Unternehmen logo
1 von 69
AUTOMATED RELEASE
MANAGEMENT
WITH TEAMCITY & OCTOPUSDEPLOY
CONTINOUS DELIVERY
14.06.2013 / 2
Continuous Integration
14.06.2013 / 3
Continuous Deployment
14.06.2013 / 4
Continuous Delivery
14.06.2013 / 5
It’s all about frequent releases
14.06.2013 / 6
John Allspaw: “Ops metametrics” http://slidesha.re/dsSZIr
It’s all about failing fast
The deployment pipeline
14.06.2013 / 7
Test coverage
14.06.2013 / 8
http://www.industrieit.com/blog/2012/02/a-practical-guide-to-extending-continuous-integration-to-continuous-delivery/
http://jamescrisp.org/2011/05/30/automated-testing-and-the-test-pyramid/
Blue-green deployment
14.06.2013 / 9
Jez Humble: “Continous Delivery” http://www.slideshare.net/jezhumble/continuous-delivery-5359386
Blue-green deployment
14.06.2013 / 10
Jez Humble: “Continous Delivery” http://www.slideshare.net/jezhumble/continuous-delivery-5359386
Blue-green deployment
14.06.2013 / 11
Jez Humble: “Continous Delivery” http://www.slideshare.net/jezhumble/continuous-delivery-5359386
Blue-green deployment
14.06.2013 / 12
Jez Humble: “Continous Delivery” http://www.slideshare.net/jezhumble/continuous-delivery-5359386
Canary releasing
14.06.2013 / 13
Jez Humble: “Four principles or Low-Risk Software releases” http://www.informit.com/articles/article.aspx?p=1833567
The arguments
14.06.2013 / 14
The arguments
14.06.2013 / 15
14.06.2013 / 16
DEPLOYING A WEBSITE
14.06.2013 / 17
Basic asp.net mvc4 website
<hgroup class="title">
<h1>Welcome to ASP.NET Web API!</h1>
<br />
<h2>
@WebApiApplication.Environment -
@WebApiApplication.Version
</h2>
</hgroup>
14.06.2013 / 18
Web.Development.config
<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-
Document-Transform">
<appSettings>
<add key="Environment" value="Development“
xdt:Transform="SetAttributes" xdt:Locator="Match(key)"/>
</appSettings>
</configuration>
14.06.2013 / 19
Creating the Octopus NuGet package
• Why NuGet?
– Metadata
– Lots of available tools
– Feed-based
– Developers know how to use them
– Already used for other purposes (check out chocolatey.org)
• Does NOT use the default NuGet conventions
– Octopus deploys the exact structure of the package
14.06.2013 / 20
mvc4webapi.nuspec
<?xml version="1.0"?>
<package
xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<id>Itera.NDC2013.TCOD.Web</id>
<title>ASP.NET MVC 4 Web Api demo site</title>
<version>1.0.0</version>
<authors>Kristoffer Rolf Deinoff</authors>
<owners>Kristoffer Rolf Deinoff</owners>
<licenseUrl>http://itera.no</licenseUrl>
<projectUrl>http://itera.no</projectUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>A sample project</description>
<releaseNotes>First release</releaseNotes>
</metadata>
</package>
14.06.2013 / 21
Using OctoPack
14.06.2013 / 22
Using TeamCity
14.06.2013 / 23
Using NuGet.exe
nuget.exe pack $nuspecFileName
-OutputDirectory $contentDir
-Version $version
14.06.2013 / 24
Configuring TeamCity
14.06.2013 / 25
Configuring TeamCity – Commit build
14.06.2013 / 26
Configuring TeamCity – VCS root
14.06.2013 / 27
Configuring TeamCity – Patch AssemblyInfo
14.06.2013 / 28
Configuring TeamCity - Compile
14.06.2013 / 29
Configuring TeamCity – Commit tests
14.06.2013 / 30
Configuring TeamCity – Trigger on check-in
14.06.2013 / 31
Configuring TeamCity – Build artifacts
14.06.2013 / 32
Configuring TeamCity – NuGet Server
14.06.2013 / 33
Configuring TeamCity – NuGet Server
14.06.2013 / 34
Configuring OctopusDeploy - Environments
14.06.2013 / 35
Configuring OctopusDeploy – NuGet server
14.06.2013 / 36
Configuring OctopusDeploy – Steps
14.06.2013 / 37
Configuring OctopusDeploy – Publish website
14.06.2013 / 38
Configuring OctopusDeploy – Publish website
14.06.2013 / 39
Configuring OctopusDeploy – Smoke test
14.06.2013 / 40
$url = ("http://" + $hostname + ":" + $port + "/")
Invoke-WebRequest $url -UseBasicParsing
Configuring OctopusDeploy – UAT Verification
14.06.2013 / 41
Configuring OctopusDeploy – Variables
14.06.2013 / 42
Configuring OctopusDeploy – Security
14.06.2013 / 43
Configuring OctopusDeploy – Security
14.06.2013 / 44
Configuring TeamCity – Integration build
14.06.2013 / 45
Configuring TeamCity – Dependencies
14.06.2013 / 46
Configuring TeamCity – Create release
14.06.2013 / 47
Configuring TeamCity – Integration tests
14.06.2013 / 48
$url = ("http://tcod-build:8080/")
$TeamCitySession = New-Object Microsoft.PowerShell.Commands.WebRequestSession
Invoke-WebRequest -Uri $url -WebSession $TeamCitySession -UseBasicParsing
DEPLOYING A SERVICE
14.06.2013 / 49
Asp.net mvc webapi as a service
14.06.2013 / 50
<appSettings>
<add key="Environment" value="Local" />
<add key="Hostname" value="localhost" />
<add key="Port" value="8989" />
</appSettings>
And then…
14.06.2013 / 51
Differences - Steps
14.06.2013 / 52
Differences - Publish service
14.06.2013 / 53
Differences - Variables
14.06.2013 / 54
Differences - Automated «Acceptance test»
14.06.2013 / 55
$url = ("http://tcod-build:8090/api/version")
$TeamCitySession = New-Object Microsoft.PowerShell.Commands.WebRequestSession
$response = Invoke-WebRequest -Uri $url -WebSession $TeamCitySession -UseBasicParsing
if ($response.Content.Contains("Development")){
Write-Host "Correct environment(Development)."
}
else{
Write-Host Environment 'Development' not found.
Exit 1
}
$buildNumber = $env:build_number
if ($response.Content.Contains($buildNumber)){
Write-Host "Correct build number($buildNumber)."
}
else{
Write-Host Build number '$buildNumber' not found.
Exit 1
}
WRITING POWERSHELLS SCRIPTS
14.06.2013 / 56
Deploy.config
14.06.2013 / 57
<?xml version="1.0"?>
<configuration>
<name>MyProject</name>
<nuGet>
<url>"http://www.myget.org/F/MyProject/"</url>
<apiKey>xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx</apiKey>
<username>myUser</username>
<password>myPassword</password>
</nuGet>
</configuration>
CreateOctopusPackage.ps1
14.06.2013 / 58
param ([string]$contentDir, [string]$version)
try{
$configFile = New-Object XML
$configFile.Load('Deploy.config')
$config = $configFile.configuration
$nuspecFileName = $config.name+'.nuspec'
$targetNuspecFileName = Join-Path $contentDir $nuspecFileName
.nuget.exe pack $targetNuspecFileName
-OutputDirectory $contentDir
-Version $version
}
catch {
Write-Error $error[0]
Exit 1
}
PublishNuGet.ps1
14.06.2013 / 59
param ([string]$contentDir, [string]$version)
try{
$configFile = New-Object XML
$configFile.Load('Deploy.config')
$config = $configFile.configuration
$nugetFileName = $config.name+'.'+$version+'.nupkg'
nuget sources Add -Name $config.name -Source $config.nuGet.url
-Username $config.nuGet.username
-Password $config.nuGet.password
nuget push $nugetFileName $config.nuGet.apiKey -Source $config.name
nuget sources Remove -Name $config.name
}
catch {
Write-Error $error[0]
Exit 1
}
CreateMSDeployPackage.ps1
14.06.2013 / 60
param ([string]$sourceDir, [string]$targetPackage)
$BuildDir = (Split-Path $MyInvocation.MyCommand.Path -Parent)
$msdeploy = $BuildDir + "msdeploy.exe"
$parameterFile = $BuildDir + "parameters.xml"
$msdeploy_params = " -verb:sync"
$msdeploy_params += " -source:contentPath=" + $sourceDir
$msdeploy_params += " -dest:package=" + $targetPackage
$msdeploy_params += " -declareParamFile:" + $parameterFile
Write-Host "creating '$targetPackage' from '$sourceDir'."
try {
iex "$msdeploy $msdeploy_params"
}
catch {
Write-Error $error[0]
Exit 1
}
Deploy.ps1
14.06.2013 / 61
. .DeployUtil.ps1
$ServiceName = "Itera.NDC2013.TCOD.Service"
$ServiceExecutable = $ServiceName + ".exe"
Install-WebApi-Service $ServiceName $ServiceExecutable
DeployUtil.ps1
14.06.2013 / 62
function Install-WebApi-Service($name, $executable) {
Write-Host "'$name'$executable'"
$service = Get-Service $name -ErrorAction SilentlyContinue
$fullPath = Resolve-Path $executable
if (! $service) {
Write-Host "Installing service"
$frameworkDir = Get-FrameworkDirectory
Set-Alias install_util (Join-Path $frameworkDir "installutil.exe")
install_util $fullPath
} else {
Write-Host "The service will be stopped and reconfigured"
Stop-Service $name -Force
& "sc.exe" config $service.Name binPath= $fullPath start= auto
}
$config = $executable + ".config"
$port = Get-Port $config
Set-User-Rights $port "NT AUTHORITYNETWORK SERVICE"
Write-Host "Starting service"
Start-Service $name | Write-Host
}
DeployUtil.ps1
14.06.2013 / 63
function Get-FrameworkDirectory {
$([System.Runtime.InteropServices.RuntimeEnvironment]::GetRuntimeDirectory())
}
function Set-User-Rights($port, $user) {
$uri = "http://+:$port/"
$acls = (netsh http show urlacl url=$uri | Select-String -SimpleMatch $user)
if ($acls.count -eq 0 ) {
Write-Host "Setting rights for '$user' on $uri"
netsh http add urlacl url=$uri user=$user | Write-Host
} else {
Write-Host "Rights already set for '$user' on $uri."
}
}
DeployUtil.ps1
14.06.2013 / 64
function Get-Port($config)
{
Write-Host "Reading config file '$config'"
$found = $FALSE
$appConfig = [xml](cat .$config)
$appConfig.configuration.appSettings.add | foreach {
if ($_.key -eq 'Port') {
$port = $_.value
$found = $TRUE
}
}
if (-not $found) {
$port = "8080“
}
$($port)
}
AUTOMATING YOUR PROCESS
14.06.2013 / 65
Automating your process
• Create environments and projects
• Add all the automated build steps you can
• Add manual steps for the rest
• Automate manual steps one by one
• You can have more than one tentacle on a server
– Not as a service
14.06.2013 / 66
CONNECTING THE ISSUE TRACKER
14.06.2013 / 67
Connecting the issue tracker
• Connect TeacmCity throught Settings – Issue Tracker
• Connect your issue tracker to TeamCity
• Use the Issue tracker’s web api to get issues pending user acceptance
– Add them to releasenotes while deploying
14.06.2013 / 68
Kristoffer Rolf Deinoff
Lead Technologist
@gatepoet
kristoffer.deinoff@itera.no

Weitere ähnliche Inhalte

Was ist angesagt?

Dance for the puppet master: G6 Tech Talk
Dance for the puppet master: G6 Tech TalkDance for the puppet master: G6 Tech Talk
Dance for the puppet master: G6 Tech Talk
Michael Peacock
 
Powerful and flexible templates with Twig
Powerful and flexible templates with Twig Powerful and flexible templates with Twig
Powerful and flexible templates with Twig
Michael Peacock
 
Legacy applications - 4Developes konferencja, Piotr Pasich
Legacy applications  - 4Developes konferencja, Piotr PasichLegacy applications  - 4Developes konferencja, Piotr Pasich
Legacy applications - 4Developes konferencja, Piotr Pasich
Piotr Pasich
 

Was ist angesagt? (20)

Javascript is your (Auto)mate
Javascript is your (Auto)mateJavascript is your (Auto)mate
Javascript is your (Auto)mate
 
Танки_в_Лунапарке: нагрузочное_тестирование_в_Яндексе
Танки_в_Лунапарке: нагрузочное_тестирование_в_ЯндексеТанки_в_Лунапарке: нагрузочное_тестирование_в_Яндексе
Танки_в_Лунапарке: нагрузочное_тестирование_в_Яндексе
 
A Gentle Introduction to Event Loops
A Gentle Introduction to Event LoopsA Gentle Introduction to Event Loops
A Gentle Introduction to Event Loops
 
Dance for the puppet master: G6 Tech Talk
Dance for the puppet master: G6 Tech TalkDance for the puppet master: G6 Tech Talk
Dance for the puppet master: G6 Tech Talk
 
Beyond DOM Manipulations: Building Stateful Modules with Events and Promises
Beyond DOM Manipulations: Building Stateful Modules with Events and PromisesBeyond DOM Manipulations: Building Stateful Modules with Events and Promises
Beyond DOM Manipulations: Building Stateful Modules with Events and Promises
 
I/O Extended 2019 WebTech - New capabilities for the web
I/O Extended 2019 WebTech - New capabilities for the webI/O Extended 2019 WebTech - New capabilities for the web
I/O Extended 2019 WebTech - New capabilities for the web
 
Zipkin Components #zipkin_jp
Zipkin Components #zipkin_jpZipkin Components #zipkin_jp
Zipkin Components #zipkin_jp
 
Powerful and flexible templates with Twig
Powerful and flexible templates with Twig Powerful and flexible templates with Twig
Powerful and flexible templates with Twig
 
Micropage in microtime using microframework
Micropage in microtime using microframeworkMicropage in microtime using microframework
Micropage in microtime using microframework
 
JQuery UK February 2015: Service Workers On Vacay
JQuery UK February 2015: Service Workers On VacayJQuery UK February 2015: Service Workers On Vacay
JQuery UK February 2015: Service Workers On Vacay
 
JQuery UK Service Workers Talk
JQuery UK Service Workers TalkJQuery UK Service Workers Talk
JQuery UK Service Workers Talk
 
Ember background basics
Ember background basicsEmber background basics
Ember background basics
 
Docker Demo @ IuK Seminar
Docker Demo @ IuK SeminarDocker Demo @ IuK Seminar
Docker Demo @ IuK Seminar
 
DOM Scripting Toolkit - jQuery
DOM Scripting Toolkit - jQueryDOM Scripting Toolkit - jQuery
DOM Scripting Toolkit - jQuery
 
An Emoji Introduction to React Native (Panagiotis Vourtsis, Senior Front End ...
An Emoji Introduction to React Native (Panagiotis Vourtsis, Senior Front End ...An Emoji Introduction to React Native (Panagiotis Vourtsis, Senior Front End ...
An Emoji Introduction to React Native (Panagiotis Vourtsis, Senior Front End ...
 
HTML5 JavaScript APIs
HTML5 JavaScript APIsHTML5 JavaScript APIs
HTML5 JavaScript APIs
 
Vyg monitor
Vyg monitorVyg monitor
Vyg monitor
 
Legacy applications - 4Developes konferencja, Piotr Pasich
Legacy applications  - 4Developes konferencja, Piotr PasichLegacy applications  - 4Developes konferencja, Piotr Pasich
Legacy applications - 4Developes konferencja, Piotr Pasich
 
The promise of asynchronous php
The promise of asynchronous phpThe promise of asynchronous php
The promise of asynchronous php
 
Owl: The New Odoo UI Framework
Owl: The New Odoo UI FrameworkOwl: The New Odoo UI Framework
Owl: The New Odoo UI Framework
 

Andere mochten auch

Casos de Exito Centurion
Casos de Exito CenturionCasos de Exito Centurion
Casos de Exito Centurion
dinkbit
 
Continuous integration with teamcity
Continuous integration with teamcityContinuous integration with teamcity
Continuous integration with teamcity
Eugene Sheretov
 
DevOps модное слово или следующая ступень эволюции
DevOps модное слово или следующая ступень эволюцииDevOps модное слово или следующая ступень эволюции
DevOps модное слово или следующая ступень эволюции
Andrey Rebrov
 
DevOps от и до - что, зачем и почему
DevOps от и до - что, зачем и почемуDevOps от и до - что, зачем и почему
DevOps от и до - что, зачем и почему
Andrey Rebrov
 

Andere mochten auch (20)

AzureDay Kyiv 2016 Release Management
AzureDay Kyiv 2016 Release ManagementAzureDay Kyiv 2016 Release Management
AzureDay Kyiv 2016 Release Management
 
Continuous Delivery Overview
Continuous Delivery OverviewContinuous Delivery Overview
Continuous Delivery Overview
 
dotnetsheff: Continuous delivery with Team City and Octopus Deploy
dotnetsheff: Continuous delivery with Team City and Octopus Deploydotnetsheff: Continuous delivery with Team City and Octopus Deploy
dotnetsheff: Continuous delivery with Team City and Octopus Deploy
 
Octopus Deploy Tech Fest 2014
Octopus Deploy Tech Fest 2014Octopus Deploy Tech Fest 2014
Octopus Deploy Tech Fest 2014
 
Zero Downtime Deployment
Zero Downtime DeploymentZero Downtime Deployment
Zero Downtime Deployment
 
Team City
Team CityTeam City
Team City
 
Solve Everyday IT Problems with DevOps
Solve Everyday IT Problems with DevOpsSolve Everyday IT Problems with DevOps
Solve Everyday IT Problems with DevOps
 
Using Rancher for highly available deployment services with GoCD and TeamCity
Using Rancher for highly available deployment services with GoCD and TeamCityUsing Rancher for highly available deployment services with GoCD and TeamCity
Using Rancher for highly available deployment services with GoCD and TeamCity
 
Casos de Exito Centurion
Casos de Exito CenturionCasos de Exito Centurion
Casos de Exito Centurion
 
DevOps Skills DevConf 2016
DevOps Skills DevConf 2016DevOps Skills DevConf 2016
DevOps Skills DevConf 2016
 
Continuous integration with teamcity
Continuous integration with teamcityContinuous integration with teamcity
Continuous integration with teamcity
 
Dev ops performance lab-v2 (1)
Dev ops performance lab-v2 (1)Dev ops performance lab-v2 (1)
Dev ops performance lab-v2 (1)
 
Как проекты приходят к DevOps?
Как проекты приходят к DevOps?Как проекты приходят к DevOps?
Как проекты приходят к DevOps?
 
Octopus Deploy and how to stop deploying like an idiot
Octopus Deploy and how to stop deploying like an idiotOctopus Deploy and how to stop deploying like an idiot
Octopus Deploy and how to stop deploying like an idiot
 
HP Discover Session BB2160: Agile DevOps Continuous Delivery
HP Discover Session BB2160:  Agile DevOps Continuous DeliveryHP Discover Session BB2160:  Agile DevOps Continuous Delivery
HP Discover Session BB2160: Agile DevOps Continuous Delivery
 
DevOps модное слово или следующая ступень эволюции
DevOps модное слово или следующая ступень эволюцииDevOps модное слово или следующая ступень эволюции
DevOps модное слово или следующая ступень эволюции
 
DevOps от и до - что, зачем и почему
DevOps от и до - что, зачем и почемуDevOps от и до - что, зачем и почему
DevOps от и до - что, зачем и почему
 
Continuous Development with Jenkins - Stephen Connolly at PuppetCamp Dublin '12
Continuous Development with Jenkins - Stephen Connolly at PuppetCamp Dublin '12Continuous Development with Jenkins - Stephen Connolly at PuppetCamp Dublin '12
Continuous Development with Jenkins - Stephen Connolly at PuppetCamp Dublin '12
 
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...
 
Jenkins and Chef: Infrastructure CI and Automated Deployment
Jenkins and Chef: Infrastructure CI and Automated DeploymentJenkins and Chef: Infrastructure CI and Automated Deployment
Jenkins and Chef: Infrastructure CI and Automated Deployment
 

Ähnlich wie Automated release management with team city & octopusdeploy - NDC 2013

Automated release management - DevConFu 2014
Automated release management - DevConFu 2014Automated release management - DevConFu 2014
Automated release management - DevConFu 2014
Kristoffer Deinoff
 

Ähnlich wie Automated release management with team city & octopusdeploy - NDC 2013 (20)

Automated release management - DevConFu 2014
Automated release management - DevConFu 2014Automated release management - DevConFu 2014
Automated release management - DevConFu 2014
 
Getting Started with Capistrano
Getting Started with CapistranoGetting Started with Capistrano
Getting Started with Capistrano
 
Prototyping in the cloud
Prototyping in the cloudPrototyping in the cloud
Prototyping in the cloud
 
Pyramid Lighter/Faster/Better web apps
Pyramid Lighter/Faster/Better web appsPyramid Lighter/Faster/Better web apps
Pyramid Lighter/Faster/Better web apps
 
Burn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websitesBurn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websites
 
Be pragmatic, be SOLID (at Boiling Frogs, Wrocław)
Be pragmatic, be SOLID (at Boiling Frogs, Wrocław)Be pragmatic, be SOLID (at Boiling Frogs, Wrocław)
Be pragmatic, be SOLID (at Boiling Frogs, Wrocław)
 
UA Testing with Selenium and PHPUnit - ZendCon 2013
UA Testing with Selenium and PHPUnit - ZendCon 2013UA Testing with Selenium and PHPUnit - ZendCon 2013
UA Testing with Selenium and PHPUnit - ZendCon 2013
 
Zero-config JavaScript apps with RaveJS -- SVCC fall 2014
Zero-config JavaScript apps with RaveJS -- SVCC fall 2014Zero-config JavaScript apps with RaveJS -- SVCC fall 2014
Zero-config JavaScript apps with RaveJS -- SVCC fall 2014
 
4Developers 2015: Be pragmatic, be SOLID - Krzysztof Menżyk
4Developers 2015: Be pragmatic, be SOLID - Krzysztof Menżyk4Developers 2015: Be pragmatic, be SOLID - Krzysztof Menżyk
4Developers 2015: Be pragmatic, be SOLID - Krzysztof Menżyk
 
Be pragmatic, be SOLID
Be pragmatic, be SOLIDBe pragmatic, be SOLID
Be pragmatic, be SOLID
 
Testing multi outputformat based mapreduce
Testing multi outputformat based mapreduceTesting multi outputformat based mapreduce
Testing multi outputformat based mapreduce
 
MeaNstack on Docker
MeaNstack on DockerMeaNstack on Docker
MeaNstack on Docker
 
Dmp hadoop getting_start
Dmp hadoop getting_startDmp hadoop getting_start
Dmp hadoop getting_start
 
Good karma: UX Patterns and Unit Testing in Angular with Karma
Good karma: UX Patterns and Unit Testing in Angular with KarmaGood karma: UX Patterns and Unit Testing in Angular with Karma
Good karma: UX Patterns and Unit Testing in Angular with Karma
 
ZFConf 2012: Capistrano для деплоймента PHP-приложений (Роман Лапин)
ZFConf 2012: Capistrano для деплоймента PHP-приложений (Роман Лапин)ZFConf 2012: Capistrano для деплоймента PHP-приложений (Роман Лапин)
ZFConf 2012: Capistrano для деплоймента PHP-приложений (Роман Лапин)
 
淺談 Groovy 與 AWS 雲端應用開發整合
淺談 Groovy 與 AWS 雲端應用開發整合淺談 Groovy 與 AWS 雲端應用開發整合
淺談 Groovy 與 AWS 雲端應用開發整合
 
RESTFUL SERVICES MADE EASY: THE EVE REST API FRAMEWORK - Nicola Iarocci - Co...
RESTFUL SERVICES MADE EASY: THE EVE REST API FRAMEWORK -  Nicola Iarocci - Co...RESTFUL SERVICES MADE EASY: THE EVE REST API FRAMEWORK -  Nicola Iarocci - Co...
RESTFUL SERVICES MADE EASY: THE EVE REST API FRAMEWORK - Nicola Iarocci - Co...
 
Introduce to PredictionIO
Introduce to PredictionIOIntroduce to PredictionIO
Introduce to PredictionIO
 
Keeping it small - Getting to know the Slim PHP micro framework
Keeping it small - Getting to know the Slim PHP micro frameworkKeeping it small - Getting to know the Slim PHP micro framework
Keeping it small - Getting to know the Slim PHP micro framework
 
Dropwizard and Friends
Dropwizard and FriendsDropwizard and Friends
Dropwizard and Friends
 

Mehr von Kristoffer Deinoff (6)

There's no place like home office
There's no place like home officeThere's no place like home office
There's no place like home office
 
Internet of machine learning - BuildStuff '14
Internet of machine learning - BuildStuff '14Internet of machine learning - BuildStuff '14
Internet of machine learning - BuildStuff '14
 
Internet of machine learning - AI Ukraine '14
Internet of machine learning - AI Ukraine '14Internet of machine learning - AI Ukraine '14
Internet of machine learning - AI Ukraine '14
 
Continuous delivery in the cloud - DevConFu 2014
Continuous delivery in the cloud - DevConFu 2014Continuous delivery in the cloud - DevConFu 2014
Continuous delivery in the cloud - DevConFu 2014
 
This is how i roll!
This is how i roll!This is how i roll!
This is how i roll!
 
Hør etter da!
Hør etter da!Hør etter da!
Hør etter da!
 

Kürzlich hochgeladen

introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 

Kürzlich hochgeladen (20)

introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 

Automated release management with team city & octopusdeploy - NDC 2013