Giter Site home page Giter Site logo

fedher / ecommerce Goto Github PK

View Code? Open in Web Editor NEW

This project forked from nmarsollier/ecommerce

0.0 1.0 0.0 508 KB

Arquitectura de Microservicios - 2018

License: GNU General Public License v3.0

TypeScript 39.87% HTML 6.67% CSS 0.16% Shell 0.18% JavaScript 0.07% Java 44.31% Python 8.74%

ecommerce's Introduction

Arquitectura de Microservicios

Este es un proyecto académico para explicar arquitectura de microservicios, implementando un carrito virtual o eCommerce.

Se utilizan varios patrones de arquitectura y cada microservicios posee tecnologías y bases de datos diferentes.

Cada directorio dentro de la raíz de este repositorio es un microservicio, cada microservicios posee documentación importante que debe ser leída con atención:

Existen otras versiones desarrolladas en otros lenguajes que definen los mismos microservicios con diversos paradigmas y patrones de desarrollo :

Cliente Demo

Existe un proyecto en Angular6, que nos proporciona un cliente demo para la plataforma, permitiéndonos probar como interactúan los diferentes microservicios.

Ver la documentación del cliente en :

Mas información de arquitectura

Arquitectura

Guía de Instalación General

Este proyecto utiliza varias tecnologías, las siguientes dependencias son necesarias antes de comenzar a compilar y ejecutar aplicaciones.

Es necesario seguir los tutoriales en cada uno de los microservicios.

Existen diversas versiones para cada microservicio, Node es una dependencia que no podemos evitar dado que tanto el cliente demo como Carrito solo poseen versiones en node.

Debemos elegir entorno Python o Java como complemento para poder levantar los microservicios de Catalogo y Orders, habiendo configurado estos dos entornos, se podrá ejecutar todo el proyecto.

Alternativamente tenemos versiones de Imágenes y Auth en Go. Los proyectos Go se caracterizan por ser mucho mas veloces y consumir menos recursos, por lo tanto se el alumno lo desea puede compilar ambos proyectos en Go y disfrutar de esas ventajas a la hora de desarrollar.

Entorno de Desarrollo

El proyecto se desarrollo con Visual Studio Code, Si bien podrían utilizarse alternativas como Atom, Sublime, Eclipse, la variedad de plugins en VSCode hacen que el desarrollo sea 'amigable' para la variedad de lenguajes que estamos manejando en el proyecto.

Los plugins configurados en el momento de desarrollo en VSCode son los siguientes :

  • Angular v6 Snippets by John Papa
  • Go by Microsoft
  • JavasScript (ES6) code snippets by charlampos karypidis
  • Language Support for Java(TM) by Red Hat
  • Python by Microsoft
  • Python for VSCode by Thomas Haakon Townsend
  • Python-autopep8 by himanoa
  • TSLint by egamma

Existe un Workspace configurado para VSCode en la raíz del proyecto :

Microservicios.code-workspace

Dependencias globales

MongoDB

Para simplificar la configuración, se han tomado decisiones similares de arquitectura, de modo que todos los microservicios pueden utilizar el mismo servidor de base de datos local, aunque cada microservicio utiliza esquemas de datos totalmente independientes.

Seguir las guías de instalación de mongo desde el sitio oficial mongodb.com

No se requiere ninguna configuración adicional, solo levantarlo luego de instalarlo.

Sugiero instalar Mongodb Compass para poder navegar la base de datos en forma visual mongodb.com

Redis

Redis es una segunda opción de almacenamiento de datos. El microservicio de imágenes hace uso de Redis.

Seguir los pasos de instalación desde la pagina oficial redis.io

No se requiere ninguna configuración adicional, solo levantarlo luego de instalarlo.

Para windows se puede descargar el paquete sin instalación : Instalación

Recomiendo instalar FastoRedis para navegar la base de datos fastoredis.com

RabbitMQ

La comunicación asíncrona entre microservicios se lleva a cabo a través de la mensajería de Rabbit.

Seguir los pasos de instalación en la pagina oficial

rabbitmq.com

No se requiere ninguna configuración adicional, solo levantarlo luego de instalarlo.

ecommerce's People

Contributors

darkaico avatar nmarsollier avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.