Don't have one - shared responsibility.
Self organising team
But we make decisions a lot faster.
We do have some Enterprise Architect Jokes instead
Sources: PWC research
Traditional layered architecture:
MicroServices based architecture:
Reference: Heroku for Java
One massive app server with all the same issues
Need pub/sub or queuing: try light weight broker-less messaging such as ZeroMQ.
{
"streetNumber": "80",
"streetName": "Clarence",
"suburb": "Sydney"
}
Text
<?xml version="1.0" encoding="UTF-8" ?>
<Property>
<streetNumber>80</streetNumber>
<streetName>Clarence</streetName>
<suburb>Sydney</suburb>
</Property
PUT /hostname/properties/
<service name="Properties">
<documentation>WSDL File for PropertyService</documentation>
<port binding="tns:Properties" name="Properties_Port">
<soap:address location="http://hostname/propeties/" />
</port>
</service>
1. GitHub triggers artefact Snap-CI pipeline
2. Upload tested artefact to Bintray
3. Push to Quay.io to build Docker
4. Run Container on Tutum PaaS
5. Monitor Services using NewRelic
Don't always believe the hype!
repositories {
jcenter()
maven { url "http://dl.bintray.com/trunkplatform/osworkflow" }
}
}
dependencies {
compile group: 'com.trunkplatform.opensymphony', name: 'osworkflow', version: '3.1.4'
}
<repositories>
<repository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>bintray-trunkplatform</id>
<name>bintray</name>
<url>http://dl.bintray.com/trunkplatform/osworkflow</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.trunkplatform.opensymphony</groupId>
<artifactId>osworkflow</artifactId>
<version>3.1.4</version>
<scope>compile</scope>
</dependency>
</dependencies>
gulp.task('package', function() {
return gulp.src([ 'app/**/*', 'gulp_tasks/*', 'newrelic.js', 'package.json' ], {"base": '.'})
.pipe(tar('platmasphere-client.tar'))
.pipe(gzip())
.pipe(gulp.dest('.'));
});
var express = require('express')
var app = express()
app.get('/', function (req, res) {
res.send('Hello World!')
})
var server = app.listen(9000, function () {
var host = server.address().address
var port = server.address().port
console.log('Example app listening at http://%s:%s', host, port)
})
bash$ harp server .
------------
Harp v0.14.0 – Chloi Inc. 2012–2014
Your server is listening at
http://localhost:9000/
Press Ctl+C to stop the server
------------