0% found this document useful (0 votes)
100 views52 pages

A Handy DevOps Roadmap and Study Guide

This document contains a summary of a booklet that provides a DevOps roadmap, study guide, and interview questions. It introduces the booklet and its author, and provides high-level descriptions of DevOps concepts like what DevOps engineers do, similar roles, and how DevOps helps deliver software quickly.

Uploaded by

Iwuchukwu Chioma
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
100 views52 pages

A Handy DevOps Roadmap and Study Guide

This document contains a summary of a booklet that provides a DevOps roadmap, study guide, and interview questions. It introduces the booklet and its author, and provides high-level descriptions of DevOps concepts like what DevOps engineers do, similar roles, and how DevOps helps deliver software quickly.

Uploaded by

Iwuchukwu Chioma
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 52

This booklet contains a DevOps roadmap, a

study guide for learning DevOps, and a list of


DevOps interview questions.

A Handy DevOps
Roadmap and
Study Guide
by Adora Nwodo
I created this
booklet just
for you!
Hi, my name is Adora and I
have created this to guide
you in your journey into
DevOps Engineering. This
booklet contains helpful
information that you will
need to start a DevOps
career or transition into
one. On that note, let's
begin!

www.adoranwodo.com
How do we build and ship resilient
applications quickly, and at scale?
How do we build and ship resilient
applications quickly, and at scale?

This is where DevOps comes in


Many people say that DevOps
combines software development
(Dev) and IT operations (Ops)

But what does that really mean?


DevOps is a software development and
delivery process that emphasizes
collaboration between development and
operations teams. It is the combination
of cultural philosophies, practices, and
tools designed to increase the speed
and quality of software development
while ensuring reliable and repeatable
deployment of software. This practice
can help automate many of the tasks
associated with software development
and deployment and facilitate team
collaboration and rapid and reliable
software release.
What does a DevOps
Engineer do?

What a DevOps engineer does will differ


across various organizations based on
the type of product they work on and the
priority of the organization. However,
DevOps consistently entails software
release engineering, infrastructure
management, system administration,
and security.
--------- What does a DevOps Engineer do?

DevOps

Infrastructure
management
Security
and system
administration

Software release
engineering
--------- What does a DevOps Engineer do?

Software Release Engineering


The process of software release engineering involves the
tasks necessary to build and deploy software. The specific
tools and methods used can vary greatly based on factors
like the programming language used, the level of
automation in the pipeline, and the location of the
production infrastructure (on-premises or in the cloud).
Release engineering may involve choosing, setting up, and
maintaining CI/CD tools or creating and maintaining
custom scripts for building and deploying.
--------- What does a DevOps Engineer do?

Infrastructure Management
and System Administration
Infrastructure provisioning and system administration are
critical tasks in the operation of any organization. These
responsibilities include deploying and maintaining the
infrastructure required to host applications, such as
servers, databases, load balancers, and other network
devices.

For organizations with on-premise resources, infrastructure


provisioning and system administration may involve
managing physical servers, storage devices, network
switches, and virtualization software in a data center. This
might include tasks such as configuring and maintaining
servers, monitoring system performance, and
troubleshooting any issues that arise.

On the other hand, for organizations that are hybrid or


entirely cloud-based, infrastructure provisioning and
system administration will usually involve provisioning and
managing virtual instances of the same components, such
as virtual servers, virtual storage devices and network
devices. This might include tasks such as creating, scaling
and deleting virtual instances, monitoring the usage and
cost of cloud resources, and troubleshoot any issues that
arise.
--------- What does a DevOps Engineer do?

Security
Security is a vital component in the DevOps methodology,
as it guarantees the safety of the software being
developed and deployed. DevOps involves collaboration
between development and operations teams to deliver
software quickly and frequently, and it's crucial to ensure
security is incorporated at every stage of the process. This
is achieved by integrating security testing into the CI/CD
pipeline, using automated tools and scripts to provision
and manage infrastructure securely, implementing security
controls in production environments, monitoring and
logging system activity to detect and address security
incidents, and providing security education and training for
all team members.
What roles are similar to
DevOps Engineering?

