22
DevOps Demystified Muhammad Adil Raja Introduction DevOps Tools Development Code Scripting Conclusions DEVOPS DEMYSTIFIED Muhammad Adil Raja Pakistan cbnd

DevOps Demystified

Embed Size (px)

Citation preview

DevOpsDemystified

MuhammadAdil Raja

Introduction

DevOpsTools

Development

CodeScripting

Conclusions

DEVOPS DEMYSTIFIED

Muhammad Adil Raja

Pakistancbnd

DevOpsDemystified

MuhammadAdil Raja

Introduction

DevOpsTools

Development

CodeScripting

Conclusions

OUTLINE

1 INTRODUCTION

2 DEVOPS TOOLS

3 DEVELOPMENT

4 CODE SCRIPTING

5 CONCLUSIONS

DevOpsDemystified

MuhammadAdil Raja

Introduction

DevOpsTools

Development

CodeScripting

Conclusions

OUTLINE

1 INTRODUCTION

2 DEVOPS TOOLS

3 DEVELOPMENT

4 CODE SCRIPTING

5 CONCLUSIONS

DevOpsDemystified

MuhammadAdil Raja

Introduction

DevOpsTools

Development

CodeScripting

Conclusions

OUTLINE

1 INTRODUCTION

2 DEVOPS TOOLS

3 DEVELOPMENT

4 CODE SCRIPTING

5 CONCLUSIONS

DevOpsDemystified

MuhammadAdil Raja

Introduction

DevOpsTools

Development

CodeScripting

Conclusions

OUTLINE

1 INTRODUCTION

2 DEVOPS TOOLS

3 DEVELOPMENT

4 CODE SCRIPTING

5 CONCLUSIONS

DevOpsDemystified

MuhammadAdil Raja

Introduction

DevOpsTools

Development

CodeScripting

Conclusions

OUTLINE

1 INTRODUCTION

2 DEVOPS TOOLS

3 DEVELOPMENT

4 CODE SCRIPTING

5 CONCLUSIONS

DevOpsDemystified

MuhammadAdil Raja

Introduction

DevOpsTools

Development

CodeScripting

Conclusions

WHAT IS DEVOPS

Development and Operations teams collaborate to:Continuous delivery.Continuous integration.Continuous testing....

DevOpsDemystified

MuhammadAdil Raja

Introduction

DevOpsTools

Development

CodeScripting

Conclusions

DEVOPS TOOLS

Tool chains.Version control.Automation tools – Build, test, release, integrationautomation.Containers vs virtual machines.Docker.

DevOpsDemystified

MuhammadAdil Raja

Introduction

DevOpsTools

Development

CodeScripting

Conclusions

DOCKER I

A container.

LXC.

Supported by IDEs – Netbeans.

Can be used for version control.

Has been adopted by major cloud services like AWsand Microsoft Azure.

DevOpsDemystified

MuhammadAdil Raja

Introduction

DevOpsTools

Development

CodeScripting

Conclusions

DOCKER II

FIGURE: Virtual Machines vs Containers.

DevOpsDemystified

MuhammadAdil Raja

Introduction

DevOpsTools

Development

CodeScripting

Conclusions

PROGRAMMING I

Specifications -> Design -> Code -> Test.

Design -> Skeleton Code.

easyUML.

Hand knitting.

Method implementation.

DevOpsDemystified

MuhammadAdil Raja

Introduction

DevOpsTools

Development

CodeScripting

Conclusions

PROGRAMMING II

FIGURE: A simple schematic diagram of NUAV testbed.

DevOpsDemystified

MuhammadAdil Raja

Introduction

DevOpsTools

Development

CodeScripting

Conclusions

PROGRAMMING III

FLY PLANE

public class MainClass {public s t a t i c void main ( ) {

Data data ;i n t d ;PlaneFlyer f l y e r =new PlaneFlyer ( ) ;f l y e r . f l yP lane ( data ) ;processData ( data ) ;saveData ( data ) ;

}}

public class PlaneFlyer {private i n t data , r o l l ;private Data myData ;public Data f l yP lane ( Data data , i n t d ) {

data=d ;d=25;data . v e l o c i t y =ve l ;data . p i t c h = p i t c h ;data . r o l l = r o l l ;th is . r o l l =data . r o l l ;return data ;

}

}

