[Music] Welcome to Building in the IBM Cloud. After watching this video, you will be able to: Describe what you can build in IBM Cloud. Define the different resource types in IBM Cloud catalog. Discuss infrastructure and platform resource differences and identify key characteristics of containers and virtual machines. You can build applications in IBM Cloud by using IBM Cloud Foundry. Cloud Foundry is a platform that provides a developer focused environment, where you can build different kinds of applications powered by DevOps and Security: Front-end, Back-end, Mobile, Web, Internet of Things, Blockchain, Enterprise grade Messaging Apps, and Quantum. Once your application is built and tested, you can deploy it using technologies like serverless computing, IBM Cloud Foundry and Kubernetes. The IBM Cloud Code Engine is a new service that provides a fully managed, serverless platform to run your containerized workloads, including web apps, micro-services, event-driven functions, or batch jobs. Code Engine even builds container images for you from your source code. Because these workloads are all hosted within the same Kubernetes infrastructure, all of them can seamlessly work together. The Code Engine experience is designed so that you can focus on writing code and not on the infrastructure that is needed to host it. Services hosted by IBM Cloud provide ready-to-use functionality that your application can access. You can use predefined services provided by IBM Cloud, which include database, messaging, push notifications for mobile apps, and elastic caching for web applications, along with various machine learning and AI services. You can build custom services to meet your needs. These services might be simple utilities, such as functions for a runtime library, or complex business logic for a business process modeling service or a database. The IBM Cloud catalog lists Services, Software, and Consulting resources. Resources are entities such as Cloud Foundry applications, services, virtual machines, and containers, that you can create according to your requirements. To help you locate the resource you want to create, the IBM Cloud catalog organizes resources into Category, Provider, Pricing Plan, Compliance, and Release. IBM Cloud catalog features different types of resources: An infrastructure is a resource that provides a fine-grained control over the computing infrastructure. A platform is a resource that helps you rapidly build and deploy your application. In platform resources, note that applications can be built by using Cloud Foundry Apps or Starter Kits, which provide the runtimes and optionally other services to create your applications and services enable you to easily add relevant functionality to your application. You can select infrastructure resources from one of the categories Compute, Containers, Networking, Storage, etc. You can order physical bare metal servers and virtual servers in the Compute category. The Container category provides an alternative way to run and manage your application. Although containers allow more control over the underlying infrastructure and configuration, they require more work by the developer. For fine-grained control over computing resources, you can order physical resources from the remaining categories. IBM Cloud manages and maintains the infrastructure that runs your Cloud Foundry applications. To support apps in varied scenarios, IBM Cloud supports multiple types of infrastructure: IBM Cloud Kubernetes Service. Kubernetes containers provide more control over the computing infrastructure to run the application and services through Docker-like APIs. Docker packages software into standardized units that are called containers. Containers are described later in this course. Virtual Servers. Virtual servers are software implementation of hardware that runs applications. You can configure the operating system, server runtime environment, and application. Use Virtual Servers when you want to control the infrastructure right down to the operating system level. IBM Cloud for VMware Solutions. IBM Cloud for VMWare Solutions offers on-demand deployment and management of VMware Cloud Foundation and vCenter Server. Physical infrastructure resources. You also can deploy and use physical infrastructure resources, such as bare metal servers, storage, networking, and security, for fine-grained control over computing resources. Most developers in the enterprise likely use some mix of these types of infrastructure. The exercises in this course introduce you to the Cloud Foundry infrastructure in IBM Cloud. As such, the use of containers, virtual servers, IBM Cloud for VMware Solutions, and physical infrastructure resources are out of scope of this course. This course focuses on Cloud Foundry applications. IBM Cloud supports the following infrastructure types: Containers include all the elements that an application needs to run, providing greater control over the computing infrastructure by running the application and services through Docker-like APIs. Docker packages software into standardized containers. The IBM Cloud Kubernetes Service combines Docker and Kubernetes to deliver powerful tools, an intuitive user experience, built-in security, and isolation to automate the deployment, operation, scaling, and monitoring of containerized applications over a cluster. You can create a Kubernetes cluster that consists of one or more VMs that are called worker nodes. Every worker node represents a compute host in which you can deploy, run, and manage containerized applications. You can use and extend public images, such as the IBM Integration Bus V10 Developer Edition, which you can use to start developing your own integration solution. Containers give you more control, but still do not require you to manage an operating system or network. IBM containers resemble the popular open-source container engine Docker but have some IBM Cloud specific features, such as their ability to integrate with Cloud Foundry routers. Virtual servers are a software implementation of hardware that runs applications that is similar to a computer. You can configure the operating system, server runtime environment, and application. If you want to control the infrastructure down to the operating system level, consider the use of Virtual servers. Containers and virtual servers share objectives: To isolate an application and its dependencies into a self-contained unit that can run anywhere. They both remove the need for physical hardware, which allows for more efficient use of computing resources. Virtual servers, or virtual machines (VM), provide hardware virtualization and are created by using a hypervisor. The hypervisor virtualizes the physical hardware to create a software-defined computer that runs its own operating system. Unless special software is installed for cloud management, an operating system that is running on a VM is unaware that it is running on VM. A container provides operating system-level virtualization. A container library such as Docker separates different user spaces for each container. On the surface, these spaces might resemble a VM to a user. The main difference between containers and VMs is that containers share the operating system kernel with other containers that are running on the machine, which is not the case with VMS. Therefore, you might see a VM running Linux on a Windows server or Windows on a Linux server. However, you do not see a container that runs Linux on anything other than a Linux server. The containers on that Linux server are separate user spaces on that Linux server and the hardware is not virtualized. Data storage also is managed differently in containers. In VMs, virtual disks are created and are similar to physical disks in that after you write something to the disk, it stays there until you delete it. With containers, you can make changes to the disk and then delete your changes when you are done. In this video, you learned that: IBM Cloud Foundry enables you to build applications and extend them with services. Infrastructure resources provide control over the computing infrastructure. Platform resources help you build and deploy your application. Containers include all the elements that an application needs to run. Virtual Servers are software implementations of computer hardware.