This March 2019 has been one of the longest months in my Tech life, I can’t remember last time I have spent 16 days without any Internet connection at home.
However, I must say thanks to the folks at Canonical if time passed quite nicely at the end. Backed by some of the most interesting Whitepapers and eBooks from the creators of Ubuntu together with the Laravel Docs and some Hacking course that was sitting there since a while I have at the end spent some quality time reading, cooking and relaxing my brain.
This post is a succulent summary of some of the eBooks and Whitepapers from Canonical, mainly one of them as it really took most of my attention as it’s a clear overview of the modern Cloud infrastructures, types, tools, pros and cons of each one. Only the most interesting facts related to the modern Cloud infrastructures and the tools that Canonical offers for building, deploying and managing a Cloud infrastructure were summarized here.
- CIO guide to multi-cloud operations – How to choose a cost effective cloud architecture (eBook)
- OpenStack made easy (eBook)
- Carrier cloudification: What every telecom executive needs to know (eBook)
- Using Juju to manage evolving complex software (White Paper)
- Key considerations when choosing a robot’s operating system ( White Paper)
- For CTO’s: the no-nonsense way to accelerate your business with containers(WP)
The key tools:
- https://snapcraft.io (The key for IoT devices)
1 – CIO guide to multi-cloud operations – How to choose a cost effective cloud architecture (WP)
Defining cloud architectures and infrastructure technologies:
- Public cloud. In a public cloud environment, compute, storage and other infrastructure resources are provided as a service by an external provider.
- Private cloud. A private cloud provides organisations with compute, storage and other resources that can be accessed over the network and that are reserved exclusively for
- Managed cloud. While public and private cloud platforms do not generally include
support services for setting up or maintaining servers and applications that run in the cloud, managed cloud offerings offer this across private, public and hybrid cloud infrastructures.
- Hybrid cloud. A hybrid cloud architecture is one that combines the usage of a number of public and private cloud services with orchestration between the two platforms.
- Multi-cloud. A multi-cloud architecture is the form of hybrid cloud towards which
most of the industry is converging.
In addition to these different approaches to cloud architecture, a diverse set of
infrastructure building-blocks are available for building modern clouds:
- Virtual machines
- Bare-metal servers
- Process containers ( ie. Docker)
Process containers provide isolated environments that host
individual processes or services.
- System containers. (ie. LXD)
Container technology can also be used to host entire applications
and not just individual processes.
- Serverless computing.
provides an execution environment where small pieces of code can be run on demand.
Choosing the right cloud architecture and infrastructure:
Planning the right cloud strategy for your business requires evaluating the various
options available and aligning them with your needs.
- Minimal setup time and maintenance costs.
- Launch applications globally within minutes.
- The ability to scale resource consumption virtually without limit.
- Choice of operating systems.
- Optimised software stack.
- Lower staffing and requirements.
The public cloud is not the best fit for all types of workloads,the requirements of some organisations may make the public cloud a less practical choice:
- Large infrastructure requirements
- Data privacy and sovereignty requirements.
- Minimal technical expertise.
The aforementioned reasons are often factors in the decision to choose private, hybrid, or multi-cloud architectures, rather than going all-in with public cloud.
In certain situations, the private cloud offers a better architecture. Private cloud is advantageous in the following scenarios
- Your organisation has applications that can’t run in the public cloud.
- Compliance and data privacy regulations prevent an application from running in the public cloud.
- High performance is a priority.
- Data transfer costs are a concern.
- You want flexibility in choosing infrastructure technologies.
Not all public clouds offer all types of infrastructure technologies.Some may only support certain
types of virtual machine hypervisors.
- Organisations have a growing infrastructure.
Flexibility of a private Cloud: Platforms like OpenStack are capable of supporting almost any type of infrastructure, giving the user the freedom to pick and choose precisely which technologies are used to construct the cloud environment, and which services are available on it.
Cons of a private Cloud:
- The total cost of ownership of a private cloud
- not always being as elastic as public clouds when their maximum capacity is reached
- require organisations, in most cases, to support their own
However, a fully managed private cloud solutions such as Canonical’s BootStack is capable of providing a production private OpenStack cloud in three weeks.
If the privacy, performance and cost-optimisation features of the private cloud are attractive, but you lack the resources to set up and manage your own private cloud, managed cloud may be the best fit
- Low “time-to-cloud.”
- No staffing costs.
- Easy access to expertise.
- Choice of managed services
Organisations can deploy different workloads on different types of cloud
infrastructure concurrently, creating a hybrid cloud architecture
Choosing the type of hybrid cloud that is right for your business, and exactly how to approach it, requires determining which types of workloads are best served by which cloud architectures, then arrange them accordingly
Modern APIs make it possible to divide workloads across multiple types of infrastructure in quite granular ways
For example, the storage service for a web
application might run in a private cloud (in order to meet data compliance requirements), while the public-facing web frontend is hosted in the public cloud (where the application has maximum scalability), with a network API connecting the two services.
Dividing workloads between different types of clouds according to a hybrid model helps not only to work around technical or regulatory challenges, but also to optimise costs
What is a hybrid cloud?
It is also important to understand that a hybrid cloud architecture is not defined by the use of different types of infrastructure technologies at the same time. In other words, using virtual machines and Docker concurrently, for example, does not amount to a hybrid cloud. Each of these infrastructure technologies could run in a public cloud, a private cloud or a managed cloud at the same time. However, if one of them runs in one type of cloud and the other in another type, then they form a hybrid cloud.
When not to use a hybrid cloud:
Of course, hybrid cloud only remains cost-effective
when each type of cloud environment that is used to build the hybrid cloud sees sufficient use. A hybrid cloud strategy fails if, for example, it leads to an organisation’s private cloud resources being underutilised because too many workloads are moved to
the public cloud. In a scenario like this, it would be better to focus on one type of cloud.
In cases where an organisation can truly benefit from deploying
significant workloads to more than one type of cloud, a hybrid architecture makes most
A multi-cloud architecture can be considered as a relative of the hybrid cloud, typically made up of one private cloud, operated either by the enterprise or managed by another party, and two public clouds. This architecture allows for greater flexibility than other models when it comes to optimising for cost and operating applications in their most optimal environment.
Some of the Benefits:
considered one of the primary reasons for adopting a
multi-cloud strategy, the desire to not be tied to one cloud vendor remains a driver for many organisations
Maintaining workload portability:
Although avoiding vendor lock-in is a key benefit
of the multi-cloud model, making that a reality requires workload portability and avoiding proprietary APIs and applications. In essence, this means having two or more systems or components that are able to exchange information and to use it. This
requires APIs that are able to talk to each other.
the necessity of an always-on infrastructure, always being up and running is the de-facto expectation.In a multi-cloud model it’s possible for another cloud to take over should the primary cloud suffer any downtime.
removing the ability for the vendor to overcharge and underperform and handing enterprises a freedom of choice that allows them to maximise their ROI by choosing the most cost-efficient solution.
Optimal application environment:
a mix of public and private platforms provides not only an ROI advantage over other models, it also promotes the hosting of the right applications in the right environments and the use of the best tool for the job, rather than sole reliance upon what a single vendor is able to offer.
Frequently changing regulatory demands requires an
infrastructure architecture that is capable of meeting that change.
Frequently these data protection and sovereignty laws require an
enterprise to keep data in certain geographic locations for data sovereignty reasons.
European nations also have extremely strict data protection laws, Russia for example requested that Twitter store data from Russian users on servers hosted in the country.
Canonical’s cloud expertise
Canonical, whose software and service offerings cover virtually all cloud
configurations and architectures,
Canonical tools to help build the right cloud
Now that the variety of cloud deployment architectures are clear, it’s important
to discover the kinds of tools that are available to help with the design, build, and
management of clouds of varying types from Canonical.
Provisioning tool for bare metal server provisioning.
The server operating System that can act as a host OS, guest OS or
Kubernetes Worker node across public and private cloud
A commercial package offering support, security and management features for Ubuntu in production environments across public and private clouds.
A distribution of Openstack maintained and supported by Canonical for private clouds
Foundation Cloud Build and Bootstack:
Services package for the installation and management of Openstack private clouds
Canonical Distribution of Kubernetes (CDK):
A distribution of Kubernetes maintained by Canonical which guarantees a common set of APIs across public and private cloud
Kubernetes Discoverer, Kubernetes Explorer and Bootstack:
Services package for the installation and management of Kubernetes across public and private clouds.
Operating system software
Canonical’s flagship product, Ubuntu, is an open source operating system that is
widely used on all types of cloud architectures. It is popular both as a guest OS,
whereby you run your application, and as a host OS, on which it is possible to put
your VM, container, or where you can build OpenStack or Kubernetes
OpenStack, which traces its roots to a software project at NASA, is the
preeminent open source platform for building cloud infrastructure today.
OpenStack is an Infrastructure-as-a-Service (IaaS) platform that integrates a
group of bare-metal servers (even if they are servers of varying types) into a cloud
environment to make compute, storage, networking and other resources
available on demand.
Cloud hypervisors and containers
Canonical both helps to develop and support two different types of open source
hypervisor that can host virtual operating systems in a cloud environment. Simply
put, a hypervisor is a process that separates a computer’s OS and applications
from the underlying hardware. A container, which everything at Google runs off,
is a way of packaging application’s code, configurations, and dependencies into
building blocks for the purpose of delivering greater consistency, operational
efficiency, version control at scale.
Kernel-based virtual machine (KVM): KVM is a VM that uses the Linux
kernel to emulate hardware and host virtual machines. KVM is supported on all
modern versions of Ubuntu.
LXD: This is a system container. Rather than emulating hardware, LXD shares a
host server’s processes and file system with guest operating systems in order to
create virtual environments that function like virtual machines but consume much
fewer resources. LXD is ideal for helping to build clouds that require large numbers
of virtual server-like environments to run on a single bare-metal host server.
Kubernetes / multi-cloud container orchestration
Containers are a technology that allows the user to divide up a machine so that it
can run more than one application (in the case of process containers) or operating
system instance (in the case of system containers) on the same kernel and
hardware, and in so doing maintain isolation between these workloads.
Although similar to virtual machines in terms of the purpose, containers differ in
several ways, primarily due to containers providing a way to virtualise an OS so that
multiple workloads can run on a single OS instance. In VMs, it is the hardware that is
being virtualized to run the multiple OS instances. This helps containers to be much
lighter than VMs, megabytes rather than gigabytes, and much faster to start.
Kubernetes is an open-source software orchestration manager. Kubernetes is required for the management of containers, allowing the user to automate the deployment,
scaling and operations of process containers across a set of machines, ensuring that the entire operation can be done without human/DevOps intervention.
In a multi-cloud world, Kubernetes can act as a way for organisations to create a
common environment on which to run their containerised workloads.
Although an important element of the move to multi-cloud architectures,
Kubernetes isn’t the only tool required, serving more as one piece of the puzzle
and the tools below helping to fill in the gaps.
Cloud orchestration and management
For provisioning and managing cloud environments, Canonical
offers several tools:
Juju, an orchestration tool that automates the process of deploying and
managing infrastructure and applications across a large number of cloud servers.
Metal-as-a-Service, or MAAS, an end-to-end cloud automation solution that
transforms bare-metal servers into cloud-based virtual machines in order to
construct a private cloud.
Landscape, a management tool for administering and monitoring multiple
Ubuntu Advantage (UA) is the professional support package from the experts at
Canonical, helping organisations around the world to manage their Ubuntu estates.
BootStack is a fully managed cloud service from Canonical and the fastest path
to a production private OpenStack cloud. The service is aimed at allowing your
business to focus on the business, whilst Canonical takes care of building and
running your OpenStack cloud.
Foundation Cloud Build is a consulting offering through which Canonical
designs and deploys your OpenStack on your premises
Kubernetes Explorer is a service package offered by Canonical that is
designed to help your business launch its Kubernetes strategy. This package
offers three-day training on Canonical Kubernetes and tooling, helping you ramp
up your Kubernetes skills and get you ready to deploy in your own environment.
The value of these technologies is not limited strictly to the cloud. These
tools can also help to set up and manage on-premise servers and, in some
cases, even workstations.
2 OpenStack made easy (eBook)
- MAAS is the smartest way to handle bare metal
- Juju enables easy model-driven operations for hybrid cloud services https://maas.io
conjure-up is the fastest way to build an OpenStack cloud for production and also the simplest way for developers to build a multi-node OpenStack deployment on their laptop
LXD pure containers hypervisor, ZFS and Fan networking let you run traditional and cloud-native
workloads at bare metal speed
ZFS and software defined storage
Juju – model-driven operations for hybrid cloud services https://jujucharms.com
3.Using Juju to manage evolving complex software (White Paper)
- try this when internet connection is back: https://jujucharms.com/how-it-works
4.Key considerations when choosing a robot’s operating system
( White Paper)
“It doesn’t take long to find examples of companies who started shipping
devices without considering the need to update them. The Internet of Things
market is flooded with them. With the rush to get devices to market, it’s not at
all rare to find devices with hard-coded credentials, development keys, various
security vulnerabilities, and no update path.”
- Read docs: Ubuntu core, snapcraft
- Try this: https://www.brighttalk.com/webcast/6793/268763/building-a-commercial-robot-with-open-source
Source: All eBooks and more cool readings on the Canonical Website.