Agile methodology and DevOps
Agile Development is an umbrella term for a few iterative and gradual software development systems. The most prevalent agile techniques incorporate Scrum, Kanban, Scaled Agile Framework® (SAFe®), Lean Development and Extreme Programming (XP).
While every one of the agile procedures is novel in its particular methodology, they all offer a typical vision and guiding principle. They all on a very basic level consolidate iteration and the nonstop input that it gives to progressively refine and convey a software framework. They all include consistent arranging, constant testing, persistent coordination, and different types of nonstop advancement of both the task and the software. They are for the most part lightweight, particularly contrasted with traditional cascade style forms, and characteristically versatile. Furthermore, what is most significant about agile strategies is that they all emphasis on enabling individuals to team up and settle on choices together rapidly and adequately.
First, agile groups were basically comprised of developers. As these agile groups turned out to be progressively viable and effective at delivering software, it turned out to be certain that having Quality Assurance (QA) and Dev as discrete groups was wasteful. Agile developed to envelop QA so as to build the velocity of conveying software and now agile is by and by developing to incorporate the conveyance and bolster individuals to stretch out agility from ideation to conveyance.
The DevOps goals expand agile development rehearses by further streamlining the development of software change through the manufacture, approve, and convey and conveyance stages, while engaging cross-practical groups with full responsibility for applications – from structure through creation support.
What is DevOps
DevOps is a short term known for Development and Operations.
DevOps is an IT attitude that supports correspondence, coordinated effort, mix and computerization among software designers and IT tasks so as to improve the speed and quality of conveying software.
DevOps groups center around institutionalizing development conditions and robotizing conveyance procedures to improve conveyance predictability, productivity, security and maintainability. The DevOps goals give engineers more control of the production environment
and a superior comprehension of the production framework. DevOps energizes engaging groups with the independence to build, approve, deliver and support their own applications. With DevOps, nothing is “tossed over the divider.”
Definition from Wikipedia:
DevOps (a clipped compound of “development” and “operations”) is a set of software development practices[failed verification] that combines software development (Dev) with information technology operations (Ops) to shorten the systems development life cycle while delivering features, fixes, and updates frequently in close alignment with business objectives.
A DevOps engineer is in charge of mostly these things:
- To have the capacity to utilize a decent scope of instruments, advances, administrations, dialects both open source and paid like AWS, Red Hat, and Google
- They realize how to create for example programming and scripting where required.
- Manage the servers, their monitoring, their architecture setup, IT activities and framework up time.
- Arrangement of the server and mechanization of the organization by means of coding contents, and successive testing of the sent code, check server compatibility, memory obtained and conceivable glitches that may emerge.
- Mechanization information by means of contents or accessible software for the equivalent.
- Effective Management of the memory portion and information.
- To be fit for planning the structure to permit greatest utilization of the server and code to potential further great outcomes in business
- To impart and team up to defeat the utilitarian and nonfunctional impediments.
DevOps tools comprise of configuration management, test and build methods, application deployment, version control and monitoring tools.
Continuous integration, continuous delivery and continuous deployment need diverse tools. While all three systems can consume the identical tools, one may require more tools as one grows through the delivery chain.
- Planning & Codebase :
To propose and deliver assignment breakup and Ballpark estimate one can practice ATLASSIAN tool JIRA, for code management and version control GIThub & GIT whose commands are essentially needed for code management and data provisioning. SVN or subversion to preserve and reproduce the code merge and for upholding the codebase.
- Building :
Examples: Maven, Gradle
- Testing: Testing should be automated and for automation, testing Selenium is the well-known tool. JUNIT is a tool for Java language based test cases. Jenkins is also one of the prominent testing tool for devops settings.
To automate the code commits and code check-ins to deploy on various servers and instances one should look for puppet and chef.
To maintain infrastructure as code, one will need operation tools. Salt is a Python-based configuration management tool and remote execution engine that comforts method to deployment and cloud management. Red another example dedicated for the same operation
Server monitoring tools examples: Nagios, sensu and New relic, pagerduty, cloudmap.
Read about “processes and methodologies” articles here.
Read about DevOps on Atlassian official site, here