Best of CI/CDAugust 2024

  1. 1
    Article
    Avatar of communityCommunity Picks·2y

    Brief overview : AWS EC2 Instance Setup and Secure CI/CD Pipeline with Jenkins

    Setting up a secure and efficient CI/CD pipeline on AWS EC2 using Jenkins involves several key steps. Begin by provisioning an AWS EC2 instance and configuring it, followed by securing access through SSH. Install and configure Jenkins, including essential plugins for Docker, SonarQube, and security checks. Build a Jenkins pipeline with stages for workspace preparation, code checkout, static code analysis, and security scanning. Final steps include managing Docker images and deploying the application with reporting mechanisms for stakeholders.

  2. 2
    Article
    Avatar of communityCommunity Picks·2y

    Deployment to Kubernetes with ArgoCD

    The post provides a detailed guide on deploying applications to a Kubernetes cluster using ArgoCD. It includes Terraform configurations for setting up the DigitalOcean container registry and Kubernetes cluster, Nginx Ingress Controller for managing HTTP and HTTPS routing, and Cert Manager for automating TLS certificate management. The tutorial also covers initializing a Node.js application, using GitHub Actions to build and push Docker images, and configuring ArgoCD to monitor a Git repository for changes.

  3. 3
    Article
    Avatar of softwaretestingmagazineSoftware Testing Magazine·2y

    Who Is a DevOps Engineer, and What Does This Role Involve?

    DevOps engineers bridge the gap between development and operations, ensuring faster and more reliable software releases. They focus on automating infrastructure provisioning, collaborating with development teams, and improving system reliability and uptime. They require a diverse set of skills, from cloud platforms to CI/CD pipelines. The role emphasizes cultural transformation and collaboration to deliver better software and achieve organizational success.

  4. 4
    Article
    Avatar of faunFaun·2y

    Securely Scale CI/CD with Self-Hosted GitHub Runners on AWS

    Utilizing self-hosted GitHub runners on AWS addresses limitations with GitHub’s hosted runners by providing greater control over computing resources, environment customization, security, and integration with internal tools. This setup involves deploying an EC2 instance as a public-facing web server and a private instance as a self-hosted GitHub runner to improve the efficiency, security, and customization of CI/CD workflows. Key steps include configuring Docker, SSH key generation, setting up AWS CLI, and creating CI/CD workflows in GitHub Actions.

  5. 5
    Article
    Avatar of communityCommunity Picks·2y

    Astro for Documentation Sites: Insights After 6 Months

    Six months after launching a new documentation site with Astro, the experience has been positive. Maintenance is straightforward, collaboration is smooth, and built-in components enhance content. The shift to using `mdx` files offers more options but raises future compatibility concerns. Migrating the site from a subdomain to a subfolder for SEO involved some complexities. Overall, Astro and its Starlight components are highly recommended for documentation sites.

  6. 6
    Article
    Avatar of itnextITNEXT·2y

    How to Deploy Preview Environments on Kubernetes with GitHub Actions

    Preview environments offer a safe, isolated space for testing and debugging code changes before merging into the main branch. They enhance collaboration, reduce costs, and seamlessly integrate with CI/CD pipelines for continuous integration and deployment. This guide outlines setting up preview environments for backend services and APIs using Kubernetes, Docker, and GitHub Actions. It covers Kubernetes resources, container configuration, and specific GitHub Actions workflows for deploying previews. The setup ensures unique deployment names, manages environment variables, and handles clean-up tasks automatically.

  7. 7
    Article
    Avatar of communityCommunity Picks·2y

    Testing Staging and Production environments in Playwright

    Learn how to set the baseURL in Playwright to facilitate testing across various environments like development, staging, and production. This includes how to navigate using relative paths, configure sub-paths, and set environment-specific URLs using environment variables. The guide also covers running tests with different configurations, integrating with CI pipelines, and setting up Playwright projects for different environments.

  8. 8
    Article
    Avatar of communityCommunity Picks·2y

    Build and deploy a chat application using Socket.io and Redis.

    Learn how to build a chat application that leverages web sockets for real-time data transfer, utilizes Redis for data storage, and can be deployed on platforms like Render or Google Cloud Run. This guide walks you through setting up a socket server, managing user and room data in Redis, handling events such as room creation and message sending, and deploying your server using Docker.

  9. 9
    Article
    Avatar of gopenaiGoPenAI·2y

    MLOps All You Need To Know

    MLOps integrates machine learning (ML) development and operations, emphasizing automation and monitoring across the ML lifecycle. It is a specialized extension of DevOps tailored for ML systems, involving complex tasks such as continuous training and comprehensive testing. The maturity of MLOps pipelines is classified into multiple levels, with a continuous feedback loop for deploying, monitoring, and analyzing models in production.

  10. 10
    Article
    Avatar of uberUber Engineering·2y

    Continuous deployment for large monorepos

    Uber has reimagined its continuous deployment (CD) strategy to improve the automation, safety, and user experience of managing its numerous microservices, especially those within large monorepos. They transitioned to using a unified CD system, Up CD, which integrates closely with existing testing and monitoring tools. This shift has resulted in a significant increase in automated deployments and a reduction in production incidents, despite an increase in the number of changes being deployed. New mechanisms were also introduced to mitigate risks associated with widely-shared code changes.

  11. 11
    Article
    Avatar of devopsDevOps.com·2y

    DevOps Automation: A Detailed Guide

    DevOps automation reduces human assistance in processes that connect development and operations teams, enabling faster iterative updates to production applications. Key aspects include setting clear goals, frequent automation of processes, robust testing and monitoring, and leveraging CI/CD platforms and Infrastructure as Code (IaC). Essential tools like Kubernetes, Docker, Splunk, and Ansible facilitate automation, enhance software quality, and reduce time to market.

  12. 12
    Article
    Avatar of thedevcraftThe Dev Craft·2y

    Automatic Changelog in Github Actions

    Set up an automatic changelog in GitHub Actions by taking the diff between the latest release tag and the current tag. This process helps streamline release notes creation for continuous integration.

  13. 13
    Article
    Avatar of itnextITNEXT·2y

    Creating Envless Angular-application

    This post explores methods for creating Angular applications that do not rely on environment-specific configuration files. It addresses the challenges of managing multiple `environment.<env>.ts` files, proposing two solutions to streamline the process: obtaining configuration from a server and configuring a docker image. Each solution's implementation steps, advantages, and disadvantages are discussed to help developers achieve flexible and efficient deployment.

  14. 14
    Article
    Avatar of freecodecampfreeCodeCamp·2y

    How to Build a Serverless CRUD REST API with the Serverless Framework, Node.js, and GitHub Actions

    Serverless computing simplifies the development and deployment of applications by handling infrastructure management. This tutorial guides you through building a serverless CRUD REST API using the Serverless Framework, Node.js, and GitHub Actions. Key concepts include understanding APIs, HTTP methods, Amazon API Gateway, AWS Lambda, and Amazon DynamoDB. The process covers setting up the environment, defining APIs in a YAML file, developing Lambda functions, and configuring a CI/CD pipeline for automated multi-stage deployments.

  15. 15
    Article
    Avatar of gitlabGitLab·2y

    FAQ: GitLab CI/CD Catalog

    The GitLab CI/CD Catalog enhances software development by enabling users to discover, reuse, and contribute CI/CD components. Available starting from GitLab 17.0, the catalog supports version control, composite components, and multiple input types. It can be used both on GitLab.com and self-managed instances. Testing strategies include using $CI_COMMIT_SHA and child pipelines. Users can create private components, clone public repos, and prevent job name collisions using dynamic names. Documentation and best practices are essential for effective usage.

  16. 16
    Article
    Avatar of communityCommunity Picks·2y

    Testing web application performance with Playwright

    Performance tests using Playwright offer a reliable way to measure metrics like LCP, CLS, and FCP in a controlled browser environment. These tests should be executed on every preview deployment in CI to ensure changes to the code don't degrade performance. By comparing the current results with previous ones, developers can identify performance improvements or regressions.

  17. 17
    Article
    Avatar of asayerasayer·2y

    Building Resilient Applications

    Applications are crucial for businesses, but they must be resilient to minimize downtime and maintain functionality during disruptions. Key strategies include fault tolerance, high availability, disaster recovery, redundancy, automated failover, monitoring, regular backups, and automated testing through CI/CD pipelines. Design for failure and chaos engineering also play crucial roles in preemptively identifying and addressing weaknesses. Real-world examples, such as Netflix's chaos engineering and Amazon's cloud resilience, show the effectiveness of these methods in ensuring high availability. A well-defined disaster recovery plan is essential for recovering from major incidents and minimizing downtime.

  18. 18
    Article
    Avatar of itnextITNEXT·2y

    Optimising Docker Builds: Leveraging Build Cache for Efficient Development

    Docker build cache allows developers to reuse previously built layers to speed up build times. Utilizing multi-stage builds in Dockerfiles can further enhance caching efficiency. Setting up build cache involves creating a multi-stage Dockerfile, enabling specific settings in Docker Desktop, and using Docker commands to build and push the cache. Sharing the cache through a Docker Registry can optimize the workflow for teams, ensuring faster builds and improved productivity. Best practices include using .dockerignore files and regularly updating the cache.

  19. 19
    Article
    Avatar of devtronDevtron·2y

    CD Pipeline: Enhance Your Kubernetes Deployments

    Many teams have finely tuned CI/CD pipelines which include code quality checks, vulnerability scanning, and automated testing. GitOps enhances the Continuous Deployment (CD) step with greater automation, avoidance of configuration drift, and better security. It ensures continuous reconciliation of the desired state against the observed state, allowing quick rollbacks to known good configurations. Devtron, integrated with ArgoCD, offers a seamless way to implement these enhancements, providing benefits like automated SLO-based rollbacks and advanced approval workflows.

  20. 20
    Article
    Avatar of colkgirlCode Like A Girl·2y

    CI/CD Pipeline: Continuous Integration/Continuous Delivery

    AWS developers use CI/CD pipelines to manage and automate application deployment, enabling features to be integrated, tested, and deployed continuously. The process includes using AWS CodeCommit for source control, AWS CodePipeline for triggering the pipeline, AWS CodeBuild for building the application, and AWS CodeDeploy for deploying it. Each service provides specific benefits such as scalability, encryption support, and integration capabilities, facilitating an efficient development and release process.

  21. 21
    Article
    Avatar of iotechhubiO tech_hub·2y

    Take control over your CI/CD process: Use GitHub Actions to deploy to Vercel

    Learn how to take full control of your CI/CD process by using GitHub Actions to deploy your application to Vercel. The guide walks you through setting up custom CI/CD pipelines, including steps for linting, testing, and building using GitHub Actions, and deploying your application to Vercel. It also highlights the benefits and downsides of this approach, and provides tips for creating efficient pipelines.

  22. 22
    Video
    Avatar of hnHacker News·2y

    How to write a programming language and shell in Go with 92% test coverage and instant CI/CD-Qi Xiao

    Qi Xiao, a former Google engineer, shares his experience in building a new programming language and shell called Elvish using Go. The talk covers the development process, achieving 92% test coverage, and implementing continuous integration and continuous deployment (CI/CD). Key insights include leveraging Go's features for efficient pipeline handling, using recursive descent parsers for interpretation, integrating modern programming features like functional programming, and adopting easy testing practices to maintain high test coverage.

  23. 23
    Article
    Avatar of hnHacker News·2y

    zuplo/rate-my-openapi

    Rate My OpenAPI offers a suite of tools including a website, CLI, GitHub Action, and API to help developers evaluate and improve their OpenAPI definitions. The tools assess documentation, SDK generation, security, and completeness, providing detailed feedback and actionable scores. Developers can upload OpenAPI files to the website, integrate the CLI into their workflows, use GitHub Actions for continuous quality checks, or directly access APIs for custom integration.

  24. 24
    Article
    Avatar of devopsDevOps.com·2y

    DevSecOps: Integrating Security Into the DevOps Lifecycle

    DevSecOps integrates security into the DevOps process, ensuring protection at every step of software development. By embedding security within the workflow, it creates a more secure end product while speeding up development and ensuring regulatory compliance. Key principles include 'security as code' and a shared responsibility model, with the use of automated security testing tools across different stages. Challenges include the need for skill upgrades and balancing rapid deployment with security. Emerging trends like AI in security, increased compliance, and cloud-native practices are set to shape the future of DevSecOps.

  25. 25
    Article
    Avatar of devtoDEV·2y

    Learn DevOps with 0 Knowledge for Freshers

    DevOps combines software development and IT operations to offer continuous integration and continuous delivery (CI/CD) of high-quality software. This guide provides a step-by-step approach for freshers, covering essential basics, foundational skills like programming and operating systems, version control with Git and GitHub, CI/CD tools such as Jenkins and GitLab, configuration management with Ansible and Puppet, containerization with Docker, orchestration with Kubernetes, cloud platforms like AWS, Azure, and Google Cloud, Infrastructure as Code (IaC), and monitoring tools like Prometheus and the ELK Stack. Practical experience and continuous learning through projects, courses, and community involvement are crucial for mastering DevOps.