Pages

What really is DevOps?

What DevOps is Not!

Let's begin by talking about some common DevOps misconceptions.

- Magic: 

Implementing DevOps is not hard; it requires dedication. If your organization is expecting a pivot to DevOps without laying out a clear plan for how incentives and communication are expected to change, it’s likely that your company will be in the majority that won’t magically get the benefits of rolling out DevOps correctly --faster delivery, acceptable margins of error, efficient use of automation, and strong collaboration. 

- A tool or about tools: 


DevOps is not a tool, neither is it just about tooling. DevOps is not your Jenkins pipeline and it is not using Terraform to build your infrastructure. While tools can help in the adoption of DevOps practices, simply combining a bunch of tools do not give you DevOps. Integration and communication, even among tools is the key in DevOps!


- Simply a combination of Development and Operations Teams: 

DevOps may be a portmanteau of the words Development and Operations, but it is hardly that. DevOps engineers are not merely Developers and operations guys merge into one person. 

- A separate team or department: 

The primary goal of DevOps is breaking down organizational silos. DevOps integrates development and operational responsibilities. These departmental silos are what the implementation of DevOps seeks to break down in the first place! 

- A one-size-fits-all strategy: 

There are so many business drivers and technologies unique to every organization and as such, DevOps needs to be customized to suit the particular needs of an organization. It is noteworthy to mention that there is no DevOps playbook and different organizations have different DevOps adoption strategies. 


- Automation: 

Like tools, Automation is a key part of DevOps but it is not the only part. It is not even the most important part of DevOps. Following DevOps practices means you are going to automate as much as you can but fundamentally, DevOps is about eliminating production roadblocks, not just about automating processes. To eliminate these production roadblocks, you first need to make changes to how your teams communicate. A good first step is synchronizing your development and operations team so that they work towards a shared goal and communicate effectively and frequently. 


What is DevOps?

Now that we've addressed the key misconceptions concerning DevOps, let's see what DevOps actually is. 

DevOps is a set of practices that work to automate and integrate the processes between software development and operations teams so they can build, test and release software more efficiently. The power of DevOps allows a single to manage the entire application development lifecycle, that is, development, testing, deployment and monitoring. It aims to shorten the software development lifecycle while providing features, fixes and upgrades regularly and in close alignment with business goals. 

Patrick Debois: The father of DevOps

In 2008, the concept of DevOps emerged as a result of a discussion between Andrew Clay and Patrick Debois. Patrick Debois was a Belgian consultant, project manager and Agile practitioner. He made a presentation on “10+ deploys per day: Dev and Ops cooperation at Flickr” this helped to bring out the ideas for DevOps and resolve the conflict of “it’s not my code, it’s your machines!” This was the constant conflict between operations and development teams. Thanks to the power of DevOps, organizations adopting DevOps are deploying code 30x more frequently with 50% fewer failures today!

DevOps is an extension of Agile thinking that blends lean thinking with Agile philosophy. One of the key tenets of DevOps is the software development is a continuous activity. In DevOps, we are always making changes to our code to incorporate bug fixes and newest features, always testing this code for bugs, vulnerabilities and deficiencies to ensure we are only pushing out the best possible application to our users, and always deploying them on the production servers where they are made live and into the hands of the end users. Then, we continuously monitor the applications to ensure that our infrastructure hosting the application is healthy, our application is healthy and if there are any problems, we can work to fix them and keeping working on solutions to make the application better for our users. 

To do this, DevOps requires that we collaborate with many IT teams like the system admins, developers, test engineers, business teams and users to get this feedback and input that will help us design and deliver our application.  This integration of different teams and disciplines in the software delivery lifecycle promotes collaboration and highly improves the working environment.   There is a consistent pattern that appears in the interaction between dev and ops. 



Development includes: plan, create, verify and package deployment of artifacts. 
Operations Includes: release, configure and monitor. A combination of these results in a continuous cycle.

In the end DevOps really has two main goals: collaboration between IT teams and delivering top quality softwares to end-users! 


Who is a DevOps Engineer?



A DevOps Engineer is an engineer who has elemental understanding of  the Software Development Lifecycle and the various automation tools for developing Continuous Integration and Continuous Deployment/Delivery pipelines. They work hand-in-hand with developers and the IT staff to oversee the code releases.

Why become a DevOps Engineer

DevOps is a continuously evolving practice with  multiple opportunities in the profession. As a DevOps engineer, you have endless possibilities to learn and develop, make real business impacts, and dramatically improve your earning potential. DevOps engineers are in high demand and this will not change in the future. They enjoy high salaries and some of the best conditions in the High-Tech industry. In the U.S., the average base salary for people with a DevOps job title is $126, 272!

Take the next steps and start your career in DevOps today!


Pre-requisites:
To be successful in this course, you need:
- Linux fundamentals class
- AWS account
- A computer
- Strong internet
- Dedication

No comments:

Post a Comment

Introduction to continuous integration: Jenkins

  Jenkins setup - Install Java, Jenkins, Maven, Tomcat on Ubuntu EC2 - How to install Java, Jenkins, Maven, Tomcat on Ubuntu EC2 Please foll...