Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Microservices Without Servers

James Thomas
September 03, 2016

Microservices Without Servers

Servers are killing your productivity. Rather than building better software for your users, you end up constantly distracted by maintaining computers. Wasn't the "cloud" supposed to fix this? It sounded so promising until we realised it was just renting VMs in someone else's datacenter. We couldn't escape "servers". Until now... In this session, developers will learn how to build microservices without servers, using modern “serverless” cloud platforms. We’ll look at common challenges (and solutions) to building applications using “serverless” stacks. Exploring emerging “serverless” design patterns will give developers the knowledge to build application architectures using these new platforms. This session is aimed at software developers experienced in building traditional backend web applications, who want to learn how to build microservices without servers.

James Thomas

September 03, 2016
Tweet

More Decks by James Thomas

Other Decks in Technology

Transcript

  1. HARD DRIVE FAILS LINUX OS VULNERABILTY MIDDLEWARE VERSION UPDATE UPGRADE

    NETWORK INFRASTRUCTURE MORE MEMORY AND BIGGER CPU
  2. HARD DRIVE FAILS LINUX OS VULNERABILTY MIDDLEWARE VERSION UPDATE UPGRADE

    NETWORK INFRASTRUCTURE MORE MEMORY AND BIGGER CPU DB TABLE INDEX GETS CORRUPTED
  3. HARD DRIVE FAILS LINUX OS VULNERABILTY MIDDLEWARE VERSION UPDATE UPGRADE

    NETWORK INFRASTRUCTURE MORE MEMORY AND BIGGER CPU DB TABLE INDEX GETS CORRUPTED GET ANOTHER SERVER…
  4. “ONE HAPPY LAMBDA CUSTOMER SAVING 80% OFF THEIR CLOUD BILLS”

    Source: http://uk.businessinsider.com/amazon-web-services-lambda-explained-2015-11
  5. endpoint.pathname = path.resolve(endpoint.pathname, url_path) return url.format(endpoint) } namespace (options) {

    if (options && options.hasOwnProperty('namespace')) { return options.namespace } else if (this.options.hasOwnProperty('namespace')) { return this.options.namespace } throw new Error(messages.MISSING_NAMESPACE_ERROR) } qs (options, names) { return names.filter(name => options.hasOwnProperty(name)) .reduce((previous, name) => { previous[name] = options[name] return previous }, {}) my_service.js
  6. function main(params) { // put your code here! 
 


    return {…}; } Entry Point Event Parameters Service Result my_service.js
  7. import com.google.gson.JsonObject; public class Hello { public static JsonObject main(JsonObject

    args) { JsonObject response = new JsonObject(); return response; } } Entry Point Event Parameters Service Result my_service.java