DevOps The Ultimate Beginners Guide to Learn DevOps Step-by-Step (Reed, Mark) (Z-Library)

Author: Reed, Mark

科学

No Description

📄 File Format: PDF
💾 File Size: 2.7 MB
22
Views
0
Downloads
0.00
Total Donations

📄 Text Preview (First 20 pages)

ℹ️

Registered users can read the full content for free

Register as a Gaohf Library member to read the complete e-book online for free and enjoy a better reading experience.

📄 Page 1
(This page has no text content)
📄 Page 2
(This page has no text content)
📄 Page 3
(This page has no text content)
📄 Page 4
DevOps The ultimate beginners guide to learn DevOps step- by-step Mark Reed
📄 Page 5
© Copyright 2019—All rights reserved. It is not legal to reproduce, duplicate, or transmit any part of this document in either electronic means or in printed format. Recording of this publication is strictly prohibited and any storage of this document is not allowed unless with written permission from the publisher except for the use of brief quotations in a book review.
📄 Page 6
Table of Contents Introduction Chapter One: What Is DevOps? Chapter Two: The DevOps Lifecycle and Workflow Chapter Three: DevOps Practices Chapter Four: DevOps Tools Chapter Five: Adopting DevOps Chapter Six: Signs of Dysfunctional Processes in DevOps Chapter Seven: The Future of DevOps Final Words
📄 Page 7
Introduction It is evident that technology has changed the society at large. Today we live, work, and communicate in ways that seemed incomprehensible only a decade ago. For instance, consider the influence cloud technology has had on information technology. While all the changes resulting from technological advancement are good for business, the new digital technologies also present different challenges for IT and their users. For instance, the high demand for real-time communications and instant software updates have triggered core changes in the IT operations paradigm. Due to such changes, companies are under pressure to get their applications up and running within the shortest time possible. Notably, IT has facilitated the need to adopt quicker and more agile software management frameworks. As a result, IT life cycles have shortened as applications become more complex. This has in turn facilitated the need for cross-collaboration and integration between different IT constituents such as development, operations, and quality assurance. The result: a new IT discipline referred to as DevOps. So, the obvious questions to ask at this point are What is DevOps? Does your organization leverage DevOps today? What measures have you put in place to ensure efficient workflows, increased revenue generation, and faster production cycles in your business or company? This book seeks to answer these questions and more, as well as any other questions that beginners have about DevOps. By the time you are done reading this book, you will understand what DevOps is, why your organization needs it, its different applications, and its importance in the modern IT-driven business environment. DevOps facilitates effective communication and collaboration across an organization. This allows businesses to produce and improve products at a faster rate than they would have if using traditional approaches. Collaboration builds stronger, more productive, and happier teams that are solely focused on end product quality and performance. Operations become seamless, since every individual works towards a common goal. High efficiency not only accelerates development but also streamlines the entire process, making it less prone to costly and time
📄 Page 8
consuming errors. DevOps tasks can be automated, leaving software engineers with more time to focus on executing other, non-automated tasks. This, partly, facilitates the agile relationship between operations departments and system development departments as created by DevOps. Such collaborations offer technically effective results that favor both users and customers. The industry has set the bar and is implementing DevOps at a high rate. Conversely, organizations are eager to take advantage of the enhanced innovation, stable operations environment, faster application delivery, and building performance-oriented work teams with the aim of maximizing profits. Therefore, it is paramount to understand the essential factors about DevOps and its application in the current business environment. Despite how different people are, all the differences must be set aside when it comes to company management and operations. People must work as one unit in order to achieve the core company goals which are excellent customer service and offering solutions to industry specific problems. If everyone can imbibe this organizational work culture philosophy and take time to understand DevOps, it will be easier to create invaluable workplace practices that value people over profits and processes. Indulge to learn DevOps essentials that you should know!
📄 Page 9
Chapter One: What Is DevOps? In simple terms, DevOps refers to a set of practices configured to combine information technology operations with software development to shorten the system development life cycle needed to achieve high-quality software. The word DevOps is derived from “development and operation,” which is used to describe the agile relationship that exists between IT operations and software development with an aim to develop better communication in the two fields. How Was DevOps Derived? DevOps was initially derived from agile software development in an attempt to keep up with the increased software velocity achieved through the use of agile methods. Moreover, the advancement of the agile culture comprising other prevailing methods over the years has given rise to more holistic approaches to software development that focus on an end-to-end software delivery cycle. Agile software development is essentially a hypernym, and it is used to describe the group of software production strategies built around this systemic approach. It is a methodology that combines two software improvement methods in the industry, one incremental and the other, iterative, into a single system to more efficiently and effectively produce and roll out technological products. These agile methodologies include extreme programming (XP), Lean Development, Kanban, scrum, and scaled agile. There are many unique agile methodologies, and while there are specific approaches and scenarios suited for each particular method, the different methods all still share the same primary implementation and core values, which derive the similarity between them. They all incorporate an iterative-centered style embedded with a form of a feedback channel for the evolution of projects and software. The methods that consist of feedback channels specifically are considered as the subparts of the main software project. These subparts are responsible for continuous testing, planning, and integration throughout both the software development and deployment process to ensure the unceasing evolution of the software. Moreover, they are regarded as lightweight when compared to the initial and more traditional waterfall-style processes, which are inherently adaptable for
📄 Page 10
reinvention. What is good about agile methods is the fact that it has a primary impact on empowering the people towards making an informed decision effectively. Initially, agile teams were made up of aggressive and innovative developers, which make these methods popular because of their efficiency and effectiveness when handling the in-depth nature of software development. The aggressiveness and innovation put in place by the agile team ensured that the desired goal was achieved by the organization in question. They create a competitive advantage in the market through unique service delivery, which cannot be easily emulated by other experts. Though the agile team works along with the quality assurance team, these people in particular are responsible for the organization’s product output, which makes their service more distinct than others. Instead, they outgrow the quality assurance team in order to deliver an increased velocity software, which ensures that the idea is brought into reality by the experts. Furthermore, the DevOps team focuses on the standardization of the services, which creates an automated environment to improve the software service delivery to potential customers and users in general. It is all about the efficiency, security, and sustainability of the software to ensure that there are no hiccups in the system. DevOps Roots and Origin Before delving much on the roots and origin, we have to consider the main intention behind DevOps development. Because it is a set of practices that involves the automation of processes between software developers and IT teams in order to build, test, and release software faster and more effectively and reliably mark it all. Also, its combination of cultural philosophies, practices, skills, and tools that increase the organization's ability to deliver software application and of a higher quality play a vital role in its development. It is the term for a group of concepts that, while not all new, have triggered into a movement and are increasingly spreading throughout the technical community. The new concept arises from the collision of two major related trends in which the first was called “agile infrastructure” or “agile operations.” The second is a much-expanded understanding of
📄 Page 11
operations staff throughout all stages of information technology and software development. Moreover, DevOps automation can be derived by repackaging platforms, systems, and applications into reusable building blocks through the use of technologies. These comprise virtual machines and containerization DevOps systems majorly based on division of labor. Each team member focuses and relies on different criteria to evaluate their efficiency in an organizational setup to enhance the delivery of highly developed software products and good quality. It is the practice of operations and development engineers participating together in the entire service life cycle, from design through the development process to production support. As technologies were evolving and business needs were becoming more dynamic and sophisticated, it was evident that the existing approach to implementing projects had to be adjusted. As a result, the agile manifesto was born, allowing for more productive teamwork between developers and quality assurance engineers on top of other important things like the ability to change requirements on the go and launch projects much faster and easier. The essence of Agile development narrows down to a series of short cycles called “iterations,” which usually take about two or three weeks or even a month. In its turn, each iteration is considered as a mini or a micro project and includes such steps as requirements analysis, planning, implementation, testing, and documenting. Comparably, Google was not the only company to start employing SREs and soon enough, all the big tech players began to implement site reliability philosophies to reduce downtime and increase customer satisfaction to enable them to achieve great profits. In 2008, Apple experienced significant downtime in which the nascent cloud service received a lot more traffic to servers than anticipated. Due to proving downtime or angry customers, they began to experience huge losses that could otherwise deteriorate the company’s image and financial position. Through their experience managing uptime at the world’s largest photo-sharing site at the time, Allspaw and Hammond noted that the operations team, charged with managing servers, and the development team, the team tasked with creating code, seemed to always be at odds with each other and more often than not, were “finger-pointing” instead of
📄 Page 12
solving problems. The blame game had become too much, and they had realized that this was going to cause much harm to the organization. They, therefore, needed to come up with strategies to manage this condition and help them solve the problem at hand. The solution they proposed was to hire operation employees who think like developers and engineers and developers who think like operators. In a presentation at the 2009 O’Reilly Velocity conference, Allspaw and Hammond proposed integrating development and operations into a singular automated infrastructure with shared version control and one-step build and deployment. John Allspaw and Paul Hammond were Flickr engineers, and through them, DevOps was born, but it did not have a name yet. The main aim of starting DevOps was to ensure faster delivery of software products in a developing tech world and to enhance a culture of teamwork. This culture developed with time, and other firms were quick in adopting it because it was convenient and reliable. Factually, DevOps is here to stay for the foreseeable future until some new methodology or technology comes along to replace it and disrupt its space. It is the offspring of agile software development born from the need to keep up with the increased software velocity through agile methodologies. We are already witnessing signs of DevOps maturing and evolving into something more advanced and trendy. Artificial intelligence is starting to permeate everything from smartphones to self-driving cars that have been developed into the first moving technological world. It will also help disrupt the DevOps mantra to automate better. This DevOps culture is even making it easier for scholars to improve their technological abilities, thereby improving their technological skills. Besides, it is leaning towards the concept of thinking combined and blended with agile philosophy. The revolutionary DevOps perception of DevOps is that it crosses a traditional line by merging software development with the environment in which it was founded and developed. This cultural change is then made possible by several tools that automate such processes as code development and review through continuous integration while making it possible by merging different functions and roles from software testing to the deployment of the software, which makes it complete.
📄 Page 13
Rationally, the rise of DevOps is not all that new to the current generation of youths. Information Technology has a history of ensuring relevance to more and more people all the time. What was once walled off in its department with corporations and learning institutions has now spread all over the world and into everyone’s pocket. DevOps takes the next logical step in this growth and development by bringing together or at least linking, development, and operations to create a schedule of activity in which everyone can participate. Furthermore, it was the inevitable outcome of building and operating sites that became the web giants. In the 21st century, developers cannot just create new features in the lab and then expect operations to take over and deploy the current software. They need to understand how these systems work and how they are configured and deployed because it is installed across thousands of machines, both virtual and physical. However, they need to collaborate with the Ops team to build and maintain the deployment process because that deployment is now software. The main problem with the DevOps team is a risk of security issues because the security team is not integrated with DevOps, and they have no idea about tactics and methodologies being used to speed up the application development process. Therefore, adapting the DevOps system will require major change and adaptation in the mindset of employees and employers and organizational culture as a whole, which cannot happen overnight because it will take quite some time. Why Is DevOps Required? Since DevOps tend to describe a culture and a set of resources which mainly focused on the development and operation advancement of the software, it ensures that the organizations can create and improve a product faster. When compared to traditional software, it is somehow advanced and adored by many people who embrace the new technology. The fact that DevOps has a shorter development cycle makes it very unique and necessary in the new technological advancement in society. Though the development and operation teams may exist in different silos, one cannot easily tell when the application is likely to be ready for use. However, when the application has been turned over by the developers, it tends to gain faster acceptance and readily used within the shortest time possible. These
📄 Page 14
initiatives tend to extend the operation cycle of development of the new technological advancement, which attracts the major population in the market today. Naturally, the company needs to develop the application within the shortest time possible, thus making it attractive and economical in terms of production cost and the overhead expenditure incurred during the invention. In fact, it is estimated by Red Hat official, Kevin Murphy that the shorter development period translates to a faster market percentage, which ensures that there are a great growth and market penetration within the shortest period possible. Moreover, DevOps development is important in such a way that it reduces deployment failure, which is likely to happen with any other company. Also, time to recover and rollbacks are looked into by the company, which ensures that there is a great allocation for resources that do not inconvenience the development of the application. It has been identified that most of the programming failure leads to deployment failure, which is not common with the DevOps. With shorter development cycles, the company enjoys frequent code release, which ensures that any defect which may inconvenience the development is spotted before its full manifestation. Therefore, there is a reduced number of deployment failure which may occur in the system, thus ensuring that there is a continuer’s involvement of the employees throughout the development phase. By employing the agile programming principles which aid in collaboration and modular programming in the corporation, rollbacks easily managed since it can only occur when the module is affected which has a minimal chance to happen. Moreover, time to recover is an important issue in system development since some failures have to anticipate. It is important to have a time recovery in which a platform for interaction provided by both parties working on the system development. They get humble time to share and develop the ideas, which may turn out to be very crucial in the development of the system, thus eliminating the challenges which may exist. Gathering the ideas from a different perspective or diverse view makes the decision- making process easier and fruitful for all those who are involved. It is not a matter of credit to be earned but the desire to have a great outcome. They are being driven by the desire to achieve great technological advancement,
📄 Page 15
which aims at changing lives of millions. It is humanity at its best and not self-desire to get rich or get the recognition from the general public. Additionally, DevOps are required because they improve communication and collaboration in software development culture. The culture of development primarily focuses on the performance of the entity rather than the individual goals, which are common among other companies. In this concept, teams trust each other, and they carry out their experiments and innovation effectively to deliver quality software. From this perspective, the teams may decide to focus on getting the product to market in the shortest time possible or either focus on the production whereby the KPIs of the entity is structured accordingly towards achieving the desired goal. In this case, the production and turn out of events has nothing to do with the “turning over” of the application, which may await what will happen in the future. It depends on the current situation of the system update or development created by the expert team. The operation does not have to wait for other team members to troubleshoot the problem to fix it desirably. Since all the team individuals work towards achieving the same goal projected by the organization, the process increasingly becomes seamless. Furthermore, with increased efficiency, there is an elevation in the development process with devoid of errors during the advancement period of the software. Most of the tasks of DevOps are automated with continuous integration servers, which aid in testing the codes to automate the system for effectiveness and efficiency. By doing so, there is a decreased annual work required by the system. On the other hand, software engineers do focus on completing the tasks which cannot be automated by the system. The system developers have accelerating tools that aid in increasing the efficiency of the system. These tools include scalable infrastructure, which is integrated into the system in the form of cloud-based platforms which aid the access to hardware resource by the team. As a result of this, there are chances that the testing and deployment rate of operation speed up in the process. Moreover, there are build acceleration tools that aid at compiling code very fast in the system, thus increasing the efficiency of the software operation. Furthermore, with a parallel workflow embedded in the system, there is continues chain delivery whereby the teams have not to
📄 Page 16
wait for others to deliver is when to commence with work at hand. Besides, there is a shared environment where the team members do not have to transfer data between different environments, which may incur some faulty practices. One does not need to use the same environment for the whole development of the system. Therefore, there is a need to test different environments and the other for deployment purposes of software development. Ultimately, the DevOps comes with reduced costs and IT headcount, which is necessary for the development. According to software management, Red Hat Corporation needs 35% less IT staff to work in a DevOps-oriented system, which lowers the cost of operations. The fact remains that every company needs people to work for the same company, but the chances are low that they get the desired job there. The only outstanding factor is the quality of their work, which makes them distinct from the rest and the way they can maximize the output through their input. From the industrial perspective, implementing DevOps at a rapid rate ensures that there is faster application delivery to potential customers at a convenient time. By doing so, there are a stable operation, innovativeness, and performance-focused employees who have the same aim of providing convenient operation software. It is believed that when one uses the open- source DevOps tools, they can easily power up their proprietary IT vendors within themselves within no time. Besides, the DevOps technologies provide consulting services which ensure that the client has a freedom of choice and the flexibility to integrate the system whenever they need it in their home devices. Who Is a DevOps Engineer? The person who understands the software development cycle and writes the software code is considered to be the DevOps engineer responsible for the system. There are more responsibilities assumed by these people who are behind the breakthrough of this technological advancement. Though there is more involved in the process to make the whole thing successful where others can vouch for it, remember that technological advancement happens every day, and one cannot stick to the same knowledge overtime. Room for adjustment is provided, which enables
📄 Page 17
the inventor to encounter problems which may recur appropriately without much hiccups on the development. As explained above, DevOps is a software strategically developed to bridge the gap between the IT staff and developers, which ensures efficiency in technology development. The world is evolving, and we cannot stick at one specific technological standpoint where we were a century ago. By following such a notion of evolution, we have to catch up with the latest technology lest we are left behind. Besides, the tech companies have been able to experience fewer or fewer software failures over the past few years’ credits to DevOps, which makes the difference in the market today. The engineers involved have been able to overcome the traditional limitation of the former worn-out models, which are not effective anymore in the new technological error. There has been much development, deployment of technologies, testing for the automated CI involved in the process to make it effective and efficient for use. Moreover, there are some of the famous tools of DevOps, which make it easier for engineers to carry out their duties effectively. These tools include Git and Github, which are the source of code management for the system. It ensures that the codes do not leak to the outside intruder, which can intrude the system thus making it vulnerable. Also, the engineers are responsible for creating Jenkins which are the automation servers. These servers are used as plugins built in such a way that they develop a CD pipeline. Apart from the mentioned tools, there are puppets, chefs, and ansible use for configuration management and deployment of the software and these are supported by Nagios, which are used for monitoring the system operation. By now, one should be able to understand the tools which are used by the DevOps engineer before analyzing their responsibilities. Nevertheless, before that, one should know that these people are the main brains behind the development of the software, where they link up with the IT experts to make it successful. They can also assume the responsibility of the main developers without the assistance of the IT team, where they take responsibility for network operation and deployment, which is made easier by the passion of scripting and coding. By doing so, engineers can focus on the development and planning test.
📄 Page 18
Classically, there are various roles played by the DevOps developers, which make it a success at the end of the day. Foremost, there is a DevOps evangelist who is primarily responsible for implementing the software. The evangelist is supported by the release manager, who is responsible for the new feature release whereby the person ensures that the product is stable before its release to the market. From this point, there is an automation expert who is responsible for the orchestration and automation of the tools to make the software stable and desirable for use by everyone. After which there is a software tester or developer responsible for code creation and test before it is incorporated into the system for use. The chain is not complete until it passes through the quality assurance team who must ensure that it meets the quality required and confirm it that it is good for us. From this point, it will be released to the market, but the security engineers will still monitor its health and security throughout to ensure that everything is okay. What Is the Job Description for the DevOps Engineer? That is a common question in any technical field since it attracts much interest from many people. Most of the students aspire to be DevOps engineers, and for them to achieve their dreams, they need to know what it takes to be an engineer and what to expect apart from the qualifications they can acquire. Therefore, this brings us to the fundamental aspect of an engineer, and we tend to look at the qualifications need for the work at hand, what they need to offer for the service they are seeking, and the time taken to accomplish such tasks. It is not a surprise that some people get into some jobs with an expectation that things will eventually change in the future, not knowing that some tend to remain constant for a long time. For engineering jobs like a DevOps developer, one needs to possess some skills which will enable them to be effective and efficient in what they do,how they do it and the process it takes. Initially, one needs to acquire one cloud platform knowledge, and it can come in form of Azure, GCP or AWS. These must be regarded as the most important aspects of being a qualified engineer in this field. Moreover, for one to be safe, one needs to get good knowledge in configuration management and be conversant with the deployment tools such as Chef, Puppet, Terraform, and Ansible. This knowledge cannot stand on their own without being proficient in scripting and Git workflows in a
📄 Page 19
proper manner. Besides, there is a need to have great experience in developing continuous integration. The salary of a DevOps engineer is also important to take into consideration. In this case, one should examine the salary of the service to see if it is worth the hustle. The funny fact that not all companies pay engineers the same salary, but it depends on other prevailing factors involved in the process. Company A will always pay differently with company B, and in most cases, the company paying highest also retrenches other employees to create space. Back to the main point, the salary has much to do with the agreement between the employer and the employee. Most of the DevOps engineers are paid an average of $121,589 per year. The approximation has been reached through examining about 18,434 of employees from the past and present employees of different organizations. However, it depends on the country of operation where one is employed. So do not expect to be paid the same depending on the country one works at in any given day. For that reason, there is a need to carry out due diligence when searching for a job. Though some people are lucky in the job market and they are prone to get first-class jobs with little or no hustle. In that case, those who are not into the market yet will inquire from different agencies which tend to give different contract term. It is all about developing skills as one continues with the work or train at work as they progress.
📄 Page 20
Chapter Two: The DevOps Lifecycle and Workflow Many people from the software industry might have a bit of an idea of what DevOps is all about. Nevertheless, to understand the concept, there is a need to know the DevOps lifecycle and failure to do so renders one illiterate of the entire concept. My main concern in this chapter is to give insight on what the DevOps lifecycle is and how it works to make technological advancement complete. Moreover, the need to help my reader understand DevOps in all perspectives is greater than anything else, and if one can grasp this concept in its entirety, then one is good to go! It is prudent to remember that before the existence of DevOps, there were other technological advancements in the market that were not as efficient as DevOps, thus making the DevOps more essential. There was other software like the waterfall model incorporated with a related agile model for software development. One should understand the former models and how they work before moving on to the new model we have at hand. Just like any other modern technological advancement, the model’s history and origin is extremely more important to make the current situation worth the coin. How can one know or understand their current status or achieve their current economic state without knowledge of how the past played into their life? I am not making this personal but am trying to make it more understandable and clear to anyone who intends to grasp the full concept of the matter. By doing so, we can move forward in uniformity without any glitch or worry. Therefore, we have to review the waterfall model and how it works before commencing with the DevOps concept. In this case, the waterfall model is considered the sequential process in software development, which entails a top-down approach. The model is considered to be a linear and straight-forward model in the making. In this concept, there were various phases involved in its development to make it viable and complete. The phases of its development include defining requirements, designing, and implementing processes, then software testing and deployment, and finally software maintenance once released.
The above is a preview of the first 20 pages. Register to read the complete e-book.

💝 Support Author

0.00
Total Amount (¥)
0
Donation Count

Login to support the author

Login Now
Back to List