Back to Blog
1/10/202412 min read

DevOps Best Practices: From Code to Production

DevOpsCI/CDDocker

DevOps Best Practices: From Code to Production


A comprehensive guide to implementing CI/CD pipelines, containerization strategies, and monitoring solutions.


CI/CD Pipeline Setup


Here's how I structure my GitHub Actions workflows:


yaml

name: CI/CD Pipeline

on:

push:

branches: [main]

pull_request:

branches: [main]


jobs:

test:

runs-on: ubuntu-latest

steps:

- uses: actions/checkout@v3

- name: Run tests

run: |

npm install

npm test


Docker Best Practices


Containerization is key to consistent deployments:


dockerfile

Multi-stage build for optimization

FROM node:18-alpine AS builder

WORKDIR /app

COPY package*.json ./

RUN npm ci --only=production


FROM node:18-alpine

WORKDIR /app

COPY --from=builder /app/node_modules ./node_modules

COPY . .

EXPOSE 3000

CMD ["npm", "start"]


Monitoring and Logging


Proper monitoring is essential for production systems:


python

import logging

from prometheus_client import Counter, Histogram


Metrics

request_counter = Counter('http_requests_total', 'Total HTTP requests')

request_duration = Histogram('http_request_duration_seconds', 'HTTP request duration')


Logging

logging.basicConfig(level=logging.INFO)

logger = logging.getLogger(__name__)


Written by Vasu Jain
Backend Developer Portfolio