Ravindra BagaleCourses & study guides Track your progress

Guides

DevOps क्या है? शुरुआती guide

Read this guide in: English · मराठी · हिंदी

Why DevOps चाहिए? क्योंकि developers और operations के बीच असली problem है। Developers application लिखते हैं। Operations मतलब server side पर काम करने वाला employee — वह app को server पर रखता है, चलाता रहता है, logs जाँचता है, और site गिरे तो phone उठाता है। जब ये दोनों पक्ष दीवार के ऊपर से काम फेंकते हैं, shipping धीमी और डरावनी हो जाती है। DevOps वह आदत है जो उन्हें एक तेज़ loop में जोड़ती है: plan, code, build, test, release, deploy, operate, feedback — Git, Docker और CI/CD जैसी shared tools के साथ।

दोस्तों, tool logos से शुरू मत करो। पहले developer और server-side person की लड़ाई समझो। फिर loop आसान लगेगा।

संक्षिप्त उत्तर

यह खड़ा नक्शा पकड़ो:

  1. Developer — code लिखता और बदलता है।
  2. Operations — server-side employee जो deploy करता है, restart करता है, health देखता है।
  3. Problem — “laptop पर चलता है” vs “server पर टूटा”; blame; mystery zip / गलत build।
  4. DevOps — दोनों पक्ष एक loop और वही automated रास्ता साझा करते हैं।
  5. छोटी line: DevOps = developers + operations एक team, एक process।

Language: English · मराठी · हिंदी

DevOps क्यों चाहिए?

Product की चिंता करने वाले दो तरह के लोगों में problem है:

  1. Developers — features बनाते हैं, bugs सुधारते हैं, code लिखते हैं।
  2. Operations — server side वाले लोग। वे packages install करते हैं, builds copy करते हैं, ports सावधानी से खोलते हैं, services restart करते हैं, logs पढ़ते हैं, और production ज़िंदा रखते हैं।

Developers सिर्फ़ “code खत्म” और operations सिर्फ़ “server पर कुछ रख दिया” — shared system न हो तो हर release बहस बन जाती है। इसलिए DevOps चाहिए।

“Operations” का मतलब क्या? (सीधी भाषा)

Class भाषा:

  1. Operations सिर्फ़ LinkedIn का buzzword नहीं है।
  2. Operations मतलब server side पर काम करने वाला employee (या team)।
  3. उनका दिन: server पर SSH, disk जाँचना, service restart, error logs पढ़ना, backup, खराब deploy rollback।

Developers code में रहते हैं। Operations चलते server के साथ रहता है। DevOps दोनों से change → live users की यात्रा own करने को कहता है।

Problem क्या है? Suppose we are…

Suppose we are building Instagram (like updates)

Suppose आप Instagram-style features — feed, stories, likes — ship करने वाली team पर हैं।

  1. Monday — developer “profile पर नया badge” खत्म करता है। Laptop पर चलता है।
  2. Chat में “done” और किसी को zip / build folder देते हैं।
  3. Wednesday — operations person (server-side) दूसरी outage में व्यस्त। समय मिलने पर files production server पर copy करता है।
  4. Laptop पर एक library version; server पर दूसरी। असली users को टूटा profile page दिखता है।
  5. Friday night — support आता है। Developer: “मेरी machine पर चला।” Operations: “मैंने सिर्फ़ जो दिया वही रखा।” कौन‑सा build live है पक्का नहीं। Blame शुरू।

वही लड़ाई — app developer vs server-side operations — इसलिए कंपनियाँ DevOps आदतें बनाती हैं।

Suppose we are working at Netflix and we are giving updates

Suppose आप Netflix पर काम करते हैं और team को बार‑बार updates देने हैं — home screen पर नई rows, bug fixes, छोटे UI बदलाव।

  1. हर update के लिए एक operations person servers पर manual copy करे तो Netflix हफ़्ते में कई बार सुरक्षित ship नहीं कर सकता।
  2. एक खराब manual step और लाखों viewers को break महसूस होता है।
  3. इसलिए चाहिए: shared Git history, हर बदलाव पर automatic tests, हर server पर वही package, और repeatable deploy path — “उस एक व्यक्ति से रात को files copy करवाओ” नहीं।

