IT Infrastructure Architecture - Infrastructure Building Blocks and Concepts 4th Edition - Copy_2.pdf
Document Details
Uploaded by osiosmani
Tags
Related
- Application Layer (DCN_Ch_02) - PDF
- IT Infrastructure Architecture - Infrastructure Building Blocks and Concepts 4th Edition.pdf
- IT Infrastructure and Computer Networks (CS112) Lecture 1 2024 PDF
- Computer Networking: A Top-Down Approach 6th Edition PDF
- Computer & Network Infrastructure Lecture 2 PDF
- Cloud Architecture- Layers PDF
Full Transcript
2 THE INFRASTRUCTURE MODEL 2.1 IT building blocks The definition of infrastructure as used in this book is based on the building blocks in the model as shown in Figure 2. In this model, processes consume information, and that information is stored and managed by applications. Applications require ap...
2 THE INFRASTRUCTURE MODEL 2.1 IT building blocks The definition of infrastructure as used in this book is based on the building blocks in the model as shown in Figure 2. In this model, processes consume information, and that information is stored and managed by applications. Applications require application platforms and infrastructure to run. All of this is managed by different categories of systems management. Figure 2: The infrastructure model A model is always a simplified version of reality, useful to explain a certain point; not covering all details. Therefore, the infrastructure model is not perfect. As George E. P. Box once said: “Essentially, all models are wrong, but some are useful.” The following sections provide a high-level description of the building blocks in the infrastructure model. 2.2 Processes / Information building block Figure 3: Processes / Information building block Organizations implement business processes to fulfil their mission and vision. These processes are organization specific – they are the main differentiators between organizations. As an example, some business processes in an insurance company could be claim registration, claim payment, and create invoice. Business processes create and use information. In our example, information could be the claim’s date or the number of dollars on an invoice. Information is typically entered, stored and processed using applications. Functional management is the category of systems management that ensures the system is configured to perform the required business functions. 2.3 Applications building block Figure 4: Applications building block The Applications building block includes several types of applications based on the following characteristics: · Usage: Applications can be single-user or multi-user. A single-user application typically runs on end-user devices such as PCs and laptops. Examples include web browsers, word processors, and email clients. Examples of multi-user applications include mail servers, portals, collaboration tools, and instant messaging servers. · Source: Applications can be purchased as commercial off-the-shelf (COTS) products or developed as custom software. · Architecture: Applications can be designed as standalone applications or as multi-tier applications. A multi-tier application consists of a number of layers, such as a JavaScript application in a browser that communicates with an on-premises web server, which communicates with an application server, which communicates with a database. · Timeliness: Interactive applications respond to user actions, such as mouse clicks. They typically respond in the range of 100 to 300 ms. Real-time systems, such as Supervisory Control And Data Acquisition (SCADA) systems, are used in manufacturing, logistics, or other environments where timeliness is critical. These systems must respond in less than 10 ms. At the other end of the spectrum are batch-based systems that process data for hours at a time. Each of these types of applications requires a different type of underlying infrastructure. Applications management is responsible for the configuration and technical operations of the applications. 2.4 Application Platform building block Figure 5: Application Platform building block Most applications need some additional services, known as application platforms, that enable them to work. We can identify the following services as part of the application platform building block: · Application servers provide services to applications. Examples are Java or.Net application servers and frameworks like IBM WebSphere, Apache Tomcat, and Red Hat JBoss. · Container platforms like Kubernetes, Azure Container Instances, and Amazon Elastic Container Service, that run docker containers. · Connectivity entails Enterprise Service Buses (ESBs) like Microsoft BizTalk, the TIBCO Service Bus, IBM MQ, and SAP NetWeaver PI. · Databases, also known as database management systems (DBMSs), provide a way to store and retrieve structured data. Examples are Oracle RDBMS, IBM DB2, Microsoft SQL Server, PostgreSQL, MySQL, Apache CouchDB, and MongoDB. Application platforms are typically managed by systems managers specialized in the specific technology. 2.5 Infrastructure building blocks Figure 6: Infrastructure building block This book uses the selection of building blocks as depicted in Figure 6 to describe the infrastructure building blocks and concepts – the scope of this book. The following infrastructure building blocks are in scope: · End User Devices are the devices used by end users to work with applications, like PCs, laptops, thin clients, mobile devices, and printers. · Operating Systems are collections of programs that manage a computer’s internal workings: its memory, processors, devices, and file system. · Compute are the physical and virtual computers in the datacenter, also known as servers. · Storage are systems that store data. They include hard disks, tapes, Direct Attached Storage (DAS), Network Attached Storage (NAS), and Storage Area Networks (SANs). · Networking is used to connect all infrastructure components. This building block includes routers, switches, firewalls, WANs (wide area networks), local area networks (LANs), internet access, and VPNs (Virtual Private Network), and (on the network application level) networking services like DNS, DHCP, and time services, necessary for the infrastructure to work properly. · Datacenters are locations that host most IT infrastructure hardware. They include facilities like uninterruptible power supplies (UPSs), Heating, Ventilation, and Air Conditioning (HVAC), computer racks, and physical security measures. Please note that these building blocks are not per definition hierarchically related. For instance, servers need both networking and storage, and both are equally important. Infrastructure management includes processes like ITIL and DevOps, and tools for monitoring, backup, and logging. 2.6 Non-Functional attributes Figure 7: Non-Functional attributes An IT system does not only provide functionality to users; functionality is supported by non-functional attributes. Non-functional attributes result from the configuration of all IT system components, both at the infrastructure level and above. Although many other non-functional attributes are defined, as described in chapter 4, availability, performance, and security are almost always the essential ones in IT infrastructure architectures (Figure 7). 3 CLOUD COMPUTING AND INFRASTRUCTURES In recent years, we have seen the widespread adoption of cloud computing. Cloud computing can be seen as one of the most important paradigm shifts in computing in recent years. Many organizations now have a cloud-first strategy and are taking steps to move applications from their own onpremises datacenters to the cloud managed by cloudproviders. The term cloud is not new. In 1997, Ramnath Chellappa of the University of Texas already stated: Computing has evolved from a mainframe-based structure to a networkbased architecture. While many terms have appeared to describe these new forms, the advent of electronic commerce has led to the emergence of 'cloud computing‘. While there are many public cloud service providers today, the three largest are Amazon Web Services (AWS), Microsoft Azure, and Google Cloud Platform (GCP). Together, these three have 66% of the market share and have a large number of datacenters around the world. Figure 8 shows when each of these cloud providers started. Figure 8: Cloud time line The three major cloud providers offer similar services, but sometimes under different names. For instance, a virtual machine in Azure is just called a virtual machine, but in GCP it is called a Compute Engine and in AWS it is called an EC2 instance. While cloud computing can be seen as the new infrastructure, many organizations will be using on-premises infrastructure for many years to come. Migrating a complex application landscape to a cloud provider is no simple task and can take years. And maybe an organization is not allowed to take all its applications to the cloud. In many cases, there will be a hybrid situation, with part of the infrastructure on-premises and another part in one or more clouds. Please be aware that the cloud is just a number of datacenters that are still filled with hardware – compute, networking and storage. Therefore, it is good to understand infrastructure building blocks and principles even when moving to the cloud, 3.1 Cloud definition The most accepted definition of cloud computing is that of the National Institute of Standards and Technology (NIST): Cloud computing is a model for enabling ubiquitous, convenient, ondemand network access to a shared pool of configurable computing resources(e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.. It is important to realize that cloud computing is not about technology; it is an outsourcing business model. It enables organizations to cut cost while at the same time focusing on their primary business – they should focus on running their business instead of running a mail server. Clouds are composed of five essential characteristics, four deployment models, and three service models. 3.2 Cloud characteristics Essential cloud characteristics are: · On demand self-service – As a result of optimal automation and orchestration, minimal systems management effort is needed to deploy systems or applications in a cloud environment. In most cases, end uses can configure, deploy, start and stop systems or applications on demand. · Rapid elasticity – A cloud is able to quickly scale-up and scaledown resources. When temporarily more processing power or storage is needed, for instance as a result of a high-exposure business marketing campaign, a cloud can scale-up very quickly on demand. When demand decreases, cloud resources can rapidly scale down, leading to elasticity of resources. · Resource pooling – Instead of providing each application with a fixed amount of processing power and storage, cloud computing provides applications with resources from a shared pool. This is typically implemented using virtualization technologies. · Measured service – In a cloud environment the actual resource usage is measured and billed. There are no capital expenses, only operational expenses. This in contrast with the investments needed to build a traditional infrastructure. · Broad network access – Capabilities are available over the network and accessed through standard mechanisms. Be aware that when using public cloud based solutions, the internet connection becomes a Single Point of Failure. Internet availability and internet performance becomes critical and redundant connectivity is therefore key. 3.3 Cloud deployment models A cloud can be implemented in one of four deployment models. · A public cloud deployment is delivered by a cloud service provider, is accessible through the internet, and available to the general public. Because of their large customer base, public clouds largely benefit from economies of scale. · A private cloud is operated solely for a single organization, whether managed internally or by a third-party, and hosted either on premises or external. It extensively uses virtualization and standardization to bring down systems management cost and staff. · A community cloud is much like a private cloud, but shared with a community of organizations that have shared concerns (like compliance considerations). It may be owned, managed, and operated by one or more of the organizations in the community, a third party, or some combination, and it may exist on or off premises. · In a hybrid cloud deployment, a service or application is provided by a combination of a public cloud, and a community cloud and/or a private cloud. This enables running generic services (like email servers) in the public cloud while hosting specialized services (like a business specific application) in the private or community cloud. 3.4 Cloud service models Clouds can be delivered in one of three service models: · Software-as-a-Service (SaaS) delivers full applications that can be used by business users, and need little or no configuration. Examples are Microsoft Office365, LinkedIn, Facebook, Twitter, and Salesforce.com. · Platform-as-a-Service (PaaS) delivers a scalable, high available, open programming platform that can be used by developers to build bespoke applications that run on the PaaS platform. Examples are Microsoft Azure Cloud Service and Google App Engine. · Infrastructure-as-a-Service (IaaS) delivers (virtual) machines, networking, and storage. The user needs to install and maintain the operating systems and the layers above that. Examples are Amazon Elastic Cloud (EC2 and S3) and Microsoft Azure IaaS. The following figure shows the responsibility of the cloud provider for each service model. Figure 9: Cloud provider responsibilities In the context of this book, IaaS is the most relevant service model. When we combine both deployment and service models, we get the following picture. Figure 10: Cloud models Because of the scope of this book, the next section describes Infrastructure as s Service in more detail. 3.5 Infrastructure as a Service (IaaS) Infrastructure as a Service provides virtual machines, virtualized storage, virtualized networking and the systems management tools to manage them. IaaS can be configured using a graphical user interface (GUI), a command line interface (CLI), or application programming interfaces (APIs). IaaS is typically based on cheap commodity white label hardware. The philosophy is to keep the cost down by allowing the hardware to fail every now and then. Failed components are either replaced or simply removed from the pool of available resources. IaaS provides simple, highly standardized building blocks to applications. It does not provide high availability, guaranteed performance or extensive security controls. Consequently, applications running on IaaS should be robust to allow for failing hardware and should be horizontally scalable to increase performance. In order to use IaaS, users must create and start a new server, and then install an operating system and their applications. Since the cloud provider only provides basic services, like billing and monitoring, the user is responsible for patching and maintaining the operating systems and application software. Not all operating systems and applications can be used in an IaaS cloud; some software licenses prohibit the use of a fully scalable, virtual environment like IaaS, where it is impossible to know in advance on which machines software will run. 3.6 Edge computing The goal of edge computing is to bring computing power and data storage closer to where it is needed, rather than relying on a cloud or on-premises datacenter. In edge computing, compute and storage take place on devices at the edge of the network, such as routers, gateways, switches, and sensors. Edge computing can be a viable option where low latency, high bandwidth, and real-time processing are critical. For example, in the case of autonomous vehicles, real-time decision making is critical for safety. In this scenario, edge computing can enable the vehicle to process data and make decisions locally, rather than sending all sensor data to a centralized datacenter. Edge computing is also gaining popularity in Internet of Things (IoT) applications, where a large number of devices generate data that must be processed in real time. By using edge computing, organizations can reduce the amount of data that needs to be sent to the cloud, which can reduce costs and improve performance.