“bootify your app - from zero to hero

43
“Bootify” Your App

Upload: izzet-mustafaiev

Post on 05-Dec-2014

673 views

Category:

Software


5 download

DESCRIPTION

Nowadays in the fast changing world we need to keep less and less time spent on routine activity and to spend more on creativity and bringing something new to move forward. This slides brings some trending ideas and approaches to deliver software in modern fashion, from Micro-services architecture, Containerisation, Automation, Continuous Integration/Deployment/Delivery. There is a demo application built with depicted approach https://github.com/webdizz/bootiful-apps

TRANSCRIPT

Page 1: “Bootify  your app - from zero to hero

“Bootify” Your

App

Page 2: “Bootify  your 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  your app - from zero to hero

agenda● what is this about?

● concepts behind

● tools

● demo

● summary

● q&a

Page 4: “Bootify  your app - from zero to hero
Page 5: “Bootify  your app - from zero to hero

Concepts behind

Page 6: “Bootify  your app - from zero to hero

μServices Architecture

Page 7: “Bootify  your app - from zero to hero

● Small (10-100 LOC)

Overview

Page 8: “Bootify  your app - from zero to hero

● Small (10-100 LOC)

● Lightweight (run several per box)

Overview

Page 9: “Bootify  your app - from zero to hero

● Small (10-100 LOC)

● Lightweight (run several per box)

● Takes strength of platform/language (polyglot)

Overview

Page 10: “Bootify  your 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  your 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  your 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  your app - from zero to hero

Benefits

Page 14: “Bootify  your app - from zero to hero

Toolset unchained

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

Page 15: “Bootify  your app - from zero to hero

Scalability

● Independent provisioning ● Fine tuning ● Elasticity

Page 16: “Bootify  your app - from zero to hero

Independence

● Development● Testing● Deployment● Reliability

Page 17: “Bootify  your app - from zero to hero

Shortcomings

Page 18: “Bootify  your app - from zero to hero

● More responsibility from Devs to support Ops

Shortcomings

Page 19: “Bootify  your app - from zero to hero

● More responsibility from Devs to support Ops

● Polyglot infrastructure (if any)

Shortcomings

Page 20: “Bootify  your app - from zero to hero

● More responsibility from Devs to support Ops

● Polyglot infrastructure (if any)

● Costs

Shortcomings

Page 21: “Bootify  your app - from zero to hero

● More responsibility from Devs to support Ops

● Polyglot infrastructure (if any)

● Costs

● Orchestration

Shortcomings

Page 22: “Bootify  your app - from zero to hero

Automation

Page 23: “Bootify  your app - from zero to hero

Continuous I/D/D

Page 24: “Bootify  your app - from zero to hero

Infrastructure Orchestration

● Environment as a code● Provisioning automation● Configuration automation

Page 25: “Bootify  your app - from zero to hero

Immutable Infrastructure

Page 26: “Bootify  your app - from zero to hero

● Build● Run ● Destroy

Disposability

Page 27: “Bootify  your app - from zero to hero

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

Containerisation

Page 28: “Bootify  your app - from zero to hero

Tools

Page 29: “Bootify  your 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  your 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  your 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  your 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  your 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  your 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  your app - from zero to hero

Demo

Page 36: “Bootify  your app - from zero to hero

Summary

Page 37: “Bootify  your app - from zero to hero

Summary● Speed wins in the marketplace

Page 38: “Bootify  your app - from zero to hero

Summary● Speed wins in the marketplace

● Automation is a big deal

Page 39: “Bootify  your app - from zero to hero

Summary● Speed wins in the marketplace

● Automation is a big deal

● Frameworks matter for rapid

delivery

Page 40: “Bootify  your 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  your app - from zero to hero

q&a

Page 43: “Bootify  your app - from zero to hero

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