Book Image

DevOps Bootcamp

By : Mitesh Soni
Book Image

DevOps Bootcamp

By: Mitesh Soni

Overview of this book

DevOps Bootcamp delivers practical learning modules in manageable chunks. Each chunk is delivered in a day, and each day is a productive one. Each day builds your competency in DevOps. You will be able to take the task you learn every day and apply it to cultivate the DevOps culture. Each chapter presents core concepts and key takeaways about a topic in DevOps and provides a series of hands-on exercises. You will not only learn the importance of basic concepts or practices of DevOps but also how to use different tools to automate application lifecycle management. We will start off by building the foundation of the DevOps concepts. On day two, we will perform Continuous Integration using Jenkins and VSTS both by configuring Maven-based JEE Web Application?. We will also integrate Jenkins and Sonar qube for Static Code Analysis. Further, on day three, we will focus on Docker containers where we will install and configure Docker and also create a Tomcat Container to deploy our Java based web application. On day four, we will create and configure the environment for application deployment in AWS and Microsoft Azure Cloud for which we will use Infrastructure as a Service and Open Source Configuration Management tool Chef. For day five, our focus would be on Continuous Delivery. We will automate application deployment in Docker container using Jenkins Plugin, AWS EC2 using Script, AWS Elastic Beanstalk using Jenkins Plugin, Microsoft Azure VM using script, and Microsoft Azure App Services Using Jenkins. We will also configure Continuous Delivery using VSTS. We will then learn the concept of Automated Testing on day six using Apache JMeter and URL-based tests in VSTS. Further, on day seven, we will explore various ways to automate application lifecycle management using orchestration. We will see how Pipeline can be created in Jenkins and VSTS, so the moment Continuous? Integration is completed successfully, Continuous Delivery will start and application will be deployed. On the final day, our focus would be on Security access to Jenkins and Monitoring of CI resources, and cloud-based resources in AWS and Microsoft Azure Platform as a Service.
Table of Contents (9 chapters)

Why DevOps is not all about tools

Yes, tools are nothing. They are not that important a factor in changing the culture of any organization. The reason is very simple. No matter what technology we use, we will perform continuous integration, cloud provisioning, configuration management, continuous delivery, continuous deployment, continuous monitoring, and so on.

Categorywise, different tool sets can be used, but all perform similar operations. It is just the way that tool performs a certain operation that differs, else the outcome is the same. The following are some of the tools based on the categories:

Category

Tools

Build automation

Nant, MSBuild, Maven, Ant and Gradle

Repository

Git and SVN

Static code analysis

Sonar and PMD

Continuous integration

Jenkins, Atlassian Bamboo, and VSTS

Configuration management

Chef, Puppet, Ansible, and Salt

Cloud platforms

AWS and Microsoft Azure

Cloud management tool

RightScale

Application deployment

Shell Scripts and Plugins

Functional testing

Selenium and Appium

Load testing

Apache Jmeter

Repositories

Artifactory, Nexus, and Fabric

Let's see how different tools can be useful in different stages for different operations. This may change based on the number of environments or the number of DevOps practices we follow in different organizations:

If we need to categorize tools based on different DevOps best practices, then we can categorize them based on open source and commercial categories. The following are just some examples:

Components

Open Source

IBM Urban Code

Electric-Cloud

Build tools

Ant or Maven
or MS Build

Ant or Maven or MS
Build

Ant or Maven or MS Build

Code repositories

Git or Subversion

Git or Atlassian Stash or Subversion or StarTeam

Git or Subversion or StarTeam

Code analysis tools

Sonar

Sonar

Sonar

Continuous integration

Jenkins

Jenkins or Atlassian Bamboo

Jenkins or ElectricAccelerator

Continuous delivery

Chef

Artifactory and IBM UrbanCode Deploy

ElectricFlow

In this book, we will try to focus on the open source category, as well as commercial tools. We will use Jenkins and Visual Studio Team Services for all the major automation and orchestration-related activities.