“Bootify” Your 
App
● SA at EPAM Systems 
● primary skill is Java 
● hands-on-coding with Groovy, Ruby 
● trying to learn some Scala and Erlang 
● passionate about agile, clean code and devops 
Izzet Mustafayev@EPAM Systems 
@webdizz webdizz izzetmustafaiev 
http://webdizz.name
agenda 
● what is this about? 
● concepts behind 
● tools 
● demo 
● summary 
● q&a
Concepts behind
μServices Architecture
Overview 
● Small (10-100 LOC)
Overview 
● Small (10-100 LOC) 
● Lightweight (run several per box)
Overview 
● Small (10-100 LOC) 
● Lightweight (run several per box) 
● Takes strength of platform/language (polyglot)
Overview 
● Small (10-100 LOC) 
● Lightweight (run several per box) 
● Takes strength of platform/language (polyglot) 
● Independent (development/deployment)
Overview 
● Small (10-100 LOC) 
● Lightweight (run several per box) 
● Takes strength of platform/language (polyglot) 
● Independent (development/deployment) 
● Stateless (everything persisted in DB)
Overview 
● Small (10-100 LOC) 
● Lightweight (run several per box) 
● Takes strength of platform/language (polyglot) 
● Independent (development/deployment) 
● Stateless (everything persisted in DB) 
● Monitored (health and business value)
Benefits
Toolset unchained 
● Polyglot technology stack 
● Polyglot persistence 
● Frameworks 
● Thin transport
Scalability 
● Independent provisioning 
● Fine tuning 
● Elasticity
Independence 
● Development 
● Testing 
● Deployment 
● Reliability
Shortcomings
Shortcomings 
● More responsibility from Devs to support Ops
Shortcomings 
● More responsibility from Devs to support Ops 
● Polyglot infrastructure (if any)
Shortcomings 
● More responsibility from Devs to support Ops 
● Polyglot infrastructure (if any) 
● Costs
Shortcomings 
● More responsibility from Devs to support Ops 
● Polyglot infrastructure (if any) 
● Costs 
● Orchestration
Automation
Continuous I/D/D
Infrastructure Orchestration 
● Environment as a code 
● Provisioning automation 
● Configuration automation
Immutable Infrastructure
Disposability 
● Build 
● Run 
● Destroy
Containerisation 
● Container as deployment artifact 
● Environment agnostic 
● New version - new container 
● All dependencies built in
Tools
Gradle http://www.gradle.org/ 
Gradle - is build automation 
evolved. 
● Combines the power and flexibility of Ant 
with the dependency management and 
conventions of Maven 
● Declarative way to describe build pipeline 
● Powered by a Groovy DSL 
● Free and open source
Spring Boot http://projects.spring.io/spring-boot/ 
Takes an opinionated view of 
building production-ready Spring 
applications. 
● favors convention over configuration 
● based on Spring 
● designed to get you up and running ASAP 
● production-ready features such as metrics, 
health checks and externalized 
configuration
Thymeleaf http://www.thymeleaf.org/ 
Thymeleaf - is an XML / XHTML / 
HTML5 template engine 
● Works both in web and non-web 
environments 
● Modular by dialects. 
● Provides integration with Spring modules 
● Easy-to-use, elegant syntax based on 
attributes only
Ansible http://www.ansible.com/ 
Ansible - is an IT automation tool. 
● System provisioning 
● Software deployment 
● Orchestration 
● Declarative 
● Agentless 
● Decentralized
Docker https://www.docker.com/ 
Docker - An open platform for 
distributed applications for 
developers and sysadmins. 
● Develop an app with any language and any 
toolchain 
● Ship the “Dockerized” app and 
dependencies anywhere 
● Scale, move between data centers, update 
with zero downtime and more
Redis http://redis.io/ 
Redis - is an advanced key-value 
cache and store 
● open source - BSD licensed 
● referred to as a data structure server (key-value 
store) 
● super fast read/writes 
● provides messaging (queue/pubsub) 
● has tons of clients
Demo
Summary
Summary 
● Speed wins in the marketplace
Summary 
● Speed wins in the marketplace 
● Automation is a big deal
Summary 
● Speed wins in the marketplace 
● Automation is a big deal 
● Frameworks matter for rapid 
delivery
Summary 
● Speed wins in the marketplace 
● Automation is a big deal 
● Frameworks matter for rapid 
delivery 
● Polyglot mindset
References 
● http://martinfowler.com/articles/microservices.html 
● http://martinfowler.com/bliki/ImmutableServer.html 
● http://goo.gl/8lKIYK 
● http://projects.spring.io/spring-boot/ 
● https://www.docker.io/ 
● http://www.ansible.com/ 
● http://www.gradle.org/ 
● http://redis.io/ 
● https://github.com/webdizz/bootiful-apps
q&a
Izzet Mustafayev@EPAM Systems 
@webdizz webdizz izzetmustafaiev 
http://webdizz.name

