DEVOPS
P N V KRISHNA TEJA
Associate Cloud Security Engineer at Techolution | Google Cloud Certified Professional Cloud Security Engineer | Google Cloud Certified Professional Cloud Architect | AWS Certified Developer Associate
What is DevOps?
DevOps is a set of practices that combines software development and IT operations. It aims to shorten the systems development life cycle and provide continuous delivery with high software quality. DevOps is the combination of cultural philosophies, practices, and tools that increases an organization’s ability to deliver applications and services at high velocity: evolving and improving products at a faster pace than organizations using traditional software development and infrastructure management processes.
History of DevOps
When was DevOps started?
The DevOps movement started to coalesce some time?between 2007 and 2008, when IT operations and software development communities raised concerns what they felt was a fatal level of dysfunction in the industry.
Goal Of DevOps
The primary DevOps goal is?to optimize the flow of value from idea to end user. Obviously, there's a cultural change that must happen for a company to be successful with DevOps, so culture is a big focus, but the DevOps goal is to make the delivery of value more efficient and effective.
Benefits/Pros of DevOps
1) Speed
Move at high velocity so you can innovate for customers faster, adapt to changing markets better, and grow more efficient at driving business results. The DevOps model enables your developers and operations teams to achieve these results. For example,?microservices?and?continuous delivery?let teams take ownership of services and then release updates to them quicker.
2) Rapid Delivery
Increase the frequency and pace of releases so you can innovate and improve your product faster. The quicker you can release new features and fix bugs, the faster you can respond to your customers’ needs and build competitive advantage.?Continuous integration?and?continuous delivery?are practices that automate the software release process, from build to deploy.
3) Reliability
Ensure the quality of application updates and infrastructure changes so you can reliably deliver at a more rapid pace while maintaining a positive experience for end users. Use practices like?continuous integration?and?continuous delivery?to test that each change is functional and safe.?Monitoring and logging?practices help you stay informed of performance in real-time.
4) Scale
Operate and manage your infrastructure and development processes at scale. Automation and consistency help you manage complex or changing systems efficiently and with reduced risk. For example,?infrastructure as code?helps you manage your development, testing, and production environments in a repeatable and more efficient manner.
5) Improved Collaboration
Build more effective teams under a DevOps cultural model, which emphasizes values such as ownership and accountability. Developers and operations teams?collaborate?closely, share many responsibilities, and combine their workflows. This reduces inefficiencies and saves time (e.g. reduced handover periods between developers and operations, writing code that takes into account the environment in which it is run).
6) Security
Move quickly while retaining control and preserving compliance. You can adopt a DevOps model without sacrificing security by using automated compliance policies, fine-grained controls, and configuration management techniques. For example, using infrastructure as code and?policy as code, you can define and then track compliance at scale.
Cons of DevOps Outsourcing
DevOps Lifecycle
1) Continuous Development
This phase involves the planning and coding of the software. The vision of the project is decided during the planning phase. And the developers begin developing the code for the application. There are no DevOps tools that are required for planning, but there are several tools for maintaining the code.
2) Continuous Integration
This stage is the heart of the entire DevOps lifecycle. It is a software development practice in which the developers require to commit changes to the source code more frequently. This may be on a daily or weekly basis. Then every commit is built, and this allows early detection of problems if they are present. Building code is not only involved compilation, but it also includes?unit testing, integration testing, code review, and?packaging.
3) Continuous Testing
This phase, where the developed software is continuously testing for bugs. For constant testing, automation testing tools such as?TestNG, JUnit, Selenium, etc are used. These tools allow QAs to test multiple code-bases thoroughly in parallel to ensure that there is no flaw in the functionality. In this phase,?Docker?Containers can be used for simulating the test environment.
Selenium?does the automation testing, and TestNG generates the reports. This entire testing phase can automate with the help of a Continuous Integration tool called?Jenkins.
4) Continuous Monitoring
Monitoring is a phase that involves all the operational factors of the entire DevOps process, where important information about the use of the software is recorded and carefully processed to find out trends and identify problem areas. Usually, the monitoring is integrated within the operational capabilities of the software application.
It may occur in the form of documentation files or maybe produce large-scale data about the application parameters when it is in a continuous use position. The system errors such as server not reachable, low memory, etc are resolved in this phase. It maintains the security and availability of the service.
领英推荐
5) Continuous Feedback
The application development is consistently improved by analyzing the results from the operations of the software. This is carried out by placing the critical phase of constant feedback between the operations and the development of the next version of the current software application.
The continuity is the essential factor in the DevOps as it removes the unnecessary steps which are required to take a software application from development, using it to find out its issues and then producing a better version. It kills the efficiency that may be possible with the app and reduce the number of interested customers.
6) Continuous Deployment
In this phase, the code is deployed to the production servers. Also, it is essential to ensure that the code is correctly used on all the servers.
DevOps CI/CD and configuration management tools
Principle of DevOps
PRINCIPLE 1
Customer-Centric Action
It is imperative nowadays to have short feedback loops with real customers and end-users, and that all activity in building IT products and services centers around these clients. To be able to meet these customers’ requirements, DevOps organizations require the guts to act as lean startups that innovate continuously, pivot when an individual strategy is not (or no longer) working, and constantly invests in products and services that will receive a maximum level of customer delight.
PRINCIPLE 2
Create with the End in Mind
Organizations need to let go of waterfall and process-oriented models where each unit or individual works only for a particular role/function, without overseeing the complete picture. They need to act as?product companies?that explicitly focus on building working products sold to real customers, and all employees need to share the engineering mindset that is required actually to envision and realize those products.
PRINCIPLE 3
End-To-End Responsibility
Where traditional organizations develop IT solutions and then hand them over to Operations to deploy and maintain these solutions, in a DevOps environment teams are vertically organized such that they are fully accountable from?concept to grave. IT products or services created and delivered by these teams remain under the responsibility of these stable groups. These teams also provide performance support, until they become end-of-life, which greatly enhances the level of responsibility felt and the quality of the products engineered.
PRINCIPLE 4
Cross-Functional Autonomous Teams
In product organizations with vertical, fully responsible teams, these teams need to be entirely independent throughout the whole lifecycle. That requires a balanced set of skills and also highlights the need for team members with?T-shaped?all-round profiles instead of old-school IT specialists who are only knowledgeable or skilled in for example testing, requirements analysis or coding. These teams become a hotbed of personal development and growth.
PRINCIPLE 5
Continuous Improvement
End-to-end responsibility also means that organizations need to adapt continuously in the light of changing circumstances (e.g. customer needs, changes in legislation, new technology becomes available). In a DevOps culture, a strong focus is put on continuous improvement to minimize waste, optimize for speed, costs, and ease of delivery, and to continuously improve the products/services offered. Experimentation is therefore an important activity to embed and develop a way of learning from failures is essential.
PRINCIPLE 6
Automate Everything You Can
To adopt a continuous improvement culture with high cycle rates and to create an IT organization that receives instant feedback from end users or customers, many organizations have quite some waste to eliminate. Fortunately, in the past years, enormous gains in IT development and operations can be made in that respect. Think of automation of not only the software development process (continuous delivery, including continuous integration and continuous deployment) but also of the whole infrastructure landscape by building next-gen container-based cloud platforms that allow infrastructure to be versioned and treated as code as well. Automation is synonymous with the drive to renew the way in which the team delivers its services.
Conclusion
DevOps is?helping businesses in a tremendous way. It's bridging the gap between developers' need for change and operations' resist to change and thus creates a smooth path for Continuous Development and Continuous Integration.