DevOps for Freshers and Non-IT People - The Simplest Guide Around

DevOps for Freshers and Non-IT People - The Simplest Guide Around

Main Goal of Software Company

Why Do Software Companies Exist?

Simple: they make software applications. But why do we need these applications? Software, in any form—from websites to AI models—solves common problems, improves workflows in various industries, or provides services used by people all around the world.

So, what is the main goal of a software company or IT firm? The straightforward answer is to deliver software to their end users. This is the core goal, no matter what kind of IT firm it is.

Delivering a software application to end users can involve 10 steps or even hundreds of steps, depending on how big the software is and the nature of the company. Different approaches have been introduced to the IT world to facilitate this software delivery, or what we call the release process.

You don't need to know all these approaches now, but two main ones are worth mentioning:

- Waterfall Methodology: This is an older approach.

- Agile Approach: This is very popular and used by many modern IT companies.

These two are not the only methods; more are always being developed. But whatever the approach, the main goal is always to deliver the software product to end users or clients. Keep that in mind!

Key Steps in Delivering Software

Typical Software Release Process

As i mentioned, delivering software to end users involves a series of steps carried out by IT professionals. This process can vary from company to company, with some needing 10 steps and others 100, depending on their specific nature and context. However, the delivery process can generally be broken down into 5 to 6 core steps. These main steps are used by IT firms universally, regardless of their differences.

Everything starts with 1- someone's mind-blowing idea, just like how companies like Meta and Tesla began. Then the next step is to 2- brainstorm the requirements and features of the software, figuring out what it should do and how it should work. Next, developers start 3- coding, bringing the idea to life by writing the necessary code. After the coding is done, it's crucial to 4- test the application to ensure it works correctly and doesn't have any bugs. Once testing is complete, the application is 5- built and packaged, getting it ready for deployment. Building and packaging software is like converting it into a format that can be executed on a given computer or CPU. Finally, the application is 6- deployed to a public server, making it available for users to access and enjoy.

Our software application is now in a public place where people can access it happily. All done, right? Our mind-blowing idea is live, so let’s fire our employees and close the amazing company we built because we’re done.

Continuous Improvement

After the software is released, the work doesn't stop. You need to 7- run and monitor the application to ensure it is accessible and usable by end users.

If users encounter problems, these need to be resolved quickly. The application might need tweaks to run more efficiently. Sometimes, users suggest great ideas that can be added to the application.

The goal is to make fixes and new features accessible to users immediately, creating a never-ending cycle of improvement. This is where the idea of continuous release or delivery comes into play.

Never Ending Releases

To fix an issue, optimize performance, or implement a new feature from users or internal management, we need to go through the same set of core steps(1,2,3,...7) again and again. That's why these steps are crucial for any IT firm, no matter what they build. After the initial delivery or launch of the software, more versions of the same software come out with the mentioned tweaks or additions.

Software teams use different names for these post-releases using a versioning system. The most common versioning method looks like a sequence of numbers, but you don’t need to think about those versioning details now. These will be introduced to you in one of the next newsletters as we move forward.

Relase Versioning

Continuous Delivery - Fast and High- Quality

Now you know that we need continuous delivery, BUT with two main aspects: it should be fast and frequent without compromising the quality of the final software product. This is not easy with the traditional way of delivering software, whether you're using the waterfall or agile methods. These approaches alone are not enough to deliver faster while maintaining quality.

The major barrier lies in the traditional way IT companies develop software. It's not about technology, tools, or roles, but about the process these traditional IT companies follow. That process always slows down the talked release or delivery process.

Developer and Operations Teams Aren't Communicating Well ??

If you come from a non-IT background or Fresher, here’s a simple way to understand the roles of development and operations teams.

The development (Dev) team is responsible for coding and building the software product. The operations team takes the developed software and deploys it on public servers, making it run smoothly.

If "deploying and running" sounds confusing, think of it this way: before you can use software on a computer, you need to install various programs, set up network connections, and configure other settings. This is what the operations team does.

In future newsletters, you’ll learn more about the specific roles in an IT firm.

Let's continue with the story.

