SlideShare a Scribd company logo
Akshaya Mahapatra
 Akshaya Mahapatra
 Software Engineer @ VCE (Virtual Computing
Environment)
 Experienced in
◦ Java/J2EE
◦ VMware products
 vSphere, vCloud
◦ Puppet
 Developing solutions for application
deployment on cloud
3
 Why DevOps? Why now?
 Stages in SDLC
◦ Check-in
◦ Build and Test
◦ Infrastructure setup
◦ Release
◦ Monitoring and scaling
 A typical use case
 Q & A
 Dev and Ops have different goals.
◦ Features vs SLA
 Skills are different.
◦ Dev team lacks infrastructure knowledge
◦ Ops team unaware of complexity of
development.
 Slow feedback loop
◦ Business -> Ops ->Dev
 An idea, practice or culture that
brings Dev, Ops and Business
together.
 How?
◦ Repeatable processes
◦ End-to-end automation.
◦ Continuous monitoring
 Virtualization and Cloud
Computing
◦ Programmable Infrastructure
◦ Just-in-time Provisioning
 Network
 Compute
 Storage
 Agile software development
◦ Speed is critical.
 Application Needs
◦ Nodes can fail
◦ No “manual” configuration
◦ Heterogeneous Execution
environments
 Advancement of technology
◦ Puppet eco-system
Continuous
Integration
Continuous
Deployment
Check-in
Continuous
Monitoring
Scale Out
Check-in
Version
Control Continuous
Integration
System
Build Test
Packaged
Application
war
ear
Appliance
vApp
Packaged
Application
Infra Setup
LB APP
DB
vSphere
VM
Templates
IP
Assignment
APP
Configuration
Management
Monitoring
Tools
Scale
Out
Monitoring
LB APP
DB
vSphere
Config
APP
 Apache License
 Initial Release – October 2000
 Central Repository.
◦ Better access control
 Fast branching and tagging.
 De-centralized. Inherent
redundancy.
 Local repository.
 Efficient use of space.
 Offline Use
SVN GIT
 svn checkout.
 svn add
 svn commit.
 svn commit
 svn diff
 svn update
 online
 git clone
 git add
 git commit
 git push
 git diff
 git pull
 online/offline
 All “stable” code goes to trunk.
 Major development in branches.
◦ Merge to trunk when stable.
 Snapshots for release are
tagged.
 Simple, Java based
 XML based configuration
 Dependency Management
◦ Project ->Target
 Ease of logging and debugging.
 Integration with major IDEs.
 Beyond “typical” build
◦ Reporting
◦ Collaboration.
◦ Project life cycle.
 Automated dependency
management
 Sensible default configuration
 Better suited for complex projects
 settings.xml
◦ ${user.home}/.m2/settings.xml
<proxies>
<proxy>
<host>172.30.100.25</host>
<port>8080</port>
</proxy>
</proxies>
<repositories>
<repository>
<id>central</id>
</repository>
</repositories>
 Dependency in pom.xml
<dependencies>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j.version}</version>
</dependency>
</dependencies>
 Distribution Management in pom.xml
<distributionManagement>
<repository>
<id>devops-snapshot</id>
<name>DevOps Repository</name>
<url>http://codecamp.com/repo/devops</url>
</repository>
</distributionManagement>
 Open source Continuous
Integration server
 http://jenkins-ci.org/
◦ Written in Java
◦ Performs jobs
◦ Numerous plugins
◦ Wide support
◦ Post build actions
Code
Repository
(GIT/SVN)
Maven
Ant
Junit
TestNG
Selenium
Check-in Workspace
Target
Server
Jenkins
(Hudson) Build
Update
Test
3
1
2
4 Packaging
Packaged
Application
Clone VM
Configure
VM
Blue Prints
Templates
Infra
Setup
3
1
2
Power On
Build
Successful
4
VM
VM
VM
VM
vSphere
 Cloning Specification:
◦ Networking Info
◦ DNS
◦ Domain
 Host/Cluster Information
 OS Customization
◦ Sysprep in windows
◦ IP configuration in Linux
 Supported by VMware and up-to-date
 Clone VM:
