SlideShare a Scribd company logo
1 of 15
Download to read offline
ERLANG IN A *NIX WORLD
How to get Erlang to Integrate With Your Environment
Wednesday, June 12, 13
Meta Goals
Make it easy to integrate into a standard unix environment
Make it easy to integrate into a continuous deployment system
Remove the need for a custom tool chain for Erlang
Wednesday, June 12, 13
Goals
How to build releases with Relx
How to integrate those releases under your system management
tools
How to build native packages (rpms, debs, etc for your releases)
Wednesday, June 12, 13
Tools We Will Use
Relx - Release Building
http://relx.org
Erlnixify - Erlang Node Shim
http://erlware.github.io/erlnixify/
Fpm - Native Package Creation Tool
https://github.com/jordansissel/fpm
Wednesday, June 12, 13
Basic Environment
A Unix Environment (either in a VM or native on your laptop)
Erlang
Ruby 1.9.3 (yea, yea)
Git
Wednesday, June 12, 13
Installing Dependencies
Install Gems -
gem install erlnixify
gem install fpm
Download the code
https://github.com/ericbmerritt/EUC2013
Wednesday, June 12, 13
Relx - Creating A Release
A tool to build releases
Convention over configuration
Absolutely minimal configuration
Talk tomorrow that will go into more detail
Wednesday, June 12, 13
Relx - Creating A Release
>relx
Starting relx build process ...
Resolving OTP Applications from directories:
/Users/emerrit/workspace/EUC2013/echo_get/ebin
/Users/emerrit/workspace/EUC2013/echo_get/deps
/usr/local/Cellar/erlang/R16B/lib/erlang/lib
Resolving available releases from directories:
/Users/emerrit/workspace/EUC2013/echo_get/ebin
/Users/emerrit/workspace/EUC2013/echo_get/deps
/usr/local/Cellar/erlang/R16B/lib/erlang/lib
Resolved echo_get-0.0.1
release successfully created!
Wednesday, June 12, 13
Erlnixify - Running Release
A simple ruby app
Traps Unix Signals and propagates them to the running Release
in an OTPish way
Monitors the running Release and crashes if the Release crashes
Wednesday, June 12, 13
FPM - Trivial Package Building
Can build packages most platforms (rpms, debs)
Can build packages based an a directory layout
Can have before/after scripts etc
Wednesday, June 12, 13
Running FPM
> relx
> mkdir -p _dist/opt/echo_get
> mkdir -p _dist/etc/init.d
> cp -r _rel _dist/opt/echo_get
> cp ./bin/ _dist/etc/init.d
> cd _dist
> fpm -s dir -t rpm -d esl-erlang -n echo_get -v 0.0.1 
--rpm-rpmbuild-define '__prelink_undo_cmd %{nil}' 
./
Wednesday, June 12, 13
Running FPM - Makefile
release: compile
@rm -rf $(DISTDIR) $(REL)
@$(REBAR) skip_deps=true release
rm -rf $(DISTDIR)/opt
mkdir -p $(DISTDIR)/opt
mkdir -p $(DISTDIR)/etc/init.d
mkdir -p $(DISTDIR)/etc/apollo
mkdir -p $(DISTDIR)/var/log/apollo
cp -r rel $(DISTDIR)/opt/apollo
cp -r $(CURDIR)/etc/* $(DISTDIR)/etc/
rpm: release
$(eval $@_NAME := $(shell atbx print-git-vsn | cut -d "," -f 1))
$(eval $@_VSN := $(shell atbx print-git-vsn | cut -d "," -f 2))
cd $(DISTDIR); fpm -s dir -t rpm -d esl-erlang -n $($@_NAME) -v $($@_VSN) 
--before-remove ../bin/before-remove 
--rpm-rpmbuild-define '__prelink_undo_cmd %{nil}' 
./
Wednesday, June 12, 13
Taking Things a Step Further
Continuous Integration (Jenkins, etc)
Inotify - http://inotify.aiken.cz
Ansible, Puppet or Chef
Wednesday, June 12, 13
August 30th - 31st
http://erlangcamp.com
Wednesday, June 12, 13
October 11th - 12th
http://erlangcamp.com
Wednesday, June 12, 13

More Related Content

What's hot

Lone Star PHP 2013 - Sysadmin Skills for PHP Developers
Lone Star PHP 2013 - Sysadmin Skills for PHP DevelopersLone Star PHP 2013 - Sysadmin Skills for PHP Developers
Lone Star PHP 2013 - Sysadmin Skills for PHP DevelopersPablo Godel
 
Getting started with AppArmor
Getting started with AppArmorGetting started with AppArmor
Getting started with AppArmorFrancesco Pira
 
How to train your L3DSR with PBR - MEMO -
How to train your L3DSR with PBR - MEMO -How to train your L3DSR with PBR - MEMO -
How to train your L3DSR with PBR - MEMO -Naoto MATSUMOTO
 
Confraria SECURITY & IT - Lisbon Set 29, 2011
Confraria SECURITY & IT - Lisbon Set 29, 2011Confraria SECURITY & IT - Lisbon Set 29, 2011
Confraria SECURITY & IT - Lisbon Set 29, 2011ricardomcm
 
[Nuxeo World 2013] MARKETPLACE PACKAGES - THIBAUD ARGUILLERE
[Nuxeo World 2013] MARKETPLACE PACKAGES - THIBAUD ARGUILLERE[Nuxeo World 2013] MARKETPLACE PACKAGES - THIBAUD ARGUILLERE
[Nuxeo World 2013] MARKETPLACE PACKAGES - THIBAUD ARGUILLERENuxeo
 
Lamp configuration u buntu 10.04
Lamp configuration   u buntu 10.04Lamp configuration   u buntu 10.04
Lamp configuration u buntu 10.04mikehie
 
configuring a warm standby, the easy way
configuring a warm standby, the easy wayconfiguring a warm standby, the easy way
configuring a warm standby, the easy wayCommand Prompt., Inc
 
BeagleBone Black: Platform Bring-Up with Upstream Components
BeagleBone Black: Platform Bring-Up with Upstream ComponentsBeagleBone Black: Platform Bring-Up with Upstream Components
BeagleBone Black: Platform Bring-Up with Upstream ComponentsGlobalLogic Ukraine
 
Install odoo v8 the easiest way on ubuntu debian
Install odoo v8 the easiest way on ubuntu debianInstall odoo v8 the easiest way on ubuntu debian
Install odoo v8 the easiest way on ubuntu debianFrancisco Servera
 
Puppet User Group Presentation - 15 March 2012
Puppet User Group Presentation - 15 March 2012Puppet User Group Presentation - 15 March 2012
Puppet User Group Presentation - 15 March 2012Walter Heck
 
BeagleBone Black with Upstream Software
BeagleBone Black with Upstream SoftwareBeagleBone Black with Upstream Software
BeagleBone Black with Upstream SoftwareGlobalLogic Ukraine
 
Glusterfs session #13 replication introduction
Glusterfs session #13   replication introductionGlusterfs session #13   replication introduction
Glusterfs session #13 replication introductionPranith Karampuri
 
OlinData Puppet Presentation for MOSC 2012
OlinData Puppet Presentation for MOSC 2012OlinData Puppet Presentation for MOSC 2012
OlinData Puppet Presentation for MOSC 2012Walter Heck
 

What's hot (20)

Lone Star PHP 2013 - Sysadmin Skills for PHP Developers
Lone Star PHP 2013 - Sysadmin Skills for PHP DevelopersLone Star PHP 2013 - Sysadmin Skills for PHP Developers
Lone Star PHP 2013 - Sysadmin Skills for PHP Developers
 
Getting started with AppArmor
Getting started with AppArmorGetting started with AppArmor
Getting started with AppArmor
 
How to train your L3DSR with PBR - MEMO -
How to train your L3DSR with PBR - MEMO -How to train your L3DSR with PBR - MEMO -
How to train your L3DSR with PBR - MEMO -
 
Free BSD次の一歩
Free BSD次の一歩Free BSD次の一歩
Free BSD次の一歩
 
Confraria SECURITY & IT - Lisbon Set 29, 2011
Confraria SECURITY & IT - Lisbon Set 29, 2011Confraria SECURITY & IT - Lisbon Set 29, 2011
Confraria SECURITY & IT - Lisbon Set 29, 2011
 
[Nuxeo World 2013] MARKETPLACE PACKAGES - THIBAUD ARGUILLERE
[Nuxeo World 2013] MARKETPLACE PACKAGES - THIBAUD ARGUILLERE[Nuxeo World 2013] MARKETPLACE PACKAGES - THIBAUD ARGUILLERE
[Nuxeo World 2013] MARKETPLACE PACKAGES - THIBAUD ARGUILLERE
 
Lamp configuration u buntu 10.04
Lamp configuration   u buntu 10.04Lamp configuration   u buntu 10.04
Lamp configuration u buntu 10.04
 
Go Replicator
Go ReplicatorGo Replicator
Go Replicator
 
Apparmor
ApparmorApparmor
Apparmor
 
configuring a warm standby, the easy way
configuring a warm standby, the easy wayconfiguring a warm standby, the easy way
configuring a warm standby, the easy way
 
BeagleBone Black: Platform Bring-Up with Upstream Components
BeagleBone Black: Platform Bring-Up with Upstream ComponentsBeagleBone Black: Platform Bring-Up with Upstream Components
BeagleBone Black: Platform Bring-Up with Upstream Components
 
Infragard Sept08
Infragard Sept08Infragard Sept08
Infragard Sept08
 
Virtual domains
Virtual domainsVirtual domains
Virtual domains
 
Introduction to Modern U-Boot
Introduction to Modern U-BootIntroduction to Modern U-Boot
Introduction to Modern U-Boot
 
Install odoo v8 the easiest way on ubuntu debian
Install odoo v8 the easiest way on ubuntu debianInstall odoo v8 the easiest way on ubuntu debian
Install odoo v8 the easiest way on ubuntu debian
 
Puppet User Group Presentation - 15 March 2012
Puppet User Group Presentation - 15 March 2012Puppet User Group Presentation - 15 March 2012
Puppet User Group Presentation - 15 March 2012
 
Rhel3
Rhel3Rhel3
Rhel3
 
BeagleBone Black with Upstream Software
BeagleBone Black with Upstream SoftwareBeagleBone Black with Upstream Software
BeagleBone Black with Upstream Software
 
Glusterfs session #13 replication introduction
Glusterfs session #13   replication introductionGlusterfs session #13   replication introduction
Glusterfs session #13 replication introduction
 
OlinData Puppet Presentation for MOSC 2012
OlinData Puppet Presentation for MOSC 2012OlinData Puppet Presentation for MOSC 2012
OlinData Puppet Presentation for MOSC 2012
 

Viewers also liked

Thanksgiving
ThanksgivingThanksgiving
Thanksgivingariel0423
 
林惠君 黄熊猫 孙小绿
林惠君 黄熊猫 孙小绿林惠君 黄熊猫 孙小绿
林惠君 黄熊猫 孙小绿ariel0423
 
活动答案
活动答案活动答案
活动答案ariel0423
 
李杰瑞 孙祖
李杰瑞 孙祖李杰瑞 孙祖
李杰瑞 孙祖ariel0423
 
E3 membership presentation short version
E3 membership presentation   short versionE3 membership presentation   short version
E3 membership presentation short versionA Butler Sr
 

Viewers also liked (6)

Thanksgiving
ThanksgivingThanksgiving
Thanksgiving
 
林惠君 黄熊猫 孙小绿
林惠君 黄熊猫 孙小绿林惠君 黄熊猫 孙小绿
林惠君 黄熊猫 孙小绿
 
活动答案
活动答案活动答案
活动答案
 
EUC 2013 - Relx
EUC 2013 - RelxEUC 2013 - Relx
EUC 2013 - Relx
 
李杰瑞 孙祖
李杰瑞 孙祖李杰瑞 孙祖
李杰瑞 孙祖
 
E3 membership presentation short version
E3 membership presentation   short versionE3 membership presentation   short version
E3 membership presentation short version
 

Similar to EUC 2013 - Erlang in a *NIX World

Deploying and maintaining your software with RPM/APT
Deploying and maintaining your software with RPM/APTDeploying and maintaining your software with RPM/APT
Deploying and maintaining your software with RPM/APTJoshua Thijssen
 
Linux Troubleshooting
Linux TroubleshootingLinux Troubleshooting
Linux TroubleshootingKeith Wright
 
Bundling Packages and Deploying Applications with RPM
Bundling Packages and Deploying Applications with RPMBundling Packages and Deploying Applications with RPM
Bundling Packages and Deploying Applications with RPMAlexander Shopov
 
Oracle Solaris 11 - Best for Enterprise Applications
Oracle Solaris 11 - Best for Enterprise ApplicationsOracle Solaris 11 - Best for Enterprise Applications
Oracle Solaris 11 - Best for Enterprise Applicationsglynnfoster
 
9 steps to install and configure postgre sql from source on linux
9 steps to install and configure postgre sql from source on linux9 steps to install and configure postgre sql from source on linux
9 steps to install and configure postgre sql from source on linuxchinkshady
 
101 2.5 use rpm and yum package management
101 2.5 use rpm and yum package management101 2.5 use rpm and yum package management
101 2.5 use rpm and yum package managementAcácio Oliveira
 
FPM at the Ruby Drink-up of Sophia, September 2011
FPM at the Ruby Drink-up of Sophia, September 2011FPM at the Ruby Drink-up of Sophia, September 2011
FPM at the Ruby Drink-up of Sophia, September 2011rivierarb
 
Software management in linux
Software management in linuxSoftware management in linux
Software management in linuxnejadmand
 
Step by Step to Install oracle grid 11.2.0.3 on solaris 11.1
Step by Step to Install oracle grid 11.2.0.3 on solaris 11.1Step by Step to Install oracle grid 11.2.0.3 on solaris 11.1
Step by Step to Install oracle grid 11.2.0.3 on solaris 11.1Osama Mustafa
 
SANS @Night There's Gold in Them Thar Package Management Databases
SANS @Night There's Gold in Them Thar Package Management DatabasesSANS @Night There's Gold in Them Thar Package Management Databases
SANS @Night There's Gold in Them Thar Package Management DatabasesPhil Hagen
 
Steps to create an RPM package in Linux
Steps to create an RPM package in LinuxSteps to create an RPM package in Linux
Steps to create an RPM package in LinuxManish Chopra
 
Happy porting x86 application to android
Happy porting x86 application to androidHappy porting x86 application to android
Happy porting x86 application to androidOwen Hsu
 
Cd rom mounting cdro-ms on solaris
Cd rom mounting cdro-ms on solarisCd rom mounting cdro-ms on solaris
Cd rom mounting cdro-ms on solarisBui Van Cuong
 
OSDC 2013 | Software Packaging with RPM Demystified by Andrew Ford
OSDC 2013 | Software Packaging with RPM Demystified by Andrew FordOSDC 2013 | Software Packaging with RPM Demystified by Andrew Ford
OSDC 2013 | Software Packaging with RPM Demystified by Andrew FordNETWAYS
 
Deploying with Super Cow Powers (Hosting your own APT repository with reprepro)
Deploying with Super Cow Powers (Hosting your own APT repository with reprepro)Deploying with Super Cow Powers (Hosting your own APT repository with reprepro)
Deploying with Super Cow Powers (Hosting your own APT repository with reprepro)Simon Boulet
 

Similar to EUC 2013 - Erlang in a *NIX World (20)

Deploying and maintaining your software with RPM/APT
Deploying and maintaining your software with RPM/APTDeploying and maintaining your software with RPM/APT
Deploying and maintaining your software with RPM/APT
 
Linux Troubleshooting
Linux TroubleshootingLinux Troubleshooting
Linux Troubleshooting
 
Bundling Packages and Deploying Applications with RPM
Bundling Packages and Deploying Applications with RPMBundling Packages and Deploying Applications with RPM
Bundling Packages and Deploying Applications with RPM
 
Oracle Solaris 11 - Best for Enterprise Applications
Oracle Solaris 11 - Best for Enterprise ApplicationsOracle Solaris 11 - Best for Enterprise Applications
Oracle Solaris 11 - Best for Enterprise Applications
 
Hpc4 linux advanced
Hpc4 linux advancedHpc4 linux advanced
Hpc4 linux advanced
 
9 steps to install and configure postgre sql from source on linux
9 steps to install and configure postgre sql from source on linux9 steps to install and configure postgre sql from source on linux
9 steps to install and configure postgre sql from source on linux
 
101 2.5 use rpm and yum package management
101 2.5 use rpm and yum package management101 2.5 use rpm and yum package management
101 2.5 use rpm and yum package management
 
FPM at the Ruby Drink-up of Sophia, September 2011
FPM at the Ruby Drink-up of Sophia, September 2011FPM at the Ruby Drink-up of Sophia, September 2011
FPM at the Ruby Drink-up of Sophia, September 2011
 
Sahul
SahulSahul
Sahul
 
Sahul
SahulSahul
Sahul
 
Software management in linux
Software management in linuxSoftware management in linux
Software management in linux
 
Step by Step to Install oracle grid 11.2.0.3 on solaris 11.1
Step by Step to Install oracle grid 11.2.0.3 on solaris 11.1Step by Step to Install oracle grid 11.2.0.3 on solaris 11.1
Step by Step to Install oracle grid 11.2.0.3 on solaris 11.1
 
SANS @Night There's Gold in Them Thar Package Management Databases
SANS @Night There's Gold in Them Thar Package Management DatabasesSANS @Night There's Gold in Them Thar Package Management Databases
SANS @Night There's Gold in Them Thar Package Management Databases
 
Steps to create an RPM package in Linux
Steps to create an RPM package in LinuxSteps to create an RPM package in Linux
Steps to create an RPM package in Linux
 
grate techniques
grate techniquesgrate techniques
grate techniques
 
Happy porting x86 application to android
Happy porting x86 application to androidHappy porting x86 application to android
Happy porting x86 application to android
 
Cd rom mounting cdro-ms on solaris
Cd rom mounting cdro-ms on solarisCd rom mounting cdro-ms on solaris
Cd rom mounting cdro-ms on solaris
 
OSDC 2013 | Software Packaging with RPM Demystified by Andrew Ford
OSDC 2013 | Software Packaging with RPM Demystified by Andrew FordOSDC 2013 | Software Packaging with RPM Demystified by Andrew Ford
OSDC 2013 | Software Packaging with RPM Demystified by Andrew Ford
 
Unix Administration 2
Unix Administration 2Unix Administration 2
Unix Administration 2
 
Deploying with Super Cow Powers (Hosting your own APT repository with reprepro)
Deploying with Super Cow Powers (Hosting your own APT repository with reprepro)Deploying with Super Cow Powers (Hosting your own APT repository with reprepro)
Deploying with Super Cow Powers (Hosting your own APT repository with reprepro)
 

Recently uploaded

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...Orbitshub
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxRemote DBA Services
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
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 TerraformAndrey Devyatkin
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
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)Zilliz
 
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 challengesrafiqahmad00786416
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityWSO2
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Bhuvaneswari Subramani
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
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 businesspanagenda
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
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 ...apidays
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 

Recently uploaded (20)

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...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 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
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
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)
 
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
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 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
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
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 ...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 

EUC 2013 - Erlang in a *NIX World

  • 1. ERLANG IN A *NIX WORLD How to get Erlang to Integrate With Your Environment Wednesday, June 12, 13
  • 2. Meta Goals Make it easy to integrate into a standard unix environment Make it easy to integrate into a continuous deployment system Remove the need for a custom tool chain for Erlang Wednesday, June 12, 13
  • 3. Goals How to build releases with Relx How to integrate those releases under your system management tools How to build native packages (rpms, debs, etc for your releases) Wednesday, June 12, 13
  • 4. Tools We Will Use Relx - Release Building http://relx.org Erlnixify - Erlang Node Shim http://erlware.github.io/erlnixify/ Fpm - Native Package Creation Tool https://github.com/jordansissel/fpm Wednesday, June 12, 13
  • 5. Basic Environment A Unix Environment (either in a VM or native on your laptop) Erlang Ruby 1.9.3 (yea, yea) Git Wednesday, June 12, 13
  • 6. Installing Dependencies Install Gems - gem install erlnixify gem install fpm Download the code https://github.com/ericbmerritt/EUC2013 Wednesday, June 12, 13
  • 7. Relx - Creating A Release A tool to build releases Convention over configuration Absolutely minimal configuration Talk tomorrow that will go into more detail Wednesday, June 12, 13
  • 8. Relx - Creating A Release >relx Starting relx build process ... Resolving OTP Applications from directories: /Users/emerrit/workspace/EUC2013/echo_get/ebin /Users/emerrit/workspace/EUC2013/echo_get/deps /usr/local/Cellar/erlang/R16B/lib/erlang/lib Resolving available releases from directories: /Users/emerrit/workspace/EUC2013/echo_get/ebin /Users/emerrit/workspace/EUC2013/echo_get/deps /usr/local/Cellar/erlang/R16B/lib/erlang/lib Resolved echo_get-0.0.1 release successfully created! Wednesday, June 12, 13
  • 9. Erlnixify - Running Release A simple ruby app Traps Unix Signals and propagates them to the running Release in an OTPish way Monitors the running Release and crashes if the Release crashes Wednesday, June 12, 13
  • 10. FPM - Trivial Package Building Can build packages most platforms (rpms, debs) Can build packages based an a directory layout Can have before/after scripts etc Wednesday, June 12, 13
  • 11. Running FPM > relx > mkdir -p _dist/opt/echo_get > mkdir -p _dist/etc/init.d > cp -r _rel _dist/opt/echo_get > cp ./bin/ _dist/etc/init.d > cd _dist > fpm -s dir -t rpm -d esl-erlang -n echo_get -v 0.0.1 --rpm-rpmbuild-define '__prelink_undo_cmd %{nil}' ./ Wednesday, June 12, 13
  • 12. Running FPM - Makefile release: compile @rm -rf $(DISTDIR) $(REL) @$(REBAR) skip_deps=true release rm -rf $(DISTDIR)/opt mkdir -p $(DISTDIR)/opt mkdir -p $(DISTDIR)/etc/init.d mkdir -p $(DISTDIR)/etc/apollo mkdir -p $(DISTDIR)/var/log/apollo cp -r rel $(DISTDIR)/opt/apollo cp -r $(CURDIR)/etc/* $(DISTDIR)/etc/ rpm: release $(eval $@_NAME := $(shell atbx print-git-vsn | cut -d "," -f 1)) $(eval $@_VSN := $(shell atbx print-git-vsn | cut -d "," -f 2)) cd $(DISTDIR); fpm -s dir -t rpm -d esl-erlang -n $($@_NAME) -v $($@_VSN) --before-remove ../bin/before-remove --rpm-rpmbuild-define '__prelink_undo_cmd %{nil}' ./ Wednesday, June 12, 13
  • 13. Taking Things a Step Further Continuous Integration (Jenkins, etc) Inotify - http://inotify.aiken.cz Ansible, Puppet or Chef Wednesday, June 12, 13
  • 14. August 30th - 31st http://erlangcamp.com Wednesday, June 12, 13
  • 15. October 11th - 12th http://erlangcamp.com Wednesday, June 12, 13