Overview of the Automated Build & Deployment Process Johnita Beasley Tuesday, April 29, 2008.

Slides:



Advertisements
Similar presentations
Configuration management
Advertisements

Configuration management
Week 6: Chapter 6 Agenda Automation of SQL Server tasks using: SQL Server Agent Scheduling Scripting Technologies.
® IBM Software Group © 2010 IBM Corporation What’s New in Profiling & Code Coverage RAD V8 April 21, 2011 Kathy Chan
1 OBJECTIVES To generate a web-based system enables to assemble model configurations. to submit these configurations on different.
Lesson 17: Configuring Security Policies
ANT – Another Neat Tool Representation and Management of Data on the Internet.
Validata Release Coordinator Accelerated application delivery through automated end-to-end release management.
AppManager 7: Deep Technical Dive Tim Sedlack & Michi Schniebel Sr. Product Managers.
MC365 Ant. Today We Will Cover: Overview of Ant Installing Ant Using the Ant command line tool Various Ant commands available Using Ant in Eclipse.
 2006 Pearson Education, Inc. All rights reserved Introduction to Classes and Objects.
14.1 © 2004 Pearson Education, Inc. Exam Planning, Implementing, and Maintaining a Microsoft Windows Server 2003 Active Directory Infrastructure.
CSC 395 – Software Engineering Lecture 24: Apache Ant –or– Programming the results of programming Based upon a talk by Anthony Wat.
A Guide to Oracle9i1 Creating an Integrated Database Application Chapter 8.
 2006 Pearson Education, Inc. All rights reserved Introduction to Classes and Objects.
5 Copyright © 2009, Oracle. All rights reserved. Defining ETL Mappings for Staging Data.
2007 Adobe Systems Incorporated. All Rights Reserved. 1 Joe Berkovitz VP Engineering Allurent, Inc. Continuous Integration with Flex, FlexUnit, and Ant.
Using Ant to build J2EE Applications Kumar
Overview of JSP Technology. The need of JSP With servlets, it is easy to – Read form data – Read HTTP request headers – Set HTTP status codes and response.
M. Taimoor Khan * Java Server Pages (JSP) is a server-side programming technology that enables the creation of dynamic,
The Design Discipline.
SCRAM Software Configuration, Release And Management Background SCRAM has been developed to enable large, geographically dispersed and autonomous groups.
Systems Analysis – Analyzing Requirements.  Analyzing requirement stage identifies user information needs and new systems requirements  IS dev team.
Maven & Bamboo CONTINUOUS INTEGRATION. QA in a large organization In a large organization that manages over 100 applications and over 20 developers, implementing.
Chapter 2 Applying Practical Automation Speaker : Chuang-Hung Shih Date :
Managing Software Quality
1 Guide to Novell NetWare 6.0 Network Administration Chapter 12.
11 SECURITY TEMPLATES AND PLANNING Chapter 7. Chapter 7: SECURITY TEMPLATES AND PLANNING2 OVERVIEW  Understand the uses of security templates  Explain.
® IBM Software Group © 2009 IBM Corporation Rational Publishing Engine RQM Multi Level Report Tutorial David Rennie, IBM Rational Services A/NZ
DELTA TAU Data Systems, Inc. 1 UMAC TurboTurbo PMAC PCIGeo Drive Single Source Machine Control motion logic data Power PMAC Project Management November.
RUP Implementation and Testing
Trilinos 101: Getting Started with Trilinos November 7, :30-9:30 a.m. Mike Heroux Jim Willenbring.
Software Inspection A basic tool for defect removal A basic tool for defect removal Urgent need for QA and removal can be supported by inspection Urgent.
Guidelines for Homework 6. Getting Started Homework 6 requires that you complete Homework 5. –All of HW5 must run on the GridFarm. –HW6 may run elsewhere.
 To explain the importance of software configuration management (CM)  To describe key CM activities namely CM planning, change management, version management.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