◦ Create Clone Spec: Set host name, network info,
data store, host resources, folder etc.
◦ Task task = vm.cloneVM_Task(vcFolder, vmName,
cloneSpec);
◦ if (task.waitForTask() == Task.SUCCESS) return true;
else return false;
 Supported by VMware and up-to-date
 Clone VM:
◦ Add-PSSnapin VMware.VimAutomation.Core
◦ Connect-VIServer -Server $VC
◦ New-VM -Name $cloneName -VM $sourceVM -
ResourcePool $respool -Datastore $datastore
 Powershell
New-NetIPAddress –InterfaceAlias “Local Area
Connection” –IPv4Address “192.168.1.100” –
PrefixLength 24 -DefaultGateway 192.168.1.1
Set-DnsClientServerAddress -InterfaceAlias
“Local Area Connection” -ServerAddresses
192.168.1.254, 192.168.1.253
/etc/sysconfig/network
NETWORKING=yes
HOSTNAME=codecamp.devops.com
GATEWAY=192.168.1.1
/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
BROADCAST=192.168.1.255
IPADDR=192.168.1.10
/etc/resolv.conf
search devops.com
nameserver 192.168.1.2
 Install Applications on Templates
◦ Red hat with Apache
◦ Windows with SQL Server
◦ Cent OS with Tomcat
◦ Red hat with ActiveMQ
 Create Virtual Machines from templates.
◦ Applications already installed.
 Configure virtual machines.
 Templates with Base OS
◦ Red hat
◦ Windows
◦ Cent OS
 Create Virtual Machines from templates.
 Install required components on virtual
machines on demand using Puppet.
 Open source Configuration
Management
 http://puppetlabs.com/
