Deployment Tools and Techniques

Size: px
Start display at page:

Download "Deployment Tools and Techniques"

Transcription

1 Deployment Tools and Techniques Cengiz Günay CS485/540 Software Engineering Fall 2014, some slides courtesy of J. Smith, R. Pressman, I. Sommerville, and the Internets Günay (Emory MathCS) Deployment Fall / 6

2 (c) military.com

3 The father of all build/deployment tools: Make Compiling/building: $ gcc -o hello hello.c -I. Günay (Emory MathCS) Deployment Fall / 6

4 The father of all build/deployment tools: Make Compiling/building: $ gcc -o hello hello.c -I. With the following Makefile: hello: hello.c hello.h gcc -o hello hello.c -I. Günay (Emory MathCS) Deployment Fall / 6

5 The father of all build/deployment tools: Make Compiling/building: $ gcc -o hello hello.c -I. With the following Makefile: hello: hello.c hello.h gcc -o hello hello.c -I. Will check if timestamp of hello.* is newer than hello before building: $ make hello Nothing to make. Günay (Emory MathCS) Deployment Fall / 6

6 Why is Make popular? Good with complex dependencies Can make general rules CC=gcc CFLAGS=-I. DEPS=hellomake.h %.o: %.c $(DEPS) $(CC) -c -o $< $(CFLAGS) Günay (Emory MathCS) Deployment Fall / 6

7 Why is Make popular? Good with complex dependencies Can make general rules CC=gcc CFLAGS=-I. DEPS=hellomake.h %.o: %.c $(DEPS) $(CC) -c -o $< $(CFLAGS) Common Makefile targets: compile, install, doc, clean Günay (Emory MathCS) Deployment Fall / 6

8 A modern make: Apache Ant Ant: Started as for Java, uses XML-formatted build.xml: <project name="sample Project" default="compile" basedir="."> <!-- global properties for this build file --> <property name="source.dir" location="src"/> <!-- set up some directories used by this project --> <target name="init" description="setup project directories">...</target> <!-- Compile the java code in src dir into build dir --> <target name="compile" depends="init" description="compile java sources"/> <!-- Generate javadocs for current project into docs dir --> <target name="doc" depends="init" description="generate documentation"/> <!-- Delete the build & doc directories and Emacs backup (*~) files --> <target name="clean" description="tidy up the workspace"/> </project> Günay (Emory MathCS) Deployment Fall / 6

9 Other tools configure: For detecting the environment before compiling/installation/deployment. Apache Maven: Supercedes Ant. Phing: For PHP CMake: a new program that aims to replace configure+make Günay (Emory MathCS) Deployment Fall / 6

10 Deploying Web Applications

11 Rules of the road Use a Source Code Management tool This is non-negotiable! Git > Subversion, but use something Keep everything under version control Practice common repository management master, branches, and tags

12 A successful Git branching model

13 Classic web application infrastructure Internet Load balancer web01 web02 web03 web04 web05 web06 batch01 batch02 db01 (master) db02 (slave) cache01 cache02

14 Deploying web application code Deploying should be a one-step process Code always sourced from SCM repository Be able to rollback quickly Always deploy (or at least tag) a numbered release Apply database changes Don t take your web app down (if you can help it)

15 Web server config and filesystem <VirtualHost *:80> ServerName DocumentRoot /home/web/site/current/public_html </VirtualHost> $ pwd /home/web/site web@dev:~/site$ ls -al total 28 drwxrwxr-x 7 web web :55. drwxr-xr-x 3 web web :52.. drwxrwxr-x 2 web web : drwxrwxr-x 2 web web : drwxrwxr-x 2 web web : drwxrwxr-x 2 web web : drwxrwxr-x 5 web web : lrwxrwxrwx 1 web web :55 current -> 1.1.1

16 Deployment tools Build your own Push/pull tarball from Amazon S3 service rsync s code to local disk Capistrano Written in Ruby Performs tasks on roles of servers Ant, Phing, Deployinator (Etsy)

17 Deploying database objects Your database always moves forward in time up and down changes up_x.sql -- creates and modifies objects down_x.sql -- undoes the changes in up Each change has a version number Rails migrations, Doctrine

18 up_ sql Sample database up/down pair create table user ( id integer unsigned not null, username varchar(20) not null, password_hash varchar(100) not null, created datetime, last_updated datetime, last_login datetime, constraint user_pk primary key (id), constraint user_username_uk unique key (username)); insert into schema_version ( num) values ( ); down_ sql drop table user; delete schema_version where num = );

19 Common gotchas Rotate your log files Centralize them, too! Important to write robust, defensive code Be able to monitor everything Munin, statsd, Graphite, etc. Design for failure Have at least two of everything

20 Other pearls of wisdom