बड़े streaming apps छोटे, बार‑बार, automated updates पर जीते हैं — यही DevOps thinking at scale।

Suppose you are working in Infosys (or a similar company) on a client project

Suppose आप Infosys (या किसी बड़ी services company) में client banking / retail app पर काम करते हैं।

  1. Developer team एक शहर में; client का operations / infra team servers own करता है।
  2. आप build email करते हैं। वे अपने calendar पर deploy करते हैं। Environments अलग (dev laptop ≠ client UAT ≠ production)।
  3. Release day war room: गलत config, missing file, “किसने approve किया?”
  4. Client को आपके laptop demo की परवाह नहीं — उन्हें production चलना चाहिए।

ऐसी jobs में DevOps skills ज़रूरी क्योंकि आपको दोनों भाषाएँ बोलनी हैं: code change और वह server पर सुरक्षित कैसे आता है।

DevOps joins developers and operations in one loop Developers write code; operations (server-side) runs servers. DevOps shares one loop: plan, code, build, test, deploy, operate, then feedback. Developer writes code "works on laptop" Operations server-side deploy / logs wall / blame DevOps Plansmall goal CodeGit BuildCI test Deploysame path Operate + feedbacklogs · health · next plan Instagram-style updates · Netflix releases · Infosys client projects one team, one loop

Developers write code; operations (server-side) runs servers. DevOps joins them in one loop: plan → code → build → deploy → operate, then feedback.

Developer vs operations wall, then DevOps loop Before DevOps: developer and server-side operations throw work over a wall. After: one shared automated loop. Before (wall) After (DevOps) Developerzip / “done” Operationsserver-side blame Shared loop Git · CI · Docker · deploy path same package on laptop & server feedback → next plan Instagram / Netflix / Infosys stories fix the wall first

Before: developer and operations throw work over a wall. After DevOps: one shared path with Git, CI, Docker and a known deploy.

DevOps उसी लड़ाई का जवाब कैसे देता है

वही Instagram-style badge feature, नई आदत:

  1. Plan — इस हफ़्ते एक छोटा लक्ष्य (badge), पूरी app का rewrite नहीं।
  2. Code — बदलाव पहली line से Git में (author, message, history — mystery zip नहीं)।
  3. Build और test (CI) — हर push पर computer वही checks चलाता है (GitHub Actions या Jenkins)। Failures Friday night से पहले दिखते हैं।
  4. Package — Docker (या एक साफ़ build) ताकि laptop और server वही bits चलाएँ।
  5. Deploy — developers और operations वही script या pipeline इस्तेमाल करते हैं — one-off copy-paste नहीं।
  6. Operate + feedback — logs और health साथ; incident अगला plan बनता है, सिर्फ़ blame call नहीं।

अब developer और server-side operations person दो दुश्मन teams नहीं। वे एक loop साझा करते हैं।

DevOps loop (अभी भी real-world “suppose” के साथ)

Plan

Suppose we are Netflix: इस sprint का plan एक home-row fix — “पूरी app rebuild” नहीं।

Code with Git

Suppose दो Infosys developers वही file edit करते हैं। Git न हो तो email attachments एक‑दूसरे पर लिखते हैं। Git हो तो हर save एक commit; काम branch पर; main releasable रहता है।

Build and test (CI)

Suppose Instagram-style push से पहले किसी ने tests याद नहीं रखे। CI हर push पर आपके लिए याद रखता है — वही command, वही result।

Package

Suppose laptop पर Python/Node version A और client server पर version B। वही code, अलग result। Docker मतलब “हर जगह वही runtime” जवाब।

Deploy and operate

Suppose Friday deploy सिर्फ़ operations के हाथ से copy होता था। अब वही deploy path Tuesday या Friday चलता है। Operations अभी भी server देखता है — पर known version और rollback कहानी के साथ।

शुरुआती पहले कौन‑से tools सीखें — हर tool असली problem से जुड़ता है

ऊपर की stories का pain Starter tool Role
कौन‑सा build live? Git + GitHub History और review
सिर्फ़ laptop पर चलता है Docker Server पर वही app
App + database साथ Docker Compose Multi-service stack
किसी ने checks नहीं चलाए GitHub Actions या Jenkins Automated build/test/deploy
Server config drifts Ansible Servers पर desired state
Cloud console में किसने क्या click किया? Terraform Infrastructure as code

