DevOps (Part 1) – What is DevOps? Cultural? Or a job title?

Tram Ho

Definition of DevOps

DevOps (a combination of the English phrases “software DEVelopment” and “information technology OPerationS”) is a term for a set of actions that emphasizes the cooperation and communication of programmers and IT professionals work together to automate software product deliveries and change the system architecture. This aims to establish a culture and environment where software building, testing, and release can occur more quickly, frequently, and reliably. – according to Wikpedia

In a similar way, DevOps is a combination of principles, practices, processes and tools that help automate the programming and software delivery process.

DevOps emphasizes people (and culture) and seeks to improve collaboration between operations and development teams.

The Origin of Devops?

There is a lot of thrill about the birth of DevOps but the reality is that it is not completely new but instead, DevOps’ seeds have been planted long ago and have been nurtured by Thinking progress in a number of areas. DevOps’s two main precursors are:

Enterprise System Administration (ESM): Many people who participate in the initial definition of DevOps are system administrators. These experts have brought ESM best practices to DevOps, including configuration management, system monitoring, automation, and tool chain approach.

Agile development : An observer noted, “DevOps can be understood as Agile’s growth – agile software development dictates the close cooperation of customers, product managers, developers and ( sometimes) QA to fill the void and quickly iterate towards a better product … Devops acknowledges service delivery and how applications and systems interact are also a fundamental part of value proposition to the customer and therefore the product team should include those concerns as a top-level item. From this point of view, DevOps simply extends Agile principles beyond code boundaries for the entire service provided.

What caused the birth of DevOps?

Not always dev and system administrator can cover, pay attention to everything. But on the user side often change requests.

  • On the one hand a user asks for change – new features, services, new revenue streams – the faster the better
  • At the same time, customers also want a system to operate stably without any interruption or interruption.

    => That creates a problem where companies feel like they have to choose between two options that deliver changes quickly and face unstable systems. or plan to maintain a stable but old system.

DevOps was created to solve this dilemma by integrating all the people involved in software mining and development – users, dev, tester, security, system administrators sometimes even others. – into a single, highly automated workflow with a common focus: fast delivery of high-quality software that meets user requirements while maintaining the integrity and stability of the whole system.

How does DevOps “work”?

DevOps is the hands-on practice of development and operations engineers working together over the entire project life cycle, from design and development to release and production support.

Starting from design and development to test automation, and from continuous integration to continuous distribution, the team works together to achieve the desired goal. Those with both development and operational skills work together and use different tools for CI-CD and Monitoring to quickly respond to customer needs and troubleshoot problems and errors.

DevOps Tools

Planning : Using Jira or Azure DevOps Board to manage and plan your task performance according to Agile model.

Development : To manage code, Git is the # 1 tool to manage Code version History, branches, Push and Pull.

Testing : For automated testing we can rely on Selenium, JUnit and Apache JMeter.

Build, Deploy and Integration : Jenkins, Travis CI or Bamboo, Docker to manage your app build versions and based on your application needs, you can also use Maven or Gradle to Build and speed up development.

Operating and Monitoring : When your application is working properly, the operation and control play a very important role to ensure the stability of the system. some toll assist you can use like Nagios, Spluink or New Relics.

What are the benefits of devOps?

Speed

This is the main reason that DevOps was born. Using DevOps allows companies to develop and deploy functions much faster, adapt better to constantly changing markets, and grow more efficiently with impressive business results.

Reliability

Quality assurance for app updates and infrastructure changes so you can reliably deliver at a faster rate while maintaining a positive end-user experience. Use practices like continuous integration and continuous delivery to test that each change is working correctly and safely. A practice of monitoring and logging that keeps you on top of real-time performance information.

Scale

Operate and manage infrastructure and development processes at the right scale. Automation and consistency help you efficiently manage complex or ever-changing systems with minimized risk. For example, Infrastructure in Code helps you manage development, test, and production environments in a more efficient and repeatable way.

Improve collaboration

Build more effective teams following the DevOps culture model, which emphasizes values ​​such as ownership and accountability. Developers and business teams work closely together, shoulder multiple responsibilities, and coordinate workflows. This helps to minimize inefficiencies and save time (eg, reduce handover time between developer and business team, write code that takes operational environment into consideration).

Security

Without DevOps, you often have a balance between speed and security, resulting in even more delivery times. With DevOps, you can use automated compliance policies, refined control tools and configuration management techniques to maintain speed without compromising security.

