What and why is DevOps/ DevSecOps?
- DevOps is set of processes that coordinate to unify development teams and processes to complement software development
- By 2018, 74%of global organizations adopted DevOps, 16 percent did not adopt DevOps, and 10 percent were not decided.
- With joint development and operations efforts, the team’s applications are ready to use more quickly. This is important because companies succeed based on their ability to innovate faster than their competitors.
- teams can use their time to reduce the number of implementation failures using agile programming principles that require collaboration and standard programming. Recovery time is an important issue because you should expect some failure. But recovery is much faster when development teams and operations work together to share ideas and consider the challenges of both teams during development.
- All the benefits of DevOps translate into reduced general costs and requirements of IT staff. DevOps development teams require IT staff to be 35 percent less and IT costs 30 percent lower.
The technical skills required of a DevOps engineer will vary depending on the team structure, technologies, and toolsets in use. Yet strong communication and collaboration skills are essential. It’s also important for a DevOps engineer to have a solid understanding of all the components of a delivery pipeline, and to know the pros and cons of available tools and services.
Communication and collaboration
It’s important for a DevOps engineer to communicate and collaborate effectively with teams, managers, and customers. These so-called “soft-skills” are often overlooked and undervalued, but the success of DevOps relies heavily on the quality and quantity of feedback across the entire value stream.
System administration
A DevOps engineer will have experience with system administration, such as provisioning and managing servers, deploying databases, security monitoring, system patching, and managing internal and external network connectivity. Experience with DevOps tools
Since using the right tools are essential to DevOps practices, the DevOps engineer must understand, and be able to use, a variety of tools. These tools span the DevOps lifecycle from infrastructure and building, to monitoring and operating a product or service.
Configuration management
DevOps engineers will often be expected to have experience with one or more configuration management tools such as Chef, Puppet, or Ansible. Many organizations have adopted these or similar tools to automate system administration tasks such as deploying new systems or applying security patches to systems already running.
Containers and container orchestration
With containerization, a technology popularized by Docker, the code for the application and its runtime environment are bundled in the same image. This makes traditional configuration management tools less necessary. At the same time managing containers brings its own challenges, and experience with the class of tools known as “container orchestrators” (e.g., Docker Swarm or Kubernetes) becomes a necessary skill for the DevOps engineer.
Continuous integration and continuous deployment
Continuous integration and continuous Delivery (CI/CD) are core practices of a DevOps approach to software development and enabled by a host of available tools. The most fundamental function of any CI/CD tool or set of tools is to automate the process of building, testing, and deploying software.
DevOps engineers will usually need experience with configuring and deploying one or more CI/CD tools and will usually need to work closely with the rest of the development organization to ensure that these tools are used effectively.
System architecture and provisioning
A DevOps engineer should have the ability to design, provision, and manage computer ecosystems, whether on-premises or in the cloud. It’s important to understand Infrastructure as Code (IaC), an IT management process that applies best practices from DevOps software development to the management of cloud infrastructure resources. A DevOps engineer should understand how to model system infrastructure in the cloud with Amazon Web Services (AWS), Azure or Terraform.
Familiarity with coding and scripting
Many traditional system administrators have experience writing shell scripts to automate repetitive tasks. A DevOps engineer should go beyond writing automation scripts and understand advanced software development practices and how to implement agile development practices such as code reviews and using source control.
Why DevOps as a career (https://originhubs.com/company/careers.php in a better highlighted table)
- Multiple opportunities in the profession
- Future proof your career
- Continuously evolving practice
- Flexibility and enhanced benefits
- Future proof your career