ก่อนที่จะเข้าใจเกี่ยวกับ component ต่างๆ ของ Azure ต้องเข้าใจก่อนว่า Azure คือ application platform ที่ให้บริการโดย Microsoft ในรูปแบบของ public cloud เพื่อให้คุณเข้าใจการทำงานของ Azure มากขึ้น จึงขอแนะนำให้คุณอ่านหัวข้อย่อยของบทความนี้อย่างละเอียดก่อน แล้วค่อยเจาะลึกลงไปยัง service ต่างๆ เพิ่มเติมเพื่อให้คุณใช้งาน Azure ได้ตรงกับวัตถุประสงค์ของคุณมากที่สุด
The Components of Azure |
Azure จัดกลุ่ม service ต่างๆ เป็นหมวดหมู่บน Management Portal และมีเครื่องมือที่ช่วยให้คุณเข้าใจเมนูต่างๆ ได้ทันที Management Portal ของ Azure ช่วยให้คุณควบคุมทรัพยากรต่างๆ ของเครื่องเซิร์ฟเวอร์ได้สะดวกและรวดเร็ว โดยสามารถศึกษาได้จาก infographic นี้
Management Portal |
Azure มี web interface ที่เรียกว่า Management Portal ช่วยให้ผู้ดูแลสสามารถเข้าถึงและจัดการฟีเจอร์ต่างๆ ของ Azure โดยจะมี portal สองรุ่นคือแบบเก่าและแบบใหม่ สำหรับบริการใหม่ที่เพิ่มขึ้น คุณจะเห็นบริการใหม่บน new portal ก่อนเสมอ ดังนั้นจึงแนะนำให้คุณเข้าใช้งาน Management Portal ที่เป็น new portal ทุกครั้ง
Compute |
หน้าที่หลักของ Cloud Platform คือรองรับการทำงานของแอพพลิเคชั่น ดังนั้นจึงมี Compute Model มากมายในการทำงาน
คุณสามารถใช้เทคโนโลยีต่างๆ แบบแยกส่วนได้หรือจะใช้งานหลายส่วนร่วมกันได้ขึ้นอยู่กับความต้องการของคุณ
หนึ่งในความสามารถที่โดดเด่นคือการสร้าง Virtual Machine (VM) แบบ on-demand ไม่ว่าจะสร้างจาก standard image หรือว่าจาก template ของคุณเองก็ตาม ซึ่งการทำเช่นนี้คือการสร้างบริการประเภท Infrastructure as a Service (IaaS) นั่นเอง
|
Figure 2 shows a combination of how a Virtual Machine (VM) runs and how to create one from a VHD.
To create a VM, you specify which VHD to use and the VM's size. You then pay for the time that the VM is running. You pay by the minute and only while it's running, though there is a minimal storage charge for keeping the VHD available. Azure offers a gallery of stock VHDs (called "images") that contain a bootable operating system to start from. These include Microsoft and partner options, such as Windows Server and Linux, SQL Server, Oracle and many more. You're free to create VHDs and images, and then upload them yourself. You can even upload VHDs that contain only data and then access them from your running VMs.
Wherever the VHD comes from, you can persistently store any changes made while a VM is running. The next time you create a VM from that VHD, things pick up where you left off. The VHDs that back the Virtual Machines are stored in Azure Storage blobs, which we talk about later. That means you get redundancy to ensure your VMs won’t disappear due to hardware and disk failures. It's also possible to copy the changed VHD out of Azure, then run it locally.
Your application runs within one or more Virtual Machines, depending on how you created it before or decide to create it from scratch now.
This quite general approach to cloud computing can be used to address many different problems.
Virtual Machine Scenarios
Web Apps |
One of the most common things that people do in the cloud is run websites and web applications. Azure Virtual Machines allows this, but it still leaves you with the responsibility of administering one or more VMs and the underlying operating systems. Cloud services web roles can do this, but deploying and maintaining them still takes administrative work. What if you just want a website where somebody else takes care of the administrative work for you?
This is exactly what Web Apps provides. This compute model offers a managed web environment using the Azure Management portal as well as APIs. You can move an existing website application into Web Apps unchanged, or you can create a new one directly in the cloud. Once a website is running, you can add or remove instances dynamically, relying on Azure Web Apps to load balance requests across them. Azure Apps offers both a shared option, where your website runs in a virtual machine with other sites, and a standard option that allows a site to run in its own VM. The standard option also lets you increase the size (computing power) of your instances if needed.
For development, Web Apps supports .NET, PHP, Node.js, Java and Python along with SQL Database and MySQL (from ClearDB, a Microsoft partner) for relational storage. It also provides built-in support for several popular applications, including WordPress, Joomla, and Drupal. The goal is to provide a low-cost, scalable, and broadly useful platform for creating websites and web applications in the public cloud.
Web Apps Scenarios
Web Apps is intended to be useful for corporations, developers, and web design agencies. For corporations, it's an easy-to-manage, scalable, highly secure, and highly available solution for running presence websites. When you need to set up a Website, it’s best to start with Azure Web Apps and proceed to Cloud Services once you need a feature that’s not available. See the end of the "Compute" section for more links that can help you to choose between the options.
|
Cloud Services |
Suppose you want to build a cloud application that can support lots of simultaneous users, doesn't require much administration, and never goes down. You might be an established software vendor, for example, that's decided to embrace Software as a Service (SaaS) by building a version of one of your applications in the cloud. Or you might be a start-up creating a consumer application that you expect will grow fast. If you're building on Azure, which execution model should you use?
Azure Web Apps allows creating this kind of web application, but there are some constraints. You don't have administrative access, for example, which means that you can't install arbitrary software. Azure Virtual Machines gives you lots of flexibility, including administrative access, and you certainly can use it to build a very scalable application, but you'll have to handle many aspects of reliability and administration yourself. What you'd like is an option that gives you the control you need but also handles most of the work required for reliability and administration.
This is exactly what's provided by Azure Cloud Services. This technology is designed expressly to support scalable, reliable, and low-admin applications, and it's an example of what's commonly called Platform as a Service (PaaS). To use it, you create an application using the technology you choose, such as C#, Java, PHP, Python, Node.js, or something else. Your code then executes in virtual machines (referred to as instances) running a version of Windows Server.
But these VMs are distinct from the ones you create with Azure Virtual Machines. For one thing, Azure itself manages them, doing things like installing operating system patches and automatically rolling out new patched images. This implies that your application shouldn't maintain state in web or worker role instances; it should instead be kept in one of the Azure data management options described in the next section. Azure also monitors these VMs, restarting any that fail. You can set cloud services to automatically create more or fewer instances in response to demand. This allows you to handle increased usage, and then scale back so you aren’t paying as much when there is less usage.
You have two roles to choose from when you create an instance, both based on Windows Server. The main difference between the two is that an instance of a web role runs IIS, while an instance of a worker role does not. Both are managed in the same way, however, and it's common for an application to use both. For example, a web role instance might accept requests from users, then pass them to a worker role instance for processing. To scale your application up or down, you can request that Azure create more instances of either role or shut down existing instances. And similar to Azure Virtual Machines, you're charged only for the time that each web or worker role instance is running.1
Cloud Services Scenarios
Cloud Services are ideal to support massive scale out when you need more control over the platform than provided by Azure Web Apps but don’t need control over the underlying operating system.
|
ACTION ! | Choosing a Compute Model |
The page Azure Web Apps, Cloud Services and Virtual Machines comparison provides more detailed information on how to choose a Compute model.
More info: https://docs.microsoft.com/en-us/azure/index
ACTION ! | Get a Short Brief Here: https://azure.microsoft.com/en-us/get-started/ |
Data Management |
Applications need data, and different kinds of applications need different kinds of data. Because of this, Azure provides several different ways to store and manage data. Azure provides many storage options, but all are designed for very durable storage. With any of these options, there are always 3 copies of your data kept in sync across an Azure datacenter -- 6 if you allow Azure to use geo-redundancy to back up to another datacenter at least 300 miles away.
In Virtual Machines
The ability to run SQL Server or another DBMS in a VM created with Azure Virtual Machines has already been mentioned. Realize that this option isn't limited to relational systems; you're also free to run NoSQL technologies such as MongoDB and Cassandra. Running your own database system is straightforward-it replicates what we're used to in our own datacenters-but it also requires handling the administration of that DBMS. In other options, Azure handles more or all of the administration for you.
Again, the state of the Virtual Machine and any additional data disk you create or upload are backed by blob storage (which we talk about later).
Azure SQL Database
Figure: Azure SQL Database provides a managed relational database service in the cloud.
For relational storage, Azure provides the feature SQL Database. Don't let the naming fool you. This is different than a typical SQL Database provided by SQL Server running on top of Windows Server.
Formerly called SQL Azure, Azure SQL Database provides all of the key features of a relational database management system, including atomic transactions, concurrent data access by multiple users with data integrity, ANSI SQL queries, and a familiar programming model. Like SQL Server, SQL Database can be accessed using Entity Framework, ADO.NET, JDBC, and other familiar data access technologies. It also supports most of the T-SQL language, along with SQL Server tools such as SQL Server Management Studio. For anybody familiar with SQL Server (or another relational database), using SQL Database is straightforward.
But SQL Database isn't just a DBMS in the cloud-it's a PaaS service. You still control your data and who can access it, but SQL Database takes care of the administrative grunt work, such as managing the hardware infrastructure and automatically keeping the database and operating system software up to date. SQL Database also provides high availability, automatic backups, point-in-time restore capabilities, and can replicate copies across geographical regions.