DevOps (development and operations) is neither a new technology nor a new programming language. It is a model (combination of cultural philosophies, practices, and tools) that increases an organization's ability to deliver products and services at high velocity by evolving and improving products at a faster pace than organizations using traditional software development and infrastructure management processes.
Why DevOps ?
Do you want to improve your release process? Do you want to increase the frequency of your releases? Do you want to increase the quality of your software? Do you want to get rid of some manual processes and move toward a more automated approach. Whatever your goals, DevOps is the solution.
How to adopt DevOps model ?
DevOps Culture : Transitioning to DevOps requires a change in culture and mindset. DevOps is about removing the barriers between two traditionally siloed teams, development and operations. With DevOps, the two teams work together to optimize both the productivity of developers and the reliability of operations. They strive to communicate frequently, increase efficiencies, product delivery time and improve the quality of services they provide to customers.
DevOps Practices : There are a few key practices that help organizations innovate faster through automating and streamlining the software development and infrastructure management processes. Most of these practices are accomplished with proper software development and infrastructure management tools. The following are DevOps best practices :
Continuous Integration
Continuous Delivery
Microservices
Infrastructure as Code
Monitoring and Logging
Communication and Collaboration
DevOps Tools : The DevOps model relies on effective software development and infrastructure management automation tools to help teams rapidly and reliably deploy and innovate for their customers. These tools automate manual tasks, help teams manage complex environments at scale, and keep engineers in control of the high velocity that is enabled by DevOps. There is no single magical tool that fits all the needs of DevOps. It’s about using the right tools that match your environment, team, and application. The following are DevOps best tools :
Planning and Project Management Tools
- Jira
- Trello
- Asana
Source Code Management Tools
- Git
- Mercurial
- GitHub
- GitLab
- BitBucket
- AWS CodeCommit
- Azure Repos
Developer Productivity Tools
- Environment Setup
Vagrant
Docker
Minikube
Minishift
- API Tools
Postman
SoapUI
- IDE's
Visual Studio Code
Sublime Editor
Notepad++
Application Building Tools
- Maven (Java)
- Gradle (Multi Langage Support)
- Rake (Ruby)
- MSBuild (.Net)
- Pybuilder (Python)
Artifact Management Tools
- Nexus
- Jfrog Artifactory
- npm
- Nuget
Continuous Integration Tools
- Jenkins
- Bamboo
- Travis CI
- Github Actions
- TeamCity
- Circle CI
- Gitlab CI
Continuous Delivery Tools
- Jenkins
- Go CD
- Gitlab CD
- Harness
- Codefresh
- XL Release
Application Testing Tools
- Selenium
- UFT
- Appium
- Jmeter
- Blazemeter
Infrastructure and Configuration Management Tools(Continuous Deployment)
- Infrastructure
Terraform
- VM/Contianer Image Management & Configuration
Packer
Docker
Helm
- Configuration Management
Ansible
Chef
Puppet
Saltstack
- Secret Management
Vault
- Config/ Service Discovery Tools
Consul
Etcd
Container Clustering and Orchestration Tools
- Contianer Orchestration
Kubernetes
Docker Swarm
Mesos
- Container Security
Docker bench
Clair
Anchore Engine
Aquasec
- K8s Compliance Tools
Open Policy Agent
Docker Content Trust
- Service Mesh Tools
Istio
Linkerd
Application and Infrastructure Logging Tools
- ELK Stack
- Fluentd
- Graylog
- Splunk
Application and Infrastructure Monitoring Tools
- Prometheus
- Sensu
- Riemann
- Zabbix
- Data Dog
- New Relic
- App Dynamic
- Sumologic
- Dynatrace
Application and Infrastructure Visualisation Tools
- Grafana
- Kibana
Collaboration Tools
- Slack
- Cisco Webex teams
- Flock
- Google Hangouts
- Flow Dock
What is Azure DevOps ?
Azure DevOps is a software as a service (SaaS) platform from Microsoft that provides an end-to-end DevOps toolchain for organization to create software products by using devops practices. Azure DevOps has two parts :
Azure DevOps Services (for cloud) : Choose Azure DevOps Services when you want the following outcomes (1) Quick set-up (2) Maintenance-free operations (3) Easy collaboration across domains (4) Elastic scale (5) Rock-solid security. Below is the list of services included with Azure DevOps :
Azure Boards : Plan, track, and discuss work across your teams.
Azure Pipelines : Continuously build, test, and deploy to any platform and cloud.
Azure Repos : Manage git repositories, share and collaborate with GitHub.
Azure Blueprints : Deploy cloud resources in repeatable and reliable fashion
Azure Automation : For configuration management
Azure Monitor : Monitor infrastructure health and integrate into existing dashboards
Azure DevOps Server (for on-premises platforms) : Choose on-premises Azure DevOps Server when (1) You need your data to stay within your network. (2) Your work tracking customization requirements are met better with the on-premises XML process model over the inheritance process model. The on-premises model supports modification of XML definition files. When you deploy Azure DevOps Server, you can also configure the following servers or integration points:
Build server : Supports on-premises and cloud-hosted builds.
SQL Server and SQL Analysis Server : Spport SQL Server Reports and the ability to create Excel pivot charts based on the cube.
What is AWS DevOps ?
AWS DevOps : AWS provides a set of services designed to enable companies to more rapidly and reliably build and deliver products using AWS and DevOps practices. These services simplify provisioning and managing infrastructure, deploying application code, automating software release processes, and monitoring the application and infrastructure performance. AWS DevOps Tools :
AWS CodePipeline : Software Release Workflows.
AWS CodeBuild : Build and Test Code.
AWS CodeDeploy : Deployment Automation.
AWS CodeStar : Unified CI/CD Projects
Amazon Elastic Container Service : Production Docker Platform