Site Reliability Engineering

Infrastructure Engineering

System Administration

Automation Engineering
--------- What roles are similar to DevOps Engineering?

Site Reliability Engineering


Site Reliability Engineering (SRE) is the practice of
combining software engineering and IT operational
principles to improve the reliability of software systems. It is
a proactive approach to maintaining the availability,
scalability and performance of software applications and
infrastructure. SRE teams use software tools and
automation to manage and monitor infrastructure. This
enables faster detection and resolution of problems and
better tracking of application performance.

SRE teams are often responsible for a wide range of tasks.


These include proactively identifying and addressing
potential problems before they become problems,
implementing and maintaining monitoring and alerting
systems to quickly detect and respond to problems,
managing and scaling the infrastructure to ensure it can
handle the application load, managing software and
maintenance of establishment facilities and the
development and implementation of disaster recovery and
business continuity plans to minimize the impact of
disruptions.

SRE allows organizations to move faster and with greater


agility. With SRE, development teams can release software
updates and new features more frequently without
worrying about the impact on system reliability.
--------- What roles are similar to DevOps Engineering?

Infrastructure Engineering
Infrastructure engineering is the process for ensuring that
the IT environment is stable, secure and can meet the
changing needs of the business. This includes designing
and implementing new systems and technologies,
maintaining and upgrading existing systems,
troubleshooting and resolving issues and monitoring the
performance of the IT environment. Infrastructure
engineers should have strong problem-solving, analytical
skills and the ability to communicate effectively with both
technical and non-technical colleagues. They should also
have knowledge of various technologies and operating
systems like Windows, Linux, and cloud platforms.
--------- What roles are similar to DevOps Engineering?

System Administration
Systems administration involves the management and
maintenance of a company's computer systems and
networks. This includes tasks such as installing and
configuring software, managing user accounts, monitoring
system performance, and troubleshooting issues. The goal of
a systems administrator is to ensure that the organization's IT
infrastructure is stable, secure, and able to meet the needs of
the business.

Another key aspect of systems administration is the


management of backups, security, and documentation of
the organization's IT infrastructure. This includes maintaining
records of system configurations, network diagrams, and
other important information which are essential for
troubleshooting issues and ensuring compliance with
industry standards and regulations.

To excel in systems administration, one should have


knowledge of various operating systems and experience with
network protocols, hardware, and virtualization technologies.
Strong problem-solving and analytical skills, as well as the
ability to work well under pressure, are also important.
Additionally, understanding security principles and the ability
to implement security measures to protect the organization's
IT resources from unauthorized access and cyberattacks are
also crucial.
--------- What roles are similar to DevOps Engineering?

Automation Engineering
Automation engineering is the process of using technology
to automate repetitive and time-consuming IT tasks. This
includes the use of tools and software to automate the
deployment, configuration, and management of IT systems
and applications. Automation engineers are responsible for
designing, building, and maintaining automation scripts
and workflows that can be used to automate various IT
processes. This can help to improve the efficiency,
accuracy, and scalability of IT operations.

The goal of IT automation engineering is to increase


operational efficiency and reduce manual intervention.
Automation engineers use scripting languages such as
Python, Perl, Bash and PowerShell, as well as automation
tools such as Terraform, Pulumi and Azure Bicep.
Skills a DevOps Engineer
should have

Communication Containerization
Configuration
and and
management
Collaboration virtualization

Continuous
Problem
Integration and Security
solving skills
Continuous
Delivery (CI/CD)

System Scripting and


Cloud Providers programming
administration
--------- Skills a DevOps Engineer should have

Communication and Collaboration

DevOps engineers play a crucial role in ensuring smooth


and efficient collaboration between the development and
operations teams in an organization. To be effective in their
role, they should be able to work collaboratively with both
technical and non-technical teams, to ensure that the
software is delivered on time and to the required quality
standards.

Configuration management

DevOps engineers use configuration management tools


like Ansible, Pulumi and Azure Bicep to automate system
administration tasks such as deploying new systems,
provisioning, configuring and managing existing systems,
and applying security patches. They have to have
experience with one or more of these tools to work in
organizations that have adopted these tools to automate
their infrastructure management. DevOps engineers that
have experience with these tools will be in high demand as
more organizations adopt them to automate their
infrastructure management and improve their software
delivery process.
--------- Skills a DevOps Engineer should have

