DevOps System Implementation

From GM-RKB
Jump to navigation Jump to search

A DevOps System Implementation is a software platform that facilitates the creation of DevOps automation systems (to solve DevOps tasks).

  • Context:
  • Example(s):
    • Uber's Micro Deploy: Uber open-sourced their internal deployment platform called Micro Deploy, which enables developers to deploy code changes to a small subset of servers for testing before rolling out to production.
    • Netflix's Spinnaker: Netflix developed and open-sourced Spinnaker, a continuous delivery platform that helps manage multi-cloud deployments and pipelines.
    • Airbnb's Kubernetes Platform: Airbnb shared details of their internal Kubernetes platform, which they use to manage their containerized applications and infrastructure.
    • Spotify's Backstage: Spotify open-sourced Backstage, a developer platform that aims to streamline the development and deployment process by providing a centralized hub for managing services, documentation, and tooling.
    • Etsy's Deployinator: Etsy open-sourced Deployinator, a deployment tool that simplifies the process of deploying code to multiple environments and servers.
    • Facebook's Infer: Facebook released Infer, a static program analyzer for Java, C, C++, and Objective-C, which is used in their continuous integration and deployment pipelines.
    • Google's Kubernetes Engine: While not an internal platform, Google open-sourced Kubernetes, a widely adopted container orchestration system, which has become a foundational component of many DevOps platforms.
    • Hashicorp's Terraform: Hashicorp, known for their DevOps tools, open-sourced Terraform, an infrastructure as code (IaC) tool for provisioning and managing cloud resources.
    • LLMOps System, such as: ...
  • Counter-Example(s):
  • See: Opsera, ML Ops Platform.



References

2024

  • Perplexity
    • DevOps platforms are essential for software companies to streamline their development and operations processes. While third-party vendors offer commercial solutions, many companies choose to build their own internal DevOps platforms tailored to their specific needs, often leveraging open-source components and integrating with third-party tools.
    • ## Internal DevOps Platforms
    • Software companies, especially large enterprises and technology giants, frequently develop their own internal DevOps platforms for several reasons:
      1. **Customization**: Internal platforms can be customized to align with the company's unique workflows, tooling preferences, and infrastructure requirements, providing a better fit than off-the-shelf solutions.[1]
      2. **Security and Compliance**: Building an internal platform allows companies to maintain tighter control over security and compliance, ensuring adherence to industry regulations and internal policies.[2]
      3. **Cost Optimization**: While initial development costs may be higher, an internal platform can be more cost-effective in the long run, eliminating recurring licensing fees and vendor lock-in.[1]
      4. **Competitive Advantage**: A well-designed internal DevOps platform can become a competitive advantage, enabling faster software delivery, improved reliability, and better collaboration across teams.[2]
    • ## Leveraging Third-Party Components
    • Despite building internal platforms, companies often integrate with third-party tools and services to augment their capabilities. Common examples include:
      • **Source Control Management**: Git-based solutions like GitHub, GitLab, or Bitbucket for version control and collaboration.[1][2]
      • **Continuous Integration/Continuous Deployment (CI/CD)**: Tools like Jenkins, CircleCI, or Azure DevOps for automating build, test, and deployment pipelines.[1][2]
      • **Monitoring and Observability**: Solutions like Datadog, New Relic, or Prometheus for monitoring and troubleshooting applications and infrastructure.[2]
      • **Cloud Services**: Leveraging cloud providers' managed services (e.g., AWS, Azure, GCP) for infrastructure provisioning, scaling, and other operational tasks.[1][2]
    • By combining internal platforms with best-of-breed third-party components, companies can achieve a tailored DevOps solution that meets their specific needs while benefiting from the innovation and expertise of the broader DevOps ecosystem.[1][2]
    • Citations:

2021

  • https://www.redhat.com/en/topics/automation/what-is-devops-automation
    • QUOTE: ... DevOps automation is the addition of technology that performs tasks with reduced human assistance to processes that facilitate feedback loops between operations and development teams so that iterative updates can be deployed faster to applications in production.
    • DevOps Practice: DevOps is an approach to culture, automation, and platform design intended to deliver increased business value and responsiveness through rapid, high-quality service delivery. DevOps practices bring development and operations team members together into a single DevOps team. This moves ideas and projects from development to production faster and more efficiently. DevOps involves more frequent changes to code and more dynamic infrastructure use when compared to traditional, manual management strategies.
    • Automation: Automation is the use of technology to perform tasks with reduced human assistance. Automation helps you accelerate processes and scale environments, as well as build continuous integration, continuous delivery, and continuous deployment (CI/CD) workflows. There are many kinds of automation, including IT automation, business automation, robotic process automation, industrial automation, artificial intelligence, machine learning, and deep learning.
    • Provisioning: DevOps environments encompass a variety of technologies. Provisioning and deploying changes to these complex environments can be time-consuming and requires expert knowledge for each component. Applying Infrastructure as Code (IaC) approaches with automation allows IT teams to provide self-service capabilities and deliver preapproved resources and configurations with limited manual intervention.
    • Development: Software developers require IT resources to create, continually test, and deploy new applications and services. Manual IT operations can delay resources and complicate the service delivery pipeline. It can impede proof-of-concept performance, ultimately resulting in slower development. By combining application programming interface (API)-centric design with automation, IT teams can deliver resources faster while supporting rapid proofs of concept, development, testing (using test automation open source projects like Jenkins), and deployment.