The In’s and Out’s of the IIS 6.0 Migration Tool The In’s and Out’s of the IIS 6.0 Migration Tool Chris Adams Web Platform Supportability Lead Microsoft.
Configuration Management (CM)
Access Training Linux/Unix Power Broker Access Custom Schema Database Access Customer Training Date: 25-JAN-2005.
1 Overview of the Application Hosting Environment Stefan Zasada University College London.
Running Kuali: A Technical Perspective Ailish Byrne - Indiana University Jay Sissom - Indiana University Foundation.
Automating the Build Process using ANT SE-2030 Dr. Rob Hasker 1 Based on material by Dr. Mark L. Hornick.
Test Automation For Web-Based Applications Portnov Computer School Presenter: Ellie Skobel.
Troubleshooting Security Issues Lesson 6. Skills Matrix Technology SkillObjective Domain SkillDomain # Monitoring and Troubleshooting with Event Viewer.
Ibm.com /redbooks © Copyright IBM Corp All rights reserved. WP07 ITSO iSeries Technical Forum WebSphere Portal Express– Installation, Configuration.
1 Chapter Overview Defining Operators Creating Jobs Configuring Alerts Creating a Database Maintenance Plan Creating Multiserver Jobs.
Chapter 3 Understanding Ant datatypes and properties.
Running Kuali: A Technical Perspective Ailish Byrne (Indiana University) Jonathan Keller (University of California, Davis)
Software Development COMP220/COMP285 Seb Coope Introducing Ant These slides are mainly based on “Java Development with Ant” - E. Hatcher & S.Loughran.
Chapter 1 Introducing Ant. What is ant? Ant is a build tool  Automate the tasks of compiling code, running test, and packaging the results for redistribution.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
8 Chapter Eight Server-side Scripts. 8 Chapter Objectives Create dynamic Web pages that retrieve and display database data using Active Server Pages Process.
Getting Started with Trilinos October 14, :30-10:30 a.m. Jim Willenbring.
ASP-2-1 SERVER AND CLIENT SIDE SCRITPING Colorado Technical University IT420 Tim Peterson.
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
Build and Deployment Process Understand NCI’s DevOps and continuous integration requirements Understand NCI’s build and distribution requirements.
IBM Express Runtime Quick Start Workshop © 2007 IBM Corporation Deploying a Solution.
PROGRAMMING FUNDAMENTALS INTRODUCTION TO PROGRAMMING. Computer Programming Concepts. Flowchart. Structured Programming Design. Implementation Documentation.
JRA1 Meeting – 09/02/ Software Configuration Management and Integration EGEE is proposed as a project funded by the European Union under contract.
CACI Proprietary Information | Date 1 PD² SR13 Client Upgrade Name: Semarria Rosemond Title: Systems Analyst, Lead Date: December 8, 2011.
CACI Proprietary Information | Date 1 PD² v4.2 Increment 2 SR13 and FPDS Engine v3.5 Database Upgrade Name: Semarria Rosemond Title: Systems Analyst, Lead.
11 Copyright © 2009, Oracle. All rights reserved. Enhancing ETL Performance.
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
Essentials of UrbanCode Deploy v6.1 QQ147
Deploying and Configuring SSIS Packages
Advanced Integration and Deployment Techniques
Introduction to Classes and Objects
Course: Module: Lesson # & Name Instructional Material 1 of 32 Lesson Delivery Mode: Lesson Duration: Document Name: 1. Professional Diploma in ERP Systems.
Presentation transcript:

Overview of the Automated Build & Deployment Process Johnita Beasley Tuesday, April 29, 2008

Overview of Deployment Tiers Software builds and deployments performed by the QA Team Software builds and deployments performed by the Systems Team Software builds and deployments performed by the Systems Team Inside the NIH Firewall Outside the NIH Firewall DEV QA STAGE PROD

Build/Deployment Process (Current) 1. Generate & Test the Ant build script. Ant Build Script DEV 2. Test the Ant build script and Deployment on a Production-like server Desktop 3. Generate Build & Deployment Instructions for QA Build Request & Deployment Instructions QA 4. Test the Build & Deployment STAGE PROD 5. Tests app. Sends Build & Deployment To Systems Team Build Request & Deployment Instructions 6. Deploys Application Based on Build & Deployment Instructions 6A 6B

Guiding Principles (Automated) One process to rule them all. The same build and deployment process will be used on all tiers, without exception. This enables ongoing validation and will reveal problems more quickly. In a broader sense, this principle also means that all teams will use the same approach. Simplicity. Where multiple alternatives existed, the team favored the one that seemed simpler and more direct. Standardization. This involved standardizing on a directory structure, creating a master set of environment properties, and designing a standard build script. This approach benefits the Center as a whole, because developers who work on more than one project, and open source customers who implement more than one of our products locally, only have to learn one way of doing things. Tool-neutrality. Build scripts must be executable from the command line in a properly configured environment. The Center uses AnthillPro as a Build Management Server, but open source users of our software may not have access to it. Therefore, we will not inject any dependencies on AnthillPro into our process.

Guiding Principles (Automated) Tier-neutral builds. The output of the build step should be a tier-neutral deployment unit, and a set of external property files, which implies that a build script should not have tier specific build targets. Appropriate error handling. Build scripts should adopt a ‘fail early’ approach to detecting and reporting errors. Database scripts should perform extensive error checking and should be able to rollback to the previous state if any error is encountered during execution. Development teams are responsible for providing for both confirmation of a successful deployment, and rollback of failed deployments.

