Download DEVOPS AND AWS INTER CONNCECTION and more Assignments Software Engineering in PDF only on Docsity!
MILITARY COLLEGE OF SIGNALS (NUST)
GROUP ASSIGNMENT 1
Presented By:
DEPARTMENT OF COMPUTER SOFTWARE ENGINEERING
Military College of Signals
National University of Sciences and Technology
Q: WHAT IS DEVOPS MODEL EXPLAIN WITH
DIAGRAM.
ANS:
Before explaining devops model ,first I want to discuss why we use devops. So for this first we discuss the model which are used before devops
Waterfall Model
we have this Waterfall model of software development this model was a straightforward and a linear model that followed a top-down approach as you can see in this diagram it had various phases starting with requirement gathering and analysis in this space 1→ you get the requirements from the client for developing an application and 2→ then you are known as those requirements want you clear with the requirements 3→ you proceed further with the design phase In this phase you think about how the software is going to look like and you prepare a blueprint of the software 4→ the next phase is the implementation phase why you begin the coding of the application 5→ once the application is developed it is tested in the verification phase. 6→ after testing the application is deployed on the production servers 7→ once the application goes live it is monitored in the maintenance. so it’s looks like a perfect model but no this wasn't it had a few drawbacks
- this model is unless you complete a particular stage you cannot proceed to the next stage
- this was a very time consuming model this model was suitable only for projects where requirements are stable requirements will not change with the time but in
- →It is the methodology
- →Combination of Development & Operation. Its allows a single team to manage the entire application development life cycle ,development ,testing ,deployment and operations. Aim Of Devops: Devops is a software development approach through which superior quality software can be developed quickly and with more reliability device consists of various stages such as continuous development continuous testing continuous integration and continuous deployment and continuous monitoring the aim of devops is to short the system development life cycle while delivering features fixes and updates frequently in close alignment with the business objectives. LIFE CYCLE OF DEVOPS: There are the various tools that are used in devops and now let's have a look at the devops lifecycle These are the various phases of the devops lifecycle
- continuous development
- continuous testing
- continuous integration
- continuous deployment
- continuous monitoring
1: Continuous Development
Continuous development this is the Phase which involves planning and coding of the software applications functionality for planning as such but there are a number of tools for maintaining the code the vision of the project is decided during the planning phase and then the actual coding of the application begins to code can be returned in any language but it is maintained using the version control tools. version control tool called git. Git is a distributed version control tool that supports distributed nonlinear workflows by providing data assurance for developing qualities of when you are developing a large project with the use number of collaborators it is very important to have communication between the collaborators while making changes in the project.
2: Continuous Integration
This is the stage with Codes supporting new functionality is integrated with existing code since there is continuous development of the software the updated Code needs to be integrated continuously as well as smoothly with the systems to reflect the changes to the
4: Continuous deployment
It is the stage where the code is deployed to the production environment here we ensure that the code is currently deployed on all the servers now it is the time to understand why Devops will be incomplete without configuration management tools and containerization tools both the set of tools help us in achieving continuous deployment configuration management is the art of establishing and maintaining consistency in an application's functional requirements and performance .Cconfigurations management tools play an important role for executing tasks quickly and frequently some popular tools that are used in the stage puppet, Chef salt stack , and ansible containerization tools also play an equally important role in the department stage docker and Wagon and other popular tools which help reduce consistency across the development test Staging and production environment besides this they also help in scaling up and scaling down of instances easily it eliminates any chance of errors or failures in the production environment by packaging and replicating the same dependencies.
5 : Continuous monitoring
Involves the participation of the operations team will monitor the user activity for any bugs or improper behaviour of the system this can also be achieved by making use of dedicated monitoring tools which will continuously monitor the application performance and highlight the issues some popular tools used are Nagios ,so on these tools help you monitor the application and the servers closely to check the health of the system provided they can also improve the productivity and increase the reliability of the system reducing it support costs any major issues found could be reported to the development team so that it can be fixed in the continuous development phase
these stages are carried out on loop continuously until the desired product quality is achieved
USE CASE STUDY OF SOFTWARE SYSTEM
DEVOPS VS AGILE
1. Use of DevOps in Online Financial Trading Company
Automatic testing, construction, and performance improvement in a financial trading company. With the help of DevOps, usage is done within 45 seconds. In Agile Method
same deployments would take days or weeks to complete. Therefore, the total process
time is reduced, which makes the process easier and increases customer interest.
2. Application in the automotive industry
With the help of DevOps, employees can help car manufacturers catch any errors in product evaluation. In Agile this was not possible.
3. Benefits to Airlines Industry
Combined airlines have saved nearly $ 500,000 with its change in ongoing testing standards. With the help of DevOps, it has also been able to increase its coding by 85% compared to before.
QUESTION#
Example using amazon web services how is it using DevOPs approach.
AMAZON WEB SERVICES Amazon Web Services (AWS) is the world’s most widely adopted cloud platform, which offers 200 fully featured services from data centers worldwide. Millions of customers including the fastest-growing startups, largest enterprises, and leading government agencies are using AWS to lower costs, become more agile, and revolutionize faster.
AWS is an organization tool such as compute power, database storage and content delivery
services. AWS offers many different tools and solutions for enterprises and software developers.
There are three primary categories in cloud computing:
- Software as a Service (SaaS)
- Platform as a Service (PaaS)
- Infrastructure as a Service (IaaS)
AWS falls under the IaaS category i.e., a scalable instant-computing infrastructure that the
customer completely controls, including virtual servers and operating systems.
HOW AWS WORKS?
AWS provides a set of flexible
services designed to enable companies to build
and deliver products using AWS and DevOps
practices more rapidly and reliably. These
services make simpler operating infrastructure,
deploying application code, automating software
release processes, and monitoring your
application and infrastructure performance.
DevOps makes delivery of applications more
cost-effective. Amazon Web Services (AWS) has the platform and services to recognize a code
change and program delivery of that change from development, through the support
environments, to production. However, delivery of code is just one facet of DevOps.
What is AWS DevOps?
AWS DevOps is Amazon’s contribution to DevOps culture and philosophy.
They have built their very own cloud platform, specific tools, and services to operate the AWS
platform. As AWS society's mention: “AWS provides a set of adaptable services devised to enable
companies to build and deliver products using AWS and DevOps practices more rapidly and
reliably. These services simplify provisioning and handling infrastructure, deploying application
code, automating software release processes, and monitoring your application and infrastructure
performance.”
AWS DevOps Tools:
AWS DevOps offers a broad selection of tools to build and deploy software
in the cloud. Here is a sample of a few of the more popular tools.
o AWS Cloud Development Kit. This tool is an open-source software development
framework that uses familiar programming languages for modeling and provisioning
cloud application resources.
o AWS CodeBuild. CodeBuild is an integration service that scales continuously and
processes multiple builds. Users can build and test code with continuous scaling.
o AWS CodeDeploy. This tool automates software deployments to
several different computer services like Amazon EC2, AWS Fargate,
AWS Lambda, or any other on-premises servers you choose.
o AWS CodePipeline. This DevOps tool automates your continuously delivered code for
rapid and accurate updates.
o AWS CodeStar. CodeStar is a particularly useful tool to conduct DevOps on AWS. It
provides an intuitive user interface to help users effortlessly develop, build, and deploy
applications on AWS. You can set up an entire continuous delivery toolchain in minutes.
FEATURES:
- Versions Management : AWS Code Commit can be helpful for version management. It allows storing and controlling the source code. This DevOps service also makes working with Git repositories easier and allows integrating your tools into GIT.
- Infrastructure as Code: Infrastructure as code is an approach that consists
of four parts for AWS management with the help of code and templates:
Rapid Delivery:
AWS CodePipeline mechanizes your software release process, allowing you to
rapidly release new features to your users. With CodePipeline, you can quickly
iterate on feedback and get new features to your users faster.
Software Release Workflows:
AWS CodePipeline is an incessant integration and continuous delivery service for
fast and reliable application and infrastructure updates. CodePipeline builds,
tests, and deploys your code every time there is a code change, based on the
release process models you define.
Build and Test Code:
AWS CodeBuild is a entirely controlled build service that compiles source code,
runs tests, and produces software packages that are ready to deploy. With
CodeBuild, you don’t need to provision, manage, and scale your own build
servers.
Deployment Automation:
AWS CodeDeploy makes it easier for you to rapidly release new features, helps
you avoid downtime during application deployment, and handles the complexity
of updating your applications.
Easy to Integrate:
AWS CodePipeline can easily be expanded to adapt to your specific needs. You can
use the pre-built plugins or your own custom plugins in any step of your release
process. For example, you can pull your source code from GitHub, use your on-
premises Jenkins build server, run load tests using a third-party service, or pass on
deployment information to your custom operations dashboard.
Why AWS for DevOps?
The term “DevOps” refers to both a position and a combination of processes employed at a
company. A DevOps Engineer is usually a system administrator with some specific programming
knowledge. As a rule, a DevOps engineer is held responsible for:
- Planning applications and their infrastructure;
- Building and maintaining CI/CD pipelines;
- Development security monitoring and provision;
- Development process automation.
Having DevOps on AWS guarantees a smoother and easier release of a new product and supports
the stability of the existing ones.
Conclusion:
In order to make the journey to the cloud smooth, efficient, and effective; technology companies
should embrace DevOps principles and practices. These principles are embedded in the AWS
platform and form the cornerstone of numerous AWS services.