Devops is a set of practices that combine both software development and IT operations by automating all processes in a optimized manner. Devops includes the best practices in the industry that made it a preferable way of running an IT organization.
In this post, I will try to give a short introduction of DevOps and the related terms associated with it.
Devops vs SysAdmins
DevOps is a broad term that actually narroes down the gap between the developers and the System Administrators. On the other hand, the system admins are more concerned about configuring and maintaining the servers and systems in an organization infrastructure.
Devops vs DevSecOps
DevSecOps adds an additional left layer to the regular DevOps by enforcing earlier security test leading towards a Secure-by-Design paradigm. Therefore, DevSecOps addresses planning, testing, managing, and monitoring in all of the DevOps pipeline.
DevOps and DevSecOps both ensure automation in the development lifecycle. Now, with DevSecOps, the development and production not only become faster but also secure.
DevOps vs Agile
DevOps focuses more on constant development and delivery while Agile’s primary motivation is performing constant small changes according to the consumer’s need. DevOps can be called a successor to Agile. DevOps follows more optimized practices that combines both development and operations.
Technical Terms of DevOps
The most common terms that are widely used in devops are:
Continuous Integration (CI)
A process that allows code integration of software changes multiple times for testing and feedbacks.
Continuous Delivery (CD)
A process that automates the code building, testing, and rapid feedback in a loop.
The combined version of continuous integration and delivery creates the CI/CD pipeline. The automation includes all the processes of DevOps.
A typical application architecture that solves the issues regarding rapid development of legacy applications in a form of Monolithic architecture. That said, an application is broken into multiple small pieces where all the small parts work independently as a separate service.
Containers have recently become the most popular platform for deploying microservice applications. Docker containers are widely used these days in the organizations because it is lightweight. Containers enable isolation between applications making it a easier deployment platform for microservices.
A typical service that enables access of computing resources on demand without extra configuration or management. This ensures scaling of large applications with growing number of users.
In black-box testing, the internal design of a software is not known to the tester while the internal structure is known to the tester in case of white-box testing.
A process that involves automating all the process of compiling source code of an application into a binary deliverable code.
DevOps concept using AWS Services
AWS DevOps Architecture
- Elastic Load Balancing
- Amazon CloudFront
- Security Group
- Elastic Caches
- Amazon Relational Database Service (RDS)
- Amazon’s Simple Storage Service (S3)
- Amazon Elastic Block Store (EBS)
- AWS EC2
- Amazon Elastic Container Service (Amazon ECS)
- Amazon CloudWatch