background preloader

Architecture

Facebook Twitter

Robey's kestrel at master - GitHub. Escalando sistemas com soluções NoSQL. Um dos grandes desafios enfrentados no dia a dia do desenvolvedor eficaz é o de cumprir requisitos não-funcionais de uma aplicação, principalmente os relacionados a performance e escalabilidade.

Escalando sistemas com soluções NoSQL

Uma das alternativas mais conhecidas para escalar horizontalmente é a de dividir as tarefas que não necessitam de retorno imediato ao cliente em processos batch. Para tanto, podemos usar diversas ferramentas, desde soluções caseiras até diversos frameworks, tanto em ruby como em java. Best practices for software development projects. © Copyright International Business Machines Corporation 2003.

Best practices for software development projects

All rights reserved. Introduction Most software projects fail. In fact, the Standish group reports that over 80% of projects are unsuccessful either because they are over budget, late, missing function, or a combination. Why writing software is not like engineering. Terence Parr [author of ANTLR parser generator etc...]

Why writing software is not like engineering

This article popped up on reddit and news.ycombinator.com. In Romanian While my talent lies in software, my graduate studies were in computer engineering (designing and building digital computers). One observation always struck me: computer engineering seemed more straightforward than computer science (building software). There are a set of engineering design rules to follow and engineering projects are much more likely to work out than software projects.

The Economist magazine (Nov 27, 2004 p. 71) cites the Standish Group's estimates that "...30% of all software projects are canceled, nearly half come in over budget, 60% are considered failures by the organizations that initiated them, and 9 out of 10 come in late. " The article goes on to point out that while few large infrastructure projects are completed on time and on budget, you usually get something in the end. Why is writing software not like engineering? Are You a Software Architect? Editors note: The author of this article, Simon Brown, will be presenting a tutorial at QCon London coming up this March on the same subject of this article, entitled Software Architecture for Developers.

Are You a Software Architect?

The line between software development and software architecture is a tricky one. Some people will tell you that it doesn't exist and that architecture is simply an extension of the design process undertaken by developers. Others will make out it's a massive gaping chasm that can only be crossed by lofty developers who believe you must always abstract your abstractions and not get bogged down by those pesky implementation details. TestBus.pdf (objeto application/pdf) Agilists and Architects: Allies not Adversaries Presentation.

Agile Architecture: Strategies for Scaling Agile Development. 1.

Agile Architecture: Strategies for Scaling Agile Development

Towards Agile Architecture Architecture provides the foundation from which systems are built and an architectural model defines the vision on which your architecture is based. Who Needs Architect - Martin Fowler. Joel on Software - Why I Hate Frameworks. Scalable Web Architectures: Common Pa... Scalable Web Architectures... In this article we follow a hypothetical programmer, Damian, on his quest to make his web application scalable.

Scalable Web Architectures...

Now fast forward to 2009. Damian's site has evolved to a web game for playing dungeons online, in your browser. Damian is still using LAMP. Data about types of games (including parameters such as monster strength), user data (including status information), and data about active games (including players, the monters's health) are still stored in Mysql. It's all fine until there are only a few games in session and only a couple hundred players, but as the site gets popular, Damian's server is starting to see high load numbers. Damian is experiencing scalability issues --- his current setup cannot handle tens of thousands of users. Tweaking Mysql parameterstweaking Apache parametersmoving to a dedicated serverbuying more RAMdenormalizing tablesoptimizing SQL queriesoptimizing indexes As even more users register, the load is becoming unbearable.

Presentation Summary “High Performanc... Recently, we were fortunate to host Jeff Rothschild, the Vice President of Technology at Facebook, for a visit for the CNS lecture series.

Presentation Summary “High Performanc...

Jeff’s talk, “High Performance at Massive Scale: Lessons Learned at Facebook” was highly detailed, providing real insights into the Facebook architecture. Jeff spoke to a packed house of faculty, staff, and students interested in the technology and research challenges associated with running and Internet service at scale. The talk is archived here as part of the CNS lecture series. MapReduce: A Flexible Data Processing... By Jeffrey Dean, Sanjay Ghemawat Communications of the ACM, Vol. 53 No. 1, Pages 72-77 10.1145/1629175.1629198 Comments (3) Mapreduce is a programming model for processing and generating large data sets.4 Users specify a map function that processes a key/value pair to generate a set of intermediate key/value pairs and a reduce function that merges all intermediate values associated with the same intermediate key.

We built a system around this programming model in 2003 to simplify construction of the inverted index for handling searches at Google.com. Since then, more than 10,000 distinct programs have been implemented using MapReduce at Google, including algorithms for large-scale graph processing, text processing, machine learning, and statistical machine translation. the Hadoop open source implementation of MapReduce has been used extensively outside of Google by a number of organizations.10,11 Back to Top Compared to Parallel Databases.