पहले दिन Kubernetes नहीं चाहिए। पहले Git और Docker से developer vs operations दीवार घटाओ।

Ravindra Bagale's Tip

बहुत students tool names पर कूदते हैं — Docker, Jenkins, Kubernetes — और फिर भी जवाब नहीं दे पाते: “Operations क्या है?” और “Developer और server-side person के बीच problem क्या थी?” Interview में पहले real example बताओ: Instagram-style update, Netflix frequent release, Infosys client server। फिर DevOps loop। फिर एक tool जो तुमने practice किया। याद रखो।

आम beginner mistakes

Mistake Better habit
DevOps = सिर्फ़ Jenkins समझना पहले developer vs operations problem बताओ
“Operations” क्या है अनदेखा बोलो: server-side employee / team
Manual copy-paste deploys हर बार वही path (script/pipeline)
विशाल दुर्लभ releases छोटे बार‑बार updates (Netflix-style thinking)
Git छोड़ना “कौन‑सा build?” problem वापस आता है

आगे क्या सीखें?

  1. Git basics for DevOps beginners — mystery zip / build रोकें
  2. Git branching and pull requests — server देखने से पहले review
  3. Install Docker on EC2 — असली server पर वही app

Learn it properly

इस कहानी के पास AWS ops skills:

Samajla ka? Why DevOps = developer vs operations problem; operations = server-side person; “suppose we are building Instagram / working at Netflix / working at Infosys” लड़ाई दिखाता है; loop मतलब दोनों पक्ष एक साथ कैसे काम करते हैं। आज रात अगली guide।

Frequently asked questions

What does DevOps mean?

DevOps joins developers and operations (the server-side employee/team) so shipping uses one loop: plan, code, build, test, deploy and feedback — like Instagram-style updates, Netflix frequent releases, or an Infosys client project.

Is DevOps only tools?

No. Tools help, but culture and process matter: small changes, automation, and shared ownership of failures.

Do I need Kubernetes on day one?

No. Beginners start with Git, Linux basics, Docker and one CI tool. Kubernetes comes later.

How is DevOps different from Agile?

Agile improves how you plan and deliver work in iterations. DevOps extends that into build, release and operations with automation.

What should I learn first?

Git and the terminal, then Docker, then a simple GitHub Actions or Jenkins pipeline.

Where does AWS fit?

AWS (or any cloud) is where many apps run. DevOps skills deploy and operate those apps reliably.

Practice Tasks

About this scenario

Suppose we are on the DevOps team at Atlassian, the developer software company, working from Sydney. Liam O'Connor leads the team, and we look after the issue tracker webhook service. Costs are counted in AUD. In the tasks below we do real DevOps jobs on this project using what this lesson teaches. Atlassian is a real company, but this project, the people, servers, IP addresses and numbers are made up for practice.

0 / 12

Easy Name the practice

Why: Knowing the names helps you in interviews and design talks.

What to do: At Atlassian every developer merges small changes into main several times a day, and each merge is built and tested automatically. What is this practice called (two-letter short form)?

How:
  1. Write down the facts or numbers the task gives you.
  2. Work it out step by step.
  3. Type only the final answer (one word or number) in the box.
  4. Click Check answer.

Easy List all files with details

Why: Hidden files (like .env) and file sizes or owners only show with the right options.

What to do: Show a long listing of every file, including hidden ones, in /var/www/atlassian.

How:
  1. Find the Linux command that does this job.
  2. Add the options (like -r or -h) the task needs.
  3. Add the file names, folders or users in the right order.
  4. Click Check answer.

Easy Which port does the user hit?

Why: Mixing host and container ports is the most common docker mistake.

What to do: A container was started with -p 8443:3000. Which port do you open in the browser on the host?

How:
  1. Write down the facts or numbers the task gives you.
  2. Work it out step by step.
  3. Type only the final answer (one word or number) in the box.
  4. Click Check answer.

Easy Stage every change

Why: Before the first commit you usually want every new file included.

