web age speaks! webinar series€¦ · engine, aws elastic beanstalk (built on top of the aws iaas...
TRANSCRIPT
"Web Age Speaks!" Webinar Series
Introduction to DevOps
2 ©WebAgeSolutions.com
Introduction
Mikhail Vladimirov Director, Curriculum Architecture
Web Age Solutions Providing a broad spectrum of regular and
customized training classes in programming, system administration and architecture to our clients across the world for over ten years
3 ©WebAgeSolutions.com
Overview of Talk
Defining DevOps
Overview of Select DevOps Tools
IBM Tools for DevOps
Introduction to DevOps
What is DevOps?
5 ©WebAgeSolutions.com
Dev vs Ops
The Dev View The Ops View
We have aggressive deadlines -- Business is all over us Ops are much too sluggish supporting us (provisioning integration environment, etc.) They lost the application zip file we emailed them yesterday night -- it was eventually found in their "junk mail" folder Overall, we don't have trust and confidence in Operations (Ops) -- they are more like Oops, then Ops
Dev is all over us The application set-up guide sent by Dev was not complete -- they missed some critical steps, which resulted in our wasted time With so many new applications being released in the environment, we can no longer guarantee uninterrupted services Overall, we don't trust Dev
6 ©WebAgeSolutions.com
Dilbert on DevOps (Sort of …)
7 ©WebAgeSolutions.com
DevOps Simple Definition
DevOps is a contraction of Development and Operations
It is an approach to delivering software solutions in a continuous manner based on lean and agile practices
DevOps helps manage complexities of application delivery by creating a collaborative environment with participants coming from Development and Operations, Business, QA, and other stakeholder groups
The DevOps practice has been popularized by organizations adopting Cloud-as-a-Service computing model (Netflix, Flickr)
8 ©WebAgeSolutions.com
DevOps and App Delivery Life Cycle
DevOps strives to efficiently increase the velocity of application delivery with activities spanning the whole application delivery life cycle :
Development
Testing
Deployment
Operation
9 ©WebAgeSolutions.com
Main DevOps' Objectives
Continuous software delivery planning and control
Software delivery processes optimization
Software delivery process consistency and predictability
Minimization of the number of software defects and unnecessary re-work
Software delivery cycle time reduction
10 ©WebAgeSolutions.com
Infrastructure as Code
"Infrastructure as Code" is a practice of provisioning infrastructure by executing system management and configuration scripts
Under DevOps, Dev is granted system administration privileges to run the infrastructure set-up scripts to automatically provision the necessary development and testing environments
Provisioning of other environments (staging, production) may still be the exclusive prerogative of personnel in the DevOps' Operations role
Infrastructure as Code is effectively supported by such tools as Chef, Puppet, and IBM UrbanCode Deploy
11 ©WebAgeSolutions.com
Example of Using Puppet
1. You create a Manifest file using Puppet Domain Specific Language, e.g.
file {'/root/Works/created.dat':
ensure => present,
mode => 640,
content => "The content of this file"
}
2. Run Puppet to update the file resource locally:
puppet apply <Puppet script name>
3. You can in-line Puppet scripts: puppet apply -e "user { bozo': ensure => absent}"
12 ©WebAgeSolutions.com
DevOps on the Cloud
DevOps agility can been dramatically enhanced with adopting Cloud Computing
Developers can easily self-provision the needed resources
Many cloud platforms allow for application code snapshotting which can be used for environment replication / cloning (Dev → QA → UAT → Prod)
13 ©WebAgeSolutions.com
DevOps on IaaS
Popular IaaS platforms are: Amazon Web Services(AWS), Google Compute Engine, Microsoft Azure, Cloud Foundry, OpenStack, Rackspace
An IaaS platform gives you the lowest level of access to cloud infrastructure: VMs, virtual networks and load balances, a choice of storage solutions, etc.
DevOps will be responsible for patching OS / software, formatting raw block storage units, setting up security (open/close virtual firewall ports, managing ACL), etc.
14 ©WebAgeSolutions.com
DevOps on PaaS
Popular PaaS platforms: Microsoft Azure, Google App Engine, AWS Elastic Beanstalk (built on top of the AWS IaaS platform), Heroku (acquired by Salesforce.com in 2010), CloudFoundry, IBM Bluemix
A PaaS platform gives users a selection of sandboxed run-time environments, APIs for accessing managed storage and messaging systems, etc.
Most of the run-time and provisioning tasks are handled by the platform vendor; DevOps involvement is limited to code promotion and some allowed high-level environment tuning
In essence, DevOps perform the push, scale, update types of activities on a PaaS
15 ©WebAgeSolutions.com
Containerization Tools
A popular approach to gain a better utilization of a single physical / virtual machine's resources is to use containerization tools that allow for creating and running multiple VMs in containers on a single control host
Popular containerization tools are:
LXC
Works on Linux hosts by leveraging modern Linux kernel's cgroups capability for resource containerization such that applications' view of the underlying OS is completely isolated
Docker
An open-source project that automates the deployment of applications inside software containers (e.g. LXC)
Solaris Containers (Zones)
Cause a very low CPU and RAM overhead
First bundled with Oracle Solaris 11 release
16 ©WebAgeSolutions.com
IT Automation
For large environments, configuration automation and management becomes a dire necessity
Most of configuration automation and management systems are built around the "infrastructure-as-code" paradigm
Popular IT Automation and Configuration Management tools are:
Puppet
Chef
17 ©WebAgeSolutions.com
Puppet
Open source tool written in Ruby; runs on Linux and Windows
Allows to manage system configuration declaratively via its domain-specific language (DSL)
You can get Enterprise level support from Puppet Labs, a privately held company behind Puppet
18 ©WebAgeSolutions.com
Chef
Manages sites on both Linux and Microsoft Windows
Written in Ruby and Erlang
Some claim that Chef is more flexible than Puppet, albeit at the expense of more complex system administration
19 ©WebAgeSolutions.com
Continuous Integration Systems
Popular CI tools:
Jenkins
TeamCity
20 ©WebAgeSolutions.com
Jenkins
A Java-based open source CI tool
Forked from “Hudson” in 2010
Hudson is now part of Eclipse Foundation with much weaker traction in the CI IT community
At its core, Jenkins is a Java Web server (e.g. Tomcat)
Jenkins supports integration with a number of version control systems (VCS), including AccuRev, CVS, Git, Perforce, Subversion, Clearcase, et al
Integrates with Apache Ant and Apache Maven build systems
21 ©WebAgeSolutions.com
TeamCity
An automated build management system and CI server written in Java
Sponsored by JetBrains (https://www.jetbrains.com/)
TeamCity is a commercial product licensed from JetBrains
There is a free edition that supports up to 20 build configurations and 3 build agents
22 ©WebAgeSolutions.com
Build and Dependency Mgmt. Tools
Apache Ant
Does not impose any coding conventions nor prescribed directory layouts for build projects
Uses Apache Ivy for dependency management
Maven
Contrary to Apache Ant, Maven uses naming conventions and prescribed folder structure for the build processes
Comes with many pre-defined targets for common project tasks (code compilation, packaging, etc.)
23 ©WebAgeSolutions.com
Build and Dependency Mgmt Tools
Gradle
A project automation tool that is built around concepts of Apache Ant and Apache Maven
Written in Java and Groovy
Uses Groovy-based domain-specific language (DSL)
Designed for managing large projects backed up by complex build graphs, optimizing the build time by skipping parts of the project which have already been built
Gradle is tightly integrated with Ant importing Ant build files as external scripts to be executed
24 ©WebAgeSolutions.com
IBM Lifecycle Management Solutions
IBM identifies Collaborative Lifecycle Management (CLM) as a holistic discipline focusing on improving software quality and increasing the velocity of software delivery
The CLM capability is built around a combination of Enterprise practices and disciplines, including:
requirements management
quality management
change and configuration management
project planning and tracking
25 ©WebAgeSolutions.com
The Lifecycle Management Diagram
Source: IBM Knowledge Center
26 ©WebAgeSolutions.com
IBM Lifecycle Management Solutions
IBM integrates a number of software delivery tools and systems into a unified Collaborative Lifecycle Management (CLM) platform:
Rational Team Concert
Rational Quality Manager
Rational DOORS Next Generation
The CLM platform brings together the complete set of application lifecycle management (ALM) capabilities that are mandated in the Enterprise space
27 ©WebAgeSolutions.com
Rational Team Concert (RTC)
Rational Team Concert (RTC) creates one single agile project collaborative environment for:
Task and issue tracking
Source control
Agile project management and planning
Continuous Builds and Integration
Some DevOps staff working with RTC mention its high price and not consistent quality across the functional areas in its first versions
RTC is free for teams up to 10 developers
28 ©WebAgeSolutions.com
Rational DOORS Next Generation
Rational DOORS Next Generation (DNG) is a requirements management solution
It helps with activities related to requirements capturing, storing, tracing and management
DNG helps assess the impact of any planned application change by linking submitted change requests to original requirements
DNG help maintain compliance with industry standards and applicable regulations
It integrates with IBM Rational Team Concert, IBM Rational Quality Manager and IBM Rational Rhapsody Design Manager on IBM Jazz collaborative lifecycle management platform
Introduction to DevOps
Our Offerings
30 ©WebAgeSolutions.com
DevOps Training Offerings
WA2451 DevOps Fundamentals (A new course -- may not yet been published)
31 ©WebAgeSolutions.com
Summary
In this session, we reviewed
What DevOps is
Some Free and Proprietary DevOps Tools