Post on 11-Jan-2017
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
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
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.