Containerization and Virtualization

DevOps engineers should have experience with


containerization technologies like Docker and Kubernetes,
and virtualization technologies such as VMware and
Hyper-V. Containerization technologies like Docker and
Kubernetes are used to package and distribute software,
while virtualization technologies such as VMware and
Hyper-V are used to create multiple virtual machines on a
single physical machine. These technologies are essential
for automating the deployment, scaling and management
of applications, which is a crucial part of a DevOps
engineers role.

CI/CD

CI/CD (Continuous Integration and Continuous Delivery) is


a key practice in DevOps, which automates the process of
building, testing and deploying software, with the help of
various tools. DevOps engineers are responsible for
configuring and deploying these tools, and working closely
with the development team to ensure their effective use,
resulting in faster software delivery with fewer errors and
higher quality.
--------- Skills a DevOps Engineer should have

Problem solving skills

DevOps engineers are responsible for maintaining and


optimizing the software development process, which often
includes troubleshooting and resolving complex issues that
arise. To be effective in this role, they must have the ability
to think critically and analyze problems in order to find
effective solutions. This requires a deep understanding of
the systems and processes involved, as well as the ability
to analyze and interpret data.

Security

DevOps engineers are responsible for maintaining and


optimizing the software development process, which often
includes managing and securing cloud infrastructure. They
should have a strong understanding of cloud security,
including identifying and mitigating potential threats,
implementing security tools and technologies, ensuring
compliance with regulations, and conducting regular
security audits and vulnerability assessments. This helps to
protect the organization's sensitive data and maintain the
integrity and availability of cloud-based systems and
applications.
--------- Skills a DevOps Engineer should have

Cloud Providers

DevOps engineers should have experience with cloud


computing platforms such as AWS, Azure, and GCP, and be
able to work with cloud-based services and infrastructure.
This includes being familiar with the capabilities and
limitations of these platforms, working with different
services, optimizing costs, and managing and scaling
cloud-based infrastructure effectively.

System administration

A DevOps engineer is responsible for maintaining and


optimizing the software development process, including
system administration tasks such as provisioning and
managing servers, deploying databases, security
monitoring, system patching and managing internal and
external network connectivity. These tasks are essential for
ensuring the smooth operation of the development
environment and the security of the organization's systems
and data.
--------- Skills a DevOps Engineer should have

Scripting and programming

DevOps engineers should be proficient in scripting


languages such as Python, Perl, Bash and PowerShell. These
languages allow them to automate tasks, such as building
and deploying software, configuring servers, and
monitoring systems.
DevOps Learning
Curriculum and Study
Guide
--------- DevOps Learning Curriculum and Study Guide

Step 1: Fundamentals of Computer Science

It is important for DevOps engineers to understand


computer science fundamentals in order to effectively
troubleshoot and debug issues, understand and work with
complex systems, and optimize the software delivery
pipeline. A strong understanding of computer science
fundamentals also allows them to more easily understand
how software works at a fundamental level and how the
different components of the pipeline work and can be
integrated.

Here are some free resources:


Harvard CS50: Introduction to Computer Science
Stanford University: Computer Science 101
Udacity: Introduction to Theoretical Computer Science
Computer science fundamentals: 3 essential areas for
developers
Freecodecamp - Introduction to Computer Science
MIT: Introduction to Computer Science and Programming
--------- DevOps Learning Curriculum and Study Guide

Step 2: Programming and scripting languages

DevOps engineers should learn programming and scripting


languages because they play a critical role in automating
tasks and streamlining the software development process.

Automation is a key aspect of the DevOps philosophy and is


essential for achieving goals such as continuous integration,
continuous delivery, and infrastructure as code.

Here are some programming and scripting languages you