Risk management

Using this approach, we can identify risk factors early in the application lifecycle stages. Early detection of any problems or bugs and quick fixes or fixes help stay ahead of the race.

Difficulties of DevOps

For individuals, organizations that first become DevOps will need a change in culture and thinking. Just like going to the gym, applying new methods can be detrimental to your health at first, but after you get used to the new method. The more often you implement new methods, the easier they will become. And just like training at a gym, where you train big muscles in front of small muscles, apply the exercises with the biggest impact first and cross-train to develop synergy.

DevOps asking for cultural change?

In essence, DevOps is a culture, a movement, a philosophy.

DevOps is neither a tool nor a technique. It’s really a cultural change in how software development is . And, a major part of the DevOps culture is collaboration.

Devops are not anyone’s job. That is everyone’s job. The DevOps culture can only exist in an environment where everyone follows the philosophy.

In a DevOps organization, teams work collaboratively among the Dev, QA, and Ops divisions with shared responsibility. DevOps culture spans across teams working on development projects as well as the entire organization. Teams were asked to focus on product quality and delivery speed through collaborative efforts, automation and feedback from all stakeholders. The organization is required to eliminate gaps between departments and allow teams to function autonomously, and to apply governance measures and policies that facilitate automated SDLC processes.

Comparison between DevOps, Agile and traditional method

DevOps is related to other methods or models in the IT sector, especially Agile and Waterfall.

Agile method is a set of principles, values ​​and methods for software development regulation. Example: If you have an idea and want to convert it into software, you can take advantage of Agile principles and values. But that software can only work in a small area or in testing environment. You need a way to deploy software into a production environment that is simple, fast, and secure. DevOps tools and techniques come into play. Agile software development approach focuses on development processes, but DevOps will help develop and deploy in the safest and most reliable manner.

Comparing the traditional waterfall model with DevOps is a way to understand the benefits DevOps brings. In the following example, assume that the application should be up and running after four weeks and the coding is 85% complete. This is the first time the app has been launched and the process of buying a server to deploy code has just begun.

Traditional processDevOps
After ordering the servers, the development team will go through the testing process. The executive team does the paperwork needed to deploy the infrastructure.After ordering the servers, the development and operation team work together to complete the necessary procedures to be able to set up the servers. This helps infrastructure requirements to be understood most thoroughly.
Details of failover, redundancy, datacenter locations and storage requirements are skewed, as there are no inputs available from the development team with in-depth application knowledge.Details of failover, redundancy, disaster recovery, datacenter locations and storage requirements are correctly understood by the inputs from the development team.
The executive team is unaware of the development team’s activities. The executive team develops the monitoring plan based on their understandingThe executive team knows what the development team is doing. Both teams interact with each other and together develop a monitoring plan that serves both IT and business. They also share Application Performance Monitoring (APM) tools.
Before go-live, load test crashes the application, slows down the release process.Before go-live, load test slows down the app. The development team quickly fixed bugs and the app was released on time.

Conclude

DevOps is a culture that fosters collaboration between development and operations teams to quickly deploy code to production in an automated and iterable manner.

Before DevOps operated and the development team worked in complete isolation.

Manually deploying code leads to a lot of human errors.

During the old process, the Operations team was unaware of the development team’s progress. Therefore, the operation team developed a plan to buy and monitor the IT infrastructure to their knowledge.

In the team operating the DevOps process completely aware of the developer’s progress. Planning and monitoring are accurate.

DevOps offers higher Sustainability, Predictability, Higher Quality Cost Efficiency and time to market.

Agile processes focus on functional and non-functional readiness while DevOps focuses on that aspect of that IT infrastructure.

The DevOps lifecycle includes Development, Testing, Integration, Deployment, and Monitoring.

DevOps engineers will work with development team staff to address your coding and scripting needs.

DevOps engineers should have the soft skills of a problem solver and a quick learner.

DevOps certificates are available from web services of Amazon, Red Hat, Microsoft Academy, DevOps Institute.

DevOps helps organizations move the deployment code cycle from weeks or months instead of years.

Reference source

https://aws.amazon.com/en/devops/what-is-devops/

https://www.atlassian.com/devops

https://medium.com/cuelogic-technologies/what-is-devops-the-complete-guide-to-devops-with-examples-13db789dd1c

Share the news now

Source : Viblo