- VM Lab
- SQL
- BI
I would like to see a better understanding about business and compute. Basically, knowledge of your to burn your money efficiently.
We have used this solution for over four years.
There were issues with deployment.
There were issues with stability.
There were issues with scalability.
Customer service is very good. Microsoft Azure support can replace the second level support group. Be aware of it as they are very good at what they are doing.
Technical Support:I would give technical support a rating of 10/10.
We switched solutions due to cost.
It took less than three years for the ROI to be zero. Only experience is left. Over three years is better in-house for the ROI.
These elements are brilliant. It is a no brainer.
We evaluated Lab.
Ever since Windows Azure Infrastructure Services were announced in preview I keep hearing questions "How to run Active Directory in Azure VM? And then join other computers to it". This article assumes that you already know how install and configure Active Directory Directory Services Role, Promote to Domain Controller, join computers to a Domain, Create and manage Azure Virtual Networks, Create and manage Azure Virtual Machines and add them to Virtual Network.
Disclaimer: Use this solution at your own risk. What I describe here is purely my practical observation and is based on repeatable reproduction. Things might change in the future.
The foundation pillar for my setup is the following (totally mine!) statement: The first Virtual Machine you create into an empty Virtual Network in Windows Azure will get the 4th IP Address in the sub-net range. That means, that if your sub-net address space is 192.168.0.0/28, the very first VM to boot into that network will get IP Address 192.168.0.4. The given VM will always get this IP Address across intentional reboots, accidental restarts, system healing (hardware failure and VM re-instantiating) etc., as long as there is no other VM booting while that first one is down.
First, lets create the virtual network. Given the knowledge from my foundation pillar, I will create a virtual network with two separate addressing spaces! One addressing space would be 192.168.0.0/28. This will be the addressing space for my Active Directory and Domain Controller. Second one will be 172.16.0.0/22. Here I will add my client machines.
Next is one of the the most important parts – assign DNS server for my Virtual Network. I will set the IP Address of my DNS server to 192.168.0.4! This is because I know (assume) the following:
Now divide the network into address spaces as described and define the subnets. I use the following network configuration which you can import directly (however please note that you must have already created the AffinityGroup referred in the network configuration! Otherwise network creation will fail):
01
<
NetworkConfiguration
02 |
xmlns:xsd = "http://www.w3.org/2001/XMLSchema"
|
03 |
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
|
04 |
xmlns = "http://schemas.microsoft.com/ServiceHosting/2011/07/NetworkConfiguration" >
|
05 |
< VirtualNetworkConfiguration >
|
06 |
< Dns >
|
07 |
< DnsServers >
|
08 |
< DnsServer name = "NS" IPAddress = "192.168.0.4" />
|
09 |
</ DnsServers >
|
10 |
</ Dns >
|
11 |
< VirtualNetworkSites >
|
12 |
< VirtualNetworkSite name = "My-AD-VNet" AffinityGroup = "[Use Existing Affinity Group Name]" >
|
13 |
< AddressSpace >
|
14 |
< AddressPrefix >192.168.0.0/29</ AddressPrefix >
|
15 |
< AddressPrefix >172.16.0.0/22</ AddressPrefix >
|
16 |
</ AddressSpace >
|
17 |
< Subnets >
|
18 |
< Subnet name = "ADDC" >
|
19 |
< AddressPrefix >192.168.0.0/29</ AddressPrefix >
|
20 |
</ Subnet >
|
21 |
< Subnet name = "Clients" >
|
22 |
< AddressPrefix >172.16.0.0/22</ AddressPrefix >
|
23 |
</ Subnet >
|
24 |
</ Subnets >
|
25 |
</ VirtualNetworkSite >
|
26 |
</ VirtualNetworkSites >
|
27 |
</ VirtualNetworkConfiguration >
|
28 |
</ NetworkConfiguration >
|
Now create new VM from gallery – picking up your favorite OS Image. Assign it to sub-net ADDC. Wait to be provisioned. RDP to it. Add AD Directory Services server role. Configure AD. Add DNS server role (this will be required by the AD Role). Ignore the warning that DNS server requires fixed IP Address. Do not change network card settings! Configure everything, restart when asked. Promote computer to Domain Controller. Voilà! Now I have a fully operations AD DS + DC.
Let's add some clients to it. Create a new VM from gallery. When prompted, add it to the Clients sub-net. When everything is ready and provisioned, log-in to the VM (RDP). Change the system settings – Join a domain. Enter your configured domain name. Enter domain administrator account when prompted. Restart when prompted. Voilà! Now my new VM is joined to my domain.
Why it works? Because I have:
Of course you will get same result if with a single Address Space and two sub-nets. Being careful how you configure the DNS for the Virtual Network and which sub-net you put your AD and your Client VMs in.
This scenario is validated, replayed, reproduced tens of times, and is being used in production environments in Windows Azure. However – use it at your own risk.
Back in January Scott Gu announced the official release of Windows Azure Media Services. It is amazing platform that was out in the wild (as a CTP, or Community Technology Preview) for less then an year. Before it was RTW, I created a small project to demo out its functionality. The source code is public on GitHub and the live site is public on Azure Web Sites. I actually linked my GitHub repo with the Website on Azure so that every time I push to the Master branch, I got a new deployment on the WebSite. Pretty neat!
At its current state Windows Azure Media Services does support the VOD (or Video On Demand) scenario only. Meaning that you can upload your content (also known as ingest), convert it into various formats, and deliver to audience on demand. What you cannot currently do is publish Live Streaming – i.e. from your Web Cam, or from your Studio.
This blog post will provide no direct code samples. Rather then code samples, my aim is to outline the valid workflows for achieving different goals. For code samples you can take a look at the official getting started guide, my code with web project, or the MediaServicesCommandLineTools project on GitHub, which I also contribute to.
With the current proposition from Azure Media Services you can encode your media assets into ISO-MP4 / H.264 (AVC) video with AAC-LC Audio, Smooth Streaming format to deliver greatest experience to your users, or even to Apple HTTP Live Streaming format (or just HLS). Everything from the comfort of your chair at home or in the office. Without the big overspend in expensive hardware. Getting the results however may be tricky sometime, and the platform does not help you with very detailed error messages (which I hope will change in the very near future).
You can achieve different tasks (goals) in different ways sometime. Windows Azure Media Services currently works with 4 Media Processors:
When you want to complete some task you always provide a task preset and a media processor which will complete the given task. It is really important to pay attention to this detail, because giving a task preset to the wrong processor will end up in error and task failure.
Given we have an MP4 video source - H.264 (AVC) Video Codec + AAC-LC Audio Codec. The best will be if we have multiple MP4 files representing same content but with different bitrates. Now we can use the Windows Azure Media Packager and the MP4 To Smooth Streams task preset.
If we don’t have MP4 source, but we have any other supported import format (unfortunately MOV is not a supported format), we can use Windows Azure Media Encoder to transcode our media into either an MP4 (H.264) single file, or directly into Smooth Streaming Source. Here is a full list of a short-named task presets that can be used with Windows Azure Media Encoder. To directly create a Smooth Streaming asset, we can use any of the VC1 Smooth Streaming XXX task presets, or any of the H264 Smooth Streaming XXX task presets. That will generate a Smooth Streaming asset encoded with either VC-1 Video profile, or H.264(AVC) Video Codec.
Well, Apple HLS is similar to Smooth Streaming. However, there is a small detail, it only supports H.264 Video codec! The most standard way of creating Apple HLS asset is by using Windows Azure Media Packager and the XML task preset for “Convert Smooth Streams to Apple HTTP Live Streams”. Please take a note on the media processor – it is the Windows Azure Media Packager. This also will accept an input asset to be valid Smooth Streaming Asset encoded with H.264 (AVC) video codec! Do not forget that you could have created Smooth Streams with VC-1 Video Profile codec, which are totally valid and running Smooth Streams, but they will fail to convert to Apple HTTP Live Streams.
I mean, can’t I have a single media asset and deliver either Apple HTTP Live Streams or Smooth Streams, depending on my client? Sure we can. However this is CPU intensive process. It is called “dynamic packaging”. The source must be a multi-bitrate MP4 asset. This one consists of multiple MP4 files of same content with different bitrates. And it requires an on-demand streaming reserved units from Media Services. You can read more about dynamic packaging here.
We live in dynamic times. Buzzwords such as cloud computing, elastic scale, reliability and their synonyms are taking more and more space in our daily life. People (developers) want to move to the cloud. They are often confused by all the new terms. In this part 1 of [we-will-see-at-the-end-how-many] articles I will try to explain with non-geeky words the Windows Azure terms.
First of all, what is Cloud Computing before all? This is when Computing power (namely CPU, RAM, Storage, Networking) is delivered as a service via a network (usually internet), and not as a product (a server that we buy).
Cloud computing is a marketing term for technologies that provide computation, software, data access, and storage services that do not require end-user knowledge of the physical location and configuration of the system that delivers the services. A parallel to this concept can be drawn with the electricity grid, wherein end-users consume power without needing to understand the component devices or infrastructure required to provide the service.
So what is Windows Azure? Is it the new server operating system from Microsoft? Is it the new hosting solution? Is it the new workstation OS? Well, Windows Azure is the Microsoft’s Cloud Computing platform. It delivers various cloud services. Compute, Database, Storage, CDN, Caching, Access Control to name few.
Next part of the article will be focusing on Windows Azure Compute services.
Windows Azure Guest OS? When we talk about cloud computing, inevitably we talk about virtualization. Virtualization at very big degree. And when we talk about virtualization, we have a Host OS and Guest OS. When we talk about Windows Azure OS, we talk about Windows Azure Guest OS. This is the operating system that is installed on the Virtual Machines that run in the cloud. Windows Azure Guest OS has 2 families – OS Family 1 and OS Family 2. Windows Azure Guest OS Family 1 is based on Windows Server 2008 SP 1 x64, and Family 2 is based on Windows Server 2008 R2. All and any guest OS is 64 bits. You can get the full list of Windows Azure Guest OS here.
Windows Azure Cloud Service, or Hosted Service. The Hosted Service is the essence of your Cloud application:
A hosted service in Windows Azure consists of an application that is designed to run in the hosted service and XML configuration files that define how the hosted service should run
A hosted service can have one or more Roles.
Now it comes to the Roles. Our cloud application can be a Web Based application, or a background processing application, or some legacy application which is hard to migrate. Or mix of the three. In order to make things easy for developers, Microsoft has defined 3 distinguished types of “Roles” – Web Role, Worker Role and VM Role. You can read a bit more for the “Role”s here. But the main idea is that a Role defines an application living environment. The Role contains all the code that our application consists of. It defines the environment where our application will live – how many CPUs will be installed; the amount of RAM installed; volume of local storages; will it be a full IIS or a background worker; will it be Windows Azure Guest OS 1.x or 2.x; will it has open ports for communication with outer world (i.e. tcp port 80 for Web Role); will it has some internal TCP ports open for internal communication between roles; what certificates will the environment has; environment variables; etc.
The Role is like a template for our cloud application. When we configure our Cloud Service (or Azure Hosted Service), we set the number of instances involved for each Role.
Instance is a single Virtual Machine (VM), which has all the properties defined by the Role and has our application code deployed. When I mentioned that the Role defines the number of CPUs, RAM, local storage, I was referring the configuration for each VM where our code will be deployed. There are couple (5) of predefined VM configuration which we can use:
Virtual Machine Size | CPU Cores | Memory | Cost Per Hour |
---|---|---|---|
Extra Small | Shared | 768 MB | $0.04 |
Small | 1 | 1.75 GB | $0.12 |
Medium | 2 | 3.5 GB | $0.24 |
Large | 4 | 7 GB | $0.48 |
Extra Large | 8 | 14 GB | $0.96 |
More information on Virtual Machine sizes can be found here.
And here comes the beauty of the Cloud. We code once. We set the overall parameters once. And we deploy once! If it comes that we need more servers – we just set the number of instances for our role. We do it live. There is no downtime. Windows Azure automatically will launch as many VMs as we requested. Will configure them for our application and will deploy our code in each and every one of them and will finally join them to the cluster of our highly available and reliable cloud application. When we don’t need (let’s say) 10 servers anymore, then we can easily instruct Windows Azure that we only need 2 from now on and that’s it. The cloud will automatically shutdown 8 servers and remove them, so we won’t be paying any more extra money.
It is important to note, though, that the Role defines the size of the VM for all the Instances of it. We cannot have instances of same Role but different VM size. This is by design. If we defined our Role to use Extra Large VM, then all the instances we have will be running on that size of VM.
I hope that this article helped you understand couple of basic terms about Windows Azure. You shall be able to confidently answer the following questions:
My experience is in development and architecture of technology. This includes experience with cloud, cloud maintenance, and multi-cloud. I am certified in Azure Fundamentals. My company is a partner reseller of Microsoft Azure. In our organization, we have approximately 1000 people using this solution and we have plans to increase our usage in the future.
The product brings a lot of value to our business and customers.
The microservices and analytics of Azure are good areas that could be improved.
Microsoft Azure has technology compatible with OpenShift from backtrack, but I would like it if they could evaluate another vendor of technology of microservices like Rancher to integrate with.
I have been using Microsoft Azure for two years.
Azure stability is good.
Technical support is good. However, Microsoft provides support tools that you can refer to that usually resolve the issues before needing to contact support.
The initial setup of Azure is complex. It took almost 6 months to deploy the solution.
We pay a monthly licensing cost.
I would rate Microsoft Azure a 10 out of 10.
Most workloads can be migrated to Azure. For example, say a small business wants to have a website or even do development.
Azure services like EDM and Batch are all famous, but one of the most popular services for development is Azure Functions, especially the PaaS option. Depending on a customer's environment, they can go for the PaaS.
The management portal can be confusing sometimes. We have difficulty navigating the menus because the terminology is unclear, especially when referring to the content or actionable items.
I've been working as an Azure trainer for about a year and a half. In my last job, I was working with on-premises solutions, but the whole industry is transitioning to the cloud, so Azure, AWS, Google, and many other cloud providers are trying to get a market share now.
I don't have any issues with scalability or stability. We moved migrated from our physical infrastructure earlier, and we haven't seen any problems. It's more about the organization getting comfortable with the solution. That's the only thing.
Azure setup is straightforward. There is no comparison to on-premises deployment because it's all automated. It's very fast, but I can't compare the speed to other vendors because I've never deployed AWS or Google.
AWS is good, but Azure's license is reasonably priced, and Microsoft is gaining market share with a competitive package overall. Moreover, Microsoft is well ahead of AWS in terms of ease of use and billing, so I think I still love Microsoft. Obviously, both have a market, but customers working on development projects or using Microsoft products often go for Azure because of the license benefits and product support.
I rate Microsoft Azure eight out of 10.
We use Microsoft Azure for application sourcing and migration.
We use the cognitive service, virtual machines, and customer DB.
We like that Microsoft Azure is scalable and easy to install as well.
The market place can be raised, and the CMT can be more sophisticated to create more opportunities for the end users. Nowadays, if I want to go and do a cloud management platform across private clouds and public clouds, then I would need something more out of the box and easy to use.
There's a huge need for platforms, like vertical platforms, where you've got to create the platforms out of the box to sell to those with particular domains. For example, aviation. They might be using their own platforms underneath CAPEX and OPEX that are not distributed. So it would be nice to address the security until you can provide a mutualized solution with CAPEX- and OPEX-based cloud platforms.
It would be good to have out-of-the-box modernization capabilities because the industry is always looking for modernization. So, it would be good to have an out-of-the-box AIML-based solution that would reduce the time needed for application modernization.
I've been using it for two years.
Scalability is out-of-the-box, and you need to design things, picking up the right service that is available. So, I don't see a challenge with scalability. It's all up to how you build it and fuse things together.
As for the initial setup, it's very straightforward. You can automate, create a blueprint, credit stack, etc. It's not complex.
Pay as you go pricing always helps, but you need to be very careful while considering the services. You would need to consider how it all works and how you will be charged. With adequate knowledge, I think you can come up with a good model where the pricing won't be a constraint.
There are a lot of good solution architect references on what Azure offers, so one should start looking at those. Then, you can correlate them to your problem and do a little mashup and create your solution by well-architected principles, like CAPEX, low cost, security, performance, and scalability.
I would rate Microsoft Azure at eight on a scale from one to ten.
The solution comes with multiple features, including managing resources and creating a virtual machine. We have the possibility to create a virtual machine depending on the type of storage we want and the hardware configuration we want. We also use it to manage our code base because it comes with all the ICT features to allow continuous integration and so on. We are customers of Microsoft Azure.
The solution offers many data security features including securing network access, and the portal is user friendly with a dashboard that makes it easy to find what you're looking for. I'd say the app services feature is great, and they provide free training on how to use that. They provide highly detailed documentation. The dashboard comes with a monitoring section so you can set up alerts for your budget, for example, and it will provide you with some metrics on how it's performing. In general, it's very user friendly.
I believe the cost management and billing section features could be improved because sometimes it may seem somewhat complicated to find certain settings to set up a threshold for resource consumption and track expenses in real-time.
I've been using this solution for more than a year.
Microsoft is well known for its scalability and stability, and this solution provides both. We have more than 50 users in the company. As a software developer, I'm happy with where it's at right now, but if the company is planning to increase use, that would be a good idea. As a developer, whenever I need to create a virtual machine or make use of Azure resources, I can easily do that.
Technical support is very good and responsive.
The initial setup was straightforward because it was linked to our Microsoft account and it's just a question of activating your subscription. They have some training videos and their help and support is very responsive. I've contacted them multiple times on some problems and they were very helpful. I've also used their chat-bot feature and if that doesn't help, you get passed to human support.
I think licensing is pay as you go because you have a monthly budget assigned to your account and depending on which services are running, it's consumed from that budget.
I would definitely recommend Azure because it's an enterprise trade cloud platform and can provide valuable insights of your data and of metrics of data sources in real time. It's totally secure, comes with support and numerous code development languages enabling scaling as you go.
I rate this solution an eight out of 10.