21 Coding standards Coding standards are insanely important Ensures that all developers on a team write: Code that looks the same Is maintainable by anyone on the team These are not optional. You follow them. Period.

22 Testing and QA in the real world When time and budgets are tight: It s really easy to skimp on writing tests for your code You just want to meet your deadline Acceptance testing of a release can be shorter than normal Meeting client deadline > 100% code coverage

23 Understanding the sysadmin side Understanding systems administration has been a huge differentiator for me The best devs I know understand this area well When you write code, you think about what it does on a server Deeper understanding and respect for writing efficient code So much easier now due to virtualization

24 Speak! Write! Many software development conferences You owe it to the community to share your knowledge Adapt your work into presentations Write! My former (and current) boss: Publish or perish

25 Books!

26 References Code As Craft PHPUnit Grumpy Programmer s Guide to Building Testable Applications in PHP

27 Thanks!

An Introduction to Ant

An Introduction to Ant An Introduction to Ant Overview What is Ant? Installing Ant Anatomy of a build file Projects Properties Targets Tasks Example build file Running a build file What is Ant? Ant is a Java based tool for automating

More information

Automating All The Things. Sebastian Feldmann

Automating All The Things. Sebastian Feldmann Automating All The Things Sebastian Feldmann Automation "Automate until the job is boring as hell" Automation System Configuration Software Deployment Software Preparation Putting it all together App deployment,

More information

Getting It Right COMS W4115. Prof. Stephen A. Edwards Spring 2007 Columbia University Department of Computer Science

Getting It Right COMS W4115. Prof. Stephen A. Edwards Spring 2007 Columbia University Department of Computer Science Getting It Right COMS W4115 Prof. Stephen A. Edwards Spring 2007 Columbia University Department of Computer Science Getting It Right Your compiler is a large software system developed by four people. How

More information

Documentation and Deployment

Documentation and Deployment Documentation and Deployment CS 370 SE Practicum, Cengiz Günay (Some slides courtesy of Eugene Agichtein and the Internets) I know what I learned this semester: CS 370, Günay (Emory) Documentation and

More information

Automate all the things. Sebastian Feldmann

Automate all the things. Sebastian Feldmann Automate all the things Sebastian Feldmann "Automate until the job is boring as hell" System Configuration Software packaging Software deployment Combining all to work seamlessly together System Configuration

More information

Make: a build automation tool

Make: a build automation tool Make: a build automation tool What is the problem? The lab examples repository for the CS 253 course has 228 files in 54 folders. To build them all would requires us to navigate to 54 folders and compile

More information

Construction: version control and system building

Construction: version control and system building Construction: version control and system building Paul Jackson School of Informatics University of Edinburgh The problem of systems changing Systems are constantly changing through development and use

More information

Make: a build automation tool 1/23

Make: a build automation tool 1/23 Make: a build automation tool 1/23 What is the problem? The lab examples repository for the CS 253 course has 293 files in 81 folders. To build them all would requires us to navigate to 81 folders and

More information

Stress-free Deployment

Stress-free Deployment twitter: @akrabat Stress-free Deployment Rob Allen PHPBenelux January 2011 Rob Allen? PHP developer since 1999 Wrote Zend_Config Tutorial at akrabat.com Book! Why automate deployment? Getting your house

More information

Build Tools. Software Engineering SS A tool was needed. Agenda for today. Build tools. Software complexity. Build tools

Build Tools. Software Engineering SS A tool was needed. Agenda for today. Build tools. Software complexity. Build tools Agenda for today Build Tools Software Engineering SS 2007 Build Tools Available 4. Presentation Objectives - Use modern build systems for software Software Engineering, lecture #: Topic 2 Software complexity

More information

Build Tools. Software Engineering SS 2007

Build Tools. Software Engineering SS 2007 Build Tools Software Engineering SS 2007 Agenda for today Build Tools 1. Motivation 2. Key Concepts 3. Tools Available 4. Presentation 5. Discussion Objectives - Use modern build systems for software Software

More information

2 Compiling a C program

2 Compiling a C program 2 Compiling a C program This chapter describes how to compile C programs using gcc. Programs can be compiled from a single source file or from multiple source files, and may use system libraries and header

More information

Thomas Pelaia II, Ph.D. XAL Workshop 2012 December 13, 2012 Managed by UT-Battelle for the Department of Energy

Thomas Pelaia II, Ph.D. XAL Workshop 2012 December 13, 2012 Managed by UT-Battelle for the Department of Energy Thomas Pelaia II, Ph.D. XAL Workshop 2012 December 13, 2012 XAL Loose Timeline at SNS 2012 Software Maintenance Neutron Production Operations Software Development Intensity Commissioning Machine Study

More information

DAVE LIDDAMENT INTRODUCTION TO BASH

