Spencer Gibb
twitter: @spencerbgibb
email: sgibb@pivotal.io
Dave Syer
twitter: @david_syer
email: dsyer@pivotal.io
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
I like 'cloud native' better than microservice. I think its more descriptive and doesn't have the awkwardness of having 'micro" in the name.
It needs to be super easy to implement and update a service:
@RestController
class ThisWillActuallyRun {
@RequestMapping("/")
String home() {
Hello World!
}
}
It's excellent to be able to implement a microservice really easily (Spring Boot), but building a system that way surfaces "non-functional" requirements that you otherwise didn't have.
There are laws of physics that make some problems unsolvable (consistency, latency), but brittleness and manageability can be addressed with generic, boiler plate patterns.
Coordination of distributed systems
leads to boiler plate patterns
Archaius
Curator
http://techblog.netflix.com/2013/01/announcing-ribbon-tying-netflix-mid.html
/metrics
/hystrix.stream
@EnableHystrixDashboard
Observable
from Spring MVCpublic static void hello(String... names) {
Observable.from(names).subscribe(s -> {
System.out.println("Hello " + s + "!");
});
}
Sample functions:
http://techblog.netflix.com/2013/06/announcing-zuul-edge-service-in-cloud.html
Enable Single Sign On (SSO) with an OAuth2 provider declared in external properties.
@EnableOAuth2Sso
Enable security using OAuth2 access tokens
@EnableOAuth2Resource
/bus/env
and /bus/refresh
actuator endpointshttp://techblog.netflix.com/2014/11/prana-sidecar-for-your-netflix-paas.html
Previews, experiments or ideas (ie: no guarantees!)
[source,http]
----
HTTP/1.1 200 OK
Content-Type: application/hal+json
{
"_links" : {
"users" : {
"href" : "http://localhost:11070/users{?page,size,sort}",
"templated" : true
},
"profile" : {
"href" : "http://localhost:11070/alps"
}
}
}
----
@EnableRedisHttpSession
Deploying services needs to be simple and reproducible
$ cf push app.groovy
and you don't get much more convenient than that.
(Same argument for other PaaS solutions)
From: kt4@prism.gatech.EDU (Ken Thompson)
Subject: Re: LINUX is obsolete
Date: 3 Feb 92 23:07:54 GMT
Organization: Georgia Institute of Technology
I would generally agree that microkernels are probably the wave
of the future. However, it is in my opinion easier to implement
a monolithic kernel. It is also easier for it to turn into a
mess in a hurry as it is modified.
Regards, Ken