“bootify your app - from zero to hero
Post on 05-Dec-2014
673 Views
Preview:
DESCRIPTION
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
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 izzetmustafaievhttp://webdizz.name
top related