DAVE LIDDAMENT INTRODUCTION TO BASH DAVE LIDDAMENT INTRODUCTION TO BASH @daveliddament FORMAT Short lectures Practical exercises (help each other) Write scripts LEARNING OBJECTIVES What is Bash When should you use Bash Basic concepts of

More information

Software Development. COMP220/COMP285 Seb Coope Ant: Structured Build

Software Development. COMP220/COMP285 Seb Coope Ant: Structured Build Software Development COMP220/COMP285 Seb Coope Ant: Structured Build These slides are mainly based on Java Development with Ant - E. Hatcher & S.Loughran. Manning Publications, 2003 Imposing Structure

More information

An Integrated Approach to Managing Windchill Customizations. Todd Baltes Lead PLM Technical Architect SRAM

An Integrated Approach to Managing Windchill Customizations. Todd Baltes Lead PLM Technical Architect SRAM An Integrated Approach to Managing Windchill Customizations Todd Baltes Lead PLM Technical Architect SRAM Event hashtag is #PTCUSER10 Join the conversation! Topics What is an Integrated Approach to Windchill

More information

Fundamentals of Git 1

Fundamentals of Git 1 Fundamentals of Git 1 Outline History of Git Distributed V.S Centralized Version Control Getting started Branching and Merging Working with remote Summary 2 A Brief History of Git Linus uses BitKeeper

More information

Guidelines for deploying PHP applications

Guidelines for deploying PHP applications Guidelines for deploying PHP applications By Kevin Schroeder Technology Evangelist Zend Technologies About me Kevin Schroeder Technology Evangelist for Zend Programmer Sys Admin Author IBM i Programmer

More information

Version control system (VCS)

Version control system (VCS) Version control system (VCS) Remember that you are required to keep a process-log-book of the whole development solutions with just one commit or with incomplete process-log-book (where it is not possible

More information

Make! CSC230: C and Software Tools. N.C. State Department of Computer Science. Some examples adapted from

Make! CSC230: C and Software Tools. N.C. State Department of Computer Science. Some examples adapted from Make! CSC230: C and Software Tools N.C. State Department of Computer Science Some examples adapted from http://mrbook.org/tutorials/make/ CSC230: C and Software Tools NC State University Computer Science

More information

Construction: version control and system building

Construction: version control and system building Construction: version control and system building Paul Jackson School of Informatics University of Edinburgh The problem of systems changing Systems are constantly changing through development and use

More information

Development tools: Version control, build tools, and integrated development environments 1

Development tools: Version control, build tools, and integrated development environments 1 Development tools: Version control, build tools, and integrated development environments 1 HFOSS 2010 Faculy Workshop 18 May 2010 1 CC by-nc-sa 3.0 Development tools Why do we need version control? With

More information

CSE 390 Lecture 8. Large Program Management: Make; Ant

CSE 390 Lecture 8. Large Program Management: Make; Ant CSE 390 Lecture 8 Large Program Management: Make; Ant slides created by Marty Stepp, modified by Jessica Miller and Ruth Anderson http://www.cs.washington.edu/390a/ 1 Motivation single-file programs do

More information

CS108, Stanford Handout #37. Source Control CVS

CS108, Stanford Handout #37. Source Control CVS CS108, Stanford Handout #37 Fall, 2008-09 Osvaldo Jiménez Source Control CVS Thanks to Nick Parlante for much of this handout Source Control Any modern software project of any size uses "source control"

More information

Technology Background Development environment, Skeleton and Libraries

Technology Background Development environment, Skeleton and Libraries Technology Background Development environment, Skeleton and Libraries Christian Kroiß (based on slides by Dr. Andreas Schroeder) 18.04.2013 Christian Kroiß Outline Lecture 1 I. Eclipse II. Redmine, Jenkins,

More information

CS Basics 15) Compiling a C prog.

CS Basics 15) Compiling a C prog. CS Basics 15) Compiling a C prog. Emmanuel Benoist Fall Term 2016-17 Berner Fachhochschule Haute cole spcialise bernoise Berne University of Applied Sciences 1 Compiling a C program Example of a small

More information

Deployment Is Not A Four Letter Word. Chris Hartjes PHP Quebec 2009 Conference

Deployment Is Not A Four Letter Word. Chris Hartjes PHP Quebec 2009 Conference Deployment Is Not A Four Letter Word Chris Hartjes PHP Quebec 2009 Conference WARNING: This presentation may contain language that is offensive to some. I ll try not to swear but sometimes it just comes

More information

Version Control. Software Carpentry Github s Hello World Git For Ages 4 And Up You need source code control now

Version Control. Software Carpentry Github s Hello World Git For Ages 4 And Up You need source code control now A version control system (VCS) is a tool or system for keeping track of changes in files. A primitive form of VCS would be making a copy of a file every time you want to make a new version of the file.

More information

