DevOps Skills

The broad picture. Skills to address the “from Code to Infrastructure” paradigm. Bridging ends from code producers to deployment in production – mindset of all involved, get a sense of the process as well do the automation of it and the orchestration and monitoring.

Collaborate with internal management teams involved in the DevOps process and stay familiar with the objectives, roadmap, blocking issues and other project areas.
Have the skills to mentor and advise team members on the best ways to deliver code, what tools to use when coding and how to test the latest features.

The target. Fast provisioning: be able to setup new machines fast. Good monitoring: to be quickly able to diagnose failures and trace them down. Quickly rollback to a previous version of the microservice. Rapid app deployment through fully automated pipelines. Create the Devops mindset / culture.

DevOps engineers need to know how to use and understand the roles of the following types of tools:
1. Version control: GitHub, GitLab
2. Continuous Integration servers: code coming in repository server and triggers build and doc: Jenkins, GitLab CI, Atlassian Bamboo, Circle CI, GitHub Actions
3. Configuration management: Software Configuration Management SCM Tools: Configuration management occurs when a configuration platform is used to automate, monitor, design and manage otherwise manual configuration processes. System-wide changes take place across servers and networks, storage, applications, and other managed systems: Puppet, Ansible, Chef
4. Deployment automation: Ansible Tower, Bamboo
5. Containers: containerd, Docker, Artifactory
6. Infrastructure Orchestration: automating the provisioning of the infrastructure services needed to support an app moving into production – in the right order, is orchestration: Terraform, Ansible (also Config. Management Tool), Chef, Kubernetes
7. Monitoring and analytics: Prometheus, Datadog, Splunk
8. Testing and Cloud Quality tools: a test automation platform uses scripts to automate the whole process of software testing. Identify the tests that need to be automated. Research and analyze the automation tools that meet your automation needs and budget. Based on the requirements, shortlist two most suitable tools. Do a pilot for two best tools and select the better one. Discuss the chosen automation tools with other stakeholders, explain the choice, and get their approval. Proceed to test automation
Tools: Kobiton, Eggplant, TestProject, LambdaTest
9. Network protocols from layers 4 to 7, nginx, caching, Service Mesh.
10. Programming skills with Java, Shell, Python, JS, Ruby…

Also:
Monitoring production environments
Performance measurements
Security
Cloud administration
Get proper alerts when something is wrong or unavailable
Help resolve problems either through online support or technical troubleshooting

Kubernetes

Kubernetes (commonly referred to as “K8s”) is an open source system for automating deployment, scaling and management of containerized applications that was originally designed by Google and donated to the Cloud Native Computing Foundation. It aims to provide a “platform for automating deployment, scaling, and operations of application containers across clusters of hosts”. It usually works with the Docker container tool and coordinates between a wide cluster of hosts running Docker. Other includes Docker Swarm, DC/OS, MESOS, AWS ECS. Other containers providers: Open Shift, AWS, Azure.

Docker

An open-source project for automating the deployment of applications as portable, self-sufficient containers that can run virtually anywhere on any type of server. Docker serves as a lightweight alternative to full machine virtualization provided by traditional hypervisors like VMware’s ESXi, Xen or KVM. Create image with Docker and deploy virtual machine as container. Upload it on docker hub for public access. Need orchestration tools to manage the containers.
There is an established certification program to make trusted, secure application containers supporting Docker and the Docker Engine, which should make it easier to deploy a uniform container environment over virtual hybrid clouds. A key benefit to the enterprise will be the establishment of common application lifecycle functions, such as security and certification, across distributed architectures, providing a level playing field for all container-based apps and services.