should consider:
Python - https://www.python.org/about/gettingstarted/
Rust - https://www.rust-lang.org/learn
Bash - https://linuxconfig.org/bash-scripting-tutorial
YAML - https://yaml.org/
Go - https://go.dev/learn/
Powershell - https://learn.microsoft.com/en-
us/training/modules/introduction-to-powershell/
JavaScript - https://www.javascript.com/
TypeScript - https://www.typescriptlang.org/
--------- DevOps Learning Curriculum and Study Guide

Step 3: Learn about networking

DevOps engineers often work on systems that span multiple


networked devices and infrastructure, so a strong
understanding of networking concepts and technologies is
necessary to effectively troubleshoot and optimize these
systems. Additionally, many DevOps tools and practices,
such as containerization and infrastructure as code, rely on
networking for communication and orchestration. Thus,
knowledge of networking is an essential skill for DevOps
engineers to have in order to fully understand and manage
the systems they are responsible for.

Here are some free resources for learning about


networking:
Google: The Bits and Bytes of Computer Networking
Udacity: Computer Networking
Udemy: Introduction to Networking for Complete
Beginners
--------- DevOps Learning Curriculum and Study Guide

Step 4: Learn about operating systems

An operating system provides the basic foundation for all


software on a device, it is the interface between the software
and the hardware, and as such, it is important for DevOps
engineers to have a good understanding of how the
operating system works, and how it interacts with the
software they are responsible for deploying.

A good understanding of the OS can help DevOps engineers


troubleshoot and optimize the performance of the systems
they support, and also can be helpful in configuring the
security settings of the systems they support. Linux and
Windows are good operating systems to start with.

Some OS concepts to learn are: I/O Management, Storage,


Concurrency, and File Systems.

Here are some free resources for learning about operating


systems:
Udemy: Operating Systems from Scratch
Educative: Operating Systems Course
Udacity: Introduction to Operating Systems
--------- DevOps Learning Curriculum and Study Guide

Step 5: Learn CI/CD Tools

CI/CD tools are important for DevOps engineers to learn


because they allow for faster and more frequent releases,
which can lead to faster innovation and better customer
experiences.

Some CI/CD tools to learn are: GitHub Actions, Jenkins,


CircleCI, Azure DevOps, GitLab CI and AWS CodePipeline.

Here are some resources for learning about CI/CD:


IBM: Continuous Integration and Delivery Course
Udacity: Continuous Integration and Deployment Course
Learn GitHub Actions
Learn Azure DevOps
Learn Jenkins
Learn Circle CI
Learn GitLab CI
Learn AWS CodePipeline
--------- DevOps Learning Curriculum and Study Guide

Step 6: Learn Infrastructure Automation Tools

Infrastructure automation is an essential skill for DevOps


engineers to master, as it allows them to automate the
process of provisioning, configuring, and managing the
underlying infrastructure needed to run their applications.

Some CI/CD tools to learn are: Terraform, Pulumi, Ansible,


Puppet, Azure Bicep, Chef and AWS CloudFormation.

Here are some resources for learning about infrastructure


automation:
What is infrastructure as code
Learn Terraform
Learn Pulumi
Learn Ansible
Learn Puppet
Learn Azure Bicep
Learn Chef
Learn AWS CloudFormation
--------- DevOps Learning Curriculum and Study Guide

Step 7: Learn About Containers and Container


Orchestration

Containers and container orchestration tools are key


technologies for DevOps engineers to learn as they provide
a way to package and deploy applications consistently and
portably. They improve consistency, portability, resource
efficiency, scalability, resilience and availability of
applications and enable the use of microservices
architecture. They also allow for easy scaling and self-
healing features, reducing the chance of errors and
improving the overall reliability of the applications.

Some containers to learn are: Docker and LXC.


Some container orchestration tools to learn are: Docker
Swarm and Kubernetes.

Here are some resources:


What is a container
What is container orchestration
Learn Docker
Learn LXC (Linux Containers)
Learn Docker Swarm
Learn Kubernetes
--------- DevOps Learning Curriculum and Study Guide

Step 8: Learn Cloud Providers

DevOps engineers often use cloud providers to deploy and


manage applications because they provide scalable and
flexible infrastructure. It is important for DevOps engineers to
learn about cloud providers so they can make informed
decisions about which provider and services to use for a
given project, and can effectively use the features and tools
provided by the chosen provider to automate the
deployment, scaling, and monitoring of applications.