What is Maven? Apache Maven is a software project management and comprehension tool (build, test, packaging, reporting, site, deploy).

What is Maven? Apache Maven is a software project management and comprehension tool (build, test, packaging, reporting, site, deploy). Plan What is Maven? Links : mvn command line tool POM : 1 pom.xml = 1 artifact POM POM Inheritance Standard Directory Layout Demo on JMMC projects Plugins Conclusion What is Maven? Apache Maven is a software

More information

Berner Fachhochschule Haute cole spcialise bernoise Berne University of Applied Sciences 2

Berner Fachhochschule Haute cole spcialise bernoise Berne University of Applied Sciences 2 Compiling a C program CS Basics 15) Compiling a C prog. Emmanuel Benoist Fall Term 2016-17 Example of a small program Makefile Define Variables Compilation options Conclusion Berner Fachhochschule Haute

More information

Super Charge Your Continuous Integration Deployments. Nikola Gotsev April 26, 2016

Super Charge Your Continuous Integration Deployments. Nikola Gotsev April 26, 2016 Super Charge Your Continuous Integration Deployments Nikola Gotsev April 26, 2016 What is Continuous Integration? Wasn`t that the same as Continuous Deployment? Or was it related to the source control

More information

CSE 391 Lecture 9. Version control with Git

CSE 391 Lecture 9. Version control with Git CSE 391 Lecture 9 Version control with Git slides created by Ruth Anderson & Marty Stepp, images from http://git-scm.com/book/en/ http://www.cs.washington.edu/391/ 1 Problems Working Alone Ever done one

More information

Git Command Line Tool Is Not Installed

Git Command Line Tool Is Not Installed Git Command Line Tool Is Not Installed Make Sure It Is Accessible On Y Error: "git" command line tool is not installed: make sure it is accessible on y I have installed git tool. even in git bash its showing

More information

DESIGNING APPLICATIONS FOR CONTAINERIZATION AND THE CLOUD THE 12 FACTOR APPLICATION MANIFESTO

DESIGNING APPLICATIONS FOR CONTAINERIZATION AND THE CLOUD THE 12 FACTOR APPLICATION MANIFESTO DESIGNING APPLICATIONS FOR CONTAINERIZATION AND THE CLOUD THE 12 FACTOR APPLICATION MANIFESTO THIS IS THE DEV PART DESIGNING OUR APPLICATIONS TO BE PREDICTABLE, FLEXIBLE, RELIABLE, SCALABLE AND COMPLETELY

More information

Jenkins: A complete solution. From Continuous Integration to Continuous Delivery For HSBC

Jenkins: A complete solution. From Continuous Integration to Continuous Delivery For HSBC Jenkins: A complete solution From Integration to Delivery For HSBC Rajesh Kumar DevOps Architect @RajeshKumarIN www.rajeshkumar.xyz Agenda Why Jenkins? Introduction and some facts about Jenkins Supported

More information

C++ Binary Dependency Management with Gradle. Hugh Greene

C++ Binary Dependency Management with Gradle. Hugh Greene C++ Binary Dependency Management with Gradle Hugh Greene Getting consistent versions of things needed to build your software and to use it 2 Why? Saves time Identical binaries confidence

More information

CS 390 Software Engineering Lecture 3 Configuration Management

CS 390 Software Engineering Lecture 3 Configuration Management CS 390 Software Engineering Lecture 3 Configuration Management Includes slides from the companion website for Sommerville, Software Engineering, 10/e. Pearson Higher Education, 2016. All rights reserved.

More information

Ant. Originally ANT = Another Neat Tool. Created by James Duncan Davidson Now an Apache open-source project

Ant. Originally ANT = Another Neat Tool. Created by James Duncan Davidson Now an Apache open-source project Ant Originally ANT = Another Neat Tool Created by James Duncan Davidson Now an Apache open-source project Ants are amazing insects Can carry 50 times their own weight Find the shortest distance around

More information

GIT TO DA REPO! VERSION CONTROL, GITLAB, AND ISU

GIT TO DA REPO! VERSION CONTROL, GITLAB, AND ISU GIT TO DA REPO! VERSION CONTROL, GITLAB, AND ISU Tony Brook & Nathan Stien August 2nd, 2016 WHAT IS VERSION CONTROL (And why should you care?) Shared workspace for multiple collaborators Tracking history

More information

You Can t Move Forward Unless You Can Roll Back. By: Michael Black

You Can t Move Forward Unless You Can Roll Back. By: Michael Black You Can t Move Forward Unless You Can Roll Back By: Michael Black The VP of Sales walks in and tells you that your largest and oldest client wants to pay for a custom modification. But here s the clincher,

More information

TM DevOps Use Case. 2017TechMinfy All Rights Reserved

TM DevOps Use Case. 2017TechMinfy All Rights Reserved Document Details Use Case Name TMDevOps Use Case04 First Draft 10 th Dec 2017 Author Reviewed By Amrendra Kumar Pradeep Narayanaswamy Contents Scope... 4 About Customer... 4 Pre-Conditions/Trigger... 4

More information

S A M P L E C H A P T E R

S A M P L E C H A P T E R S AMPLE CHAPTER Ant in Action Steve Loughran and Erik Hatcher Sample Chapter 1 Copyright 2007 Manning Publications brief contents 1 Introducing Ant 5 2 A first Ant build 19 3 Understanding Ant datatypes

More information

Developing and Testing Java Microservices on Docker. Todd Fasullo Dir. Engineering

Developing and Testing Java Microservices on Docker. Todd Fasullo Dir. Engineering Developing and Testing Java Microservices on Docker Todd Fasullo Dir. Engineering Agenda Who is Smartsheet + why we started using Docker Docker fundamentals Demo - creating a service Demo - building service

More information

Composer and Drupal. CIDUG Meeting December 13, 2018 John Rearick

Composer and Drupal. CIDUG Meeting December 13, 2018 John Rearick Composer and Drupal CIDUG Meeting December 13, 2018 John Rearick * Similar to other dependency managers such as: yum, apt, brew, macports, npm, pip, etc. * Helps manage dependency hell. * Lots of dependencies

More information

Portal Application Deployment Scripting

Portal Application Deployment Scripting Portal Application Deployment Scripting Graham Harper, IBM ISSL Senior Application Architect Contents Deployment scripting in context What is a portal application? Portal application components Applying

More information

Version Control. Second level Third level Fourth level Fifth level. - Software Development Project. January 11, 2017

Version Control. Second level Third level Fourth level Fifth level. - Software Development Project. January 11, 2017 Version Control Click to edit Master EECS text 2311 styles - Software Development Project Second level Third level Fourth level Fifth level January 11, 2017 1 Scenario 1 You finished the assignment at

More information

Version Control. Second level Third level Fourth level Fifth level. - Software Development Project. January 17, 2018

Version Control. Second level Third level Fourth level Fifth level. - Software Development Project. January 17, 2018 Version Control Click to edit Master EECS text 2311 styles - Software Development Project Second level Third level Fourth level Fifth level January 17, 2018 1 But first, Screen Readers The software you

More information

Continuous Delivery of your infrastructure. Christophe

Continuous Delivery of your infrastructure. Christophe Continuous Delivery of your infrastructure Christophe Vanlancker @Carroarmato0 Christophe Vanlancker Internal operations and consulting Mentor Kris couldn t make it so I s/kris/christophe/g Todays Goals

More information

Exercise 1: Basic Tools

Exercise 1: Basic Tools Exercise 1: Basic Tools This exercise is created so everybody can learn the basic tools we will use during this course. It is really more like a tutorial than an exercise and, you are not required to submit

More information

JAVA V Tools in JDK Java, winter semester ,2017 1

JAVA V Tools in JDK Java, winter semester ,2017 1 JAVA Tools in JDK 1 Tools javac javadoc jdb javah jconsole jshell... 2 JAVA javac 3 javac arguments -cp -encoding -g debugging info -g:none -target version of bytecode (6, 7, 8, 9) --release -source version

More information

Technology Background Development environment, Skeleton and Libraries

Technology Background Development environment, Skeleton and Libraries Technology Background Development environment, Skeleton and Libraries Slides by Prof. Dr. Matthias Hölzl (based on material from Dr. Andreas Schröder) Outline Lecture 1 I. Eclipse II. Git Lecture 2 IV.

More information

Jenkins User Conference Israel. #jenkinsconf. CI / Liveperson. Gidi Samuels. July 16, #jenkinsconf

Jenkins User Conference Israel. #jenkinsconf. CI / Liveperson. Gidi Samuels.  July 16, #jenkinsconf Jenkins User Conference Israel #jenkinsconf CI / CD @ Liveperson Gidi Samuels www.liveperson.com July 16, 2014 #jenkinsconf About Myself Lead the CI Team at Liveperson 3 years in Liveperson About Myself

More information

Use Case: Scalable applications

Use Case: Scalable applications Use Case: Scalable applications 1. Introduction A lot of companies are running (web) applications on a single machine, self hosted, in a datacenter close by or on premise. The hardware is often bought

More information

... Fisheye Crucible Bamboo

... Fisheye Crucible Bamboo Sander Soo MSc Computer Science Oracle Certified Professional (Java SE) Nortal (email: sander.soo@nortal.com) Mercurial Java Spring Framework AngularJS Atlassian stack... Fisheye Crucible Bamboo 2 Manual

More information

Directory structure and development environment set up

Directory structure and development environment set up Directory structure and development environment set up 1. Install ANT: Download & unzip (or untar) the ant zip file - jakarta-ant-1.5.1-bin.zip to a directory say ANT_HOME (any directory is fine) Add the

More information

Department of Computer Science College of Engineering Boise State University

Department of Computer Science College of Engineering Boise State University Department of Computer Science College of Engineering Boise State University 1/18 Introduction Wouldn t you like to have a time machine? Software developers already have one! it is called version control

More information

Makefile Tutorial. Eric S. Missimer. December 6, 2013

Makefile Tutorial. Eric S. Missimer. December 6, 2013 Makefile Tutorial Eric S. Missimer December 6, 2013 1 Basic Elements of a Makefile 1.1 Explicit Rules A the major part of a Makefile are the explicit rules (a.k.a. recipes) that make certain files. Below

More information

PRINCIPLES OF OPERATING SYSTEMS

PRINCIPLES OF OPERATING SYSTEMS PRINCIPLES OF OPERATING SYSTEMS Tutorial-1&2: C Review CPSC 457, Spring 2015 May 20-21, 2015 Department of Computer Science, University of Calgary Connecting to your VM Open a terminal (in your linux machine)

More information

EXTERNAL SOURCE CONTROL & PENTAHO. One-button export, formatting and standardization, commit, and deploy from separate environments.

EXTERNAL SOURCE CONTROL & PENTAHO. One-button export, formatting and standardization, commit, and deploy from separate environments. EXTERNAL SOURCE CONTROL & PENTAHO One-button export, formatting and standardization, commit, and deploy from separate environments. About NextGear Capital and Nathan Hart NextGear Capital Me Formed in

More information

Creating Flex Applications with IntelliJ IDEA

Creating Flex Applications with IntelliJ IDEA Creating Flex Applications with IntelliJ IDEA In this tutorial you will: 1. Create an IntelliJ IDEA project with Flex-enabled module 2. Create Ant build configuration to compile and run Flex application

More information

WebDAV and Apache. Greg Stein.

WebDAV and Apache. Greg Stein. WebDAV and Apache Greg Stein gstein@collab.net http://www.lyra.org/greg/ Agenda Overview Benefits How does it work? Some scenarios DAV software Setting up mod_dav Futures November 21, 2002 ApacheCon US

More information

Dalhousie University CSCI 2132 Software Development Winter 2018 Lab 8, March 22

Dalhousie University CSCI 2132 Software Development Winter 2018 Lab 8, March 22 Dalhousie University CSCI 2132 Software Development Winter 2018 Lab 8, March 22 In this lab, you will first learn more about git. After that, you will get some practice on the make utility and learn more

More information

CSC209. Software Tools and Systems Programming. https://mcs.utm.utoronto.ca/~209

CSC209. Software Tools and Systems Programming. https://mcs.utm.utoronto.ca/~209 CSC209 Software Tools and Systems Programming https://mcs.utm.utoronto.ca/~209 What is this Course About? Software Tools Using them Building them Systems Programming Quirks of C The file system System

More information

Pipeline as Code for your IAC. Kris

Pipeline as Code for your IAC. Kris Pipeline as Code for your IAC Kris Buytaert @krisbuytaert Kris Buytaert I used to be a Dev, Then Became an Op Chief Trolling Officer and Open Source Consultant @inuits.eu Everything is an effing DNS Problem

More information

Continuous Integration using Cruise Control

Continuous Integration using Cruise Control Continuous Integration using Cruise Control Presented By Tom Grant PlatinumSolutions, Inc. Thursday, April 14 th, 2005 What is Integration? Definition: the act of combining into an integral whole In software

More information

Build automation. CSE260, Computer Science B: Honors Stony Brook University

Build automation. CSE260, Computer Science B: Honors Stony Brook University Build automation CSE260, Computer Science B: Honors Stony Brook University http://www.cs.stonybrook.edu/~cse260 2 Build Automation Build automation is the act of scripting or automating a wide variety

More information

Schema Management with Flyway

Schema Management with Flyway Schema Management with Flyway Scott Mead scottm@openscg.com Sr. Architect OpenSCG & BigSQL PGConf US 2017 1 Strategies Single File Application Managed (ORM) Migration 2 Single File 3 Single File Easiest

More information

Introduction to Supercomputing

Introduction to Supercomputing Introduction to Supercomputing TMA4280 Introduction to development tools 0.1 Development tools During this course, only the make tool, compilers, and the GIT tool will be used for the sake of simplicity:

More information

CSC209. Software Tools and Systems Programming. https://mcs.utm.utoronto.ca/~209

CSC209. Software Tools and Systems Programming. https://mcs.utm.utoronto.ca/~209 CSC209 Software Tools and Systems Programming https://mcs.utm.utoronto.ca/~209 What is this Course About? Software Tools Using them Building them Systems Programming Quirks of C The file system System

More information

Beginner s guide to continuous integration

Beginner s guide to continuous integration Beginner s guide to continuous integration Gilles QUERRET Riverside Software US PUG Challenge 2013 What s continuous integration? Build, deployment and tests are long and boring tasks Development cycles

More information

Object Oriented Programming. Week 1 Part 2 Git and egit

Object Oriented Programming. Week 1 Part 2 Git and egit Object Oriented Programming Part 2 Git and egit Lecture Review of Git Local Repository Remote Repository Using Git from Eclipse Review of Git 3 What is Git? Software Configuration Management (SCM) Supports

More information

MAVEN MOCK TEST MAVEN MOCK TEST I

MAVEN MOCK TEST MAVEN MOCK TEST I http://www.tutorialspoint.com MAVEN MOCK TEST Copyright tutorialspoint.com This section presents you various set of Mock Tests related to Maven. You can download these sample mock tests at your local machine

More information

CSE 374 Programming Concepts & Tools

CSE 374 Programming Concepts & Tools CSE 374 Programming Concepts & Tools Hal Perkins Fall 2017 Lecture 14 Makefiles and Compilation Management 1 Where we are Onto tools... Basics of make, particular the concepts Some fancier make features

More information

Using Subversion for Source Code Control

Using Subversion for Source Code Control Using Subversion for Source Code Control Derrick Kearney HUBzero Platform for Scientific Collaboration Purdue University Original slides by Michael McLennan This work licensed under Creative Commons See

More information

Installing Apache Zeppelin

Installing Apache Zeppelin 3 Installing Date of Publish: 2018-04-01 http://docs.hortonworks.com Contents Install Using Ambari...3 Enabling HDFS and Configuration Storage for Zeppelin Notebooks in HDP-2.6.3+...4 Overview... 4 Enable

More information

Continuous Integration using Docker & Jenkins

Continuous Integration using Docker & Jenkins Jenkins LinuxCon Europe 2014 October 13-15, 2014 Mattias Giese Solutions Architect giese@b1-systems.de - Linux/Open Source Consulting, Training, Support & Development Introducing B1 Systems founded in

More information

Tools. SWE 432, Fall Design and Implementation of Software for the Web

Tools. SWE 432, Fall Design and Implementation of Software for the Web Tools SWE 432, Fall 2016 Design and Implementation of Software for the Web Today Before we can really make anything, there s a bunch of technical stuff to get out of the way Tools make our lives so much

More information

CS480. Compilers Eclipse, SVN, Makefile examples

CS480. Compilers Eclipse, SVN, Makefile examples CS480 Compilers Eclipse, SVN, Makefile examples January 26, 2015 New Project New Project C/C++ Project Create a New C Project Choose Makefile Project EmptyProject Toolchain: Linux GCC Next Advanced C/C++

More information

CSE 333 Interlude - make and build tools

CSE 333 Interlude - make and build tools CSE 333 Interlude - make and build tools Hal Perkins Paul G. Allen School of Computer Science & Engineering University of Washington make make is a classic program for controlling what gets (re)compiled

More information

AEM Code Promotion and Content Synchronization Best Practices

AEM Code Promotion and Content Synchronization Best Practices AEM Code Promotion and Content Synchronization Best Practices Ian Reasor, Technical Architect, Adobe Partner Experience Introduction When considering the movement of content through environments in an

More information

Git & Github Fundamental by Rajesh Kumar.

Git & Github Fundamental by Rajesh Kumar. Git & Github Fundamental by Rajesh Kumar About me Rajesh Kumar DevOps Architect @RajeshKumarIN www.rajeshkumar.xyz www.scmgalaxy.com 2 What is git Manage your source code versions Who should use Git Anyone

More information

Version Control Systems

Version Control Systems Nothing to see here. Everything is under control! September 16, 2015 Change tracking File moving Teamwork Undo! Undo! UNDO!!! What strategies do you use for tracking changes to files? Change tracking File

More information

CS 261 Recitation 1 Compiling C on UNIX

CS 261 Recitation 1 Compiling C on UNIX Oregon State University School of Electrical Engineering and Computer Science CS 261 Recitation 1 Compiling C on UNIX Winter 2017 Outline Secure Shell Basic UNIX commands Editing text The GNU Compiler

More information

Development Practice and Quality Assurance. Version Control. The first thing you should be told when you start a new job - Steve Freeman

Development Practice and Quality Assurance. Version Control. The first thing you should be told when you start a new job - Steve Freeman 302 Development Practice and Quality Assurance In this section we will talk about and demonstrate technical practices that modern development teams commonly undertake in order to deliver software smoothly

More information

Introduction to Version Control

Introduction to Version Control Research Institute for Symbolic Computation Johannes Kepler University Linz, Austria 21-Nov-2013 Outline General Remarks about Version Control 1 General Remarks about Version Control 2 Outline General

More information

The Actual Real World at EclipseCon/ALM

The Actual Real World at EclipseCon/ALM Tycho The Actual Real World at EclipseCon/ALM Raise your Hand if you are Sure Addressing the Issues Real World: Tycho Issues World Wide Distributed Teams India, China, Europe, Argentina, United States

More information

CSE 403 Lecture 11. Static Code Analysis. Reading: IEEE Xplore, "Using Static Analysis to Find Bugs"

CSE 403 Lecture 11. Static Code Analysis. Reading: IEEE Xplore, Using Static Analysis to Find Bugs CSE 403 Lecture 11 Static Code Analysis Reading: IEEE Xplore, "Using Static Analysis to Find Bugs" slides created by Marty Stepp http://www.cs.washington.edu/403/ FindBugs FindBugs: Java static analysis

More information

Cloud platforms. T Mobile Systems Programming

Cloud platforms. T Mobile Systems Programming Cloud platforms T-110.5130 Mobile Systems Programming Agenda 1. Motivation 2. Different types of cloud platforms 3. Popular cloud services 4. Open-source cloud 5. Cloud on this course 6. Mobile Edge Computing

More information

SECTION 1: CODE REASONING + VERSION CONTROL + ECLIPSE

SECTION 1: CODE REASONING + VERSION CONTROL + ECLIPSE SECTION 1: CODE REASONING + VERSION CONTROL + ECLIPSE cse331-staff@cs.washington.edu slides borrowed and adapted from Alex Mariakis and CSE 390a OUTLINE Introductions Code Reasoning Version control IDEs

More information

Contents in Detail. Foreword by Xavier Noria

Contents in Detail. Foreword by Xavier Noria Contents in Detail Foreword by Xavier Noria Acknowledgments xv xvii Introduction xix Who This Book Is For................................................ xx Overview...xx Installation.... xxi Ruby, Rails,

More information

Build Automation Kurt Christensen

Build Automation Kurt Christensen Build Automation Kurt Christensen Kurt Christensen Computer programmer (17 years) and software development coach (9 years) github.com/projectileboy Available for purchase at: kurt.j.christensen@gmail.com

More information

TM DevOps Use Case. 2017TechMinfy All Rights Reserved

TM DevOps Use Case. 2017TechMinfy All Rights Reserved Document Details Use Case Name TMDevOps Use Case03 First Draft 01 st Dec 2017 Author Reviewed By Prabhakar D Pradeep Narayanaswamy Contents Scope... 4 About Customer... 4 Use Case Description... 4 Primary

More information

CS11 Advanced C++ Fall Lecture 4

CS11 Advanced C++ Fall Lecture 4 CS11 Advanced C++ Fall 2006-2007 Lecture 4 Today s Topics Using make to automate build tasks Using doxygen to generate API docs Build-Automation Standard development cycle: Write more code Compile Test

More information

Tutorial 2 GitHub Tutorial

Tutorial 2 GitHub Tutorial TCSS 360: Software Development Institute of Technology and Quality Assurance Techniques University of Washington Tacoma Winter 2017 http://faculty.washington.edu/wlloyd/courses/tcss360 Tutorial 2 GitHub

More information

Version Control. CSC207 Fall 2014

Version Control. CSC207 Fall 2014 Version Control CSC207 Fall 2014 Problem 1: Working Solo How do you keep track of changes to your program? Option 1: Don t bother Hope you get it right the first time Hope you can remember what changes

More information

Open XAL Project Architecture

Open XAL Project Architecture Thomas Pelaia II, Ph.D. Open XAL Meeting November 14, 2013 Motivation Common Core is too large Need support for Site Specific Extensions and Plugins Need mechanism for assembling and sharing a project

More information

Submitting your Work using GIT

Submitting your Work using GIT Submitting your Work using GIT You will be using the git distributed source control system in order to manage and submit your assignments. Why? allows you to take snapshots of your project at safe points

More information

Build. System building

Build. System building Build System building The process of compiling and linking software components into an executable system Different systems are built from different combinations of components Invariably supported by automated

More information

Cloud-Native Applications. Copyright 2017 Pivotal Software, Inc. All rights Reserved. Version 1.0

Cloud-Native Applications. Copyright 2017 Pivotal Software, Inc. All rights Reserved. Version 1.0 Cloud-Native Applications Copyright 2017 Pivotal Software, Inc. All rights Reserved. Version 1.0 Cloud-Native Characteristics Lean Form a hypothesis, build just enough to validate or disprove it. Learn

More information

e2 factory the emlix Embedded Build Framework

e2 factory the emlix Embedded Build Framework e2 factory the emlix Embedded Build Framework Agenda Motivation Basic Concepts Design and Implementation Working with e2 factory e2 factory Motivation Motivation Development Tools Source Code Management

More information