“Bootify your app - from zero to hero

1,581 views
1,376 views

Published on

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

Published in: Software
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,581
On SlideShare
0
From Embeds
0
Number of Embeds
367
Actions
Shares
0
Downloads
23
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

“Bootify your app - from zero to hero

  1. 1. “Bootify” Your App
  2. 2. ● 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
  3. 3. agenda ● what is this about? ● concepts behind ● tools ● demo ● summary ● q&a
  4. 4. Concepts behind
  5. 5. μServices Architecture
  6. 6. ● Small (10-100 LOC) Overview
  7. 7. ● Small (10-100 LOC) ● Lightweight (run several per box) Overview
  8. 8. ● Small (10-100 LOC) ● Lightweight (run several per box) ● Takes strength of platform/language (polyglot) Overview
  9. 9. ● Small (10-100 LOC) ● Lightweight (run several per box) ● Takes strength of platform/language (polyglot) ● Independent (development/deployment) Overview
  10. 10. ● Small (10-100 LOC) ● Lightweight (run several per box) ● Takes strength of platform/language (polyglot) ● Independent (development/deployment) ● Stateless (everything persisted in DB) Overview
  11. 11. ● 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
  12. 12. Benefits
  13. 13. Toolset unchained ● Polyglot technology stack ● Polyglot persistence ● Frameworks ● Thin transport
  14. 14. Scalability ● Independent provisioning ● Fine tuning ● Elasticity
  15. 15. Independence ● Development ● Testing ● Deployment ● Reliability
  16. 16. Shortcomings
  17. 17. ● More responsibility from Devs to support Ops Shortcomings
  18. 18. ● More responsibility from Devs to support Ops ● Polyglot infrastructure (if any) Shortcomings
  19. 19. ● More responsibility from Devs to support Ops ● Polyglot infrastructure (if any) ● Costs Shortcomings
  20. 20. ● More responsibility from Devs to support Ops ● Polyglot infrastructure (if any) ● Costs ● Orchestration Shortcomings
  21. 21. Automation
  22. 22. Continuous I/D/D
  23. 23. Infrastructure Orchestration ● Environment as a code ● Provisioning automation ● Configuration automation
  24. 24. Immutable Infrastructure
  25. 25. ● Build ● Run ● Destroy Disposability
  26. 26. ● Container as deployment artifact ● Environment agnostic ● New version - new container ● All dependencies built in Containerisation
  27. 27. Tools
  28. 28. 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
  29. 29. 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
  30. 30. 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
  31. 31. Ansible http://www.ansible.com/ Ansible - is an IT automation tool. ● System provisioning ● Software deployment ● Orchestration ● Declarative ● Agentless ● Decentralized
  32. 32. 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
  33. 33. 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
  34. 34. Demo
  35. 35. Summary
  36. 36. Summary ● Speed wins in the marketplace
  37. 37. Summary ● Speed wins in the marketplace ● Automation is a big deal
  38. 38. Summary ● Speed wins in the marketplace ● Automation is a big deal ● Frameworks matter for rapid delivery
  39. 39. Summary ● Speed wins in the marketplace ● Automation is a big deal ● Frameworks matter for rapid delivery ● Polyglot mindset
  40. 40. 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
  41. 41. q&a
  42. 42. Izzet Mustafayev@EPAM Systems @webdizz webdizz izzetmustafaiev http://webdizz.name

×