icebreakerwithdevops-150218112943-conversion-gate02

24
Ice Breaker with DevOps Mukta Aphale, DevOps Architect

Upload: manohar-kumar

Post on 23-Jan-2018

97 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: icebreakerwithdevops-150218112943-conversion-gate02

Ice Breaker with DevOpsMukta Aphale, DevOps Architect

Page 2: icebreakerwithdevops-150218112943-conversion-gate02

Hey DevOps, where do I start with you?!

Page 3: icebreakerwithdevops-150218112943-conversion-gate02

Step 1: Make A Start!

Learning DevOps is like learning to ride a bicycle.You learn to balance, only when you are in motion!

Page 4: icebreakerwithdevops-150218112943-conversion-gate02

Make A Start To Realise...

● 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

Page 5: icebreakerwithdevops-150218112943-conversion-gate02

Step 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

Page 6: icebreakerwithdevops-150218112943-conversion-gate02

New 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!

Page 7: icebreakerwithdevops-150218112943-conversion-gate02

Step 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!

Page 8: icebreakerwithdevops-150218112943-conversion-gate02

Step 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

Page 9: icebreakerwithdevops-150218112943-conversion-gate02

Jack of All...● Go through each of the

following slides thoroughly

● Understand all the terms and concepts that follow

● And you would be a Jack of DevOps!

Page 10: icebreakerwithdevops-150218112943-conversion-gate02
Page 11: icebreakerwithdevops-150218112943-conversion-gate02

Master One Topic

● Pick up a topic that interests you more● Take a deep dive into that topic to master

it!

Page 12: icebreakerwithdevops-150218112943-conversion-gate02

Version Control

● Source Code Version Controlo 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!

Page 13: icebreakerwithdevops-150218112943-conversion-gate02

Continuous 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

Page 14: icebreakerwithdevops-150218112943-conversion-gate02

Automated Code Review and Analysis

● Dont 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

o Static Code Analysiso Lint toolso SonarQubeo JArchitecto Codacyo CodeClimate

Page 15: icebreakerwithdevops-150218112943-conversion-gate02

Build ToolsBuild 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

Page 16: icebreakerwithdevops-150218112943-conversion-gate02

Artifact 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:

o Artifactory (PaaS offering)o Sonatype Nexus

Page 17: icebreakerwithdevops-150218112943-conversion-gate02

CI Server

● Continuous Integration server can be setup in-house or used as a PaaS solution.

● Try some hands-on with both CI servers mentioned belowo Hosted Travis-CIo Jenkins

Page 18: icebreakerwithdevops-150218112943-conversion-gate02

Configuration Management

● This literally translates to “Infrastructure Automation”

● Following are the 3 most popular CM tools. Study 2 of them well.o Ansibleo Puppet OR Chef

Page 19: icebreakerwithdevops-150218112943-conversion-gate02

Continuous 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.

Page 20: icebreakerwithdevops-150218112943-conversion-gate02

Release 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.

Page 21: icebreakerwithdevops-150218112943-conversion-gate02

Monitoring

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

Page 22: icebreakerwithdevops-150218112943-conversion-gate02

Assignment: Setup a CI/CD Pipeline

● Create a HelloWorld project on github● Use hosted Travis-CI as build server● With every git push:

o HelloWorld build should be triggered in Travis-CIo Run unit testso If they pass, save the build output to Nexuso 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

Page 23: icebreakerwithdevops-150218112943-conversion-gate02

Are you ready to move deeper 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

Page 24: icebreakerwithdevops-150218112943-conversion-gate02

Thanks!

You can get in touch with me:[email protected]

Twitter: @manoharmanav