Some cloud providers to learn are: AWS, Azure, Google


Cloud Platform, and Digital Ocean.

Here are some resources:


Learn AWS
Learn Azure
Learn Google Cloud Platform
Learn Digital Ocean
--------- DevOps Learning Curriculum and Study Guide

Step 9: Learn About Observability

DevOps engineers need to have a good understanding of


observability as it allows them to observe and comprehend
the behavior of their systems and applications, and spot
and resolve problems in real-time. By observing the
performance of their systems, they can trace requests and
transactions, and understand the interconnections and
interactions of different parts of the system. This allows them
to quickly identify and solve problems as they arise, and
enhance the overall reliability and performance of their
systems.

Some tools for observability are: Datadog, Elastic Stack,


Splunk, Prometheus, and New Relic.

Here are some resources for learning about observability:


What is Observability
DevOps Monitoring
DevOps Measurement: Monitoring and Observability
IBM: Monitoring and Observability for Application
Developers
Learn Datadog
Learn Elastic Stack
Learn Splunk
Learn Prometheus
Learn New Relic
--------- DevOps Learning Curriculum and Study Guide

Step 10: Learn About Cloud Design Patterns

DevOps engineers benefit from learning about cloud design


patterns, as they provide established practices and
solutions for common issues in designing and building
systems on the cloud. These patterns aid in making
informed decisions about architecture and infrastructure,
and assist in creating scalable, resilient, and cost-effective
solutions.

Here are some resources for learning about cloud design


patterns:
Microsoft: Cloud Design Patterns
Cloud Architecture Patterns (Book)
Udemy: Essential Cloud Architecture Patterns
--------- DevOps Learning Curriculum and Study Guide

Step 11: Get A Certification (optional)

While this is not compulsory, obtaining cloud certifications is


a way for DevOps engineers to showcase their knowledge
and expertise in working with specific cloud platforms and
services. This demonstrates to organizations, both current
and potential employers, that you possess a detailed
understanding of the platform and its capabilities, which
can be valuable for organizations that already use or plan to
use that platform. Additionally, certifications can also serve
as a means for you to demonstrate your professional
development and advancement in your career.

Here are some resources for learning about cloud design


patterns:
AWS Certified DevOps Engineer - Professional
Certified Kubernetes Administrator (CKA)
Docker Certified Associate (DCA)
Exam AZ-400: Desigining and Implementing Microsoft
DevOps Solutions
Linux Foundation Certified System Administrator (LFCS)
Certified Kubernetes Application Developer (CKAD)
Google Professional Cloud DevOps Engineer
HashiCorp Certified: Terraform Associate
--------- DevOps Learning Curriculum and Study Guide

Additional Resources

DevOps and SRE Roadmap


DevOps Resources
Azure DevOps Blog
DevOps.com
Udacity: Cloud DevOps Engineer Course
Beginning Azure DevOps (Book)
Become a DevOps Engineer (Roadmap)
The DevOps HandBook
What
Next
After
Learning?
--------- What's next after learning?

Join a community

DevOps communities are beneficial for those new to the


field as they offer a wealth of resources and opportunities,
such as access to experienced professionals, networking
possibilities, learning resources, and mentorship support.
These communities provide a supportive and collaborative
environment, allowing newbies to gain new skills, knowledge
and connections. They also provide access to materials and
documentation, which can assist in learning about various
tools and practices.

Examples of communities are Localhost, DevOps on


LinkedIn, KCDAfrica, KodeKloud Community and more.

You can use the internet to search for communities around


you.

Build projects

You can work on open source projects on GitHub or


contribute in hackathons. You can also work on a pet project
with your friends. A portfolio is very important as it shows
potential employers that you have the skills they are looking
for.
--------- What's next after learning?

Join a company

Yes! Join a company and start contributing in your own little


way because the learning never stops. You don't need to
learn everything before taking the bold step to interview,
however it's important that you know the fundamentals
needed to succeed in the role. You'd learn the rest along the
way.

