Time: 30 SecsHello and welcome to my talk on Architecting for the public and the private cloud. I am super excited to be here at the Cloud Computing Asia 2011 event. I understand that I am standing between you and your lunch. So I would like to thank you for coming to my session.With that I would really like to get started since we have only 30 minutes to cover this topic.
Time: 2 minutesA quick introduction:My name is Hammad Rajjoub. I have recently joined Microsoft Singapore as Architect Evangelist, which is an advisory role where I mostly work on key partner accounts and try and win architectural battles for Microsoft (that’s mostly in enterprise space). Before joining Microsoft I was working with Bank of America Merrill Lynch as a VP Technology where I was responsible for globally leading the bank’s Options Trading platform.I am a published author. In fact these days I am busy writing my second book (on Windows Server AppFabric). For more details please check out my blog. I am also a member of International Association of Software Architects and a frequent speaker at their regional conferences.For more details feel free to visit my blog: http://www.hammadrajjoub.netOr follow me on twitter at: @hammadrajjoubImportant disclaimer.
Time: 2 minutesSince we really have short time span and it’s a big ask to cover Architectural Considerations for Public and the Private cloud. I would like to focus on some key messages today. And if I am able to deliver them (as I intend to) and if you are able to retain them after this talk, then I will count this session as a success.So, I really wanted to touch on three key points:First and the foremost: A quick introduction to the Cloud Computing. (Ask question on how many are familiar with technicalities of cloud computing…) If the 90%+ audience is familiar with it then just skim through the intro slides and focus on Architectural Practices. Otherwise spend around 3-5 minutes explaining Cloud Computing, SaaS, IaaS and PaaS.Secondly: I would like to share with you the journey to the cloud i.e. how have moved from the traditional on premise IT systems to the utility model of cloud computing.Last but not the least: The crux of the discussion will revolve around some of the key design/architectural practices that should be considered when designing for the cloud.With that, lets get rolling!
(Top Level – IT is facing many challenges today, theses shifts are forcing business to rethink how they operate and grow.)Consumerization of ITThe more consumers adopt technology at home, the more they want to use the same technology where they workBusinesses are and will need to strategize on how they provide the tools their employees want in order to retain top talent and their competitive advantageBy 2014, the ratio of smartphones to PCs will be roughly 1:1. This prediction speaks to the smartphone being many people’s first entry into consuming cloud computing.Diverse and distributed workforceWe estimate 84 percent of organizations have a remote or mobile workforce. This brings about a number of challenges businesses need to deal withConsumerization of IT has caused a proliferation of mobile devices and sophisticated computers at home. Employees want and need to have access to business tools through these devicesIn addition to this, there has been a marked increase in the use of contingent staff, contractors, and outsourcing to help businesses meet the rapidly changing environment without rapid hiring/layoffs. These groups of people are usually not “local” and may be some distance away. With these shifts, businesses are needing to deal with an increased demand of employees, contingent staff, contractors, and outsourcers wanting access to tools, data, and email while remote or away from the office to be productiveInfrastructure UtilizationBeginning with the Client/Server transformation in the 1990s, business have been expanding their server footprint at a feverish pace. This expansion has also cause the rapid rise in the cost for IT to operate in the form of more datacenters, cooling, and powerWith this proliferation of applications, application vendor and IT policies evolved into placing only 1 application on a server stemming from the “double double” rule of capacity planningThe end result is that, on average, 85 percent of datacenter capacity is idle, but still costing companies millions of dollars to operate that idle capacityInfrastructure cost and ComplexityAnd last, the previous three challenges have added to the complexity and cost of operating an IT InfrastructureBusinesses have grown to having too many systems and datacenters to maintainAs an example of this, the average one billion dollar company maintains 48 disparate financial systems. This is only complicated by merger and acquisition activity and the need to maintain legacy systems.All this adds up to 70 percent of IT budgets being spent on maintaining inflexible and dedicated datacenter equipment, instead of IT being able to invest in innovation.
(Top Line – Aspirational slide to set the audience frame of mind about what could be possible given an infrastructure that has improved mechanics and economics)Transition out of previous slide – But…..given these challenges, Imagine If…………… You could achieve these benefits…… (you may choose to only speak to a few of these benefits)Reduce Costs – ongoing IT operational costs and capital investment costs (servers, datacenter equipment) reduced, cloud technology is paid incrementally, saving organization moneyFlexibility - Cloud computing offers much more flexibility than past computing methods. Agility- No longer having to worry about constant server updates and other computing issues, organizations will be free to concentrate on innovation. More Mobility - Employees can access information wherever they are, rather than having to remain at their desksHighly Automated – No longer do IT personnel need to worry about keeping software up to dateEasy Implementation: Without the need to purchase hardware, software licenses or implementation services, a company can get its cloud-computing arrangement off the ground in record time — and for a fraction of the cost of an on-premiseEnd-User Productivity: Extend productivity to all users …… with and infrastructure that is……….Usage Based– Paying for only what you use, when you need to use itSelf-Service– Providing self-service IT infrastructure to business units and departments with an SLA. This forces service-level discussion and removes the burden to procure, provision and manage infrastructure on a per application, ad-hoc basisScalable and Elastic – Enabling faster delivery of capacity when resource needs change. Efficient – Doing all of the above with less physical space, servers, power, and cooling. Now lets see how this might all be possible……
(Top Line - Top Cloud concerns from CIOs and ITDMs)While we are very excited to give you Cloud Power, we have heard the concerns about the Cloud from CIOs and IT Decision Makers. Amongst those concerns, we hear 5 the mostIs it Secure?Microsoft is committed to security and Cloud Power reflects the commitment. Some examples of steps we have taken to ensure your data and applications are safe:We Enable Physical & Logical Data Protection – the datacenters that house our cloud offerings have state of the art physical security along with logical data protection measures built into the fabric.Our Datacenters have been tested against rigorous standards to ensure regulartory compliance is met and in many cases exceeded. An example of this is the ISO 27001 Certification that all our datacenters posses. We Have Leading Security Architects employed in designing and building our datacenters and fabric. Together they have Decades Of Enterprise ExperienceHOW WILL WE GAIN PRODUCTIVITYWe support customer choiceYou Can Go To An ‘All In’ ModelYou Can Migrate Specific Apps (i.e. Email)You Can Migrate Specific UsersCONTROLMS is committed to Partnering with youCustomers Own & Control The Use Of Their DataWe DO NOT Data Mine Or Monetize Our Commercial Services Through AdvertisingWe Have A Long History Of Hosting And Provide Reliability SLAsLegacy AppsMS is committed to InteroperabilityWe Use Your Active Directory FederationWe’ve Built Our Cloud Services With Interoperability In MindWe Will Work To Help You Migrate Apps When NecessaryTop Cloud Questions from CustomersSecurityMicrosoft is committed to securityWe Enable Physical & Logical Data ProtectionOur Datacenters Are All ISO 27001 CertifiedWe Have Leading Security Architects And Years Of Enterprise ExperiencePRODUCTIVITYEnd Users Can Have ‘Anywhere Access’ To Data & ApplicationsOur Cloud Services Enable End User CollaborationWe Will Simplify IT Maintenance Our Cloud Services Will Provide Your Users With Our Most Up To Date InnovationCOMPLIANCEWe Have Experience Managing Government Customers & Clients In Highly Regulated IndustriesWe Will Work To Adapt To New And Changing Regulations & Requirements To Meet Your NeedsCONTROLMS is committed to Partnering with youCustomers Own & Control The Use Of Their DataWe DO NOT Data Mine Or Monetize Our Commercial Services Through AdvertisingWe Have A Long History Of Hosting And Provide Reliability SLAsLegacy AppsMS is committed to InteroperabilityWe Use Your Active Directory FederationWe’ve Built Our Cloud Services With Interoperability In MindWe Will Work To Help You Migrate Apps When Necessary
Time: 2 mins.In this section I basically wanted to provide a quick high level definition of the cloud computing. I also wanted to highlight that what isn’t cloud.What constitutes Cloud Computing?Cloud Computing is the on-demand delivery of standardized IT services on shared resources, enabling IT to bemore reliable throughgreaterelasticity and scale, end-users to accelerate access to their IT needs through self-service, and the business to be more efficient through usage-based and SLA-driven services. Infrastructure as a Service (IaaS) is a model for provisioning hardware (compute, storage, networking, etc...) to the end user where management of the underlying fabric is controlled by the provider, but the end user maintains control of the operating system and applications installed within. Platform as a Service (PaaS) is a model for delivering complete development platforms as a cloud service. PaaS offerings facilitate development, testing, deployment and on-going maintenance of applications without the cost of buying the underlying infrastructure and software environments. Examples include: Microsoft Azure Platform, Google App Engine, VMforce.comSoftware as a Service (SaaS) is a model where an application is delivered over the Internet and customers pay on a per-use basis. It is the most common form of cloud computing delivered today. Examples include: BPOS, Salesforce.com, Hosted Exchange, Salesforce.comNot to self: The idea is to Define Cloud Computing , Use Diagrams etc.
Here’s another way to look at the cloud services taxonomy and how this taxonomy maps to the components in an IT infrastructure. Packaged SoftwareWith packaged software a customer would be responsible for managing the entire stack – ranging from the network connectivity to the applications. IaaSWith Infrastructure as a Service, the lower levels of the stack are managed by a vendor. Some of these components can be provided by traditional hosters – in fact most of them have moved to having a virtualized offering. Very few actually provide an OSThe customer is still responsible for managing the OS through the Applications. For the developer, an obvious benefit with IaaS is that it frees the developer from many concerns when provisioning physical or virtual machines. This was one of the earliest and primary use cases for Amazon Web Services Elastic Cloud Compute (EC2). Developers were able to readily provision virtual machines (AMIs) on EC2, develop and test solutions and, often, run the results ‘in production’. The only requirement was a credit card to pay for the services.PaaSWith Platform as a Service, everything from the network connectivity through the runtime is provided and managed by the platform vendor. The Windows Azure Platform best fits in this category today. In fact because we don’t provide access to the underlying virtualization or operating system today, we’re often referred to as not providing IaaS.PaaS offerings further reduce the developer burden by additionally supporting the platform runtime and related application services. With PaaS, the developer can, almost immediately, begin creating the business logic for an application. Potentially, the increases in productivity are considerable and, because the hardware and operational aspects of the cloud platform are also managed by the cloud platform provider, applications can quickly be taken from an idea to reality very quickly.SaaSFinally, with SaaS, a vendor provides the application and abstracts you from all of the underlying components.
Time: 3 mins.So basically, this is how the evolution looks like. We started off the mainframes. They were super useful and in huge demand for a good decade or two. Then with the cheaper silicon and advanced development environments came client server computing model. Client/Server was all rage in the 1990. We had COM/DCOM/COM+/CORBA/IDL etc etc. Every one had their own app server. It was kind of fun. But then web services came in and the web 2.0 and the whole 2000s been all about Web. All about http. Now, we are in the cloud era! We have number of cloud solution providers. In fact everyone is claiming to be a cloud provider (of course to jump on a band wagon if you will). What’s interesting that we need to understand this paradigm to really make the most out of it. That is away from the buzz words we really need to understand this computing model and how it works. Only then we can develop systems that can leverage on the power of cloud computing.This is exactly what I aim to cover in next 20 or so mins by highlighting some of the key considerations when designing solutions for the cloud.
Time: 2 mins.As soon as you understand cloud computing. You are literally bombarded with tons of additional terminologies. We have Public Clouds for public utility computing. We also have Private Clouds for the inhouse, highly scalable and virtualized infrastructure as well as services. And then, we have a hybrid model where we have a half and half model i.e. half cloud running on premise and half in the cloud providers infrastructure. Recently we have started coming across Gov Clouds as well.The bottom line is these are all clouds. This reminds me of Henry Ford when he said you can have any car as long as it is black. If you go to a cloud vendor today, they we will say you can have any system you like as long as it is cloud. It is also important to be able to identify what’s not a cloud. I have come across all sorts of marketing claims in the recent past. One of my favorite is that “Cloud computing coming to a server near you!)
Some of the key Architectural practices that relevant for cloud computing. Since we are short of time I will cover the top 3 of these and will leave the rest for some other time.
Time: 9 minsMurphy’s law: Anything that can fail will fail. Lets consider this analogy:Think of Neo from Matrix. Think he is loaded in to matrix and he is fighting Mr Smith. Don’t be Neo. Be Mr. Smith, he is a smart guy he know Neo will eventually kill him. So his newer version is designed for failure. If one of his instance goes down another one shows up. Make’s Neo’s life so much difficult.Rambo Architecture: Give the Netflix example. When one of the component fails they don’t get back to the user with the error. Instead they respond smartly.Run monitoring tools in separate zone(s). Mind you, failure is different from the error.
Time: 5 mins
- In an ideal world there would be only one consistency model: when an update is made all observers would see that update.- Eric Brewer, systems professor at the University of California, Berkeley, and at that time head of Inktomi, brought the different trade-offs together in a keynote address to the PODC (Principles of Distributed Computing) conference in 2000.1 He presented the CAP theorem, which states that of three properties of shared-data systems—data consistency, system availability, and tolerance to network partition—only two can be achieved at any given time. A more formal confirmation can be found in a 2002 paper by Seth Gilbert and Nancy Lynch.4http://en.wikipedia.org/wiki/CAP_theorem
2. Architecting for the Public and the Private Cloud<br />Hammad Rajjoub (email@example.com)<br />
3. Speaker<br />Architect Evangelist at Microsoft Singapore<br />Member of IASA – International Association of Software Architects<br />Speaker<br />Author<br />Email: firstname.lastname@example.org<br />Blog: http://www.hammadrajjoub.net<br />Twitter: @hammadrajjoub<br />
4. Agenda<br />Introduction<br />Road Stairway to the cloud?<br />Architectural Practices<br />Q n A<br />
5. Stairway to the cloud<br />
6. TODAY’S CHALLENGES<br />Distributed Workforce<br />Consumerization of IT<br />percent of organizations <br />have a remote workforce <br />percent of business devices are expected to be smartphones by 2014<br />50<br />84<br />percent of IT budgets is spent maintaining datacenter operations<br />percent of datacenter capacity is idle on average <br />Infrastructure Complexity<br />Infrastructure Utilization<br />70<br />85<br />
7. IMAGINE IF… <br />YOU COULD ACHIEVE THESE BENEFITS:<br />REDUCED <br />COSTS<br />REDUCED <br />COSTS<br />FLEXIBILITY<br />AGILITY<br />FLEXIBILITY<br />AGILITY<br />SCALABLE AND ELASTIC<br />USAGE <br />BASED<br />EFFICIENT<br />SELF <br />SERVICE<br />WITH AN INFRASTRUCTURE THAT IS: <br />MORE MOBILITY<br />EASY TO IMPLEMENT<br />MORE MOBILITY<br />EASY TO IMPLEMENT<br />END USERPRODUCTIVITY<br />END USERPRODUCTIVITY<br />HIGHLY AUTOMATED<br />HIGHLY AUTOMATED<br />
8. IS CLOUD POWER READY FOR Your Infrastructure?<br />IS IT SECURE? <br />HOW WILL WE GAIN PRODUCTIVITY?<br />WHAT ABOUT COMPLIANCE?<br />WILL I STILL HAVE CONTROL?<br />WILL MY APPLICATIONS STILL WORK?<br />
9. Introduction<br />SOFTWARE<br />AS A SERVICE<br />Dynamic<br />Elastic<br />Self-Service<br />PLATFORM<br />AS A SERVICE<br />INFRASTRUCTURE<br />AS A SERVICE<br />
15. Design for Failure<br />Failure should be part of design – Architecture!<br />Redundancy, Redundancy, Redundancy…<br />System should succeed even if one or more components fail (AKA Netflix’s Rambo Architecture)<br />
16. Loosely Coupled<br />Evolution of SOA (remember find->bind->execute?)<br />Use Messages and Queues<br />Enables<br />Location transparency<br />Migration transparency<br />Replication transparency<br />Concurrency transparency<br />Parallelism transparency<br />Plug and Play!<br />
17. Eventual Consistency<br />Trade-off between Consistency, Availability and Partitioning tolerance (only two can be achieved at any given time)<br />CAP Theorem<br />Data Consistency <br />Systems Availability<br />Partitioning to tolerance<br />Partitioning tolerance is a must have and so is availability<br />Let go of traditional, transactional RDBMS storage<br />Use compensating transactions<br />Level of tolerance for inconsistency window<br />
18. Also…<br />Security is paramount<br />N+1 (or the rule of three)<br />Design for Scalability<br />Automate everything<br />Use distributed cache<br />Think Multi-tenancy (for Public Cloud Apps)<br />DR is still valid<br />Release frequently<br />