◦ Written in Ruby
◦ Infrastructure as code.
◦ Client Server system.
◦ Gaining lot of traction
◦ Simple domain specific language (DSL)
Catalog
Puppet
Master
Node
(Puppet Agent)
Node
(Puppet
Agent)
Facts
Facts
CatalogConfig
Repository
Client Server Architecture
package { "sudo":
ensure => "installed"
}
package { 'mysql':
ensure => installed,
source => „C:/mysql-winx64.msi',
}
User { “codecamp":
ensure => "present",
uid => "1001",
gid => "1001",
comment => “Code Camp Developer",
home => "/home/codecamp ",
shell => "/bin/bash"
}
file { "C:/apache":
ensure => directory,
recurse => true,
source =>puppet:///modules/apache",
}
exec { "Install Apache" :
command => 'install_apache.bat',
require => File["C:/apache"'],
path => "C:/apache/bin",
}
service { "Apache2.4":
ensure => running,
require => Exec['Install Apache'],
enable => true,
}
Class apache {
File { "C:/apache":
}
exec { "Install Apache" :
}
service { "Apache2.4":
}
}
node apache1 {
include apache
}
node tomcat1{
include tomcat
}
 Get information on all the nodes:
 Host Name, domain, IP Address
 facter -p
 Puppet manifests can access them as
global variable
 Ex: “$::hostname”
 Customizable.
class ntp {
case $::operatingsystem {
centos, redhat:
{ $service_name = 'ntpd'}
debian, ubuntu:
{ $service_name = 'ntp' }
}
…………
}
 Most of application deployment need
Orchestration support
◦ Orchestration is “cumbersome” with base
puppet.
 Changes need to wait until next
“agent” run..
 Open source
 Asynchronous
 Orchestration
◦ Can manage puppet runs.
 Scalable
◦ Parallel execution
Puppet
Master
Node
(Puppet and
mCollective
Agent)
Catalog
mCollective
Client
Node
(Puppet and
mCollective
Agent)
ActiveMQ
Commands Commands
Catalog
 Find out reachable nodes
◦ mco ping
 Find service status
◦ mco rpc service start service=httpd
 Run puppet agent once on a node
◦ mco puppet runonce –W
hostname=apache1
 Environments
◦ Development
◦ Test
◦ Production
 Defined as a config parameter.
 Puppet Master can handle
multiple environments.
Puppet
Master
Test
Development
Production
svn/dev
svn/test
/svn/prod
 Managing what nodes get what
classes..
◦ Nodes.pp grows out of control when
you have thousands of nodes.
 Solution:
◦ External Node Classifier
 Key/Value pair lookup tool
 Provides environment hierarchy
◦ Default
◦ Node Name
◦ Environment
◦ Domain
Puppet
Master
Node
(Puppet
Agent)
Hiera
External Node Classifier
Facts
Catalog
(Classes)
Facts
Catalog
(Classes)
VM
VM
VM
Hyperic
Infra
Setup
VM
VM
VM
Puppet
Master
Check
Threshold
 VMware Products
◦ Hyperic – OS/Infrastructure
◦ App Insight – Inside Application
 Java Tools and APIs
◦ Sigar
◦ Jconsole
Automating Software Development Life Cycle - A DevOps Approach
Web Server
(Apache)
App Server
(Tomcat)
App Server
(Tomcat)
App Server
(Tomcat)
<application>
<name>Puppet Demo</name>
<nodes>
<name>Tomcat Server</name>
<template>CentOS56 64bit</template>
<key>war_file</key>
<instances>3</instances>
</nodes>
<nodes>
<name>Apache Load Balancer</name>
<template>CentOS56 64bit</template>
</nodes>
</application>
 Clone templates to create virtual machines.
◦ One VM for apache Load Balancer
◦ Three VMs for Tomcat and App .war file.
 Create Puppet Manifest or Configure ENC.
◦ Associate Puppet/Classes with node
names.
 Run Puppet Agent on Virtual Machines
◦ In correct sequence.
 Install Apache
◦ mco puppet -W hostname=apache1
runonce
 Install Tomcat
◦ mco puppet -W role=apserver runonce
 Configure Apache
◦ mco puppet -W hostname=apache1
runonce
 Puppet and Puppet Forge
◦ puppetlabs.com
◦ forge.puppetlabs.com/
 VMware VIJava API
◦ vijava.sourceforge.net/
 Provisioning
◦ github.com/puppetlabs/razor
akshaya.mahapatra@gmail.com

More Related Content

PDF
Continuous Testing
PDF
OpenStack Preso: DevOps on Hybrid Infrastructure
PPTX
Chef Workflow Demo
PPTX
Baking docker using chef
PPTX
Chef vs Puppet vs Ansible vs Saltstack | Configuration Management Tools | Dev...
ZIP
Drupal Deployment
PDF
Learning chef
PPTX
Automated Infrastructure Testing
Continuous Testing
OpenStack Preso: DevOps on Hybrid Infrastructure
Chef Workflow Demo
Baking docker using chef
Chef vs Puppet vs Ansible vs Saltstack | Configuration Management Tools | Dev...
Drupal Deployment
Learning chef
Automated Infrastructure Testing

What's hot (20)

PDF
Puppet overview
PDF
Nike popup compliance workshop
PPTX
Automated Deployments with Ansible
PDF
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
PPTX
OSDC2014: Testing Server Infrastructure with #serverspec
PPTX
Fits docker into devops
PPTX
Java Day Kharkiv - Next-gen engineering with Docker and Kubernetes
PDF
Jenkins Workflow Webinar - Dec 10, 2014
PDF
Enabling Microservices @Orbitz - DockerCon 2015
PPT
State of Puppet 2013 - Puppet Camp DC
PDF
Leveraging Ansible for CI/CD
PDF
Drone your Ansible
PDF
Orchestration with Ansible at Fedora Project
PDF
Using Go in DevOps
PDF
Introduction to Infrastructure as Code & Automation / Introduction to Chef
PPTX
Automate your Development Environment with Vagrant & Chef
KEY
Michelin Starred Cooking with Chef
PPTX
How to Write Chef Cookbook
PDF
Infrastructure Automation with Chef
PDF
Game of Codes: the Battle for CI
Puppet overview
Nike popup compliance workshop
Automated Deployments with Ansible
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
OSDC2014: Testing Server Infrastructure with #serverspec
Fits docker into devops
Java Day Kharkiv - Next-gen engineering with Docker and Kubernetes
Jenkins Workflow Webinar - Dec 10, 2014
Enabling Microservices @Orbitz - DockerCon 2015
State of Puppet 2013 - Puppet Camp DC
Leveraging Ansible for CI/CD
Drone your Ansible
Orchestration with Ansible at Fedora Project
Using Go in DevOps
Introduction to Infrastructure as Code & Automation / Introduction to Chef
Automate your Development Environment with Vagrant & Chef
Michelin Starred Cooking with Chef
How to Write Chef Cookbook
Infrastructure Automation with Chef
Game of Codes: the Battle for CI
Ad

Viewers also liked (12)

PDF
The Puppet Master on the JVM - PuppetConf 2014
PDF
IT Transformation and Puppet
PPTX
It Transformation
PDF
Puppet Keynote: Puppet Camp London
DOCX
Automated software testing
PPTX
Introduction to Continuous Integration with Jenkins
PDF
Management Consulting Goes DIGITAL
ODP
Foreman in your datacenter
PDF
Agile explained
PPTX
Automate the sdlc process
PPT
Scrum In 15 Minutes
PPTX
Accenture DevOps: Delivering applications at the pace of business
The Puppet Master on the JVM - PuppetConf 2014
IT Transformation and Puppet
It Transformation
Puppet Keynote: Puppet Camp London
Automated software testing
Introduction to Continuous Integration with Jenkins
Management Consulting Goes DIGITAL
Foreman in your datacenter
Agile explained
Automate the sdlc process
Scrum In 15 Minutes
Accenture DevOps: Delivering applications at the pace of business
Ad

Similar to Automating Software Development Life Cycle - A DevOps Approach (20)

KEY
From Dev to DevOps - ApacheCON NA 2011
PDF
From Dev to DevOps
PDF
From Dev to DevOps - Codemotion ES 2012
PDF
DevOps Delivery Pipeline
PDF
Highly efficient container orchestration and continuous delivery with DC/OS a...
PDF
Devops learning path
ODP
Deploying your SaaS stack OnPrem
PPTX
Test-Driven-Development for Networking: Making CI Work for You by Colin McNam...
PDF
DevOps and BigData Analytics
PPTX
Devops for Netops
KEY
From Dev to DevOps - Apache Barcamp Spain 2011
KEY
From Dev to DevOps - FOSDEM 2012
PDF
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
PDF
Pipeline as code for your infrastructure as Code
PPTX
Devops & Configuration management tools
PPTX
Devops architecture
PDF
Building effective Java applications for the Cloud: The DHARMA principles - D...
PDF
OSMC 2017 | Building a Monitoring solution for modern applications by Martin ...
PPTX
DevOps explained
PPT
icebreakerwithdevops-150218112943-conversion-gate02
From Dev to DevOps - ApacheCON NA 2011
From Dev to DevOps
From Dev to DevOps - Codemotion ES 2012
DevOps Delivery Pipeline
Highly efficient container orchestration and continuous delivery with DC/OS a...
Devops learning path
Deploying your SaaS stack OnPrem
Test-Driven-Development for Networking: Making CI Work for You by Colin McNam...
DevOps and BigData Analytics
Devops for Netops
From Dev to DevOps - Apache Barcamp Spain 2011
From Dev to DevOps - FOSDEM 2012
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Pipeline as code for your infrastructure as Code
Devops & Configuration management tools
Devops architecture
Building effective Java applications for the Cloud: The DHARMA principles - D...
OSMC 2017 | Building a Monitoring solution for modern applications by Martin ...
DevOps explained
icebreakerwithdevops-150218112943-conversion-gate02

Recently uploaded (20)

PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Modernizing your data center with Dell and AMD
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPT
Teaching material agriculture food technology
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PPTX
Cloud computing and distributed systems.
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
The Rise and Fall of 3GPP – Time for a Sabbatical?
Modernizing your data center with Dell and AMD
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Mobile App Security Testing_ A Comprehensive Guide.pdf
Advanced methodologies resolving dimensionality complications for autism neur...
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Teaching material agriculture food technology
Per capita expenditure prediction using model stacking based on satellite ima...
Digital-Transformation-Roadmap-for-Companies.pptx
Cloud computing and distributed systems.
Building Integrated photovoltaic BIPV_UPV.pdf
Agricultural_Statistics_at_a_Glance_2022_0.pdf
“AI and Expert System Decision Support & Business Intelligence Systems”
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
CIFDAQ's Market Insight: SEC Turns Pro Crypto
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Diabetes mellitus diagnosis method based random forest with bat algorithm

Automating Software Development Life Cycle - A DevOps Approach