To find DevOps jobs, you can use job boards that have
DevOps roles. You can also leverage your community and
network for recommendations. Finally, many people have
gotten roles from LinkedIn by attracting recruiters, so you
should optimize your profile so that recruiters can find you
too.

On the other hand, finding a beginner DevOps job might be


very hard as DevOps is a very crucial role for technology
business and companies want experienced professionals in
charge of their infrastructure and processes. One way
around this is to join a company as a junior backend
engineer and transition into the DevOps role over time. After
all, backend and DevOps skills are transferrable.
DevOps Job Boards

devopsjobboard.com

kube.careers

LinkedIn

indeed.com

toptal.com

nodesk.co

arc.dev
Sample
DevOps
Interview
Questions
Practice them before your next interview
--------- Sample DevOps Interview Questions

What is the difference between continuous delivery and


continuous deployment?

What is the role of configuration management in DevOps?

How to you manage and automate infrastructure deployments?

How does continuous monitoring help you maintain the


architecture of a system?

How do you handle change management in your systems?

How would you approach scaling a system to handle increased


traffic?

How do you monitor application performance?

Can you share about a time when you had to implement blue-
green and canary deployments? How did you do it?

How do you handle security and compliance in your DevOps


processes?

How do you monitor and maintain your applications service level


agreements (SLAs)?

How would you approach DevOps monitoring?

How would you approach testing in production?

Can you explain the concept of event-driven architecture?

How do you handle and manage multi-cloud deployments in your


systems?
--------- Sample DevOps Interview Questions

What can you say about antipatterns of DevOps?

Explain Continuous Testing

How do you handle and manage data backup and recovery in


your systems?

What are the differences between DevOps and Agile?

What can you say about branching strategies?

What are the key differences between continuous testing and


automation testing?

What are the key differences between containerization and


virtualization?

What are the key differences between cloud and on-premises


services in DevOps?

How do you manage and monitor resource usage in your systems?

How do you handle and manage software dependencies in your


systems?

These are just examples of possibles questions. However, the


organization you are applying to will ask unique questions based on
the skills and requirements they are hiring for.

If you want more interview questions, you can visit the links below:
https://www.testgorilla.com/blog/devops-interview-questions/
https://www.interviewbit.com/devops-interview-questions/
https://www.simplilearn.com/tutorials/devops-tutorial/devops-
interview-questions
Answering
your social
media
questions
--------- Answering your social media questions

I asked on social media for your DevOps related


questions because I wanted to answer all of them in
this booklet. In this section, we would cover the
questions and their answers.
--------- Answering your social media questions

So many tools out there to learn. What are the main ones to
focus on?

The tools that you should focus on will depend on the


company you work at. However, there are some very
common tools that I would recommend:

Git for version control


Docker for containerization
Terraform, AWS CloudFormation, Azure Bicep and Pulumi
for Infrastructure Automation
CircleCI, GitHub Actions, Azure DevOps and GitLab CI for
Continuous Integration and Continuous Delivery
AWS, Azure, and Google Cloud (cloud providers)
Kubernetes for container orchestration

Why do DevOps practices vary across tools like AWS, GCP,


Azure and even companies that employ DevOps?

DevOps practices vary between different tools such as AWS,


GCP, Azure, and even across different companies that
employ DevOps. This is due to a range of factors including
variations in the services and features provided by different
cloud providers, specific organizational requirements,
variations in team structures and processes, variations in
company culture and maturity level, and variations in the
different business domains. Each company will adapt and
implement DevOps practices that best suit their specific
needs and requirements.
--------- Answering your social media questions

Do we have internship roles for starters in Azure Devops?

Organizations that use Azure DevOps might run internship


programs so that opportunity might be available. However,
you can also check out the Microsoft careers page for
internship roles when they open up.

If you were to guide a newbie, what are the first few steps?

If I were to guide a newbie, some initial steps that could be


taken include helping them do the following:
Acquire a foundation in software development
Learning about automation tools
Understand version control systems
Create portfolio projects
Network with other DevOps professionals

What advice would you give to someone looking for entry