In a real-world environment, developers are often very busy writing the code for the software product. They usually don't think about where this code will eventually run or be deployed because their focus is on implementing the business logic of the software. As a result, they are unaware of what happens to the software code after they have written it.
On the other hand, the operations teams face a similar issue but from a different perspective. They are not familiar with the piece of software that the developers have given them. They don't know why it's there or how it works. Without this information, they are blindly trying to deploy and run it on their servers.

This happens because there is no proper guidance or documentation from the development team on how to deploy the software product. As a result, the operations team tries to deploy and run it based on their own methods, leading to issues. They think it is the developers' fault and send the software back with a list of problems. This back-and-forth can go on endlessly.

The real problem is that the delivery or release gets delayed by days, weeks, or even months.

The main reason is that development and operations teams follow complex processes with a lot of manual involvement and approvals. They have lacked a fully automated, streamlined process for years.

DevOps

DevOps was created to eliminate barriers that slow down the delivery process. These barriers can occur at any phase and at any time, and DevOps aims to remove or reduce these roadblocks to speed up software releases while ensuring high-quality products. Thanks to DevOps, many IT companies can now deliver or release software multiple times per day.

So, at its core, this is what DevOps is about. With this change in process and mindset, different roles, tools, and technologies have also evolved. Also, when implementing DevOps in a real-world environment, the role of the DevOps Engineer and specific tools are crucial. However, the core meaning of DevOps remains what we mentioned above. We'll talk about those in the next newsletter because we want a smooth flow without overwhelming our brains all at once. That's what I believe in.


I hope you're ready for some exciting updates about my works and CoDeKu!

Tech Talks

?? First, I recently participated in my sixth talk in the past six months at TechWaves, organized by the IEEE Student Branch of University of Vavuniya ??. I delivered an exciting tech talk on Software Engineering in 2024, highlighting the latest trends in DevOps and Cloud ??. The event drew around 200 participants from various universities across the country ??. I was thrilled to be the inaugural speaker and kick off their program ??!


CoDeKu

?? You might be curious about CoDeKu ??. It's my personal initiative designed to introduce the public to DevOps and Cloud. The name embodies:

Co - Cloud Operations (CloudOps) ?? De - DevOps ?? Ku - Kubernetes ??

CoDeKu aims to provide guidance and consultancy to individuals pursuing careers in these areas. It's still in its early stages, and I'm looking for a few passionate people to join me on this journey ??. If you're interested, please leave a comment below! ??


Official Website

?? I have launched my personal website in collaboration with CoDeKu ??. Check it out here!

https://nimesha.online

There's an email newsletter at the bottom of the site that you can subscribe to ??. However, this site is specifically tailored for Sri Lankans ????. If you're not local, please follow KodeKloud instead ??.


New Video and Playlist is Coming

?? A couple of YouTube videos are coming this week, specifically for my Sri Lankan audience who admire my efforts so much ????. Your support motivates me greatly!

?? 5th Lesson of the Kubernetes Series - Coming tomorrow

?? Brand New DevOps Playlist - Available by Monday

Become a member of my Great Community : https://www.youtube.com/@LifeCapturedchathunimesh


Open Source Project

Hey, have you seen the illustrations I created for the tech topics explained above? I've made all the illustrations from the last four K8s videos available in the following GitHub repo ??. Please go ahead and have a look ??. Many Sri Lankan students and lecturers requested these infographics, so I decided to make them openly available to anyone around the world ??. Feel free to raise PRs, issues, and contribute as you wish. If you find my work valuable, please give it a star ?!

https://github.com/CoDeKu-Labs/K8s-for-kids


Part-time Upwork Freelancing Achievement

?? By the way, I've achieved another amazing milestone on Upwork ??. I started a new contract last week and assigned one of the software engineers from my virtually managed team ??. This is a great start to regaining my Upwork status after being inactive for over two months. I'm quickly moving towards the $100k milestone in my part-time Upwork jobs ??. I want to thank the person who carries out my work on my behalf ??.



That's all for today! I hope you learned a lot and feel motivated too ????. Let's catch up in next week's newsletter! ???


Sanchitha Udana

DevOps Engineering Enthusiasts | Software Engineering

9 个月

thank you ayiye. Superb !

赞
回复

要查看或添加评论,请登录

Nimesha Jinarajadasa的更多文ç«