background preloader


Facebook Twitter

Push vs Pull. There are two major performance monitoring architectures: Push, metrics are periodically sent by each monitored system to a central collector.

Push vs Pull

Examples of push architectures include: sFlow, Ganglia, Graphite, collectd and StatsD.Pull, a central collector periodically requests metrics from each monitored system. Examples of pull architectures include: SNMP, JMX, WMI and libvirt. The remainder of this article will explore some of the strengths and weaknesses of push and pull architectures: The push model is particularly attractive for large scale cloud environments where services and hosts are constantly being added, removed, started and stopped. Maintaining lists of devices to poll for statistics in these environments is challenging and the discovery, scalability, security, low-latency and the simplicity of the push model make it a clear winner. In practice, a hybrid approach provides the best overall solution. Wsdemo/ at results-v1 · ericmoritz/wsdemo. Concurrent Programming for Scalable Web Architectures. AWS Architecture Center.

The AWS Architecture Center is designed to provide you with the necessary guidance and best practices to build highly scalable and reliable applications in the AWS Cloud.

AWS Architecture Center

These resources will help you understand the AWS platform, its services and features, and will provide architectural guidance for design and implementation of systems that run on the AWS infrastructure. Amazon Web Services provides a comprehensive set of services and tools for deploying Microsoft Windows-based workloads on its reliable and secure cloud infrastructure. The flexibility of AWS allows you to design your application architectures the way you like. AWS Reference Architecture Datasheets provide you with the architectural guidance you need in order to build an application that takes full advantage of the AWS cloud.

Each datasheet includes a visual representation of the architecture and basic description of how each service is used. The AWS Cloud platform includes a variety of cloud-based data storage options. Srinath's Blog :My views of the World: List of Known Scalable Architecture Templates - (Current Session: Current) For most Architects, "Scale" is the most illusive aspect of software architectures.

Srinath's Blog :My views of the World: List of Known Scalable Architecture Templates - (Current Session: Current)

Not surprisingly, it is also one of the most sort-out goals of todays software design. However, computer scientists do not yet know of a single architecture that can scale for all scenarios. Instead, we design scalable architectures case by case, composing known scalable patterns together and trusting our instincts. Simply put, building a scalable system has become more an art than a science. The System of Record Approach to Multi-Master Database Applications. Multi-master database systems that span sites are an increasingly common requirement in business applications.

The System of Record Approach to Multi-Master Database Applications

Yet the way such applications work in practice is not quite what you would think from accounts of NoSQL systems like . In this article I would like to introduce a versatile design pattern for multi-master SQL applications in which individual schemas are updated in a single location only but may have many copies elsewhere both locally as well as on other sites. This pattern is known as a architecture. You can build it with off-the-shelf MySQL and master/slave replication. Let's start by picking a representative software-as-a-service (SaaS) application: call center automation. The ideal solution for most SaaS vendors would be to have call center data and applications for all customers live on multiple sites at all times.

This solution has only one problem. Autoscaling Windows Azure applications coming this autumn. Technically there are lots of way to do this already (including AzureWatch which I blogged on back in June) but it was great to see this week details on what we are working on as part of the new Windows Azure Integration Pack for Enterprise Library (Also check out details of what else may appear in this pack).

Autoscaling Windows Azure applications coming this autumn

Grigori has shared details of the thinking and the scenarios being addressed in a upcoming Autoscaling Application Block. In brief, the block will pull implement rules that look at data to decide on appropriate actions. Simple :-) RulesConstraint – min/max, associated with whenReactive – based on a KPIActionsInstance Scaling: varies number of instancesThrottling: limit or disable expensive ops when thresholds are hitNotifying: alert rather than actCustom: hooks to add moreTriggers (data to react to)Windows Azure Diagnostics tables (e.g. Check out the full post. Scalability patterns and an interesting story...

Some SSL / TLS basics is available here.

Scalability patterns and an interesting story...

SSL provides authentication, confidentiality and integrity. Authentication of the server, and less commonly used the server can also request authentication of the client. The confidentiality and integrity relies on pretty good theoretical grounds in hard-core cryptography so not much else needs to be said there. Most reasonable ciphers are computationally infeasible to crack. The authentication is what really distinguishes a public key infrastructure such as SSL/TLS from conventional cryptography where security basically depends on two parties sharing a common secret. So the title of the blog post sounds like it's contrary to security best practice, right?

There are a few problems with this though. Rule 1 - Use private SSL certificates for enterprise server side applicationsThe certificate or the private CA will then have to be installed into the certificate trust store manually. Scalability Best Practices: Lessons from eBay. At eBay, one of the primary architectural forces we contend with every day is scalability.

Scalability Best Practices: Lessons from eBay

It colors and drives every architectural and design decision we make. With hundreds of millions of users worldwide, over two billion page views a day, and petabytes of data in our systems, this is not a choice - it is a necessity. In a scalable architecture, resource usage should increase linearly (or better) with load, where load may be measured in user traffic, data volume, etc. Where performance is about the resource usage associated with a single unit of work, scalability is about how resource usage changes as units of work grow in number or size. Said another way, scalability is the shape of the price-performance curve, as opposed to its value at one point in that curve.

There are many facets to scalability - transactional, operational, development effort. Best Practice #1: Partition by Function At the code level, we all do this all the time. Scalability. Scalability is the ability of a system, network, or process to handle a growing amount of work in a capable manner or its ability to be enlarged to accommodate that growth.[1] For example, it can refer to the capability of a system to increase its total output under an increased load when resources (typically hardware) are added.


An analogous meaning is implied when the word is used in an economic context, where scalability of a company implies that the underlying business model offers the potential for economic growth within the company. Scalability, as a property of systems, is generally difficult to define[2] and in any particular case it is necessary to define the specific requirements for scalability on those dimensions that are deemed important. It is a highly significant issue in electronics systems, databases, routers, and networking. A system whose performance improves after adding hardware, proportionally to the capacity added, is said to be a scalable system. Measures[edit] .