Book Image

Hands-On Linux Administration on Azure - Second Edition

By : Kamesh Ganesan, Rithin Skaria, Frederik Vos
Book Image

Hands-On Linux Administration on Azure - Second Edition

By: Kamesh Ganesan, Rithin Skaria, Frederik Vos

Overview of this book

Thanks to its flexibility in delivering scalable cloud solutions, Microsoft Azure is a suitable platform for managing all your workloads. You can use it to implement Linux virtual machines and containers, and to create applications in open source languages with open APIs. This Linux administration book first takes you through the fundamentals of Linux and Azure to prepare you for the more advanced Linux features in later chapters. With the help of real-world examples, you’ll learn how to deploy virtual machines (VMs) in Azure, expand their capabilities, and manage them efficiently. You will manage containers and use them to run applications reliably, and in the concluding chapter, you'll explore troubleshooting techniques using a variety of open source tools. By the end of this book, you'll be proficient in administering Linux on Azure and leveraging the tools required for deployment.
Table of Contents (14 chapters)
13
Index

Understanding the Microsoft Azure Cloud

Now that you know more about virtualization and cloud computing, it's time to introduce you to the Microsoft implementation of the cloud: Azure.

Starting again with some history, in this section, you'll find out about the technology behind Azure and that Azure can be a very good solution for your organization.

A Brief History of the Microsoft Azure Cloud

In 2002, Microsoft started a project called Whitehorse to streamline the development, deployment, and implementation of an application within an SOA model. In this project, there was a focus on delivering small, prebuilt web applications and the ability to transform them into services. This project died silently around 2006.

Many of the lessons learned in that project and the appearance of Amazon Web Services (AWS) were the drivers for Microsoft, in 2006, to start a project called RedDog.

After a while, Microsoft added three other development teams to this project:

  • .NET Services: Services for developers using the SOA model. .NET Services offered Service Bus as a secure, standards-based messaging infrastructure.
  • Live Services and Live Mesh: A SaaS project to enable PCs and other devices to communicate with each other through the internet.
  • SQL Services: A SaaS project to deliver Microsoft SQL through the internet.

In 2008, Microsoft announced the start of Azure, and with its public release in 2010, Azure was ready to deliver IaaS and PaaS solutions. The name RedDog survived for a while: the classic portal was also known as RedDog Front-End (RDFE). The classic portal was based on the Service Management Model. On the other hand, the Azure portal is based on Azure Resource Manager (ARM). These two portals are based on two different APIs.

Nowadays, Azure is one of three Microsoft clouds (the others are Office 365 and Xbox) for delivering different kinds of services, such as virtual machines, web and mobile apps, Active Directory, databases, and so on.

It's still growing in terms of the number of features, customers, and availability. Azure is available in more than 54 regions. This is very important for scalability, performance, and redundancy.

Having these many regions also helps compliance with laws and security/privacy policies. Information and documents regarding security, privacy, and compliance are available via Microsoft's Trust Center: https://www.microsoft.com/en-us/TrustCenter.

Azure Architecture

Microsoft Azure runs on a customized, stripped-down, and hardened version of Hyper-V, also known as the Azure Hypervisor.

On top of this hypervisor, there is a cloud layer. This layer, or fabric, is a cluster of many hosts hosted in Microsoft's datacenter and is responsible for the deployment, management, and health of the infrastructure.

This cloud layer is managed by the fabric controller, which is responsible for resource management, scalability, reliability, and availability.

This layer also provides the management interface via an API built on REST, HTTP, and XML. Another way to interact with the fabric controller is provided by the Azure portal and software such as the Azure CLI via Azure Resource Manager.

The following is a pictorial representation of the architecture of Azure:

Azure architecture
Figure 1.1: Azure architecture

These user-interfacing services (Azure portal, PowerShell, Azure CLI, and API) will communicate with the fabric through resource providers. For example, if you want to create, delete, or update a compute resource, a user will interact with the Microsoft.Compute resource provider, which is also known as Compute Resource Provider (CRP). Likewise, network resources are communicated via Network Resource Provider (NRP) or the Microsoft.Network resource provider, and storage resources are communicated via Storage Resource Provider (SRP) or the Microsoft.Storage resource provider.

These resource providers will create the required services, such as a virtual machine.

Azure in Your Organization

Azure can deliver IaaS: it's easy to deploy virtual machines, manually or automated, and use those virtual machines to develop, test, and host your applications. There are many extra services available to make your life as a system engineer easier, such as backup and restore options, adding storage, and availability options. For web applications, it's even possible to deliver the service without creating a virtual machine!

Of course, Azure can also be used for PaaS solutions; like IaaS, PaaS includes all of the components of your infrastructure but adds support for the complete life cycle of your cloud applications: building, testing, deploying, managing, and updating. There are pre-defined application components available as well; you can save time transforming these components together with your code into the service you want to deliver. Containers can be another part of your PaaS solution. Azure Container Service simplifies deployment, management, and operations on containers using Kubernetes or another orchestrator, such as Mesos.

If you are a company or organization that wants to host a SaaS solution in Azure, this is possible using AppSource. You can even provide integration with other Microsoft products, such as Office 365 and Dynamics.

In 2017, Microsoft announced Azure Stack. You can run Azure now in your own datacenter or run it in a datacenter from a service provider of your choice to provide IaaS and PaaS. It gives you the power of Azure in terms of scalability and availability, without worrying about the configuration. You only need to add more physical resources if needed. And if you want, you can use it in a hybrid solution with public Azure for disaster recovery or consistent workloads in both cloud and on-premises deployments.

Azure Stack is not the only thing you can use for hybrid environments. You can, for instance, connect your local Active Directory with Azure Active Directory, or use the Azure Active Directory application to provide Single Sign-On (SSO) to both local and hosted web applications.

Azure and Open Source

In 2009, even before Azure went public, Microsoft started adding support for open-source frameworks, such as PHP, and in 2012, Microsoft added support for Linux virtual machines, due to requests from many customers.

At that time, Microsoft was not a big friend of the open-source community, and it's fair to say that they really didn't like the Linux operating system. This changed around 2014, when Satya Nadella succeeded Steve Ballmer as CEO of Microsoft. In October of that year, he even announced at a Microsoft conference in San Francisco that Microsoft loves Linux!

Since that time, Azure has grown into a very open source–friendly environment:

  • It offers a platform for many open-source solutions, such as Linux instances, container technology, and application/development frameworks.
  • It offers integration with open-source solutions by providing open and compatible APIs. For instance, the Cosmos DB service offers a MongoDB-compatible API.
  • The documentation, Software Development Kits (SDK), and examples are all open source and available on GitHub: https://github.com/Azure.
  • Microsoft is working together with open-source projects and vendors and is also a major contributor of code to many open-source projects.

In 2016, Microsoft entered the Linux Foundation organization as a Platinum member to confirm their steadily increasing interest and engagement in open-source development.

In October 2017, Microsoft said that more than 40% of all virtual machines in Azure are running the Linux operating system and Azure is running many containerized workloads. Looking at the current statistics, the number of workloads has reached more than 60%. Besides that, microservices are all using open-source programming languages and interfaces.

Microsoft is very serious about open-source technology, open-source PowerShell, and many other products. Not every Microsoft product in Azure is open source, but at least you can install and run Microsoft SQL on Linux or you can get a container image for Microsoft SQL.