“bootify your app - from zero to hero

Post on 05-Dec-2014

673 Views

Category:

Software

5 Downloads

Preview:

Click to see full reader

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

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

agenda● what is this about?

● concepts behind

● tools

● demo

● summary

● q&a

Concepts behind

μServices Architecture

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

Overview

Benefits

Toolset unchained

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

Scalability

● Independent provisioning ● Fine tuning ● Elasticity

Independence

● Development● Testing● Deployment● Reliability

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

Shortcomings

Automation

Continuous I/D/D

Infrastructure Orchestration

● Environment as a code● Provisioning automation● Configuration automation

Immutable Infrastructure

● Build● Run ● Destroy

Disposability

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

Containerisation

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

q&a

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

top related