The Open Systems Interconnection (OSI) model describes seven layers that computer systems use to communicate over a network.
IP address is the host identification number used for proper communication between devices. The IP address is a number assigned to a network interface, a group of interfaces (broadcast, multicast addresses) or to the entire computer network, used to identify network components and being one of the elements enabling them to communicate.
Network protocols are a set of rules, conventions, and data structures that dictate how devices exchange data across networks. In other words, network protocols can be equated to languages that two devices must understand for seamless communication of information, regardless of their infrastructure and design disparities.
Short for virtual local area network, VLAN allows a network administrator to set up separate networks by configuring a network device, such as a router, without adjusting cabling. A VLAN allows a network to be divided, set up, and changed by a network administrator to organize and filter data accordingly.
User management involves defining and managing users, roles, and their access levels in a system. A typical user management implementation involves a wide range of functionality such as adding/deleting users, controlling user activity through permissions, managing user roles, defining authentication policies, managing external user stores and manual/automatic logout, and resetting passwords.
Storage management is an umbrella term that includes all the technologies, processes, and strategies that organizations use to maximize the performance of their data storage resources. This term encompasses a wide range of aspects such as virtualization, security, provisioning, automation, redundancy, fault tolerance, and more.
The management and control of configurations for an information system with the goal of enabling security and managing risk.
Network configuration is the process of assigning network settings, policies, flows, and controls.
General Configuration is adapting system settings to the organization's general policy and work regulations in order to suit its activity nature and meet its renewable needs.
Process management is an integral part of any modern-day operating system (OS). The OS must allocate resources to processes, enable processes to share and exchange information, protect the resources of each process from other processes and enable synchronization among processes.
Multithreading is a technique that allows for concurrent (simultaneous) execution of two or more parts of a program for maximum utilization of a CPU.
Sockets allow communication between two different processes on the same or different machines. To be more precise, it's a way to talk to other computers using standard Unix file descriptors.
The I/O management subsystem controls all the input and output of the computer system.
When an operating system manages the computer's memory, there are two broad tasks to be accomplished: 1) Each process must have enough memory in which to execute, and it can neither run into the memory space of another process nor be run into by another process. 2) The different types of memory in the system must be used properly so that each process can run most effectively.
A file system is a structure of directories that is used to organize and store files.
systemd is a framework and service manager for Linux operating system. At a point when keep running as the first process on boot (as PID 1), it goes about as init system. that raises and keeps up userspace services.
Virtualization is a technology that lets you create useful IT services using resources that are traditionally bound to hardware. It allows you to use a physical machine’s full capacity by distributing its capabilities among many users or environments. List of technologies for discussion: VMware vSphere/VMware ESXI, Hyper-V, VirtualBox, KVM, OpenStack, Xen, QEMU.
Containerization has become a major trend in software development as an alternative or companion to virtualization. It involves encapsulating or packaging up software code and all its dependencies so that it can run uniformly and consistently on any infrastructure. The technology is quickly maturing, resulting in measurable benefits for developers and operations teams as well as overall software infrastructure.
The process of solving a problem or determining a problem to an issue. Troubleshooting often involves the process of elimination, where a technician will follow a set of steps in order to determine the problem or resolve the problem.
Kubernetes, also known as K8s, is an open-source system for automating deployment, scaling, and management of containerized applications.
Mesos was created as a next-generation cluster manager. It is open source software that provides efficient resource isolation and sharing across distributed applications or frameworks. Mesos is a distributed systems kernel, with a full API for programming directly against the datacenter. Mesos architecture consists of master process that manages slave daemons running on each cluster node, and frameworks that run tasks on these slaves.
A Docker Swarm is a group of either physical or virtual machines that are running the Docker application and that have been configured to join together in a cluster. Once a group of machines have been clustered together, you can still run the Docker commands that you're used to, but they will now be carried out by the machines in your cluster. The activities of the cluster are controlled by a swarm manager, and machines that have joined the cluster are referred to as nodes.
Nomad is an orchestration tool that allows us to deploy and manage different types of applications, such as: container-based (with or without Docker); legacy applications; microservice-oriented applications; batch applications.
A service mesh is the substrate between different microservices that makes their connectivity possible. This networking is then supplemented with a host of other features, such as service discovery, authentication and authorization, monitoring, tracing, and traffic shaping. Service meshes can be a critical part of microservice-based architectures. There are many service meshes to choose from (Istio, Linkerd, Consul Connect, and Citrix ADC, etc.)
Jenkins – an open source automation server which enables developers around the world to reliably build, test, and deploy their software.
Pipelines are the top-level component of continuous integration, delivery, and deployment. Pipelines are the fundamental building blocks for CI/CD in GitLab.
TeamCity is a Java based CI server by JetBrains. Being a commercial tool, it is licensed under a freemium license (up to 100 build configurations and 3 build agents)
Travis CI was the first CI as a Service tool. It introduced a new approach to building code in the cloud. This CI tool allows the user to sign up, link their repository, build, as well as test their apps.
Azure DevOps is a powerful tool to organize development tasks of an any project. In addition, there is the pipeline tool available, which allows you to build continuous integration and continuous delivery pipelines.
CircleCI is the continuous integration & delivery platform that helps the development teams to release code rapidly and automate the build, test, and deploy. CircleCI can be configured to run very complex pipelines efficiently with caching, docker layer caching, resource classes and many more.
Bitbucket Pipelines is CI/CD for Bitbucket Cloud that’s integrated in the UI and sits alongside your repositories, making it easy for teams to get up and running building, testing, and deploying their code.
Bamboo is an automation server used for Continuous Integration. Developed by Atlassian in 2007, this tool allows the developers to automatically build, document, integrate, test the source code and prepare an app for deployment.
Visual Studio Team System (VSTS) is an integrated development environment (IDE) developed as a software product by Microsoft Corp. to facilitate software project creation, development and management.
Git is a distributed version control system where each user can make changes to an entire repository on their system.
SVN stands for Subversion. It is called as SVN because of its commands (its command name svn). It is a centralized version control system. It is an open-source tool for version control.
Team Foundation Server (TFS). It is basically a management tool used in project management, reporting, requirements gathering and testing. It actually covers the entire software development life cycle and operates in Microsoft Windows. It consists of version control, issue-resolving and application management. This provides end-to-end development of software and testing. This is a back-end management system and uses Git to control the source code. It represents the automation process and testing of an application. It is provided with visual studio code.
Datadog is a monitoring service for cloud-scale applications, providing monitoring of servers, databases, tools, and services, through a SaaS-based data analytics platform.
Cloud-based software to help website and application owners track the performances of their services.
The ELK stack is an acronym used to describe a stack that comprises of three popular open-source projects: Elasticsearch, Logstash, and Kibana. Often referred to as Elasticsearch, the ELK stack gives you the ability to aggregate logs from all your systems and applications, analyze these logs, and create visualizations for application and infrastructure monitoring, faster troubleshooting, security analytics, and more.
Prometheus is a free software application used for event monitoring and alerting. It records real-time metrics in a time series database (allowing for high dimensionality) built using a HTTP pull model, with flexible queries and real-time alerting. The project is written in Go and licensed under the Apache 2 License, with source code available on GitHub, and is a graduated project of the Cloud Native Computing Foundation, along with Kubernetes and Envoy.
Grafana is an open source visualization tool with support for many databases, including Graphite, InfluxDB, Prometheus, and Elasticsearch. It is designed for analyzing and visualizing metrics such as system CPU, memory, disk and I/O utilization. Grafana does not collect data, but allows you to connect to data sources like Prometheus or Graphite. It is a popular solution for bringing together and visualizing disparate data sources.
The node exporter enables you to measure various machine resources such as memory, disk and CPU utilization.
Graylog centrally captures, stores, and enables real-time search and log analysis against terabytes of machine data from any component in the IT infrastructure and applications. The software uses a three-tier architecture and scalable storage based on Elasticsearch and MongoDB.
Zabbix is the ultimate enterprise-level software designed for real-time monitoring of millions of metrics collected from tens of thousands of servers, virtual machines and network devices. Zabbix is Open Source and comes at no cost.
Splunk is a software platform widely used for monitoring, searching, analyzing and visualizing the machine-generated data in real time. It performs capturing, indexing, and correlating the real time data in a searchable container and produces graphs, alerts, dashboards and visualizations.
SolarWinds Papertrail is a cloud-hosted log management tool designed for faster troubleshooting of infrastructure and application issues. Papertrail lets you consolidate your logs across your environment in one place and track real-time activity to easily diagnose and fix problems.
Terraform is an open-source infrastructure as code tool, mostly used for managing public cloud infrastructure such as AWS, GCP and Azure. Terraform is distributed as a CLI and is used for writing declarative infrastructure as code.
CloudFormation allows you to use programming languages or a simple text file to model and provision, in an automated and secure manner, all the resources needed for your applications across all regions and accounts. This gives you a single source of truth for your AWS and third-party resources.
Pulumi is an open source infrastructure as code tool for creating, deploying, and managing cloud infrastructure. Pulumi works with traditional infrastructure like VMs, networks, and databases, in addition to modern architectures, including containers, Kubernetes clusters, and serverless functions.
Packer is an open-source DevOps tool made by Hashicorp to create images from a single JSON config file, which helps in keeping track of its changes in the long run. This software is cross-platform compatible and can create multiple images in parallel.
Federation, Independence, Isolation, Elasticity, Business Orientation, Trust.
Design patterns are best practice solutions for common software design problems. They provide a solution to a commonly occurring problem.
Amazon web service is an online platform that provides scalable and cost-effective cloud computing solutions.
Azure is a cloud computing platform which was launched by Microsoft in February 2010. It is an open and flexible cloud platform which helps in development, data storage, service hosting, and service management. The Azure tool hosts web applications over the internet with the help of Microsoft data centers.
Google Cloud Platform (GCP), offered by Google (company), is a suite of cloud computing services that runs on the same infrastructure that Google uses internally for its end-user products, such as Google Search, Gmail, file storage, and YouTube. Alongside a set of management tools, it provides a series of modular cloud services including computing, data storage, data analytics and machine learning.
DigitalOcean provides developers cloud services that help to deploy and scale applications that run simultaneously on multiple computers.
Alibaba Cloud provides cloud computing services to online businesses and Alibaba's own e-commerce ecosystem. Its international operations are registered and headquartered in Singapore.
Heroku is a platform as a service (PaaS) that enables developers to build, run, and operate applications entirely in the cloud.
IBM cloud computing is a set of cloud computing services for business offered by the information technology company IBM. IBM Cloud includes infrastructure as a service (IaaS), software as a service (SaaS) and platform as a service (PaaS) offered through public, private and hybrid cloud delivery models, in addition to the components that make up those clouds.
Linode, LLC is an American privately-owned cloud hosting company that provides virtual private servers.
Apache is the widely used web server software. Developed and maintained by Apache Software Foundation, Apache is an open source software available for free.
Internet Information Services server (IIS server) is a Windows Server-based web application used to deliver website content over the internet to an end user.
Nginx (pronounced "engine-x") is an open source reverse proxy server for HTTP, HTTPS, SMTP, POP3, and IMAP protocols, as well as a load balancer, HTTP cache, and a web server (origin server).
HAProxy(High Availability Proxy) is an open source load balancer which can load balance any TCP service. It is particularly suited for HTTP load balancing as it supports session persistence and layer 7 processing.
Both JBoss and Tomcat are Java servlet application servers.
Ansible provides a clear and concise way to manage the configuration of Linux infrastructure. It help to make infrastructure more maintainable, quicker to deploy, and easier to understand.
Salt contains a robust and flexible configuration management framework, which is built on the remote execution core. This framework executes on the minions, allowing effortless, simultaneous configuration of tens of thousands of hosts, by rendering language specific state files.
Puppet provides the ability to define which software and configuration a system requires and then maintain a specified state after an initial setup. You use a declarative Domain Specific Language (DSL) that is similar to Ruby to define configuration parameters for a specific environment or infrastructure.
Chef is a configuration management technology used to automate the infrastructure provisioning. It is developed on the basis of Ruby DSL language. It is used to streamline the task of configuration and managing the company's server. It has the capability to get integrated with any of the cloud technology.
Python: Python is a versatile, general-purpose programming language.
BASH is an acronym for Bourne Again Shell, a punning name, which is a tribute to Bourne Shell (i.e., invented by Steven Bourne).
Go, also known as golang, is a computer programming language whose development began in 2007 at Google, and it was introduced to the public in 2009.
Node.js is an open source, cross-platform runtime environment for developing server-side and networking applications.
Ruby is an interpreted, high-level, general-purpose programming language. It was designed and developed in the mid-1990s by Yukihiro "Matz" Matsumoto in Japan.
Windows PowerShell is an object-oriented automation engine and scripting language. It is designed mainly for IT professionals and system administrators to control & automate the administration of Windows OS and other applications.
SonarQube (formerly Sonar) is an open-source platform developed by SonarSource for continuous inspection of code quality to perform automatic reviews with static analysis of code to detect bugs, code smells, and security vulnerabilities on 20+ programming languages.
An extensible cross-language static code analyzer.
Checkstyle is a static code analysis tool used in software development for checking if Java source code complies with coding rules. It basically automates the lengthy process of checking code and helps Java developers enforce coding standards.
PostgreSQL also known as Postgres, is a free and open-source relational database management system (RDBMS) emphasizing extensibility and SQL compliance.
MySQL is an open-source relational database management system (RDBMS).
Microsoft SQL Server is a relational database management system developed by Microsoft. As a database server, it is a software product with the primary function of storing and retrieving data as requested by other software applications, which may run either on the same computer or on another computer across a network (including the Internet).
Oracle database is a relational database management system. It is known as Oracle database, OracleDB or simply Oracle. It is produced and marketed by Oracle Corporation. Oracle database is the first database designed for enterprise grid computing. The enterprise grid computing provides the most flexible and cost effective way to manage information and applications.
Apache Cassandra is a free and open-source, distributed, wide-column store, NoSQL database management system designed to handle large amounts of data across many commodity servers, providing high availability with no single point of failure.
MongoDB is an open-source document database that provides high performance, high availability, and automatic scaling. In simple words, you can say that - Mongo DB is a document-oriented database. It is an open source product, developed and supported by a company named 10gen.
A message broker (also known as an integration broker or interface engine) is an intermediary computer program module that translates a message from the formal messaging protocol of the sender to the formal messaging protocol of the receiver.
Elasticsearch is an open-source, RESTful, distributed search and analytics engine built on Apache Lucene.
Scrum is most common methods of implementing Agile software development. Daily scrum meeting is carried out.
Kanban is a visual system for managing work. It visualizes both the process and the actual work passing through that process. The main objective of implementing Kanban is to identify potential bottlenecks in the process and fix them. Kanban goal is that work flow should proceed smoothly at an optimal speed.
Waterfall model is a sequential model that divides software development into pre-defined phases. Each phase must be completed before the next phase can begin with no overlap between the phases. Each phase is designed for performing specific activity during the SDLC phase. It was introduced in 1970 by Winston Royce.
Extreme Programming (XP) is an agile software development framework that aims to produce higher quality software, and higher quality of life for the development team. XP is the most specific of the agile frameworks regarding appropriate engineering practices for software development.
Test Driven Development (TDD) is software development approach in which test cases are developed to specify and validate what the code will do. In simple terms, test cases for each functionality are created and tested first and if the test fails then the new code is written in order to pass the test and making code simple and bug-free.