level role in DevOps ?
Learn about DevOps with the resources I've shared, network
and start looking for roles. Getting jobs through networks is
easier. However if that doesn't work out, join a company as
an entry level backend engineer and transition into DevOps
later.
--------- Answering your social media questions

What informs your decision in choosing a cloud provider to


build on?

Nothing. I'd recommend learning the fundamentals


thoroughly so that you can be cloud agnostic and flexible to
work with different providers depending on the different
companies you work for in the various stages of your career.
You'd use the provider that your organization already uses.

However if you're asking this for times when you're working


on private projects, some factors that can affect your
decision might be: services and features offered, pricing and
cost structure, compliance and regulatory requirements,
security, scalability, support and documentation, community
and ecosystem, integration with existing systems and
geographical location of data storage.

What really is the difference between DevOps and Platform


Engineering?

Platform Engineering is a developing field that aims to


improve developer efficiency by simplifying the complexity
and unpredictability of modern software delivery. It
addresses some of the major obstacles that organizations
face when implementing DevOps on a large scale, such as
ensuring development practices align with business
objectives and minimizing the difficulty of managing a
complex network of tools and infrastructure throughout the
application's life cycle.
--------- Answering your social media questions

Must a DevOps engineer be very good with Python?

Not necessarily. However, I would argue that DevOps


engineers should have good programming and scripting
language skills. I'd recommend to prioritize YAML and
command line scripting languages like BASH and Powershell.
However Python is a nice skill as you can use it in
collaboration with tools like Pulumi to do infrastructure
automation.

What's the difference between Terraform and Ansible and


can I use both at the same when deploying a server on
AWS or any cloud provider?

Terraform is an infrastructure automation tool that is used to


provision, manage and version your infrastructure, Ansible is
a configuration management tool. Both Terraform and
Ansible are powerful tools that can be used together to
automate the process of provisioning and managing
resources on cloud providers such as AWS, Terraform can be
used to deploy and manage the infrastructure, and Ansible
can be used to install, configure and manage the software
on those servers.
--------- Answering your social media questions

Is there any major difference between AWS DevOps and


Azure DevOps?

AWS DevOps and Azure DevOps are similar in their overall


goals and functionality, but they differ in terms of the
specific tools and services that they offer since they are run
by different companies.

The primary distinction between AWS DevOps and Azure


DevOps is the set of tools and services they provide. AWS
DevOps mainly uses AWS tools such as CodeCommit,
CodeBuild, CodePipeline, and CodeDeploy for developing
and deploying applications, whereas Azure DevOps mainly
uses Azure tools such as Azure Repos, Azure Artifacts, Azure
Pipelines, Azure Artifacts and Azure Test Plans. Both solutions
also offer a variety of additional services for monitoring,
logging, security, and automation such as AWS
CloudFormation, AWS CloudWatch for AWS and Azure
Monitor, and Microsoft Defender (for Cloud) for Azure
DevOps.
--------- Answering your social media questions

How would you approach balancing the need for rapid


deployment with ensuring security and compliance in your
DevOps processes?

When it comes to balancing the need for fast deployment


with ensuring security and compliance in DevOps processes,
it is crucial to take a holistic approach that incorporates
several key elements. One way to achieve this is by initially
integrating security, automating security checks, utilizing the
security features provided by cloud providers, limiting
access to sensitive data and resources, regularly reviewing
and updating security policies, having an incident response
and disaster recovery plan in place and constantly
monitoring and assessing the system for any potential
vulnerabilities. By implementing these strategies, it is
possible to ensure that security and compliance are
integrated throughout the development process, and you
can focus on deploying new features. Security is very
important, it should not be compromised.

Do we need to learn full stack development before going on


DevOps?

It is not mandatory to have full-stack development


knowledge, but having a fundamental understanding of
software development can be an advantage.
You made it to
the end!

Congratulations! I'm excited that you made it this far


and I hope all the resources shared in this booklet has
been useful to you. I can't wait to see all your exploits
and I wish you an amazing career. If you'd like to reach
out to me, you can reach me on Twitter, YouTube, or
you can join my study group on Slack.

Goodluck!

www.adoranwodo.com
www.adoranwodo.com

You might also like