Software Architecture for Big Data and the Cloud