Today I will tell you why DevOps is an utter necessity for any organisation. It is the new buzzword in the IT industry and it will stay that way until each company out there adopts DevOps or one of its variants for software creation. We will begin by discussing the history of software development over the years. We'll explore how the methodologies and methods have changed in terms of time and needs. After that we'll see how DevOps is being used by facebook, and why they started adopting the agile model. We will then talk in depth about DevOps and the different phases of the DevOps lifecycle. We'll then end the session today by addressing the few DevOps tools.


So first off we got the blueprint for the waterfall. For this model it is important to include the specifications up front and in full. The program here is being designed with the expectation that it will stay stable for several years to come. The construction here consists of different phases. Then the collecting process of specifications, then the design process of the architecture, then the coding phase and finally the testing and debugging phase. The program can finally be distributed afterwards.

Well over time people found this model to be very slow and it took a long time for the developers to improve the app. At times production was so slow that the customers' needs changed by the time the actual product was released and they didn't want the product at all. And that gave birth to agile evolution. The difference with agile was that the whole program will not be released in one go, but with several revisions it would be broken down into smaller bits of functionality and deliver at set times as every week or once in two weeks. So increasing these features multiple Sprint's not only gave end users or customers more satisfaction with progress made but also gave them the flexibility to midway adjust specifications and allowed the developer to integrate customer feedback. Therefore saving lots of time and money to make the changes.
Well even though it significantly shortened development time, the agility in operations was lacking, and that was when DevOps came in. Okay, "What is DevOps" is the method of rendering technology and operations agile. All the major corporations started implementing this model because they realized that production and operations go hand-in - hand to create a program that is foolproof. So let's understand the importance of DevOps with Facebook's classic use case. Well back in 2011, Facebook launched several updates for the entire user base, such as timeline, music sharing and ticker instantly usable. This worldwide deployment put them in trouble.

At that time, Facebook had about 500 million users and most were active users. As users discovered that their favorite social media website unexpectedly added new features such as timeline and music, they were all excited to explore the features and they all started using Facebook immediately. This led to high traffic on the website which in turn led to meltdown of their servers. Well, for obvious reasons, this high server usage had a detrimental effect on their website and it was so bad that within minutes it brought down their site to their knees.

For a business as large as Facebook this has been a disastrous situation. Well this and the newly launched apps have received mixed response from users there. Many thought the functionalities of the time and music were amazing and some didn't like it at all. So they also had a tough time to figure out the limitations and integrate suggestions. This is when they know the way their software is distributed should be changing. Post this something they came up with called the dark launch. This dark launching strategy is currently being used by several businesses now. Only a handful are Twitter, Google, Amazon and Netflix. Now let's understand what it is the dark launch?

It's a strategy where the apps are applied to a small base of users. This user base is continuously monitored and their feedback is received, and through continuous development and testing the features are made better. Once the functions are stable they are distributed over multiple releases to the rest of the users. Now let's know in more depth about dark launching by knowing how it would have been applied by facebook. The apps are only introduced to a small base of users according to the Dark Launching technique. If only one delivery pipeline is currently active from the diagram, there are other delivery pipelines but at this point they are all switched off. Now what Facebook does is they track the actual user base on which the apps were introduced to find the bugs and get input from the user. These bugs are patched, and continuous production and continuous testing integrates the feedback. Now these modified features are distributed back to the same user base, this process continues until the apps are stable and the apps are pleased with the users. By turning on various distribution systems, these features are distributed to several user bases once the reliability is achieved.

On the opposite, if users don't like the functionality then Facebook can easily run a roll-back option and delete the feature altogether. This way facebook has leverage over a secure process to introduce new functionality to its huge user base. This also helps facebook plan their servers for deployment because they can anticipate user behavior on their website and accordingly they can scale up their servers. You may have found that in this phase there are several new terminologies, such as continuous growth, continuous testing, continuous integration, continuous delivery and continuous monitoring, listed. Originally, Google introduced Originally, Google introduced chat apps only to its own staff, and based on several iterations and input from numerous teams they created a flawless application. apps only to its own staff, and based on several iterations and input from numerous teams they created a flawless application. Netflix it's something similar they came up with something called the simian army. It consisted of different monkeys like chaos monkeys, Latency monkeys and so on.



So "What is DevOps" - DevOps is a software development approach which involves continuous development, continuous testing,continuous integration, continuous deployment and continuous monitoring of the software throughout its development lifecycle. It is precisely the approach that all the top businesses have followed to produce high-quality applications in shorter lifecycles of growth resulting in greater customer satisfaction.



Isn't that what every company wants? Definitely! By now you would have understood the significance of the different stages of DevOps. Let us now see the tools which are used to automate these stages. We have GIT and SVN for source code management. Different revisions of the code can be stored and if we want to roll back on any changes then we can just call that previous version of the code deploy to production.They help you package your code into executable files which can then be created in the test environment. Then for continuous testing we have tools like selenium and Junit. If you're a software developer you will know what Jenkins is? Continuous integration ensures that improvements can be evaluated and then reviewed with others. The next step is continuous deployment. As and when the code is tested and ready at this stage it is pushed to manufacture or non-developer machine. And finally for continuous monitoring we have to like New Relic, sensu and Nagios. These tools help us keep a close eye on our servers and monitor system health. Anything can happen to your server at any time right, so it's important they are monitored proactively rather than reactively. Well they also improve productivity and increase system reliability, and save lots of money and IT support costs quite possibly.

                                                                    Happy Learning!

Post a Comment

Please do not enter any spam link in the comment box

أحدث أقدم