Central Build Server Used as a ‘reference’ build machine Supports isolation of build and deployment configuration parameters Configured with the necessary external dependencies Anthill Pro build management server will fulfill build and deployment requests on all tiers Training will be provided to teams in use of the Anthill Pro tool

Hot Deployments NCICB uses shared application containers Applications must be hot-deployable to be considered eligible for deployment at arbitrary time without disrupting operation of other applications Applications that are NOT hot-deployable (require a container restart) will only be deployed during regularly scheduled deployment windows.

Master set of tier-specific properties Systems team will provide to all developers a standard set of environment properties and their appropriate values. This file will describe the deployment environment to which their applications must conform. A version of this file will be maintained on each tier and the appropriate version will be supplied to the build process All tier-specific properties will be included in the master file. Ensures all projects will use a consistent naming scheme.

Directory Structure Standardization Influenced by the Eclipse web application defaults (since Eclipse is the tool of choice for most development teams) Detailed description provided in the Automated Build and Deployment Handbook

Build Script Standardization Two primary build targets recommended are: – build-all: creates the (tier-neutral) deployment unit, and copies all output to the deployment-artifacts directory – deploy: first checks to see that the deployment-artifacts directory exists and the deployment unit is there before proceeding with the deployment These targets are the primary interface points for all users of the script There should be no direct link between these targets

Standard for reading build property files A build script using this approach can be invoked in one of two ways: a. >ant build-all – Load build properties from a local file called build.properties b. >ant -DPROP.FILE=/path/to/my.properties build-all – Overloads the default value of PROP.FILE and loads properties from the specified file The benefits of this approach are: – The build script can be run with an arbitrary set of parameters – Allows the Systems Team to maintain protected versions of properties files for STAGE & PROD – Keeps all tier-specific properties in easily accessible place

Naming Conventions The file prefix “template.” indicates build and deploy substitution variables are present. The expanded file will have the same file name without the “template” prefix, e.g. template.web.xml will be used to create web.xml after the substitution variables are expanded, using Ant's filtering capabilities. Property names should be all UPPER CASE for external build.xml properties and all lower case for internal build.xml properties. This is to make it easier to determine where a property’s definition can be found. Properties that are directory or path references should include “.DIR” or “.dir” in their names. Properties that refer to files should include “.FILE” or “.file” in their names. Properties that refer to environment variables should use “ENV.” in their names. Target names begin with a dash (‘‘) for internal build.xml targets. In addition to the conventions outlined here, the project team has adopted the recommendations of The Elements of Ant Style, available at

Property validation Each build script is responsible for validating it’s properties For most cases, it will only be possible to validate that the property actually has a value Validating of meaningful values should be performed if possible – Example: Verifying the correct versions of Java and Ant are being used Both the JAVA_HOME and ANT_HOME environment variables will be available during script execution and should be checked for the appropriate values. If any validation step fails, an appropriate error message should be generated and the script halted immediately.

Property Validation Example The 1 st segment of the following code snippet validates all properties, and sets the check.props property if a required property is not set. It is at the top of the script and immediately evaluated before any targets are invoked. In the 2 nd segment, the ‘–prop-check’ target is a dependent of every other target and will cause the script to fail if check.props is set. Failure Message

Summary of Build Step Build script reads a tier-specific set of properties passed in on the command line. Build script verifies that all required properties have values. If possible, the script may also check to ensure that the properties have meaningful values. This is the required approach for all teams implementing auto deployment. Build script creates tier-neutral build artifacts, and copies them all to the deployment artifacts subdirectory.

Summary of Deploy Step Based on the tier-specific properties selected at deploy time, the script should copy the deployment units to the specified directory on the deployment machine. After the files are successfully copied over, the build script should move them to their final destination on the target machine. This can be accomplished this by using the Ant SSHEXEC task to execute remote commands on the target. The build machine has been configured with SSH keys to enable appropriate access on the target machine.

Example: Execution of Remote Commands The example code is reusable as is, without modification, to any project that follows the recommended directory structure. <scp port="${SCP.PORT}" passphrase="${SCP.PASSPHRASE}" keyfile="${SCP.KEYFILE}" trust="true" verbose="true">

Responsibilities Systems/SCM Team – Maintains a master file of properties (provided to development teams) that describes the build and deployment environment – Provides implementation support for teams automating their build scripts through all tiers – Providing access to the Anthill Build Server Development Teams – Writing and maintaining build scripts – Addressing build failures

Related Documents and References Deployment Handbook Automated Build and Deployment Handbook You can get these documents from:

Questions