Get Cloud Ready!

Janakiram MSV

Subscribe to Janakiram MSV: eMailAlertsEmail Alerts
Get Janakiram MSV via: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn

Blog Feed Post

Understanding Windows Azure Runtime: Part I

Cloud Computing promises on-demand scale and elasticity. Windows Azure is one of the best implementations of the Cloud. To exploit the features of the Cloud, it is important to understand how applications hosted within Windows Azure interact with the environment and how Windows Azure runtime manages and controls the application lifecycle. This article discusses the concepts of Windows Azure Service Runtime and the Role lifecycle management.

At a high level, Windows Azure compute environment can be compared to a component container like COM+ or J2EE. Component containers are part of application servers that host the business logic in a multi-tiered environment. Business logic is modeled around individual components that live within the container. The advantage of running business components within a container is that the lifecycle of these components is efficiently managed by the container. Developers will focus on the core business logic instead of worrying about the plumbing and the overhead of managing the resources. In the J2EE world, EJBs are managed by the containers like WebLogic, WebSphere, and Glassfish etc. The contract between the components and the container is defined through a prescriptive interface. Developers are expected to implement an interface, override certain methods and finally wrap the business logic in custom methods. The interface will ensure that the container can take charge of the EJBs at runtime. These containers provide transaction scope, object pooling, memory management and remoting services and so on.

How is this related to Windows Azure? If you visualize Windows Azure compute environment as a container offering runtime management services, think of the Web Role, Worker Role and VM Role as individual components that are hosted within the component container. The relationship between the compute runtime and role instances is comparable to the relationship between the EJB container and enterprise java beans. J2EE specification enforces the definition and description of EJBs in an XML file called the Deployment Descriptor that typically lives in ejb.xml. This will instruct the container about the instantiation, transactional and pooling requirements of individual session beans and entity beans. Similar to ejb.xml, Windows Azure expects the developers to define the service model in the service configuration files. These service configuration files (.CSDEF and .CSCFG) files provide the description of the roles declaratively. Service configuration also defines the minimum number of instances that should be made available and how individual roles are interconnected. Azure Service Runtime is responsible for deciphering the configuration.

I want to introduce the terminology that Windows Azure uses for managing the roles.

  • Service – The application that runs within Windows Azure is called a Service. Service implements one or more roles. A role is a specialized instance of a virtual machine (I will discuss roles in depth in part II of this article).
  • Service Model – This is the logical model of the Cloud application. Service Model is a declarative mechanism to instantiate and connecting the roles with each other. This represents the network topology and physical configuration of the application.
  • Service Configuration – Service Configuration is defined through ServiceDefinition.csdef and ServiceConfiguration.cscfg files. They contain the actual definition of the Service Model.
  • Service Runtime – This is the environment that controls the life of individual role instances running within Windows Azure. This runtime implements the Service Model defined in the Service Configuration.
  • Service Runtime API – This is an API to programmatically control the Service Runtime. Services hosted within Windows Azure will be able to interact with the runtime through this API. This provides the methods and events that offer granular control of the life cycle.
  • Service Management API – This API is primarily consumed by applications outside of Windows Azure environment to interact with the Service Runtime. The Developer Portal, PoweShell Cmdlets and various third party tools rely on this API to manage and monitor services running within Windows Azure.

In the next part, we will take a closer look at the roles and their life cycle.

Read the original blog entry...

More Stories By Janakiram MSV

Janakiram MSV heads the Cloud Infrastructure Services at Aditi Technologies. He was the founder and CTO of Get Cloud Ready Consulting, a niche Cloud Migration and Cloud Operations firm that recently got acquired by Aditi Technologies. In his current role, he leads a highly talented engineering team that focuses on migrating and managing applications deployed on Amazon Web Services and Microsoft Windows Azure Infrastructure Services.
Janakiram is an industry analyst with deep understanding of Cloud services. Through his speaking, writing and analysis, he helps businesses take advantage of the emerging technologies. He leverages his experience of engaging with the industry in developing informative and practical research, analysis and authoritative content to inform, influence and guide decision makers. He analyzes market trends, new products / features, announcements, industry happenings and the impact of executive transitions.
Janakiram is one of the first few Microsoft Certified Professionals on Windows Azure in India. Demystifying The Cloud, an eBook authored by Janakiram is downloaded more than 100,000 times within the first few months. He is the Chief Editor of a popular portal on Cloud called www.CloudStory.in that covers the latest trends in Cloud Computing. Janakiram is an analyst with the GigaOM Pro analyst network where he analyzes the Cloud Services landscape. He is a guest faculty at the International Institute of Information Technology, Hyderabad (IIIT-H) where he teaches Big Data and Cloud Computing to students enrolled for the Masters course. As a passionate speaker, he has chaired the Cloud Computing track at premier events in India.
He has been the keynote speaker at many premier conferences, and his seminars are attended by thousands of architects, developers and IT professionals. His sessions are rated among the best in every conference he participates.
Janakiram has worked at the world-class product companies including Microsoft Corporation, Amazon Web Services and Alcatel-Lucent. Joining as the first employee of Amazon Web Services in India, he was the AWS Technology Evangelist. Prior to that, Janakiram spent 10 years at Microsoft Corporation where he was involved in selling, marketing and evangelizing the Microsoft Application Platform and Tools.