Cloud Computing Essentials
So what is the cloud?
The definition of the cloud is a computer that is part of a distributed network and has unified communications. It can provide computing cycles for applications, storage of different types, and services, including voice. The end-user requires no technical knowledge of the physical location and configuration of the system that is part of the cloud computing network.
What applications run on the cloud?
There are many different types of applications that run on the cloud and are best suited to this type of environment. There are 24/7 monitoring tools, for monitoring server or computer performance or vitals. Content management systems are used for publishing news and content for other people to read. Vital for the pages that we browse on the Internet. Communication plays a huge role, with social media apps such as Twitter & Facebook. Storage, with drives such as dropbox, google drive. Database storage, for the management of large inventories, and to hold information and data. There is also a computational process available, along with runtime to allow you to run your own applications in the cloud.
Benefits of cloud computing
Cloud computing has two main characterizes that set it apart from previous ways of computing. The ability to scale is important, and this is done easily with cloud computing, as all system resources can be virtually controlled. If you have more visitors on your website than usual or more users of your app than you anticipated, you can easily upgrade your resources to handle them.
Architecture is another important aspect of cloud computing. It means that the users who share the hardware and software resources rely on logical isolation to stay unrelated and protect data. Once again, this is controlled with the administration of the system.
Three types of clouds
Public clouds are publicly available, and anyone can subscribe to them and use them. Private clouds, which are part of a private network, but still according to cloud computing principles. The third and final cloud type is a partner cloud. This is when a partner gives you some sort of limited connection to your third part company.
The cloud models
Software as a Service (SaaS)
This is when the software solution you are using is delivered over the web. Because it is in the cloud, it is accessible from anywhere. You can have a pay-per-use or on-demand licensing agreement. You can protect against unlicensed copies. Examples are Salesforce, GoToMeeting.
Infrastructure as a Service (IaaS)
Infrastructure as a service is part of what you need if you want to have exclusive connectivity to the web via a platform, and execute a program. This can be your own application, written in, for example, python, or PHP. Infrastructure providers include DigitalOcena, Rackspace, Amazon Web Services (AWS) Microsoft Azure, and Google Compute Engine (GCE).
Platform as a Service (PaaS)
Targeting developers only really, this is a service that allows you to develop your own applications for deployment. Services that provide this are AWS Elastic Beanstalk, Windows Azure, Heroku, Google App Engine.
Hardware as a Service (HaaS)
This is when dedicated firmware is provided to you via the Internet. The Haas model is similar to the other models, where users rent, rather than purchase the technical assets provided by the vendor. Normally this type of service includes a contract for maintenance and administration of the hardware systems. Access is normally granted remotely.
Cloud Computing Delivery
To deliver the great advantages that cloud computing has to offer, there must be virtualization architecture involved. This is different from the traditional architecture where an operating system sat on top of the hardware, with the applications being loaded through the OS. With virtual architecture, there is a virtualization layer that sits on top of the hardware. There are individual instances of OS, and applications then handled simulational by the virtualization software.
This type of operation is known as hypervisor-based, The hypervisor separates the operating system and application so the host machine can run many different virtual machines (VM). Sharing the resources of the system, including the processor cycle, the memory space, and the network bandwidth. Intel and AMD embed the technology in some of their process, especially for this market. This gives you lower CPU utilization, reduced system latency, and improved network and I/O throughput.
The two implementations of the hypervisor concept are XEN and KVM. With XEN the designers developed a microkernel which is then placed over the computer hardware. This makes it possible to run many instances of the operating system. There then exists a master domain (VM0) which contains all the drivers for the hardware, which can then be a control platform for the rest of the VMs in the system.
In the KVM implementation, there is also a mini kernel, however this is attached to the Linux kernel. Instead of having an overriding domain, each instance of the domain is handled by the mini kernel. KVM is known to have excellent hardware support, which accounts for its popularity.
How does hypervisor work?
The hypervisor is responsible for the monitoring of all the privileged actions that take place on the system. VMs have to transfer the control of the hypervisor to sometimes execute sensitive instructions. This is known as a hypercall. Then a software interrupt to transfer the control from the VM back to the hypervisor, where once the operations are validated, and then executed, control return to the VM. There is a hypercalls difference in the different x86 and x64 architecture.
If you manage computing products and services on the cloud, this is known as cloud management. Public cloud providers are managed by public cloud service providers that include public cloud storage, networking, environment server, and data center operations.
Managing a private cloud on the other hand requires a set of software tools that are designed to create a virtualized pool of computing resources, as well as a front end portal for end-users, and the implementation of security, and resource allocations.
The other cloud management environment is a hybrid cloud. Compute, storage, and the network has to be managed over multiple different domains, so a good initial strategy is first defining exactly what you need, and what you need to get everything working.
The platforms for cloud management known as CMPs include Apache CloudStack, OpenStack, CloudHealth, Rackspace Cloud Management.
This is a standard unit of software that packages together all its code and dependencies so the application can be easily transferred to another computing environment. Alongside containers, you have dockers, which are a stand-alone image that is a lightweight executable standalone package of software that includes everything you need to run your application. This can be code, system tools & libraries, and run time. A container image is created at runtime. Available for both Windows and Linux, containerized software will run the same even if the infrastructure is different. The way a container works is by isolating software from the environment.
The benefits of Docker containers are great. They are under an industry standard for containers so this ensures that they are portable anywhere. They are lightweight, meaning that the container will only share the OS system kernel, and because of this, don’t require a complete OS per application, like VMs. This gives administrators a higher server efficiency and reduces server and license costs. Applications running in containers on with Docker are among the most secure isolation capabilities in the cloud computing industry.
Containers Vs VMs
Containers are located at the applications layer. Virtual machines are an abstraction of physical hardware. Multiple containers can run on the same machine and share the OS kernel alongside other containers. They are also typically only tens of MBs in size, compared to a VM which is the full operating system size, as well as applications and drivers.
This is a Google open source project that provides a framework to run distributed systems without any interruption. It allows for the scaling up of your application and means you won’t have any downtime. Some of its features are service discovery and load balancing. As well as automated rollouts, and self-healing.
© 2020 Kit