|
|
The ethical slacker
-
-
Shrink yourself to the size of an ant and think of a classic server as a mini data centre. Banks upon banks of memory, multiple disks, many CPU cores and even network interfaces. The OS manages all of the many processes and threads, sharing the resources amongst them and when they demand more resource it makes it available to them – on demand and apparently instantly. Importantly all the resources in my mini data centre genuinely appear as one enormous pool available to all my applications at once. My application runs in a process and doesn’t care whether it consumes one core or 8. So what is a cloud OS?
Cloud OSes do appear to be quite different because somehow I need to play a part traditionally played by the OS. When my application demands more resources I get involved. Typically I need to allocate more virtual machines or storage and quite likely I need to tell my application to extend itself into this new resource (i.e. install my application components and bring it into the pool/farm/cluster/you-name-it). Then when that demand passes I need to consider releasing those resources.
Consider for a moment too the utility model, or to use a common analogy: “cloud computing is like the power grid – on demand, just in time, scale up and down”. When I need to consume more power, the statistically multiplexed grid allows me to draw as much as I want. There are even special burst providers like pumped storage schemes to handle the gigantic surge of kettles going on after a football game. If I need a milliamp for a second or 10 amps for an hour it makes no odds to me(!).
Again the cloud seems to break this analogy. My application will consume up to the limit of pre-allocated resources and stop. The data centre might have a potential for a billion petaflops but the cloud OS can’t just grant them to my app. It is a bit like knowing that I am about to plug in my electric car and ringing the grid to provision me more current.
Once upon a time the server OS used to be quite crude but they evolved and we take their sophistication for granted now. Most people struggle to even describe what an OS does. At the moment I need to resort to special software like Appistry to help me virtualise my application so that when I auto scale up/down my Amazon machine images the application can do so too. How long before these capabilities are part of the cloud OS allowing applications to genuinely scale up and down very discretely? Will all the CPUs in the cloud data centre eventually present themselves as a single virtual resource with the cloud OS presenting abstractions, much like a regular process, as execution containers or in the cloud OS will the virtual machine always get in the way?
It feels as if the virtual machine is a convenient way of *currently* spanning large amounts of hardware, but is it a stop gap? Will a genuine cloud OS come along that behaves like a regular server OS atop a giant data centre? It will be happy to present 24TB of apparently contiguous RAM and 1000 cores to a single “process”. It will be like NUMA and move application data across the server farm to the CPU that has been scheduled to work on it. Do we need it? Are we content for the next few decades to worry about how to span virtual machines and make them collaborate and auto-scale? Is the VM the new Process?
P.S. I appreciate that in many clouds, storage capacity seems to have been the first to become a truly virtualised and discrete resource, although storage performance hasn’t (i.e. most solutions are too blunt to configure for different performance characteristics etc.)
|
-
-
When you have a web farm, monitoring can become a little bit more tricky. When you deploy a monitor it is only monitoring the behaviour of the server chosen by the load balancer to respond. You need to create a monitor that is engaging each server directly, bypassing the load-balancer. Obvious, yes. Hard, no. When you have a web farm to serve your web site you want to make sure that they are all serving the same content. Maybe post-deployment, or just on a regular interval you want to check that one server hasn’t failed to pick up a configuration change or been accidentally interfered with. Or perhaps, when another monitor detects a failure you want to see if the wrong content is displaying across all web servers or just one. One thing you can do is to create a web page that includes an iFrame of each web server (bypassing the load balancer obviously). This is great for a quick eye-balling and may give the answer you need straight away. Sometimes the difference in a web page is not visual, or too subtle to spot in a hurry… I feed my habit by coding on the train home and I knocked this PowerShell script together to line by line compare the output of a page across a farm. It is a start and has proved handy a couple of times to spot a problem. It can be vastly improved of course. For example: by repeating the script and passing different HTTP headers (emulating a different browser type) it can see whether Web Server A is serving different content to IE8 to Web Server D. That’d be hard to spot. Anyway, here it is: $inputDocuments ="http://192.168.0.10/default.aspx","http://192.168.0.11/default.aspx","http://192.168.0.12/default.aspx","http://192.168.0.20/default.aspx","http://192.168.0.21/default.aspx" # Use this line if you would prefer the script actually ignored known patterns that different in each file $patternList ="^\s*<input\s+type=""hiden""\s+value=""[^""]+""\s+/>","^[\s]*$" functionMatchesKnownPattern ($inputLine) { ForEach ($patternin$patternList) { $pat=[regex]$pattern if($pat.match($inputLine).Success) { return $TRUE } } return $FALSE } # For each document create a hash table of line number and the actual line. Exclude all lines that match a pattern known to be different in each document. $parsedDocuments =@() ForEach ($inputDocument in$inputDocuments) { [regex]::Split((New-Objectnet.webclient).DownloadString($inputDocument),"\r\n") |ForEach-Object -begin{$count=0;$webLines=@{}}-Process{if(MatchesKnownPattern($_)){$webLines[$count]="KNOWN DIFFERENCE";$count++;}else{$webLines[$count]=$_;$count++;}}-End{$parsedDocuments +=$webLines} } # Look at each document and see if after all known different patterns are excluded if they have the same line count: $lineCounts =@{} ForEach ($parsedDocument in$parsedDocuments) { $lineCounts[$parsedDocument.psbase.keys.count]++ } if($lineCounts.Count-gt 1) { Write-Host"Line counts are different" $documentCount =0; ForEach ($inputDocument in$inputDocuments) { Write-Host"Document ["$inputDocument "] has a count of: "$parsedDocuments[$documentCount].Count $documentCount++ } } # Having agreed that they all have the same line count then go through each line # and then compare: # file 1 line 1 with file 2 line 1 # file 2 line 1 with file 3 line 1 # file 3 line 1 with file 4 line 1 # file 4 line 1 with file 5 line 1 # file 1 line 2 with file 2 line 2 # .... $agreedLineCount =$parsedDocuments[0].Count for($index=0;$index-lt $agreedLineCount;$index++) { for($innerIndex =0;$innerIndex -lt $parsedDocuments.Length-1;$innerIndex++) { if($parsedDocuments[$innerIndex][$index]-cne $parsedDocuments[$innerIndex +1][$index]) { Write-Host"Compared Document ["$inputDocuments[$innerIndex]"] Line Number ["($index+1)"]:"$parsedDocuments[$innerIndex][$index] Write-Host"To Document ["$inputDocuments[$innerIndex +1]"] Line Number ["($index+1)"]:"$parsedDocuments[$innerIndex +1][$index] # If the files are horrendously different (i.e. out of step by one line) then you may just want the script exit on first error #Exit } } } Write-Host Done
|
-
Cloud portability might become a topic of conversation more often as greater numbers begin to adopt their chosen cloud platform. How do we not repeat the age old “Single Vendor Lock In” in our excited rush? If the cloud provider is an Infrastructure play (i.e. Virtual Machines a la EC2 or GoGrid) then the deployment process becomes critical. Is it flexible enough to take the app and target a different virtual machine image? If you already have multiple environments to deploy to (development, test, system test,pre-production, production etc.) then hopefully you are well set up to target yet another one… What if you chose a cloud Platform player – e.g. Azure? Can you take such an app and deploy it to Amazon SQS, CloudDB instead? Probably not the sort of thing a deployment process could handle. Virtualisation is often the answer here in the way that Java helped to make apps move between hardware and OS variants. Fancy some new coffee flavour to virtualise Cloud Platform services? Models that execute in a Common Cloud Runtime (to make a Microsoft Oslo reference)? I am not sure I see that happening. Seriously though: in the early days where pricing models are still forming and changing how are you planning to keep your options open? Maybe the proposition of the Platform clouds will be so compelling you will take the risk of SVLI over the on-premise/infrastructure clouds and see how the next few years play out. An alternative is to use polymorphism, lots of abstractions and layers making the SQL Data Services Platform interchangeable with CloudDB or use ORMs to try and make that magic happen for you (perhaps even a new ODBC driver for SDS / CloudDB)!. This is not going to be so simple if the capabilities of the cloud databases are significantly different. If you are a product vendor that wants to be cloud-neutral you might have a lot to think about right now. Perhaps you’ll just target the Infrastructure clouds which should make the product friendly to those using on-premise as well. Perhaps the Platform clouds mean you will instead move to SaaS and not make it your customer’s concern at all – making it yours instead. if you are a custom solutions developer don’t forget to factor in the expected lifetime in to your planning as this may mitigate the need to worry about SVLI as portability may be moot. If the pricing models vary enough over the coming years, architectures may struggle to adapt. Architectures often feature patterns that favour the prevalent economics (mainframe vs distributed for example). If the pricing models of cloud platforms are relatively volatile (network usage, server calls, storage space, compute hours, memory demands etc.) it may prove tricky to be the best solution over the lifetime of the solution.
|
-
I had a wry smile on the way to work the other day. I was passing a crossing, the lights were changing to green. A motorbike that had been crawling past the cars had reached the front, but people were straggling across. He blipped the throttle a few times. Nice aftermarket pipes – lovely tone, but probably not road legal. Anyway, the stragglers looked across with annoyed expressions and one of them blurted a few rude words. I carried on past the junction smiling. It wasn’t that I was enjoying those melodic pipes. Nor was it that I missed my biking days. I had insight into the situation that others may not have. I knew that the biker had slowly controlled the bike past the line of traffic. So that he could make a nice smooth move away from the lights when they turned, he had timed it nicely to be still slowly moving as he reached the front and the lights changed. Trailing the rear brake to keep it nicely controlled so the forks wouldn’t dive from using the front brakes and make him wobble. Proper forward planning and control. What he hadn’t planned for were people crossing as the lights were going green for the traffic. As a result he was nearly at a standstill when he should have been moving away. His throttle blipping was to keep the bike balanced for a little longer so he did not have to put his feet down and for it to end up being a clumsy affair. Blipping the throttle gives the motorbike a little bit of angular momentum which stops the bike toppling over so readily – just enough to let the stragglers to clear the way. You know the trick with the big spinning disk in a briefcase that people struggle to turn? Or the plain spinning top that only falls over when it loses enough of its angular momentum. So where the guilty stragglers saw an act of aggression I saw an act of very fine low speed handling and forward planning – hence my smile. I saw parallels with consulting and presales. The frustrating scenarios where your skill and experience are misunderstood by clients who sometimes see time, budget and resources as excessive. Sometimes all you need is a bit of time to explain the low speed riding, forward planning and angular momentum so they can see it for the very desirable excellence and not an act of aggression, or in consulting terms: greedy profiteering. Sometimes you don’t get that chance and the client selects a supplier who doesn’t either and you just have to keep walking. Sometimes that is my job – to help my future clients really understand how we couple innovation with the rhythm and quality of manufacturing whilst building their awareness of the risks and complexity where it exists. All of this we do so that we can engage with a complete understanding – eyes wide open. Not just a proposal to win the work. A proposal to work together with understanding and transparency and empowered to succeed.
|
-
Since my recent posting about extending the life of mobile phones, mobile phone operators have reacted responsibly: "T-Mobile, O2 urging customers not to upgrade" With such influence I shall have to very careful what I say ;o) They hint in the article that they don't feel the rate of innovation is as compelling. The real driver is that they run a much better business not subsidising new phones but instead compelling customers with better discount rates on usage. They don't mention being green at all - just the credit crunch. Can't argue with economics! This still goes back to the point that a drive to extend the life of mobile phones can't be good for hardware manufacturers. Will they respond with more aggressive innovation? Maybe more efficient manufacturing to pass on savings to operators so they can go back to using hardware as incentive? Or will they diversify into software and services that exploit the hardware: ensuring they can fill revenue gap, whilst sneakily trying to get people to upgrade to get even better services? Who knows, but it is a shame to see that being Green is not a motivation! Clearly my blog isn't having that influence ;o)
|
-
I should have mentioned it earlier, but the Microsoft offerings are based around Windows Server 2003 R2 and SQL Server 2005. I wonder why this is not Windows Server 2008 and SQL Server 2008? Were Microsoft unwilling? Did it take a long time to certify the Amazon Machine Images and the 2008 editions are on the way? James Simmonds mentioned to me earlier that he is using GoGrid. Looks like a good offering for Windows Server 2008 and SQL Server 2005. They are still in Beta but they are promising 100% uptime and 10,000% Guaranteed SLA... They are also showing some GoGrid vs Amazon EC2 comparisons. I'd like to correct myself too: Amazon's cloud offering is not just on-premise software. Clearly Simple Storage Service, Simple Queue Services and SimpleDB are offering more of a pure cloud platform approach as opposed to the hosted image approach. Both will have a role to play.
|
-
I received my Amazon Web Services developer's news shot last week. It followed up on recent announcements that their Elastic Compute Cloud (EC2) offering was moving from Beta into General Availability. With that announcement came a Service Level Agreement (SLA) of 99.95% within a region and failing to do so would make customers eligible for service credits. OK, so this is no different to a managed hosting provider running your platform. The difference is the actual service: the elastic, utility style cost model, cloud scale and all round different to hosting-provider service! The thing of course that interested me most recently about AWS was the ability to run Windows Server and SQL Server - just ahead of some of the announcements Microsoft will be making about it's Cloud Computing strategy at the MS Professional Developer's Conference. To quote Amazon: "...an ideal environment for deploying ASP.NET web sites, high performance computing clusters, media transcoding solutions...". But what appeared next was perhaps my first experience of the Cloud/Utility computing reality: "Pricing for Amazon EC2 running Windows Server begins at $0.125 per compute hour.". I personally consume Amazon S3 to store my personal data mirrored off my Windows Home Server, and I get the usage bill every month, but there was something about this that signaled to me that Cloud Computing for Microsoft based solutions was genuinely off to the races. So Amazon's take on exploiting their platform for Cloud Computing is clear. Use classic on-premise technology with an underlying infrastructure that will scale, and a billing model to go with it. As an architect there are many questions, but there is one obvious one that interests me: If you have a very large amount of data, and the infrastructure is modelled towards scale-out not scale-up, how are you going to build in a partitioning scheme so it is palatable to each compute node? After all, am I going to get a a 128GB of RAM SQL Server node linked to a 5TB data file in EC2? With Amazon Elastic Block Store I can have 1TB but it can only be connected to one EC2 instance, and we are encouraged to manage multiple EBS volumes attached to each instance to drive IO throughput etc. So even though it is cloud, I still have a lot to think about in how to architect a solution to scale and perform. Remember that scalable does not mean “at large scale” it just means that the architecture can move from very small scale to very large scale where cost is commensurate with scale. Therefore those operating at small scale only need to have a scalable architecture even if they have yet to exploit this and move to large scale. Cloud computing could be for everyone not just people trying to recreate MySpace or Facebook. So let's wait to hear this week about Microsoft's interpretation of what Cloud Computing means! From what I know it will represent a very interesting time for architects to apply their thinking power on how to properly exploit these platforms as well as how the economics influence the solutions we will build. I have copied verbatim some of the AWS roadmap plans for completeness: Lastly, to help its customers better plan their future hardware and software investments, AWS is providing visibility into plans to release several new features in 2009 that will make managing cloud-based applications even easier. These features will help provide even more cost-efficient consumption of Amazon EC2 and greater visibility into the operational health of applications running in the AWS cloud. These features include: - Load balancing - Enables AWS customers to balance incoming requests and distribute traffic across multiple Amazon EC2 instances.
- Auto-scaling - Automatically grows and shrinks usage of Amazon EC2 compute capacity based on application requirements.
- Cloud monitoring - Enables AWS customers to monitor operational metrics of Amazon EC2, providing visibility into usage of the AWS cloud.
- Management Console - Provides a simple, point-and-click web interface that lets customers manage and access their AWS cloud resources.
|
-
The rate at which .Net advances and improves is fantastic. Everything from LINQ to ASP.Net MVC via F# and parallel programming advances. The roadmap for on-premise and cloud computing shows that the future will be far from dull. Alongside the platform, the core Microsoft server products, such as Windows and SQL Server, are also advancing very favourably. Beyond Microsoft we are also getting ever more fabulous tools and frameworks ranging from ReSharper, Inversion of Control and Aspect Oriented Frameworks to Mocking and Test Frameworks. Around all of this, maturity is growing in Test Driven Development, Continuous Integration, Domain Driven Design and a whole range of Agile delivery methods. There is a growing reality of custom building solutions with repeatable success, considerable flexibility and quality that exactly meet the needs. Good times indeed. What's my point? With such continuous and powerful advances being made I think it is time to re-evaluate many of the Build vs Buy decisions made a few years ago and maybe reset some of our defaults. Now I am not saying that something so radical has happened that the pendulum has decisively swung towards Build. However, I do think it has moved in this direction and I am expecting this to bring pressure on Product vendors to respond. That goes for Microsoft too who are ironically instrumental in handing the builders this power. You may argue that this power is also available to the product vendors, but too often I don't see that materialising. Maybe this is just the lag between harnessing the power and shipping products. That's me being generous. No longer can products rely on (or even hide behind) arguments such as vendor support, upgrades and a resource pool of trained professionals. More than ever the products are lagging much further behind the technology curve, don't deliver exactly what you want and often represent significant compromise. Where the product contributes to the market differentiation of your business proposition it has to be super compelling and leading edge. For example, some of these may resonate: - How long do you have to wait for a product to take advantage of SQL Server 2008 - not just "supported on" or "compatible with", but actually exploit it?
- How long before the product adopts an architecture that better reflects how you want to deploy it in a Virtualised data centre - and changes its licensing to make sense?
- How long before it recognises that at scale might mean a large cluster of commodity hardware - e.g. a web farm of 50 pizza boxes each with their own local web and instance of a federated and co-operating database?
- How long before the product caters for and exploits the emerging and different Cloud computing platforms?
- How long before it truly exploits multi-core developments and has parallelism built right into its fabric as opposed to just using ubiquitous multiple cores as a means to extract more licensing?
- How long before the product is architected and licensed to match your increasing need to deploy for high levels of availability and business continuity? This is a regular expectation not an extraordinary demand.
In summary: Development platforms, methodologies and tooling is aggressively getting better and looks set to continue. This is certainly shifting the balance of power in the Build vs Buy argument towards Build. This should put pressure on product vendors to demonstrate clear advantages ("value-add") and more aggressive roadmaps; they have no excuse not to because they should be harnessing the same power! The Build vs Buy balance of power should remain mostly in equilibrium except during periods of arbitrage during the time lag when advances in the core technologies are harnessed by vendors. The ideal is to spot arbitrage and exploit it, or mitigate it. Right now, builders have the opportunity to make market share whilst vendors have the opportunity to leap frog competitors whilst ensuring they invest so as not to lose market share to builders! N.B. Taking true advantage of these advances puts more emphasis on smart, skilled and experienced people. I know. I ramble.
|
-
I get regular marketing emails from e-buyer offering lots of shiny technology at competitive prices, and I have noticed how for around £300 you can have a pretty reasonable laptop with Vista pre-installed. When I say reasonable I mean it has 2GB of RAM. My work laptop has 3GB of RAM and the more recent 64 bit ones ship with 4GB RAM. Right now, I have SQL Server 2008 running with Management Studio open, as well as Visual Studio 2008, Windows Media Player, IE8 with a few tabs, a PowerShell window and of course Windows Live Writer. I am not yet using half of the available RAM. What's my point? Are we so conditioned to writing ultra-resource-sparing programs that we are not being perhaps as efficient as we could be? Should we be writing more applications that are prepared to be greedy should the conditions allow? If there are plenty of idle cores can you perform some potential work at risk? Can you just pull all your resources into memory if there is plenty of that available? It might deliver a better experience compared to getting them on demand and making the user wait; and then find the disk busy. If more applications did this then perhaps my laptop could idle the disk. Why did I bring this up? People have been comparing how efficient the upcoming browsers are when they have loads of tabs open etc. I'd just like to see smarter efficiency. If my browser can see that I am not under memory pressure then I am more than happy for it to be greedy if the conditions are right and the user experience would really benefit. There are APIs to help you determine whether a computer is in a power saving energy profile. This can trigger a change in application behaviour to help towards this goal. For example: don't be CPU greedy by spawning lots of background niceties, get everything you know about off disk quick and perhaps drop graphic enhancements - this allows the CPU to drop to a slower clock speed, the disk to idle and the GPU to cool off. But how about if the user has chosen a maximum performance profile? What can you do to make your application really fly should there be an abundance of resources? I am not saying any of this is new because there are plenty of example of this thinking in CPU design all the way up to modern OSes like Vista. I am just not sure that it has filtered into regular application development mindsets.
|
-
Looking at some of the latest Smart/PDA phones they have pretty reasonable processors, fairly significant amounts of memory, WiFi, 3G, Bluetooth, GPS, VGA screens, audio, video, voice, camera etc. Do I really need my laptop anymore? Most development work on most of our projects are performed using Virtual Machines running on VMWare or Hyper-V clusters. I just RDP (Remote Desktop) to them. A large amount of applications are web based applications - even the mighty Outlook/Exchange. Word, Excel, PowerPoint - that's a bit sticky, but if Google have their way most of that stuff too will be web based (even though that doesn't escape the need for reasonable local compute resources). Assuming that the mobile device has got enough "grunt" to run those applications, then all it really needs is a nice big screen, ergonomic keyboard and mouse. We can't be far away from docking our mobiles on arrival in the offices, just like you might do with your laptop. If I really need a laptop form factor then surely it can't be a leap to design a laptop that just hosts the docking mobile. I can already see the iPhone sliding into a very slight Mac, or a HTC into a Dell. This host could provide additional battery power to cover the large bright screen and extended use running applications at higher clock speeds. In the short term it won't satisfy the power users, but there is a large majority for whom that would work very well. Of course, when you couple this with Cloud Computing for data storage and application virtualisation it could all be very easy. I should just be able to walk around with my second brain - docking it to extend/enhance its capabilities. Mobiles will become smarter at detecting their context and adapting to exploit it. In mobile mode it behaves as you'd expect, and when docked it will step the processor speed up, switch resolution and prioritise network usage towards a fixed local network / WiFi over 3G etc. Device 0. It will shrink and shrink. Soon it will just be a chip in a key fob. I could insert Device 0 into a mobile phone style device giving it networking, a display and keyboard which I could further dock in a laptop or just slap on top of a Surface Computer. Eventually, embedded in my person, Device 0 will wirelessly detect nearby resources: adopting and adapting to them them. I walk up to a Microsoft Surface and I am off... If you take this to the extreme, Device 0 is just my secure identity. The environment will provide all the resources and the cloud will extend this.
|
-
I have an "old" HTC Wizard, Windows Mobile 5 PDA phone. I got it as part of purchasing an O2 talk-plan about two and half years ago. Conchango would rather I was part of the company mobile scheme. I want to keep my phone though. I prefer the PDA phone to the company Smartphone and frankly it is a perfectly good device (albeit tatty) that does not need consigning to the bin (recycle). But there is a rub. O2 quite rightly protected their commercial interests of massively subsidising the purchase of the device by "locking" it so that it would only work on their network. This ensured that the shiny device I wanted drove profit by making calls on their network. You could argue that the contract I signed ensured a minimum revenue and that they did not need to lock the device, and with a lower value contract they would have subsidised the phone less. Getting to the point. O2 have certainly more than recouped the cost of subsidising the device, but I am stuck with two legacies: a device that will only work on O2 and an old version of Windows Mobile that has not been patched for well over two years. My path of least resistance to a Windows Mobile 6.1 device is to throw this one away and sign up for a new contract. Wouldn't it be nice to legitimately have the phone ROM upgraded by easily downloading software from O2 and, at contract end, have the phone unlocked should I wish to use the device on another network? This might reduce the excessive demand for device turnover... I don't suppose this is significantly in anyone's interest though. Sparkly new devices and features shift hardware, phone contracts and calls. Mobile phones can be recycled is the easy answer. The device will ultimately fail and need recycling anyway right? Therefore extending the life of a device doesn't decrease the number of devices in circulation it just extracts more value from those raw materials and puts off the inevitable. Assuming that the MTBF (Mean Time Between Failure) of a device is longer than the MTTR (Mean Time To Renew) and that recycling is far from 100% efficient then it is reasonable that the current model does in fact over drive the demand on raw materials and manufacturing - which is not so green. For example if the MTBF of a phone is 5 years and the typical MTTR is 12 months then I only "need" 1 phone every 5 years. However, the current model might encourage me to consume 5 phones. If recycling is 10% efficient then every 5 years I am consuming .9 of a phone as opposed to 4.5 phones. Those numbers were plucked out of... thin air. As I said, I can't see it being in anyone's big interest to do this - even mine really; after all this phone is a bit tatty! However if the rate of phone hardware innovation were to slow gradually (which it is isn't it?) this would slow desire for the latest device, meaning people would be less likely to change their phones and contracts; which could in turn be more attractively priced due to less subsidising and would ultimately be a bit more green. Where does that leave the device manufacturers? Diversifying into software and services whilst trying even harder to innovate.
|
-
So whilst lots of people have been marvelling at how snappy Chrome is, some people have been looking at how to snap it: http://news.zdnet.co.uk/internet/0,1000000097,39485521,00.htm Buffer overflows and carpet-bomb vulnerabilities it would seem. It is good to see that the industry has become more and more responsible at establishing security as a first class development priority. Here at Conchango we try to make it everyone's concern to worry about Performance, Availability, Security and many other non-functional requirements. However we also try and create Champions of each area within each project: specialists who advocate, review and spread awareness to push the bar higher and higher.
|
-
I recently blogged about PowerShell + VMWare. I have also taken a look at the PowerShell management offering around Hyper-V. Hyper-V places WMI as the primary management interface. That makes perfect sense as the lowest common, standards based, denominator. This interface is then abstracted via PowerShell which frankly will be where most people will choose to work. I was however quite surprised to see that Microsoft have chosen to make this an open source project. Would it have been better to provide a supported solution and then supported a "PowerShell Hyper-V Lib" project on codeplex or a "PowerShell Hyper-V Community Extensions project"? For example: SQL Server 2008 PowerShell is part of the SQL Server 2008 installation - admittedly they don't ship many cmdlets. The Exchange Management Shell based on PowerShell is probably the best example of PowerShell support being shipped by Microsoft. I really think Microsoft should consider shipping thorough PowerShell support for all their server platforms to support the ITPros and MSBuild tasks to support the developers. Any more-than-trivial server deployment requires scripting, and any more-than-trivial software development requires a good build. Not shipping a rich PowerShell or MSBuild suite with their products seems to be failing to recognise how their customers are using their products which would seem extraordinary given that they manage a fairly impressive infrastructure of their own and they are the largest software development company in the world!
|
|
|
|