DevOpsDemystified

MuhammadAdil Raja

Introduction

DevOpsTools

Development

CodeScripting

Conclusions

ROCKET SCIENCE FOR DUMMIES

FIGURE: Plane orientations.

DevOpsDemystified

MuhammadAdil Raja

Introduction

DevOpsTools

Development

CodeScripting

Conclusions

FLYPLANE() I

FLY PLANE

public void f l yP lane ( Data data ) {data . v e l o c i t y =ve l ;data . p i t c h = p i t c h ;data . r o l l = r o l l ;return true ;

}

FLY PLANE

public boolean f l yP lane ( Data data ) {i f ( data != nul l ) {

data . v e l o c i t y =ve l ;data . p i t c h = p i t c h ;data . r o l l = r o l l ;return true ;

}else

return fa lse ;}

DevOpsDemystified

MuhammadAdil Raja

Introduction

DevOpsTools

Development

CodeScripting

Conclusions

FLYPLANE() II

FLY PLANE

public boolean f l yP lane ( Data data ) {i f ( data != nul l ) {

i f ( data . v e l o c i t y < c r i t i c a l _ v e l o c i t y ) {data . t h r o t t l e +=0.01;

}else {

data . t h r o t t l e −=0.01;}i f ( data . r o l l > c r i t i c a l _ r o l l )

th is . a d j u s t A i l e r o n s ( data ) ;i f ( data . p i t ch > c r i t i c a l _ p i t c h )

th is . ad j us tE leva to r ( data )i f ( data . yaw> c r i t i c a l _ y a w )

th is . adjustRudder ( data ) ;return true ;

}else

return fa lse ;}

DevOpsDemystified

MuhammadAdil Raja

Introduction

DevOpsTools

Development

CodeScripting

Conclusions

FLYPLANE() III

FLY PLANE

public boolean f l yP lane ( Data data ) {i f ( data != nul l ) {

neuralNetwork ( data ) ;sendDataToPlane ( data ) ;return true ;

}else

return fa lse ;}

DevOpsDemystified

MuhammadAdil Raja

Introduction

DevOpsTools

Development

CodeScripting

Conclusions

ERRORS IN FLYPLANE()

Velocity North

Velocity East

Velo

city D

ow

n

-1

0

-4

-3

-2

1

3

4

-1

0

1

2

-2

-3 -1

0

1

2

FIGURE: Errors in flyPlane().

DevOpsDemystified

MuhammadAdil Raja

Introduction

DevOpsTools

Development

CodeScripting

Conclusions

SCRIPTING VS PROGRAMMING

Interpretation vs compilation.Dynamically typed languages.Python, PhP.Scripting allows agile development.Groovy.

DevOpsDemystified

MuhammadAdil Raja

Introduction

DevOpsTools

Development

CodeScripting

Conclusions

GROOVY I

All Java code is valid Groovy code.

GroovyLab.

Groovy on Grails.

Compilation of groovy code.

DevOpsDemystified

MuhammadAdil Raja

Introduction

DevOpsTools

Development

CodeScripting

Conclusions

GROOVY II

GROOVY CODE

class Student {private i n t StudentID ;private S t r i n g StudentName ;

void setStudent ID ( i n t pID ) {StudentID = pID ;

}

void setStudentName ( S t r i n g pName) {StudentName = pName;

}

i n t getStudent ID ( ) {return th is . StudentID ;

}

S t r i n g getStudentName ( ) {return th is . StudentName ;

}

s t a t i c void main ( S t r i n g [ ] args ) {Student s t = new Student ( ) ;s t . setStudent ID ( 1 ) ;s t . setStudentName ( " Joe " ) ;

p r i n t l n ( s t . getStudent ID ( ) ) ;p r i n t l n ( s t . getStudentName ( ) ) ;

}}

DevOpsDemystified

MuhammadAdil Raja

Introduction

DevOpsTools

Development

CodeScripting

Conclusions

THANK YOU!

This presentation is developed using LATEXBeamer.Frankfurt, spruce, sidebar