Introduction
DevOps is the latest buzzword in the IT industry. It's a practice that emphasizes collaboration and communication between software developers and other information-technology (IT) professionals, including System Administrators and Database Administrators. The main aim of DevOps is to shorten the systems development life cycle while also delivering features, fixes, and updates frequently in close alignment with business objectives.
Scenario 1
A developer has created a new user story for the product manager. The code is ready to be deployed, and now it's waiting for approval from the development team before being released into production. The developer gathers everyone in an office meeting room and explains the feature he just coded. Everyone nods along as he talks about how much time it took him, what challenges he faced along the way, why this was such a great use of his time—and then there's silence as everyone looks around at each other wondering who will talk first about how awesome it was that this feature was written in Python instead of Ruby on Rails (RoR). After several awkward minutes pass without anyone saying anything helpful or interesting, someone finally pipes up with "That sounds really cool!" And then they all nod again while sighing heavily like they've been let out of prison after years behind bars trying to write an online shopping app using RoR.
Scenario 2
You’re a software developer who has been tasked with implementing security features into your application, which will be released in two months. You’re working on the UI side of things, but you don't know anything about how to implement these features from scratch. You want to do it as quickly as possible and get back to work on other parts of your app. You need help from someone who knows about security, but doesn't have time in their schedule for long meetings or demos before getting started (they're already behind).
Scenario 3
Your company is building a new application. The development team is creating the codebase and deploying it to the test environment before each sprint. The QA team has been testing the application during each sprint, but they're using an older version of the codebase that's been tested by developers—not QA—and doesn't reflect changes made during that iteration.
The problem with this traditional approach is that any bugs found by testers will have been in your production environment for at least a week by the time they're reported and fixed! Not only does this lead to bugs being harder to fix, but it also creates bottlenecks because developers are spending all their time fixing previous bugs instead of working on new features for your customers (or other projects!). In addition, those who don't work closely with developers may not get enough context about how their changes affected what went wrong in production; even worse, there's no way for anyone outside of tech support or operations teams to know whether something was wrong until after users start complaining about it!
Scenario 4
The DevOps team is responsible for building and maintaining the application. The DevOps team is responsible for the deployment of the application. The DevOps team is responsible for the code quality.
The business analyst needs to ensure that they have a clear understanding what their requirements are and that they can explain them clearly to both Development and Operations so that they can build an efficient product. This can be achieved by creating detailed user stories or use cases to describe how each feature should function in its entirety before any development begins on it; then, once it's been built, you'll have documentation about how every piece of functionality works separately from one another without being dependent upon other components within your system which may never get built at all (or if they do get built later down line). It's important because this helps prevent bugs from creeping into production which could cause downtime -- something no one wants!
Scenario 5
This scenario takes place at a medium-sized company with about 500 developers and another 100 people who are involved in systems administration or operations. The production environment is big enough to require two people to manage it: one person who works on infrastructure and another person who works on applications.
The application team is using a version control system to keep track of the code they create, but the development process still involves many manual steps that introduce errors into new code.
In an attempt to streamline this process and reduce bugs, the company has started using continuous delivery (CD). With CD, developers write their code in small batches—known as sprints—and deploy them after each sprint ends. Each sprint cycle lasts one week, so there’s only time for one deployment per week; this means that if something goes wrong with a particular release, then no new features can be released until next week.*
Note: This practice may sound familiar because it’s how many software companies operate today! However, there are some significant differences between real-time DevOps scenarios like what happens at Facebook vs traditional Agile processes like those used by most other companies today.
Conclusion
DevOps is a set of practices that automates the processes between software development and IT teams, in order that they can build, test, and release software faster and more reliably. The concept of DevOps is founded on building a culture of collaboration between teams that historically functioned in relative siloes. The promised benefits include increased trust, faster software releases, ability to solve critical issues quickly, and better manage unplanned work.
No comments:
Post a Comment