Download - Icebreaker with DevOps

Transcript

1

WhiteHedge

Ice Breaker with DevOps

WhiteHedge

2

WhiteHedgeWhiteHedge

2

- HELLO

Shorten the path between Innovation and Value

WhiteHedge is an agile Product Development company with deep experience in theCloud Automation, DevOps and Big Data Analytics.

Experience of building 50+ successful products across the globe in various industriesand the knowledge of latest trends and technologies, make us stand out as the bestand the coolest software product development company.

INTRODUCTION

3

WhiteHedgeWhiteHedge

3

- AN OVERVIEW

Global Presence

Agile + Flexible

Thorough + Quick Learner

Competitive + Comprehensive

Honest + Transparent

Young + Mature

Innovative + Creative

More about us …What defines us ?

California

New Jersey Rotterdam

Pune

Envision Products |

Convert into businesses

100+ employees | 50+ live

products world-wide

The best of the Talent and

InfrastructureStarted 2003 | Focused Agile

Product Development

Self funded | Well funded |

Profitable

INTRODUCTION

4

WhiteHedge

What is DevOps ?

5

WhiteHedge

COMMUNICATION

COLLABORATION

INTEGRATION

Let us find it on Web

6

WhiteHedge

A Simplified Answer to What is DevOps ?

7

WhiteHedgeWhiteHedge

CarA Product.

Customer

8

WhiteHedgeManufacturing a Car

Manufacturing a car is like building a

Software Product.

A car is designed, each parts of the car built separately,

which are assembled together and delivered to the showroom for sale.

Every car sale also follows with Service and Support.

9

WhiteHedgeLets draw an analogy

Car parts

=>

Code modules

Car parts are manufactured using machinery

=>

Software is better written when written with the help of tools

Car assembly

=>

(Continuous) Integration

Assembly Lines

=>

(Continuous) Deployment

Car Testing. Test parts of car, test assembled car, test car

functionality

“Machines” used for manufacturing in automotive

industry

=>

“DevOps” in Software industry

10

WhiteHedge

is like the

Robot

which helps you

build

Better Software

11

WhiteHedge

Where to Start with DevOps ?

12

WhiteHedgeSTEP 1 : Make a START

Learning DevOps is like learning to Ride a Bicycle.

You learn to balance, Only when you are in MOTION!

13

WhiteHedgeMake a Start to Realize …

§ DevOps replaces human tasks

§ There are no limits to what you can automate

§ You will be creating Robots

§ You need to be creative, innovative

§ You need to be techy too

14

WhiteHedgeSTEP 2 : Change

§ Start with a clean slate

§ Keep your past behind

§ Be ready for change

§ Understand you need to: learn-unlearn-learn-repeat

§ Keep your mind open

§ Be proactive, you need to drive yourself

15

WhiteHedgeNew Culture

§ DevOps brings in a new culture

§ You won't have any requirements

§ You won't be given any design

§ You won't be shown any problem

§ A lot of ideas would be thrown at you

§ And you would be called to help!

16

WhiteHedgeSTEP 3 : Dehumanize !

§ Follow the mantra: “Any task should be done only once!”

§ Start by writing small scripts to automate any task you would have to do

manually

§ If it can't be scripted, document it

§ The challenge should be: the 2nd time you have to do the same task, it should

take 10 times less time than the first attempt!

17

WhiteHedgeSTEP 4 : Understand Fundamentals !

§ DevOps is here to automate nearly everything

§ But you can start with some tasks which are the bare minimum needs of

DevOps Automation

§ Next few slides will explain these fundamental concepts

18

WhiteHedgeVersion Control

§ Source Code Version Control

• Github is the most popular

§ Keep in mind that “Version Control” can also be applied to infrastructure,

configuration and databases, but this can be studied in depth in later stages

of your Learning & Implementing DevOps!

§ Few popular tools

19

WhiteHedgeContinuous Integration

§ CI enables early detection of problems in integration. It includes several

components, explained further

• Automated Code Review

• Automated Code Analysis

• Build Tools

• Automated Unit Tests

• Automated Integration Tests

20

WhiteHedgeAutomated Code Review and Analysis

§ Don't go by the dull title. This is quite interesting when implemented.

It keeps the developer’s code on track and reduces code quality issues!

§ Tools like Gerrit can be used for setting up code review process

§ Go through the concepts and explore the tools listed below

• Static Code Analysis

• Lint tools

• SonarQube

• JArchitect

• Codacy

• CodeClimate

21

WhiteHedgeBuild Tools

§ Build tools convert source code to binary, create executables (eg: jar), can run

tests and create documentation. Listed below are some popular build tools.

Understand any one build tool to know the intricacies of building a project.

• Maven

• Gradle

• Ant

• make

22

WhiteHedgeArtifact Management Repository

§ Artifacts are generated as a result of the builds. They can also be called as

“application” or “executables”

§ Artifacts are also those libraries needed by the build (called “dependencies”)

§ We need to control the version of the dependencies

§ We need to manage releases of the application

§ Hence artifact management is important

§ Explore the existing popular solutions:

• Artifactory (PaaS offering)

• Sonatype Nexus

23

WhiteHedgeCI Server

§ Continuous Integration server can be setup in-house or used as a PaaS

solution.

§ Try some hands-on with both CI servers mentioned below

• Hosted Travis-CI

• Jenkins

24

WhiteHedgeConfiguration Management

§ This literally translates to “Infrastructure Automation”

§ Following are the 3 most popular CM tools. Study 2 of them well.

§ Ansible

§ Puppet OR Chef

25

WhiteHedgeContinuous Delivery

§ CD is a natural extension to CI: Teams can ensure that every change to the

system is releasable and that any version can be released at the click of a

button.

26

WhiteHedgeRelease Management

§ With the concepts we have learnt so far, you would realise that we would end up with many versions of the build.

§ We want to release the right versions, frequently, and get a feedback about how it performs. This is release management.

§ The solution to deployment and release management differs for every use case.• CM tools like Ansible can be used

• CI Server like Jenkins can be used

• Capistrano is a standalone tool

§ Understand theoretically how each of the above works. Note the differences in each approach and which would be used in which use cases.

27

WhiteHedgeMonitoring

§ Application and System Monitoring are one of the important tenets of DevOps.

Explore some of the tools below, try some hands-on:

• ELK Stack

• New Relic

• Server Density

28

WhiteHedgeAssignment: Setup a CI/CD Pipeline

§ Create a Hello World project on Github

§ Use hosted Travis-CI as build server

§ With every git push:

§ Hello World build should be triggered in Travis-CI

§ Run unit tests

§ If they pass, save the build output to Nexus

§ Trigger a playlist in Ansible, which will deploy the build to a another machine

§ With every successful deployment, relay the feedback (send emails)

§ With a failure in any of the steps, send the feedback to the developer with the details of failure

29

WhiteHedgeAre you ready to take a deep dive into DevOps?

§ Document your understanding till now

§ List down how you can better the CI/CD pipeline

§ List down what you think could also be automated in your assignment

§ Get set to take a deep dive into a topic that you wish to master

§ And don’t hesitate to contact us for further details.

30

WhiteHedge

QUESTIONS? Go Ahead, Don’t Hesitate!

?

31

WhiteHedgeWhiteHedge

31

FOLLOW US

GET IN TOUCH WITH USGo Ahead, Don’t Hesitate!

- SOCIAL NETWORKS / PHONE

http://www.whitehedge.com/devops.html

Mukta Aphale

Abhijit Joshi - [email protected]