Transcript
Page 1: Bootify Yyour App from Zero to Hero

“Bootify” Your

App

Page 2: Bootify Yyour App from Zero to Hero

● 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 izzetmustafaievhttp://webdizz.name

Page 3: Bootify Yyour App from Zero to Hero

agenda● what is this about?

● concepts behind

● tools

● demo

● summary

● q&a

Page 4: Bootify Yyour App from Zero to Hero
Page 5: Bootify Yyour App from Zero to Hero

Concepts behind

Page 6: Bootify Yyour App from Zero to Hero

μServices Architecture

Page 7: Bootify Yyour App from Zero to Hero

● Small (10-100 LOC)

Overview

Page 8: Bootify Yyour App from Zero to Hero

● Small (10-100 LOC)

● Lightweight (run several per box)

Overview

Page 9: Bootify Yyour App from Zero to Hero

● Small (10-100 LOC)

● Lightweight (run several per box)

● Takes strength of platform/language (polyglot)

Overview

Page 10: Bootify Yyour App from Zero to Hero

● Small (10-100 LOC)

● Lightweight (run several per box)

● Takes strength of platform/language (polyglot)

● Independent (development/deployment)

Overview

Page 11: Bootify Yyour App from Zero to Hero

● Small (10-100 LOC)

● Lightweight (run several per box)

● Takes strength of platform/language (polyglot)

● Independent (development/deployment)

● Stateless (everything persisted in DB)

Overview

Page 12: Bootify Yyour App from Zero to Hero

● 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)

Overview

Page 13: Bootify Yyour App from Zero to Hero

Benefits

Page 14: Bootify Yyour App from Zero to Hero

Toolset unchained

● Polyglot technology stack● Polyglot persistence● Frameworks● Thin transport

Page 15: Bootify Yyour App from Zero to Hero

Scalability

● Independent provisioning ● Fine tuning ● Elasticity

Page 16: Bootify Yyour App from Zero to Hero

Independence

● Development● Testing● Deployment● Reliability

Page 17: Bootify Yyour App from Zero to Hero

Shortcomings

Page 18: Bootify Yyour App from Zero to Hero

● More responsibility from Devs to support Ops

Shortcomings

Page 19: Bootify Yyour App from Zero to Hero

● More responsibility from Devs to support Ops

● Polyglot infrastructure (if any)

Shortcomings

Page 20: Bootify Yyour App from Zero to Hero

● More responsibility from Devs to support Ops

● Polyglot infrastructure (if any)

● Costs

Shortcomings

Page 21: Bootify Yyour App from Zero to Hero

● More responsibility from Devs to support Ops

● Polyglot infrastructure (if any)

● Costs

● Orchestration

Shortcomings

Page 22: Bootify Yyour App from Zero to Hero

Automation

Page 23: Bootify Yyour App from Zero to Hero

Continuous I/D/D

Page 24: Bootify Yyour App from Zero to Hero

Infrastructure Orchestration

● Environment as a code● Provisioning automation● Configuration automation

Page 25: Bootify Yyour App from Zero to Hero

Immutable Infrastructure

Page 26: Bootify Yyour App from Zero to Hero

● Build● Run ● Destroy

Disposability

Page 27: Bootify Yyour App from Zero to Hero

● Container as deployment artifact● Environment agnostic● New version - new container● All dependencies built in

Containerisation

Page 28: Bootify Yyour App from Zero to Hero

Tools

Page 29: Bootify Yyour App from Zero to Hero

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

Page 30: Bootify Yyour App from Zero to Hero

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

Page 31: Bootify Yyour App from Zero to Hero

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

Page 32: Bootify Yyour App from Zero to Hero

Ansible http://www.ansible.com/

Ansible - is an IT automation tool.

● System provisioning

● Software deployment

● Orchestration

● Declarative

● Agentless

● Decentralized

Page 33: Bootify Yyour App from Zero to Hero

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

Page 34: Bootify Yyour App from Zero to Hero

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

Page 35: Bootify Yyour App from Zero to Hero

Demo

Page 36: Bootify Yyour App from Zero to Hero

Summary

Page 37: Bootify Yyour App from Zero to Hero

Summary● Speed wins in the marketplace

Page 38: Bootify Yyour App from Zero to Hero

Summary● Speed wins in the marketplace

● Automation is a big deal

Page 39: Bootify Yyour App from Zero to Hero

Summary● Speed wins in the marketplace

● Automation is a big deal

● Frameworks matter for rapid

delivery

Page 40: Bootify Yyour App from Zero to Hero

Summary● Speed wins in the marketplace

● Automation is a big deal

● Frameworks matter for rapid

delivery

● Polyglot mindset

Page 42: Bootify Yyour App from Zero to Hero

q&a

Page 43: Bootify Yyour App from Zero to Hero

Izzet Mustafayev@EPAM Systems@webdizz webdizz izzetmustafaievhttp://webdizz.name


Top Related