When we talk about
DevOps, we might discuss concepts such as process and management, operation and maintenance and automation, architecture and services, and culture and organization. So, what exactly is "DevOps"?
What is DevOps
With the increasing frequency of software release iterations, the traditional "waterfall" (development-test-release) model has been unable to meet the needs of rapid delivery. DevOps came into being around 2009. Simply put, it is better to optimize the development (DEV), testing (QA), and operation and maintenance (OPS) processes. The integration of development and operation and maintenance, through highly automated tools and processes Software construction, testing, and release are faster, more frequent, and more reliable.
About what DevOps is, DevOps co-author John Willis wrote a very good post here.
Benefits and value of Devops
Code submission triggers directly: eliminate waiting time, quick feedback
Each change corresponds to a delivery pipeline: making problem location and debugging easy
Efficient automation of the entire development process: stable, fast, and predictable delivery results
Continuous automated regression testing: improve delivery quality
Facility sharing and provision on demand: maximizing resource utilization
As can be seen from the above, the benefits of DevOps are more based on continuous deployment and delivery, which is for business and products. DevOps begins with the acceptance of DevOps culture and technology methodology. It is a set of processes and methods for inter-departmental communication and collaboration, which helps to improve the company's organizational culture and enhance employees' sense of participation.
Devops and continuous integration
DevOps is a complete IT operation and maintenance workflow, based on IT automation and continuous integration (CI), continuous deployment (CD), to optimize all aspects of program development, testing, system operation and maintenance.
Looking at the technical data of each DevOps practice company, the most comprehensive and classic is the technical key points of DevOps Tools mentioned in flickr's 10+ deploys per day best practice:
1.Automated infrastructure (automation, integration between systems)
2.shared version control (SVN shared source code)
3.one step build and deploy
4.feature flags (backbone development)
5.Shared metrics
6. IRC and IM robots (information integration)
The above technical points are penetrated by continuous integration / deployment. The main development is the premise of continuous integration. Automation and centralized management of the code periphery are the necessary conditions for the implementation of continuous integration. There is no doubt that DevOps is an extension of continuous integration. Continuous integration / deployment is the core of DevOps technology. Without automated testing and continuous integration / deployment, DevOps is a castle in the sky.
We made a Hosted continuous integration product-flow.ci, which integrates the continuous integration (CI) service of the workflow mechanism, and can also be understood as an automated process platform. In addition to integrating code, compilation, and testing, it can also integrate common Tools and flexible custom processes to help you create a better and smarter DevOps environment.
DevOps technology stack and tool chain
Everything is Code, DevOps also needs to complete the integration of continuous integration, continuous delivery, user feedback and system optimization through the technical tool chain. Elasticbox organizes 60+ open source tools and categories, including version control & collaborative development tools, automated build and test tools, continuous integration & delivery tools, deployment tools, maintenance tools, monitoring, warning & analysis tools, etc.
Added some domestic services that will allow you to better implement the DevOps workflow.
Version control & collaborative development: GitHub, GitLab, BitBucket, SubVersion, Coding, Bazaar
Automated build and test: Apache Ant, Maven, Selenium, PyUnit, QUnit, JMeter, Gradle, PHPUnit
Continuous integration & delivery: Jenkins, Capistrano, BuildBot, Fabric, Tinderbox, Travis CI, flow.ci Continuum, LuntBuild, CruiseControl, Integrity, Gump, Go
Container platform: Docker, Rocket, Ubuntu (LXC), third-party vendors such as (Alibaba Cloud)
Configuration management: Chef, Puppet, CFengine, Bash, Rudder, Powershell, RunDeck, Saltstack, Ansible
Microservice platforms: OpenShift, Cloud Foundry, Kubernetes, Mesosphere
Service activation: Puppet, Docker Swarm, Vagrant, Powershell, OpenStack Heat
Log management: Logstash, CollectD, StatsD
Monitoring, warning & analysis: Nagios, Ganglia, Sensu, zabbix, ICINGA, Graphite, Kibana
By the way, share another DevOps BookMarks, which covers all aspects of DevOps tools and content. Interested students can go to learn.
DevOps best practices
Since the concept of DevOps was proposed in 2009, many companies have begun to implement DevOps. The more well-known foreign countries are Amazon, Google, Facebook, etc., and the domestic famous ones are Baidu, Huawei, and Ali. Amazon is one of the most convincing representatives of DevOps best practices. This is a snapshot of Amazon's DevOps in Why We Need DevOps for one month:
11.6 seconds: average deployment time (working days)
1,079: Maximum deployment volume per hour
10,000: average number of concurrent receiver deployments
30,000: Maximum concurrent receiver deployment
DevOps = Culture + Tools
If you want to deploy DevOps for the entire business, you need not only the soft requirements to cultivate the DevOps culture from top to bottom, but also the hard tool chain requirements to obtain higher quality software delivery.
Finally, whether you are a technical leader, or a Dev, QA or Ops, it is very ideal and challenging to achieve a comprehensive DevOps, I hope this DevOps beginners guide is a good start :)
DevOps is a continuous integration (CI) service that incorporates a workflow mechanism. It can also be understood as an automated process platform. In addition to integrating code, compilation, and testing, it can also integrate common tools and flexible custom processes. The development and test environment can be built in 1 minute, and the first Build can be started.