The term “DevOps” surfaced from the quick-paced “agile” software development movement. Agile software development depicts a set of principles for software development according to which requirements and solutions advance by the collaborative effort of self-organizing cross-functional teams. It backs adaptive planning, swift delivery, evolutionary development, and constant improvement, and it persuades rapid and supple response to change.
The below diagram illustrates a common sprint cycle which initiates by the movement of user stories commencing a product backlog to a Sprint Backlog. The aim of the sprint is to constantly work on enabling functionality, written as user stories until ultimately the end of the Sprint concludes with a new working increment of the software. Sprint cycles and application releases may take the form of different timeframes; for example, many teams sprint cycles will last 2-weeks, and the conclusion of 2→3 sprint cycles will result in a new application release. There is no mandated requirement for sprint duration or application release.
Continuous Integration is a development practice that requires developers to integrate code into a shared repository at various frequencies. Each check-in is then verified at the unit level by an automated build, including unit test, allowing developers to detect problems early, related to a code commit. As units of code are validated, they are deployed using automation to an integration environment where they are subsequently validated to work with other software components. Continuous Integration stresses the importance of having a working, while likely incomplete, version of the software and any point in time.
Continuous Delivery and Continuous Deployment
In Continuous Delivery, you aspire to have the complete SDLC automated up until the final environment prior to production, so that you are prepared at any time to deploy automatically to production. In Continuous Deployment you go one step advance, you in fact automatically deploy to production.
Beyond Continuous Delivery
Fundamentally, DevOps stems from Agile, and includes the above concepts, but goes beyond CD including responsibilities for operationalization of the platform. This doesn’t inherently mean the developers who write the code are exclusively responsible for supporting it, but instead emphasizes that both the delivery and operational management, including the feedback loop, is an essential part of the DevOps team.
Putting it together
In practice, I find that the application of DevOps is better visualized in terms of the continual release/feedback loop. The underlying goal of most teams adopting various levels of DevOps principles is driven from the desire to:
- Release more frequently and consistently
- Decrease dev, test, deployment cycle times, and change related failure, by applying automation
- Better manage releases through collaboration across roles within the team
- Understand and quantify of the impact of frequent changes in terms of well-understood metrics (KPIs)
- Iterate to further improvements based on the KPIs collected
Summary of Terms
In addition to the concepts above, below is a list of terms Sales Engineers need to be familiar with for certification. Additionally, these terms and concepts are important to understand at a high level in order to have productive conversations with customers. Note in-depth understanding of these is not needed for Level I certification.
- Infrastructure as a Service (IaaS): It is a type of cloud computing that offers virtualized computing resources online. IaaS is one of 3 major categories of cloud computing services, along with Software as a Service (SaaS) and Platform as a Service (PaaS).
- Software as a service (SaaS): It is a software distribution model in which a 3rd party provider hosts applications and enable them to customers online.
- Platform as a service (PaaS): It is a type of cloud computing services that offer a platform facilitating customers to develop, run, and handle applications without the complication of building and keep up the infrastructure usually related with developing and launching an application.
Containers and Container Platforms
- Azure Container Service optimizes the configuration of trendy open source tools and technologies, particularly for Azure. You get access to an open solution that provides portability for both your containers and the application configuration. You pick the size, the number of hosts, and a variety of orchestrator tools and Container Service manages everything else.
- Amazon EC2 Container Service (ECS) is an exceedingly scalable, high-performance container management service that backs Docker containers and enables you to effortlessly run applications on a managed cluster of Amazon EC2 instances.
Architecture and Release Strategies
It is the comparison of two versions of a single web page, or service, to decide which one is superior in performance. You evaluate two web pages by showing the two variations to similar types of online visitors at the same time. The one that provides an enhanced conversion rate wins! This testing is also called split testing or experimentation testing.
It is a release technique that trims down downtime and risk by running two similar production environments called Blue and Green. At any given time, only one of the environments is active, with the live environment working with all the production traffic.
It is a technique to cut down the risk of introducing a fresh software version in production by gradually rolling out the modifications to a smaller subset of users prior to rolling it out to the whole infrastructure and making it accessible to everybody.
They are the specialization and implementation approach used for service-oriented architectures (SOA). It is utilized to create supple, independently deployable software solutions. Majorly in microservices architecture, protocols are lightweight and services have a small granularity.
- The Chef is a robust automation platform that converts infrastructure into code. Whether you are working on-premises, in the cloud, or a hybrid environment, it actively automates how infrastructure is being configured, deployed, and handled across your network.
- Puppet offers a standard approach to delivering and operating the software, no matter where it operates. With the Puppet way, you define what you want your applications and infrastructure to look like by means of a regular easy-to-read language.
XMPlify is a digital transformation company serving the global enterprise. We offer IT and Business Consulting services with an integrated approach that brings together diverse skill sets of our experts, cutting-edge technologies and tested methodologies. We deliver services in the areas of Application Performance Management (APM), DevOps Enablement, Digital Analytics, UI/UX engineering, and Content Management.
You can anytime connect with us by writing at email@example.com or contacting at + 91 98250 39594 or +1 281 940 5412.