Devops Explained?
Infrastucture as a code
Infrastructure as code, also referred to as IaC, is an IT practice that codifies and manages underlying IT infrastructure as software. The purpose of infrastructure as code is to enable developers or operations teams to automatically manage, monitor and provision resources, rather than manually configure discrete hardware devices and operating systems. Infrastructure as code is sometimes referred to as programmable or software-defined infrastructure.
The concept of infrastructure as code is similar to programming scripts, which are used to automate IT processes. However, scripts are primarily used to automate a series of static steps that are repeated numerous times across multiple servers. Infrastructure as code uses higher-level or descriptive language to code more versatile and adaptive provisioning and deployment processes.
For example, infrastructure-as-code capabilities included with Ansible, an IT management and configuration tool, can install MySQL server, verify that MySQL is running properly, create a user account and password, set up a new database and remove unneeded databases.The code-based infrastructure automation process closely resembles software design practices in which development teams carefully control code versions, test iterations and limit deployment until the software is proven and approved for production.
Continuous Integration and delivery
Continuous integration is a coding philosophy and set of practices that drive development teams to implement small changes and check in code to version control repositories frequently. Because most modern applications require developing code in different platforms and tools, the team needs a mechanism to integrate and validate its changes.
The technical goal of CI is to establish a consistent and automated way to build, package, and test applications. With consistency in the integration process in place, teams are more likely to commit code changes more frequently, which leads to better collaboration and software quality.
Continuous delivery picks up where continuous integration ends. CD automates the delivery of applications to selected infrastructure environments. Most teams work with multiple environments other than the production, such as development and testing environments, and CD ensures there is an automated way to push code changes to them.
CI/CD tools help store the environment-specific parameters that must be packaged with each delivery. CI/CD automation then performs any necessary service calls to web servers, databases, and other services that may need to be restarted or follow other procedures when applications are deployed.
Continuous integration and continuous delivery require continuous testing because the objective is to deliver quality applications and code to users. Continuous testing is often implemented as a set of automated regression, performance, and other tests that are executed in the CI/CD pipeline.
cloud infrastructure
Over the past two decades, the cloud computing model has changed the way that most enterprise organizations manage their information technology systems and resources. In the past, a company that wanted to develop IT capabilities was required to establish its own on-premise IT infrastructure.
That meant leasing a data center, bearing the up-front capital costs of new computer equipment and developing in-house capabilities to develop and maintain applications. For many small and medium-sized organizations, the massive technical and financial requirements of building and maintaining IT infrastructure were cost-prohibitive.
Cloud computing has created the opportunity for organizations to access the data storage and computing capabilities that they require, on an as-needed basis and with a significantly reduced up-front cost.
Instead of establishing their own on-premise IT infrastructure, a company can pay to rent cloud infrastructure and the related capabilities and components from a third-party cloud service provider such as Amazon Web Services (AWS), Google Cloud Platform or Microsoft Azure.
Cloud infrastructure consists of all hardware and software components that are needed to support the delivery of cloud services to the customer. The main physical components of cloud infrastructure are networking equipment, servers and data storage.
Cloud infrastructure also includes a hardware abstraction layer that enables the virtualization of resources and helps to drive down costs through economies of scale.
Containerization
Containerization is defined as a form of operating system virtualization, through which applications are run in isolated user spaces called containers, all using the same shared operating system (OS). A container is essentially a fully packaged and portable computing environment:
- Everything an application needs to run – its binaries, libraries, configuration files and dependencies – is encapsulated and isolated in its container.
- The container itself is abstracted away from the host OS, with only limited access to underlying resources – much like a lightweight virtual machine (VM).
- As a result, the containerized application can be run on various types of infrastructure—on bare metal, within VMs, and in the cloud—without needing to refactor it for each environment.
That’s because there’s less overhead during startup and no need to set up a separate guest OS for each application since they all share the same OS kernel. Because of this high efficiency, containerization is commonly used for packaging up the many individual microservices that make up modern apps. Citrix uses containerization with CPX, an application delivery controller (ADC) that supports more scalable, agile and portable application delivery.
Monitoring And Alerting
Alerting gives timely awareness to problems in your cloud applications so you can resolve the problems quickly.
To create an alerting policy, you must describe the circumstances under which you want to be alerted and how you want to be notified. This page provides an overview of alerting policies and the concepts behind them.
For a practical introduction to alerting, try one of these quickstarts:
For an alerting policy that monitors usage and alerts you when you approach the threshold for billing, see Alerting on monthly log ingestion and Alerting on monthly trace span ingestion.