Cloud computing
Open Source in Cloud Computing

Cloud Computing has created a real revolution in Information Technologies, changing processes that allow participation and more agile technical development.
The easy access to the cloud and the new ways of developing applications has created an ICT movement that is known as Open Source in Cloud Computing. Open Source is being decisive, both in these processes of business digitalization and to enhance and adopt agile design and technical development.
To better understand what open source is, we will develop its essential components are: Kubernetes and containers.
Kubernetes
Also known as “k8s” or “kube,” it is an open-source platform for automating the deployment, scaling, and management of containerized applications.
Kubernetes and the container ecosystem are maturing into a general-purpose computing platform and ecosystem that is outperforming that of virtual machines (VMs) as the building blocks of modern cloud infrastructure and applications. This ecosystem enables organizations to deliver a highly productive Platform as a Service (PaaS) that addresses multiple tasks and issues related to the infrastructure and operations surrounding cloud-native development so that development teams can focus solely on coding and innovation.
Kubernetes continues its steady rise in container environments globally: More than half of organizations using container technology run one or more orchestration technologies, and Kubernetes leads the way.
Containers
A container is a unit of executable software in which application code is packaged, along with libraries and dependencies, in a common way so that it can run anywhere (on a desktop, in a traditional IT installation, or in the cloud).
Containers solve a critical problem in the life of application development. When developers write code, they work in their own local development environment. When that code is passed into a production environment, it often doesn’t work properly. The reasons for this are varied; different operating system, different dependencies, different libraries. Containers solve this critical portability issue that allows you to separate code from the underlying infrastructure on which it is running. Developers can package their application, including all the containers and libraries it needs to run properly, into a small container image. In production, that container can run on any computer that has a container platform. Containers take advantage of a form of operating system (OS) virtualization that allows multiple applications to share the OS by isolating processes and controlling the amount of CPU, memory, and disk that those processes can access.
In addition to solving the great challenge of portability, containers and container platforms offer many advantages over traditional virtualization. Containers have an extremely small footprint. The container only needs your application and a definition of all the containers and libraries it needs to run. Unlike virtual machines that have a full copy of a guest operating system, container isolation is done at the kernel level without the need for an operating system.
In any case, the best news is that with containers there are standards, so that companies and institutions do not have to “marry” their Cloud Computing providers, because portability is ensured through the Open Container Initiative..
How are containers created?
Docker is the most widespread open source software platform for building, testing, and deploying containerized applications. Docker packages software into standardized units called containers that include everything needed for software to run, including libraries, system tools, code, and runtime.
Above Docker or other similar platforms, Kubernetes and other “orchestration” platforms are positioned, which allow applications to be deployed in a scalable and massive way. Kubernetes is the de facto standard in container orchestration. This means that it is automatically responsible for deploying the containers, on a local machine or in the cloud, communicating nodes with each other, automatically scaling, monitoring, making decisions, monitoring security, managing possible problems, etc.
Serveless
Perhaps it is the most innovative thing in the world of Cloud Computing, and should not be confused with the universe of containers.
Serverless or FaaS (From English, Function as a Service) is a new tool that allows you to deploy production-ready functionality without investing effort in infrastructure and pay only when it is executed.
It is different from IaaS (Infrastructure as a Service) where you pay for servers regardless of their use and where the client is responsible for configuring, managing and maintaining them, and it is also different from PaaS (Platform as a Service) where the client does not manage the servers, but assumes the cost of having their code running regardless of whether it is being used.
Serverless is still a very new technology, which we believe has a lot of potential to create important innovations since it allows to deploy small or isolated functionalities and serves for those people who do not have knowledge in infrastructure, but want to have applications in production.
Some of the most powerful Serverless solutions are: Amazon, AWS Lambda, Google, Cloud Functions, Microsoft, Azure Functions e IBM, IBM Cloud Functions
Standards: To ensure maximum independence of suppliers and greater agility when putting services into production, ensuring privacy and security against attacks, there are initiatives such as the CNCF – Cloud Native Computing Foundation. CncF was founded in 2015 by Google, CoreOS, Mesosphere, Red Hat, Twitter, Huawei, Intel , Cisco, IBM, Docker, Univa , and VMware.