Book Image

Hands-on DevOps

By : Sricharan Vadapalli
Book Image

Hands-on DevOps

By: Sricharan Vadapalli

Overview of this book

<p>DevOps strategies have really become an important factor for big data environments.</p> <p>This book initially provides an introduction to big data, DevOps, and Cloud computing along with the need for DevOps strategies in big data environments. We move on to explore the adoption of DevOps frameworks and business scenarios. We then build a big data cluster, deploy it on the cloud, and explore DevOps activities such as CI/CD and containerization. Next, we cover big data concepts such as ETL for data sources, Hadoop clusters, and their applications. Towards the end of the book, we explore ERP applications useful for migrating to DevOps frameworks and examine a few case studies for migrating big data and prediction models.</p> <p>By the end of this book, you will have mastered implementing DevOps tools and strategies for your big data clusters.</p>
Table of Contents (22 chapters)
Title Page
Credits
About the Author
About the Reviewers
www.PacktPub.com
Customer Feedback
Preface
11
DevOps Adoption by ERP Systems
12
DevOps Periodic Table
13
Business Intelligence Trends
14
Testing Types and Levels
15
Java Platform SE 8

Planning the DevOps strategy


A good DevOps strategy, discussed in this book, helps the user gain in-depth and wider understanding of its subject and its application to multiple technologies and interfaces, to an organization provides focus, creates a common (unbiased) view of the current problems, develops the future state, unveils opportunities for growth, and results in better business outputs.

A holistic DevOps strategy, at the most basic level, must answer the following questions:

  • What are our business aims and goals?
  • How do we plan the roadmap? Where do we begin?
  • How should we channel our efforts? 
  • What are we trying to accomplish?
  • What is the schedule for this?
  • What is the impact to the business?
  • How do our stakeholders see the value?
  • What are the benefits and costs of doing it?

A good DevOps strategy for an organization will bring multiple benefits, channel energy to focus on high impact problems, produce clarity to develop the future state, identify growth opportunities, and pave the way for better business outputs.

A DevOps platform strategy will be a unique and extensive program, covering every aspect of the software life cycle, which integrates multiple technologies, platforms, and tools, and posing numerous challenges that need to be handled with skill, precision, and experience. 

An organization can consider the introduction of DevOps to cater to specific purposes, such as the following:

  • Automating infrastructure and workflow configuration management
  • Automating code repositories, builds, testing, and workflows
  • Continuous integration and deployment
  • Virtualization, containerization, and load balancing
  • Big data and social media projects
  • Machine-learning projects

There are a wide variety of open source tools to select for adoption in specific segments of DevOps, such as the following:

  • Docker: A Docker container consists of packaging the application and its dependencies all up in a box. It runs as an isolated process on the host operating system, sharing the kernel with another container. It enjoys resource isolation and allocation benefits like VMs, but is much more portable and efficient.
  • Kubernetes: Kubernetes is an open source orchestration system for Docker containers. It groups containers into logical units for easy management and discovery, handles scheduling on nodes, and actively manages workloads to ensure their state matches users' declared intentions.
  • Jenkins: Jenkins is a web-enabled tool used through application or a web server such as Tomcat, for continuous build, deployment, and testing, and is integrated with build tools such as Ant/Maven and the source code repository Git. It also has master and dump slaves.
  • Ansible: Ansible automates software provisioning, configuration management, and application deployment with agentless, Secured Shell (SSH) mode, Playbooks, Towers, and Yum scripts are the mechanisms.
  • Chef and Puppet: Chef and Puppet are agent-based pull mechanisms for the deployment automation of work units.
  • GitHub: Git is a popular open source version control system. It's a web-based hosted service for Git repositories. GitHub allows you to host remote Git repositories, and has a wealth of community-based services that make it ideal for open source projects.

There are comprehensive frameworks readily available, such as RedHat Openshift, Microsoft Azure, and AWS container services, with pre-integrated and configured tools to implement.

A few popular open source tools are listed here:

  • Source code management: Git, GitHub, Subversion, Bitbucket
  • Build management: Maven, Ant, Make, MSBuild
  • Testing tools: JUnit, Selenium, Cucumber, QUnit
  • Repository management: Nexus, Artifactory, Docker hub
  • Continuous integration: Jenkins, Bamboo, TeamCity, Visual Studio
  • Configuration provisioning: Chef, Puppet, Ansible, Salt
  • Release management: Visual Studio, Serena Release, StackStorm
  • Cloud: AWS, Azure, OpenShift, Rackspace
  • Deployment management: Rapid Deploy, Code Deploy, Elastic box
  • Collaboration: Jira, Team Foundation, Slack
  • BI/Monitoring: Kibana, Elasticsearch, Nagios
  • Logging: Splunk, Logentries, Logstash
  • Container: Linux, Docker, Kubernetes, Swam, AWS, Azure

We will explore  DevOps frameworks, maturity models, and the application of these tools in the respective context elaborately in coming chapters.