DevOps Demystified
Anirudh Bhatnagar Senior Consultant, Xebia India. [email protected] 9650573087
Netherlands | USA | India | France | UK
SOFTWARE DEVELOPMENT DONE RIGHT
www.xebia.in; Blog :http://.xebee.xebia.in
Amazon’s web infrastructure guru James Hamilton uses Facebook’s recently released energy data to make an educated guess for how many
servers Facebook now has: potentially 180,000. That’s up from an estimated 30,000 in the winter of 2009, and 60,000 by the Summer of 2010.
google has more than one million servers
10 releases per day!
• 3 engineers • over 14 million users • no hardware • +100 instances on Amazon EC2
Agile : Responding to change..
- Less time to Market. - Low release cycle time. - Huge amount of servers on cloud. - Zero downtime. - Increasing traffic and user base.
From Idea to Product
The initial step: From Waterfall to Agile!
- Continuous Integration - Test Automation
But what about Release?
The Last Mile !
The next step : From CI to Continuous Delivery
Impediments
The Division Wall!
The Dev world
Write Code Write Unit Test Cases
The Ops World IT buying Installation of server hardware and OS Configuration of servers, networks, storage, etc… Monitoring of servers Respond to outages IT security Managing phone systems, network Change control Backup and disaster recovery planning Manage active directory Asset tracking
Software deployments Application support
Developer vs IT Operations
Bridging the gap!
Introducing Mr. DevOps
Mr. Sacha Noam Baron Cohen Designation : Senior DevOps Engineer
its a culture... its a movement..
Started as devOps days in Belgium in 2009.
Developers interested in cloud, clusters, servers, deployments, databases learn to write code to maintain them.
Ops people evolve and start developing the code to maintain infrastructure.
And they are all in one same dev team trying to achieve one goal!
Collaboration -> Best practices
Ops learn from developers - > Coding principles,
managed code, versioning.
Dev learn from Ops -> Insights of environment and deployments, their problems.
Continuous delivery cont...
Deployment Pipelines
example: Build pipelines using Jenkins
Automated Acceptance Gates
Next Hurdle : Configuration Management Lets Automate : We had Perl... We had shell scripts..
• How soon can you write this script? • How maintainable is it? • Can you write test cases for it? • Can you have versioning? • Can you have reusability? • Risk???? • Idempotency
Phoenix Test
Infrastructure as code
Evolving from Scripts to code
"a flexible model for reuse by enabling users to model infrastructure as code to easily and consistently configure and deploy infrastructure across any platform.
Create a blueprint of your infrastructure that enables you to build or rebuild, automatically in minutes or hours – not weeks or months."
Tools of the game
Chef Puppet! vFabric .... ...
What is Chef?
Chef is a configuration management tool.
Using its cookbooks and recipes we can provisions VMs, environments.
Community maintained code, almost everything is prebuilt (cookbooks and recipes), need not reinvent the wheel, just modify as per the need.
Chef Server, Chef node ,Knife, Cookbook and Recipes Chef Server : Central hub which keeps the nodes in sync.
A cookbook is the fundamental unit of configuration and policy distribution in Chef. Recipes reside inside a Cookbook. Written in Ruby.
Configurations , Policies and Attributes. Example CookBook of MySQL will contain 2 recipes
1. For MySql Server 2. For MySql Client
Sample : http://community.opscode.com/cookbooks/mysql https://github.com/opscode-cookbooks/mysql
Using your workstation you write/modify cookbooks and using knife (a tool) you sync it with chef repo and chef server.
Chef Overview
Deployit
The complete picture..
Small Demo:
Using Vagrant Provision a VM and put Redis (a key-value
based noSql Database) on an Ubuntu machine.
.1) Provision VM 2.)Install Ubuntu 3.)Get the machine Up 4.)Download installer for Redis 5.)Install redis 6.)Start the service
Cloud Support : EC2 $ knife ec2 server create "role[Demo] -N
"demo.example.net" -i ami -3e02f257
Thanks!
Continuous Integration and Delivery
ü Automated Build ü Automated Deployments
ü Automated provisioning of infrastructure ü Automated Tests
Infra as Code –chef / puppet Virtualization, SSH, Shell scripting
Build automation -Jenkins/ Hudson, Linux packaging
vagrant, virtual-box ,lxc,docker, vm
Networks, End to end automation
Monitoring/logging/ integration
Cloud, EC2, Cloud foundation
Products - Deployit - XL Release
Consulting
Contact us @
Xebia India [email protected]
Websites www.xebia.in www.xebia.com www.xebia.fr
Thought Leadership Htto://xebee.xebia.in http://blog.xebia.com http://podcast.xebia.com