2. Our relevance in Cloud & DevOps
• Lean Startup with local & cloud based IT
• Develop products on Cloud (AWS, GCE, Openstack)
• Test PaaS solutions by writing puppet & chef scripts
• Experimenting Docker
3. Demystifying DevOps
Is not Is
Tools & processes
Culture & philosophy of aligning tools & processes
Acceptance than enforcement of the tools & processes
Purpose
Quick response to customer issues & Quality of Service or product & hence automate
4. DevOps – the 3rd dimension
Dev,QA ITPhilosophy of sharing & collaboration
Support
5. Bringing the silos together
• Culture : Collaborate & Automate
• Processes : Monitor & Measure, Continuous Improvement
• Cross functional Training
• Align organizations
10. What do you monitor ?
• Availability of web interface
• Availability of APIs
• Application performance [Load, throughput, response times, etc ]
• Auto-scaling & resilience validation
• Cost & capacity [healthy, unhealthy servers , CPU, Memory etc]
• Application failures & errors
11. A step before cloud
• Vagrant & Docker
• Portable Dev & Test Environments
• Dev & Test on Vagrant/Docker, release to cloud for production
• Docker can reduce application configuration & portability. But Ops still needs to be
automated
12. DevOps in context of Cloud
• Cloud (IaaS) = Ops as a service
• Run time infrastructure
• Scalable
• Self-provision
• Built-in infrastructure monitoring
• Cloud (PaaS) = DevOps as a Service
• Ops complexity abstraction
• Built-in governance
• Hooks to control IaaS configurations & automation
• NoOps = DevOps nirvana
• Built-in application monitoring
• Multi-clouds
• Cloud Interoperability
Eg: CloudFoundry, OpenShift, Heroku etc
13. Continuous Deployment Demo – Sample tools
Purpose Sample tool
CI Jenkins
Source Control Git
Build Ant
Infrastructure AWS
Infrastructure automation & application
configuration
Chef
Testing TestNG
14. Continuous Deployment Demo Setup
Jenkins
github
Knife
Opscode Chef server (hosted)
Chef-client AWS
TestNG
Build Pipeline
trov-app-deploy-demo
cookbook
1 ec2-deploy job
8 test-app : run
TestNG
against
deployed app
2 Launch ec2
instance
3 Boot strap & run
chef-client
4 Pull recipe
from chef
server & run
it
5 Pull code from github
6 Configure instance & deploy app
7 Associate Static IP with instance
15. Snippets that do the actual job
• knife ec2 server create -I <ami> -r <recipe> etc
• trov-app-deploy-demo cookbook
16. trov-app-deploy-demo cookbook
git git_config['checkout_dir'] do
repository git_config['git_repo']
revision "HEAD"
action :checkout
user "ubuntu"
group "ubuntu"
ssh_wrapper ssh_config['ssh_wrapper_file']
end
aws_elastic_ip "ip_info['public_ip']" do
aws_access_key aws['aws_access_key_id']
aws_secret_access_key
aws['aws_secret_access_key']
ip ip_info['public_ip']
action :associate
end