Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Monolithic installs VS single responsibilities ...

Fedir RYKHTIK
April 17, 2015
71

Monolithic installs VS single responsibilities networks

My talk presented at Drupal Developer Days 2015 (17 April 2015 ) #microservices #drupal

Fedir RYKHTIK

April 17, 2015
Tweet

More Decks by Fedir RYKHTIK

Transcript

  1. About speaker Fedir RYKHTIK CTO @AgenceStratis (Toulon, France) Drupal developer

    since 2008 DrupalMeetup organizer White elephants handler @FedirFr
  2. Big heavy sites • Some times not stable • Lots

    of hooks • Lot’s of operations • Lot’s of usage scenarios • Difficult to update • Difficult to migrate • Difficult to scale
  3. Drupal’s Site Usage Scenarios • Content administration ◦ Permissions ◦

    Workflow ▪ Validation ▪ Content programmation • Content automatic importing • Exporting content (REST/RSS) • Showing the content
  4. Microservice In computing, microservices is a software architecture style, in

    which complex applications are composed of small, independent processes communicating with each other using language-agnostic APIs. These services are small, highly decoupled and focus on doing a small task. http://en.wikipedia.org/wiki/Microservices
  5. “There are certain things you need to get sorted out

    before you can put your first microservices system into production: monitoring, provisioning, and a devops culture.” Martin Fowler http://martinfowler.com/bliki/MicroservicePrerequisites.html
  6. System Architecture description • Vagrant wrapper on local machines •

    Docker + Ansible in production • Ansible Tower for efficient control
  7. Efficient logging for the best visibility & collision detection •

    LogStash • Kibana • monolog • Drupal’s “Log HTTP” project
  8. • Content import • Content administration • Content rendering •

    Front end caching • User management Define service roles
  9. Transformation of an existing site into microservice network • Find

    a white elephant • Detect the services in use • Describe flows of connection • Create the network via DevOps tools • Create & test standalone services • Connect flows • Pack it up • Deploy
  10. Links • http://en.wikipedia.org/wiki/Microservices • http://en.m.wikipedia.org/wiki/Service-oriented_architecture • http://fr.slideshare.net/TylerTreat/from-mainframe-to-microservice-an-introduction-to- distributed-systems-41004778 • http://martinfowler.com/articles/microservice-testing/

    • http://martinfowler.com/bliki/MicroservicePrerequisites.html • http://martinfowler.com/articles/microservices.html • https://www.loggly.com/blog/logs-for-drupal-why-you-need-them-and-how-to-do-it/ • http://www.slideshare.net/slideshow/embed_code/key/464TyWARPmjno8 • https://wooster.checkmy.ws/2014/04/elk-elasticsearch-logstash-kibana/ • http://odolbeau.fr/blog/when-monolog-meet-elk.html • http://fr.slideshare.net/jamtur01/yes-logging-can-be-awesome • https://github.com/victorlin/ansible-docker-demo