15 ms·
Cloud Design Patterns
- talles 11y agoWhat CQRS, an index table or simply "retry" (is this even a "pattern"?) has to do with "the cloud"? Don't get me wrong, I think is a lovely page (bookmarked), but I fail to see how those techniques are necessarily tied to the cloud. One thing is to put our services in the cloud, another is to put our concepts in it.
- hudo 11y agoSimilar like they called new Core .net before, "cloud optimized" framework! It doesn't have absolutely nothing to do with cloud, but marketing department needs to push "cloud everything" because Satya said so. Useful and nice list though...
- entitycontext 11y agoActually, I don't see it as pure marketing fluff to call the new ASP and .NET Core "cloud optimized". Breaking the framework into smaller pay-for-play components to reduce deployment footprint and allowing for xcopy deployment of self-contained binaries without a globally installed .NET runtime really does help enable new scenarios for cloud containers and microservices.
- talles 11y agoAm I reading your comment wrongfully or are you saying that making things modular is great because, well, "the cloud"?
- BrandonLive 11y agoThat's not how I read it. Rather, it makes sense for a cloud-focused company/development team to focus on efforts aligned with that cloud-focused strategy. The work in .NET Core and ASP .NET Core clearly fits this description.
- talles 11y agoHaving things modular have a myriad of benefits, fitting the cloud being just one of them. Making things modular is good design in my book way before the term "cloud" even existed.
- oblio 11y agoModular things also have drawbacks. They need to be versioned, deployment is a lot more complicated, etc. I feel that in the case of .NET Core claiming that the changes were cloud-focused is valid. After all, .NET was already in place and Microsoft didn't really need to make it that modular. It did do it and it spent a lot of resources doing it, in order to follow its cloud strategy.
- entitycontext 11y agoNo, that's a fair interpretation of my comment - after all, the meaning of "cloud optimized" is kind of vague. However, if you compare the new version and previous version and the new version ticks more positive boxes for cloud usage scenarios, then it's not unreasonable to call the new version "cloud optimized". Beyond the modularization efforts, one could look at the Linux port and dramatic performance improvements in the same light.
- perfectphase 11y agoThe Asp.Net core are on record several times saying the primary goal was to be able to cram more websites per host for Azure Websites to reduce costs and to remove the issues of servicing a machine wide framework. Sounds like 'cloud optimized' was a good fit in the early days! :)
- gregmac 11y agoI think he's right in terms of deployment scenarios. In contrast, the "old style" was to setup a physical server manually: install the OS, install all the dependencies for your application, configure everything manually. If you need to scale out or replace a broken server, you repeat these steps. There are of course various levels of automation that can be done with this, but dealing with physical severs meant at least some manual effort was always required. In this case, I read "cloud optimized" as you can easily deploy to the typical "cloud" server instance or container (which is basically an installed OS with enough config to get it on the network). Your application doesn't have any dependencies: for example, .NET Core (framework) is bundled.
- Avalaxy 11y agoNot necessarily cloud, but a lot of these patterns have to do with asynchronous distributed systems design (for example leader election, all the queueing patterns, sharding, circuit-breaker). CQRS is part of that (eventual consistency, scalability, etc.). Distributed systems are not necessarily tied to the cloud, but it's a very good fit because of the flexibility the cloud offers.
- talles 11y agoThere's a lot of people out there doing distributed systems that are hosted "indoors" (Or should I say "on earth"? What's the opposite of "cloud"?). A lot. Don't you agree that putting "cloud" on the title may be misleading?
- arethuza 11y ago'What's the opposite of "cloud"' "on-premise"
- mynameisvlad 11y agoNot really. Them being cloud design patterns says nothing about being able to to be used outside the cloud, just that the people who made them designed them for the cloud.
- talles 11y ago> designed them for the cloud I guess I have a different understanding of designing for than you them.
- ninjakeyboard 11y agoWhat's going on over at microsoft? They've had a flurry of OSS announcements, a linux-for-switches fork, are posting relevant tech articles etc. This isn't the same microsoft I know. Is there some sort of change in the direction of leadership? I haven't seen any articles about changes in strategy in these directions but am seeing a lot of activity.
- pm90 11y agoThey are heavily focused on the cloud. They recognized (correctly) that their time of living off revenues of Windows and Office were limited and thus they need to do other things as well. But yes, I am rather surprised at how well they are handling the change :).
- 72deluxe 11y agoI have the "cloud to my butt" plugin installed. It changes all occurrences of "the cloud" to "my butt". So you opening sentence made me laugh, thanks! The announcement of SQL Server for Linux is very interesting; the other year when they released an ODBC driver for Linux I thought it was a significant change but it would be interesting to know how many people actually used it. Oddly the focus on The Cloud seems to be also matched by the focus on telemetry gathering etc. I will wait to see how it pans out.
- outside1234 11y agoSatya is what happened. Microsoft finally has a CEO that gets it.
- hockeybias 11y agoThat does indeed seem to be the case.
- moron4hire 11y agoMost of these changes would have had to have gotten started under Balmer. Nadella has only been at the helm for two years. If anything, Nadella has been doubling down on a plan Balmer put into motion.
- an4rchy 11y agoInteresting read. Although, I wasn't a fan of the banner asking for feedback at the bottom. I immediately clicked no without reading what it was (It was something to the extent of 'Is this page helpful?') Although, after dismissing it I wanted to say Yes but after submit I can't change my opinion.
- Avalaxy 11y agoSame here, I did the same. Also: for me all MSDN pages became reeeeaaaally slow ever since I installed Ghostery. I just see a blank page for like 5 seconds before I can see the content. More people with this problem?
- liamca 11y ago[Full disclosure, I work at Microsoft] @an4rchy, I think if you open the page in private mode it will most likely ask you again. If that does not work, feel free to contact me and I can pass on your comments (my email is my HN alias + microsoft.com). @Avalaxy, it would be great when you click Yes or No, that you also try to add a comment about your issue or why you liked the page. I can not speak for every group, but most groups I know of review the voting and comments for all of their pages really carefully. For example, my team has a weekly discussion on this and what we plan to do to improve the pages. If a page gets a negative vote along with a comment why it poor, it is much easier to improve the page, however, if it simply has a negative vote we have to make guesses as to why it was poor.
- Avalaxy 11y agoI get that, but the point is that I accidentally clicked No because instinctively I thought that was the way to dismiss the bar (in my mind it was something like: do you want to provide feedback yes/no, to which I clicked no). Only after clicking I realized my error.
- liamca 11y ago@Avalaxy, I completely agree with you and I have also taken this set of comments and passed it on to the MSDN team.
- bhvit 11y agoMicrosoft contributing to OSS is too much like a US Federal Tax return for my taste.
- paulddraper 11y agoYeah, don't bother collecting tax returns. (Actually, there's several hundred million in unclaimed returns from 2012 that are about to expire.)
- hire_charts 11y agoCache-Aside is an Antipattern. It forces you to define your caching logic at the application layer, and suddenly the app must care about--and actually implement--your caching strategy. This is very difficult to scale correctly and is a common source of stale data and race conditions. Better to treat caching as part of your overall database infrastructure. If caching "hot" data is really important for your app, make sure your data layer supports read-through and write-through caching. Or use the "CQRS" Pattern and read from a different source than your writes (allowing your writes to transparently apply whatever underlying caching strategy you need to support the reads). The MSDN article on CQRS actually has some good advice on combining it with Materialized Views and handling consistency issues. Worth reading if you're interested in solving your caching problems.
- novaleaf 11y agoi just finished implementing a similar pattern: atomic-cache (cache+eventually consistent modifications) and while it's debatable whether the pattern belongs in your "database" layer or "app" layer, you certainly do need this pattern somewhere. For me, my orm layer is in my app, and my database is just google datastore. I have ideas for eventually writing a db caching layer as you suggest but it's rather a lot more complexity beyond the "get it working and move on" principle.
- alooPotato 11y agoAre you using something like Objectify with the google datastore?
- novaleaf 11y agono, just the gcloud-node (npm) module and a home-rolled orm. objectify looks interesting! but I'm a nodejs user, not java.