Spring Boot & Weather API

Monolithic

Big

All in one

If fail, all fails ...

costly 

deployment !!!

Sofware/Application - Single unit

not cloud ready

Technology Growth ...

Microservices

small

componentization via  service 

easily scalable

cost-effective

What is microservices ?

In computing, microservices is a software architecture style, in which complex applications are composed of small, independent processes communicating with each other using language-agnostic APIs.[1] These services are small, highly decoupled and focus on doing a small task

Product vs Project 

tend to serve one business capablility at a time

Decentralized : CI pipeline, Automated build, testing and development 

Microservices Frameworks

( JAVA )

  • Spring Boot
  • Dropwizard
  • Play Framework

Spring-Boot

Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run". We take an opinionated view of the Spring platform and third-party libraries so you can get started with minimum fuss. Most Spring Boot applications need very little Spring configuration.

Spring-Boot

Based on Popular Spring Framework

Large community support

Good Documentation

Experience in Spring based Java project

Short development time

Simple 

choice of container Embadded Tomcat, Jetty, Undertow

Configuration support: YAML, property files, env. variables, command-line arguments.

And many more ...

      <groupId>com.meteogroup</groupId>
      <artifactId>weatherapi</artifactId>
      <version>1.0-SNAPSHOT</version>
      <packaging>jar</packaging>
      <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.2.5.RELEASE</version>
      </parent>
      <dependencies>
        <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
      </dependencies>
@Controller
@EnableAutoConfiguration
public class SampleController {

    @RequestMapping("/")
    @ResponseBody
    String home() {
        return "Hello World!";
    }

    public static void main(String[] args) throws Exception {
        SpringApplication.run(SampleController.class, args);
    }
}

{ code }

Weather-API

Open Challenges 

  • Scalability
  • Load-Balancing
  • Docker
  • Monitoring
  • Debugging 

Discussions !!!

Made with Slides.com