DevOps Engineer

589 단어·2 분·원문(.md)

DevOps #

Literally, it's a combination of Dev and Ops.

It encourages smooth and continuous communication, collaboration, integration, visibility, and transparency between development and operations teams.

DevOps goals are grouped into four categories: Culture, Automation, Measurement, and Sharing (CAMS), and DevOps tools can be used to support all these areas.

  • Integration
  • Development
  • Testing
  • Deployment
  • Monitoring

DevOps Engineer #

A DevOps engineer is an IT generalist who must possess extensive knowledge of development and operations, including programming, infrastructure management, system administration, and the DevOps toolchain.

It is said that DevOps engineers also need to have interpersonal skills because they work to create a more collaborative environment, often breaking down silos.

Responsibilities #

While the responsibilities of a DevOps engineer may vary by organization, they typically involve a combination of release engineering, infrastructure provisioning and management, system administration, security, and DevOps advocacy.

Release Engineering #

Release engineering involves the tasks required to build and deploy application code.

The exact tools and processes vary greatly depending on many variables, such as the language the code is written in, the amount of automated pipeline, and whether the production infrastructure is on-premises or in the cloud.

Release engineering can include selecting, provisioning, and maintaining CI/CD tools, or writing and maintaining custom build/deployment scripts.

Infrastructure Provisioning #

Infrastructure provisioning and system administration involve the deployment and maintenance of server, storage, and networking resources required to host applications.

For organizations with on-premises resources, this can include managing physical servers, storage devices, switches, and virtualization software in a data center.

For hybrid or fully cloud-based organizations, this typically involves provisioning and managing virtual instances of the same components.

Skills of a DevOps Engineer #

  1. Communication and Collaboration
  2. System Administration
  3. Experience with DevOps Tools
  4. Configuration Management
  5. Containers and Container Orchestration
  6. Continuous Integration and Continuous Delivery (CI/CD)
  7. System Architecture and Provisioning
  8. Knowledge of Coding and Scripting
  9. Collaboration Management Skills

Why a DevOps Engineer is Essential for a Team #

From a developer's perspective, I've considered why a DevOps engineer is necessary.

Server Setup #

Building a server that meets requirements naturally requires a lot of study. If I were deployed as a practical developer to a team without a DevOps engineer and asked to build a server, I'd feel overwhelmed about how to build it under these requirements, how to distribute traffic, and what strategy to adopt.

The DevOps activities performed by a professional DevOps engineer and a backend developer will naturally differ significantly. If MSA is adopted, it becomes even more profound and complex. Therefore, having a professional DevOps engineer on the team would be beneficial, as they can improve program performance and efficiency beyond just writing fast and efficient code.

Communication with Operations Team #

Having a DevOps engineer will enable smoother communication with the operations team.

Instead of just a 'do it' command, having an engineer on the team who can consider both sides and make decisions will be an advantage for flexible communication.

Automation #

Not repeatedly doing tedious tasks. That's the programming world we developers desire.

Building a server is a repetitive task, and continuous deployment is also a repetitive task.

Since DevOps engineers create CI/CD scripts to assist our development environment, we can focus more on development, which I believe is a huge advantage for the development team.


References #

DevOps/devops.md