Bootify Yyour App from Zero to Hero

  • 1.
  • 2.
    ● SA atEPAM Systems ● primary skill is Java ● hands-on-coding with Groovy, Ruby ● trying to learn some Scala and Erlang ● passionate about agile, clean code and devops Izzet Mustafayev@EPAM Systems @webdizz webdizz izzetmustafaiev http://webdizz.name
  • 3.
    agenda ● whatis this about? ● concepts behind ● tools ● demo ● summary ● q&a
  • 5.
  • 6.
  • 7.
    Overview ● Small(10-100 LOC)
  • 8.
    Overview ● Small(10-100 LOC) ● Lightweight (run several per box)
  • 9.
    Overview ● Small(10-100 LOC) ● Lightweight (run several per box) ● Takes strength of platform/language (polyglot)
  • 10.
    Overview ● Small(10-100 LOC) ● Lightweight (run several per box) ● Takes strength of platform/language (polyglot) ● Independent (development/deployment)
  • 11.
    Overview ● Small(10-100 LOC) ● Lightweight (run several per box) ● Takes strength of platform/language (polyglot) ● Independent (development/deployment) ● Stateless (everything persisted in DB)
  • 12.
    Overview ● Small(10-100 LOC) ● Lightweight (run several per box) ● Takes strength of platform/language (polyglot) ● Independent (development/deployment) ● Stateless (everything persisted in DB) ● Monitored (health and business value)
  • 13.
  • 14.
    Toolset unchained ●Polyglot technology stack ● Polyglot persistence ● Frameworks ● Thin transport
  • 15.
    Scalability ● Independentprovisioning ● Fine tuning ● Elasticity
  • 16.
    Independence ● Development ● Testing ● Deployment ● Reliability
  • 17.
  • 18.
    Shortcomings ● Moreresponsibility from Devs to support Ops
  • 19.
    Shortcomings ● Moreresponsibility from Devs to support Ops ● Polyglot infrastructure (if any)
  • 20.
    Shortcomings ● Moreresponsibility from Devs to support Ops ● Polyglot infrastructure (if any) ● Costs
  • 21.
    Shortcomings ● Moreresponsibility from Devs to support Ops ● Polyglot infrastructure (if any) ● Costs ● Orchestration
  • 22.
  • 23.
  • 24.
    Infrastructure Orchestration ●Environment as a code ● Provisioning automation ● Configuration automation
  • 25.
  • 26.
    Disposability ● Build ● Run ● Destroy
  • 27.
    Containerisation ● Containeras deployment artifact ● Environment agnostic ● New version - new container ● All dependencies built in
  • 28.
  • 29.
    Gradle http://www.gradle.org/ Gradle- is build automation evolved. ● Combines the power and flexibility of Ant with the dependency management and conventions of Maven ● Declarative way to describe build pipeline ● Powered by a Groovy DSL ● Free and open source
  • 30.
    Spring Boot http://projects.spring.io/spring-boot/ Takes an opinionated view of building production-ready Spring applications. ● favors convention over configuration ● based on Spring ● designed to get you up and running ASAP ● production-ready features such as metrics, health checks and externalized configuration
  • 31.
    Thymeleaf http://www.thymeleaf.org/ Thymeleaf- is an XML / XHTML / HTML5 template engine ● Works both in web and non-web environments ● Modular by dialects. ● Provides integration with Spring modules ● Easy-to-use, elegant syntax based on attributes only
  • 32.
    Ansible http://www.ansible.com/ Ansible- is an IT automation tool. ● System provisioning ● Software deployment ● Orchestration ● Declarative ● Agentless ● Decentralized
  • 33.
    Docker https://www.docker.com/ Docker- An open platform for distributed applications for developers and sysadmins. ● Develop an app with any language and any toolchain ● Ship the “Dockerized” app and dependencies anywhere ● Scale, move between data centers, update with zero downtime and more
  • 34.
    Redis http://redis.io/ Redis- is an advanced key-value cache and store ● open source - BSD licensed ● referred to as a data structure server (key-value store) ● super fast read/writes ● provides messaging (queue/pubsub) ● has tons of clients
  • 35.
  • 36.
  • 37.
    Summary ● Speedwins in the marketplace
  • 38.
    Summary ● Speedwins in the marketplace ● Automation is a big deal
  • 39.
    Summary ● Speedwins in the marketplace ● Automation is a big deal ● Frameworks matter for rapid delivery
  • 40.
    Summary ● Speedwins in the marketplace ● Automation is a big deal ● Frameworks matter for rapid delivery ● Polyglot mindset
  • 41.
    References ● http://martinfowler.com/articles/microservices.html ● http://martinfowler.com/bliki/ImmutableServer.html ● http://goo.gl/8lKIYK ● http://projects.spring.io/spring-boot/ ● https://www.docker.io/ ● http://www.ansible.com/ ● http://www.gradle.org/ ● http://redis.io/ ● https://github.com/webdizz/bootiful-apps
  • 42.
  • 43.
    Izzet Mustafayev@EPAM Systems @webdizz webdizz izzetmustafaiev http://webdizz.name