4. Why DevOps? Why now?
Stages in SDLC
◦ Check-in
◦ Build and Test
◦ Infrastructure setup
◦ Release
◦ Monitoring and scaling
A typical use case
Q & A
5. 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
6. An idea, practice or culture that
brings Dev, Ops and Business
together.
How?
◦ Repeatable processes
◦ End-to-end automation.
◦ Continuous monitoring
7. Virtualization and Cloud
Computing
◦ Programmable Infrastructure
◦ Just-in-time Provisioning
Network
Compute
Storage
Agile software development
◦ Speed is critical.
8. Application Needs
◦ Nodes can fail
◦ No “manual” configuration
◦ Heterogeneous Execution
environments
Advancement of technology
◦ Puppet eco-system
16. All “stable” code goes to trunk.
Major development in branches.
◦ Merge to trunk when stable.
Snapshots for release are
tagged.
17. Simple, Java based
XML based configuration
Dependency Management
◦ Project ->Target
Ease of logging and debugging.
Integration with major IDEs.
21. Distribution Management in pom.xml
<distributionManagement>
<repository>
<id>devops-snapshot</id>
<name>DevOps Repository</name>
<url>http://codecamp.com/repo/devops</url>
</repository>
</distributionManagement>
22. Open source Continuous
Integration server
http://jenkins-ci.org/
◦ Written in Java
◦ Performs jobs
◦ Numerous plugins
◦ Wide support
◦ Post build actions
25. Cloning Specification:
◦ Networking Info
◦ DNS
◦ Domain
Host/Cluster Information
OS Customization
◦ Sysprep in windows
◦ IP configuration in Linux
26. 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;
30. 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.
31. Templates with Base OS
◦ Red hat
◦ Windows
◦ Cent OS
Create Virtual Machines from templates.
Install required components on virtual
machines on demand using Puppet.
32. 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)
41. Get information on all the nodes:
Host Name, domain, IP Address
facter -p
Puppet manifests can access them as
global variable
Ex: “$::hostname”
Customizable.
43. Most of application deployment need
Orchestration support
◦ Orchestration is “cumbersome” with base
puppet.
Changes need to wait until next
“agent” run..
44. Open source
Asynchronous
Orchestration
◦ Can manage puppet runs.
Scalable
◦ Parallel execution
46. 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
47. Environments
◦ Development
◦ Test
◦ Production
Defined as a config parameter.
Puppet Master can handle
multiple environments.
57. 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.