What to do: Stage every new and changed file in the current folder and below.

How:
  1. Read the task and pick the tool it needs (git, docker, kubectl, terraform, ansible...).
  2. Write the tool name, then the sub-command (the action word).
  3. Add the flags the task needs, each followed by its value.
  4. Add names, files or paths at the end, then click Check answer.

Easy Stage one file

Why: Only staged changes go into the next commit.

What to do: Stage only the file Dockerfile for the next commit.

How:
  1. Read the task and pick the tool it needs (git, docker, kubectl, terraform, ansible...).
  2. Write the tool name, then the sub-command (the action word).
  3. Add the flags the task needs, each followed by its value.
  4. Add names, files or paths at the end, then click Check answer.

Easy Clone a repository

Why: Cloning gives you the full project and its history on your machine.

What to do: Download the repository https://github.com/atlassian/atlassian-issue-tracker-webhook.git to this machine.

How:
  1. Read the task and pick the tool it needs (git, docker, kubectl, terraform, ansible...).
  2. Write the tool name, then the sub-command (the action word).
  3. Add the flags the task needs, each followed by its value.
  4. Add names, files or paths at the end, then click Check answer.

Easy Commit with a message

Why: A clear message tells the team why the change was made.

What to do: Commit the staged changes with the message "Add health check to issue-tracker-webhook".

How:
  1. Read the task and pick the tool it needs (git, docker, kubectl, terraform, ansible...).
  2. Write the tool name, then the sub-command (the action word).
  3. Add the flags the task needs, each followed by its value.
  4. Add names, files or paths at the end, then click Check answer.

Medium Delivery or deployment?

Why: The two words mean different levels of automation.

What to do: At Atlassian every change that passes tests goes to production automatically, with no human approval. Is this continuous delivery or continuous deployment? Type one word.

How:
  1. Write down the facts or numbers the task gives you.
  2. Work it out step by step.
  3. Type only the final answer (one word or number) in the box.
  4. Click Check answer.

Medium Run the build inside a Docker agent

Why: A Docker agent gives a clean, versioned toolchain for every build.

What to do: Declarative pipeline with agent docker { image 'maven:3.9-eclipse-temurin-21' } and stage Build running sh 'mvn -B verify'.

How:
  1. Start with pipeline { and close it with } at the end.
  2. Add agent, then stages { } with one stage('Name') { steps { } } per step.
  3. Put the commands inside steps using sh '...'.
  4. Count your { and } so every block is closed, then click Check answer.

Hard Name the approach

Why: GitOps tools like Argo CD are now common in K8s teams.

What to do: At Atlassian a tool inside the cluster keeps pulling manifests from a Git repo and makes the cluster match it. What is this approach called (one word)?

How:
  1. Write down the facts or numbers the task gives you.
  2. Work it out step by step.
  3. Type only the final answer (one word or number) in the box.
  4. Click Check answer.

Hard Build and push an image from CI

Why: Every merge to main gives a fresh image in the registry.

What to do: Workflow on push to main. Job image on ubuntu-latest. Steps: actions/checkout@v4; docker/login-action@v3 with registry ghcr.io, username ${{ github.actor }}, password ${{ secrets.GITHUB_TOKEN }}; docker/build-push-action@v6 with push true and tags ghcr.io/atlassian-issue-tracker-webhook:${{ github.sha }}.

How:
  1. Start from the top-level keys the task names.
  2. Indent child keys with 2 spaces (no tabs).
  3. Use "- " for list items and fill each value from the task.
  4. Check the colons and spacing, then click Check answer.

Hard Use Jenkins credentials safely

Why: withCredentials masks the password and removes it after the block.

What to do: Inside stage Push steps, use withCredentials with usernamePassword(credentialsId: 'reg-cred', usernameVariable: 'U', passwordVariable: 'P') and run sh 'echo $P | docker login -u $U --password-stdin registry.atlassian.example.com'. Wrap it in a full declarative pipeline with agent any.

How:
  1. Start with pipeline { and close it with } at the end.
  2. Add agent, then stages { } with one stage('Name') { steps { } } per step.
  3. Put the commands inside steps using sh '...'.
  4. Count your { and } so every block is closed, then click Check answer.