“DevOps is a mindset, not a tool set”

“DevOps is a mindset, not a tool set”

DevOps is a software development methodology that accelerates the delivery of higher-quality applications and services by combining and automating the work of software development and IT operations teams.

Evolution of DevOps:

Waterfall Methodology

  • Before 2000, most software was developed and updated by using this methodology, a linear approach to large-scale development projects.
  • Software development?teams spent months developing large bodies of new code that impacted most or all of the application lifecycle.
  • Because the changes were so extensive, they spent several more months integrating that new code into the code base.?

Agile development

  • To speed development and improve quality, development teams began adopting agile software development methodologies in the early 2000s.
  • These methodologies are iterative rather than linear and focus on making smaller, more frequent updates to the application code base.
  • Foremost among these DevOps methodologies are continuous integration and continuous delivery (CI/CD).
  • In CI/CD, smaller chunks of new code are merged into the code base at frequent intervals, and then automatically integrated, tested and prepared for deployment to the production environment.
  • Agile modified the big bang approach into a series of smaller snaps, which also compartmentalized risks.

DevOps

  • DevOps grew out of agile. It added new processes and tools that extend the continuous iteration and automation of CI/CD to the remainder of the software delivery lifecycle.
  • And it implemented close collaboration between development and operations at every step in the process.

Life Cycle of DevOps (refer the above image):

  • The DevOps lifecycle consists of eight phases representing the processes, capabilities, and tools needed for development (on the left side of the loop) and operations (on the right side of the loop).
  • Throughout each phase, teams collaborate and communicate to maintain alignment, velocity, and quality.

DevOps Tools:

Code repositories:

Version-controlled source code repositories enable multiple developers to work on code. Tools for source code management include Git and GitHub, along with Bitbucket, Mercurial, Subversion and others.

Artifact repositories:

  • Source code is compiled into an artifact for testing. Artifact repositories enable version-controlled, object-based outputs.
  • Artifact management is a good practice for the same reasons as version-controlled source code management.
  • Examples of artifact repositories include JFrog Artifactory and Nexus Repository, Azure Artifacts, Amazon Elastic Container Registry, Cloudsmith, Dist, ProGet and Yarn.

CI/CD pipeline engines:

  • CI/CD enables DevOps teams to frequently validate and deliver applications to the end user through automation during the development lifecycle.
  • The continuous integration tool initializes processes so that developers can create, test and validate code in a shared repository as often as needed without manual work.
  • Continuous delivery extends these automatic steps through production-level tests and configuration setups for release management.
  • Continuous deployment goes a step further, invoking tests, configuration and provisioning, as well as monitoring and potential rollback capabilities.
  • Common tools for CI, CD or both include Jenkins, GitLab, Travis CI, Atlassian Bamboo, Concourse and CircleCI.

Containers:

  • Containers are isolated runtimes for software on a shared OS. Docker and Apache Mesos are some of the most well-known containerization software, while Microsoft offers specific Windows container options.
  • Container orchestrators -- such as Kubernetes and commercial Kubernetes distributions Red Hat OpenShift and Amazon Elastic Kubernetes Service -- deploy, scale and maintain containers automatically.

Configuration management:

  • Configuration management systems enable IT to provision and configure software, middleware and infrastructure based on a script or template.
  • The DevOps team can set up deployment environments for software code releases and enforce policies on servers, containers and VMs through a configuration management tools such as Ansible, Terraform, SaltStack, Puppet and Chef.

Cloud environments:

DevOps organizations often concurrently adopt cloud infrastructure because they can automate its deployment, scaling and other management tasks. AWS, Google Cloud and Microsoft Azure are among the most used cloud providers.

Monitoring:

  • Additionally, monitoring tools enable DevOps professionals to observe the performance and security of code releases on systems, networks and infrastructure.
  • Choices are wide-ranging, but include New Relic One, Dynatrace, Prometheus, Datadog and Splunk.

Cloud-based DevOps pipelines:

  • Public cloud providers offer native DevOps tool sets to use with workloads on their platforms. An incomplete list includes AWS CodePipeline and CloudFormation, Azure DevOps and Pipelines and Google Cloud Deployment Manager.
  • As-a-service models. Lastly, DevOps as a service is a delivery model for a set of tools that facilitates collaboration between an organization's software development team and the IT operations team.

Reference:

https://www.ibm.com/topics/devops

https://www.atlassian.com/devops

要查看或添加评论,请登录

KISHORE P.的更多文章

  • Real-Time Projects exposure vs Certifications

    Real-Time Projects exposure vs Certifications

    Certifications are a great way to showcase your knowledge to recruiters, but they often don’t fully reflect the skills…

    3 条评论

社区洞察

其他会员也浏览了