Back End

Java

Java puede concebirse como el lenguaje todoterreno, ya que es el más utilizado en todo el mundo aunque C le está pisando los talones. Según el índice TIOBE hoy en día más del 15% de los desarrolladores a nivel mundial usan Java.

La gran difusión de Java ha causado que exista una gran cantidad de recursos que garantizan la independencia tecnológica de las aplicaciones desarrolladas con éste lenguaje.

Spring

Spring es un framework para la plataforma Java. Es el resultado de la evolución en la ingeniería del software para estandarizar el trabajo y resolver los problemas que aparecen en el mundo de la programación.

Permite desarrollar aplicaciones Java de forma rápida y eficaz, ya que ahorra líneas de código y se salta las tareas repetitivas.

Actualmente, es el framework Java más utilizado, llegando a convertirse en un estándar de facto del mundo Java.

Hibernate

Hibernate es una herramienta que facilita el mapeo objeto-relacional (ORM), encargándose de gestionar la relación entre la aplicación y la base de datos.

Automatiza las operaciones repetitivas de base de datos, lo que agiliza el desarrollo y centra el foco en las operaciones específicas del negocio.

PostgreSQL

PostgreSQL es la base de datos relacional open source más utilizada del mercado. Está considerada la base de datos más avanzada y completa del momento.

Este gestor de base de datos aporta una gran flexibilidad a los proyectos, ya que de forma muy sencilla permite un inicio de proyecto muy rápido sin mermar las capacidades de la base de datos, las cuales se van ajustando y afinando en la medida que los requisitos de la aplicación lo demandan.

PostGIS

PostGIS es la extensión espacial de PostgreSQL. Uno de los aspectos más relevantes es la capacidad de almacenar con datos geográficos y utilizar funciones de cálculo geoespacial para análisis, transformación y consulta de información en base a sus coordenadas.

Las aplicaciones que incluyen información geoespacial, técnicas de geolocalización y geoprocesamiento y distribución espacial de los datos sobre mapas, proporcionan una visualización más clara de los datos y sobre todo una gran capacidad de análisis y comunicación.

Oracle Spatial

Oracle es la base de datos líder del mercado.

Oracle Spatial incluye soporte nativo en Oracle para todo tipo de datos y modelos geoespaciales, incluso los datos de vectores y raster, y modelos para topología y redes, cubriendo así las necesidades de los sistemas geoespaciales avanzados, incluyendo el soporte de datos 3D.

C++

C++ es un lenguaje para programar que se diseñó en los años 80 por Bjarne Stroustrup. El objetivo era crear un lenguaje exitoso con mecanismos que permitieran la manipulación de objetos.

Es un lenguaje híbrido que proviene de la extensión del lenguaje C y que se convirtió en uno de los más demandados el pasado año. De hecho, en los últimos años C ha llegado a ser tan popular como Java.

Python

Este lenguaje de programación se caracteriza por su simpleza, legibilidad y similitud con el inglés. Esto le convierte en el sistema perfecto para cualquier principiante. La programación con Python es sencilla y permite ser productivo en la entrega en los tiempos que se requieren.

Este lenguaje, relativamente joven, toma características de sus predecesores e imprime el valor del entorno interactivo. El software es libre y está implementado en todas las plataformas.

NodeJS

Es un entorno de ejecución para JavaScript, por tanto es capaz de aprovechar este popular lenguaje para acometer una gran variedad de proyectos.

NodeJS tiene la característica de ejecutar muchas tareas con poco consumo de recursos, lo que lo hace especialmente interesante para el desarrollo de servicios de alta concurrencia.

Apache Ignite

Apache Ignite es un sistema de base de datos en memoria para acelerar aplicaciones. Es un sistema de base de datos distribuido en memoria con caché distribuido y tolerante a fallos. No es exactamente una base de datos SQL pero si que intenta comportarse como tal; tampoco es una base de datos NoSQL porque tiene alta disponibilidad y es escalable de forma horizontal. Apache Ignite permite construir aplicaciones en tiempo real que pueden procesar terabytes de datos a alta velocidad.

Front End

Angular

Angular es uno de los frameworks JavaScript más utilizados para desarrollar aplicaciones web, nace en el año 2010 y consigue consolidarse como una de las opciones más importantes para el desarrollo de aplicaciones web SPA (Single Page Application) la cual consiste en una aplicación web que cabe en una sola página.

Google es el impulsor de Angular y su objetivo es aumentar las aplicaciones SPA, en un esfuerzo de que el desarrollo y las pruebas sean más rápidas y fáciles.

Las aplicaciones SPA proporcionan una experiencia de usuario más fluida y amigable.

Bootstrap

Bootstrap es un framework CSS desarrollado por Twitter en el 2011 que permite dar forma a una web a través de las librerías CSS. Se incluyen botones, cuadros, menús y otros elementos que pueden ser usados en cualquier sitio web.

Es una excelente herramienta para crear interfaces de usuario adaptables a todo tipo de dispositivos y pantallas, sea cual sea su tamaño.

JavaScript

JavaScript es un lenguaje de programación que te permite realizar actividades complejas en una página web, como mostrar actualizaciones de contenido en tiempo real, interactuar con mapas, animaciones gráficas 2D/3D etc.

JavaScript no se debe confundir con Java, ya que son lenguajes distintos. Se utiliza para crear aplicaciones incrustadas en una página web o, en NodeJS, aplicaciones de alta concurrencia.

Se usa para crear páginas dinámicas provistas de efectos, animaciones y acciones que se activan para pulsar botones y ventanas.

HTML

HTML es un lenguaje de marcado que se emplea para estructurar y presentar el contenido de la página web, permite organizar la distribución de componentes en las páginas web y personalizar su aspecto. Es fundamental para el correcto funcionamiento de un sitio web

HTML es un estándar definido por el W3C, gracias a ser un estándar las aplicaciones funcionan perfectamente en todos los navegadores, los cuales sabrán cómo mostrar una página web y dónde poner los textos e imágenes.

CSS

CSS es un lenguaje de definición de estilos, creado para diseñar el aspecto o presentación de las páginas HTML. CSS permite separar los contenidos (HTML) de su aspecto (CSS) lo que da una mayor flexibilidad de desarrollo y facilita el mantenimiento de las aplicaciones.

CSS es un estándar definido por el W3C, lo que garantiza su correcto funcionamiento en todos los navegadores del mercado.

jQuery

Se trata de una librería de código abierto de JavaScript que simplifica la tarea de programar con JavaScript y permite agregar mayor interactividad a un sitio web.

Existe un gran número de plugins que han creado desarrolladores de todo el mundo y que resuelven diversas situaciones, como, por ejemplo, el menú, la galería de fotos o la maquetación del sitio.

OpenLayers

OpenLayers forma parte de los proyectos de Open Source Geospatial Foundation y se define como una biblioteca de JavaScript de código abierto y con licencia BSD que muestra mapas interactivos en las aplicaciones web.

Permite incluir en las aplicaciones, información geográfica de diferentes a fuentes como Google Maps, Bing, PostGIS, Oracle Spatial, OpenStreetMap, y un largo etcétera.

GeoJSON

Basado en JavaScript Object Notation (JSON), es un formato que permite codificar la información geográfica en estructuras de datos, lo que habilita el intercambio de datos geoespaciales entre diferentes aplicaciones .

Utiliza un sistema de referencia de coordenadas, unidades decimales y el WGS84 (un sistema geodésico que permite localizar cualquier punto del planeta).

Leaflet

Esta librería de JavaScript se utiliza para publicar mapas en la web. Es sencilla y ligera y se convierte en la herramienta ideal para proyectos que quieren iniciarse en el mundo webmapping. El que sea fácil no indica que tenga limitación en sus capacidades. De hecho, es equiparable a competidores como Openlayers.

Tecnologías móviles

Android

Google desarrolló el sistema operativo móvil Android basado en un software de código abierto. Se diseñó para dispositivos móviles que incorporasen pantalla táctil: teléfonos inteligentes, tabletas, automóviles, Android TV y Wear OS.

iOS

Se trata del sistema operativo utilizado por los dispositivos móviles de Apple (iPhone, iPod Touch y iPad). Diseñado para equipos táctiles, se caracteriza por poseer una interfaz dinámica y sencilla. El usuario podrá configurar a su gusto las apps más utilizadas.

Ionic

Tanto en el caso de Android, como iOS, las aplicaciones desarrolladas se comunican directamente con el sistema operativo, lo que hace que sean aplicaciones que sólo funcionan en el sistema operativo para el cual han sido desarrolladas.

Ionic es una plataforma open source para el desarrollo de aplicaciones móviles híbridas, que combinan HTML, CSS y JavaScript para crear aplicaciones que pueden funcionar tanto en Android como en iOS.

Ionic permite maximizar la inversión en el desarrollo de aplicaciones móviles, ya que permite desarrollar una única aplicación que se puede instalar en Android y en iOS, y evita la inversión en el desarrollo de 2 aplicaciones diferentes.

Cloud native

Docker

Es uno de los mecanismos más comunes para desplegar software en cualquier servidor (on-premise y cloud) por medio de contenedores software.

Los contenedores son como los containers que vemos siendo transportados en barco de un sitio a otro. No nos importa su contenido sino su forma modular para ser almacenados y transportados de un sitio a otro como cajas. Algo parecido ocurre con los contenedores software, ya que dentro de ellos podemos alojar todas las dependencias que nuestra aplicación necesite para ser ejecutada.

Docker permite a los desarrolladores crear, ejecutar y escalar rápidamente las aplicaciones desplegándolas y ejecutándolas en contenedores.

Kubernetes

Gracias a los contenedores y a los clusters de contenedores, se ha simplificado el desarrollo aplicaciones escalables y resilentes.

Sin embargo, las tareas de administración de los clusters de contenedores aumentan exponencialmente. Kubernetes (o también conocido como K8S) es un orquestador de contenedores que soluciona este problema. Gracias a los orquestadores de contenedores, se han simplificado las tareas de gestión del ciclo de vida de los contenedores de un sistema.

Kubernetes es Open Source y es un proyecto liderado por Google, que se ha convertido en el estándar de facto para el despliegue de aplicaciones basadas en contenedores.

Openshift

Openshift en una plataforma de RedHat para la gestión de contenedores basada en Docker y Kubernetes, siendo además una distribución certificada de Kubernetes.

OpenShift utiliza Kubernetes internamente, pero introduce muchas mejoras: más seguridad, autocompilación de imágenes, etc.

En definitiva, dota al DevOps de herramientas que facilitan la administración y monitorización de sistemas basados en clusters de contenedores.

Microservices

La arquitectura de microservices es una aproximación para el desarrollo de software que consiste en construir una aplicación como un conjunto de servicios pequeños que se ejecutan y se comunican por mecanismos muy ligeros. Cada servicio tiene la tarea de implementar una funcionalidad completa, y se puede programar en diferentes lenguajes y usar distintas tecnologías para almacenar los datos.

Amazon AWS

Amazon Web Services (AWS) es la plataforma cloud más completa en el mundo y que da servicio a millones de clientes, tanto empresas emergentes como compañías muy grandes. ¿Por qué utilizan AWS? Principalmente para reducir sus costos, aumentar la agilidad e innovar de forma más rápida. Esta plataforma cuenta con un gran número de servicios y ofrece desde inteligencia artificial hasta análisis en internet y aprendizaje automático.

Microsoft Azure

La solución tecnológica en la nube más abierta y flexible a nivel empresarial se llama Microsoft Azure. Esa una colección de servicios que permite virtualizar máquinas, realizar analítica, bases de datos y redes de almacenamiento entre otras opciones, a la vez que permite un considerable ahorro de la inversión. Microsoft Azure está en constante expansión de servicios en la nube para ayudar a satisfacer las necesidades del mercado. Confiere la libertad de crear y también implementar aplicaciones en una red mundial enorme con herramientas y marcos favoritos.

Google Cloud

Con Google Cloud es posible desarrollar un excelente software gracias a la infraestructura base, el análisis de datos y el sistema de aprendizaje automático que ofrece Google. Es una posibilidad de disponer de un software libre con un excelente rendimiento y con las funciones que necesita cualquier empresa.

Machine learning

BigML DATA

Las tecnologías de predicción basadas en datos se han simplificado tanto que están ya a disposición de cualquier empresa. BigML es una herramienta que aproxima el Machine Learning a las empresas para conseguir datos disponibles para mejorar las predicciones.

Ingeniería de datos

Apache Kafka

Apache Kafka es una herramienta muy útil para transmitir datos. Permite publicarlos, almacenarlos y procesar los registros. Esta plataforma también permite suscribirse a ellos en tiempo real. Transfiere cantidades enormes de datos a cualquier otro lugar que necesite. Es la alternativa al sistema de mensajería tradicional que se utiliza en las empresas. Actualmente, es una solución open source que se hace necesaria para la transmisión de datos y cuenta con aplicaciones para necesidades empresariales.

MinIo

MinIo es un servidor de almacenamiento en la nube totalmente compatible con Amazon S3, que se lanzó con la licencia Apache v2. Puede almacenar datos no estructurados como videos, fotos, archivos, copias de seguridad e imágenes de contenedores. Su tamaño máximo de un objeto es de 5TB.

Apache NiFi

Apache Nifi es una plataforma de logística de datos para automatizar el movimiento de estos entre sistemas diversos. Ofrece control en tiempo real y facilita el movimiento desde cualquier destino y fuente. Ofrece compatibilidad con diversas fuentes y se distribuye en formatos, esquemas, protocolos y diferentes tamaños. Además, permite seguir los datos en tiempo real.

RabbitMQ

RabbitMQ es un software de encolado de mensajes conocido como bróker de mensajería o gestor de colas. Las aplicaciones se pueden conectar a estas colas y transferir y leer mensajes en ellas. Se puede usar principalmente para reducir las cargas y tiempos de entrega por parte de los servidores de aplicaciones web.

Apache Cassandra

¿Qué ofrece Apache Cassandra? Es una elección correcta cuando se necesita alta disponibilidad y escalabilidad sin necesidad de comprometer el rendimiento. Su tolerancia a fallas en el hardware básico lo convierte en una plataforma perfecta para datos con misión crítica. Ofrece la tranquilidad de saber que se puede sobrevivir a pesar de interrupciones regionales.

ClickHouse

Clickhouse es una base de datos orientada a columnas y que cada vez es más utilizada para calcular analíticas en entornos Big Data. Las implementaciones comerciales más conocidas son PaaSAmazon Redshift o Google BigQuery. Se desarrolló por la compañía rusa de TI Yandex para dar servicio a la web Yandex Metrica. Con ClickHouse se permite el análisis de datos que se actualizan en tiempo real.

Apache Spark

Aparche Spark es un framework de programación para procesar datos de forma rápida. Como su nombre indica, se ha desarrollado en el marco del proyecto Apache que le garantiza la licencia open source¿Cómo funciona? Es un motor de procesamiento responsable de orquestar, distribuir y monitorizar las aplicaciones que constan de muchas tareas de procesamiento de datos. Se pueden leer datos desde diferentes soluciones como Amazon S3 o Google Storage.

Apache Superset

Apache Superset es una aplicación web de exploración y visualización de datos que proporciona una interfaz intuitiva para explorar y visualizar conjuntos de datos y crear paneles interactivos. Se concibe como una capa semántica ligera que permite controlar cómo se exponen las fuentes de datos al usuario definiendo las dimensiones y métricas.

Ambassador Edge Stack

El proveedor de herramientas de microservicios Datawire lanzó la primera versión de Ambassador Edge Stack (AES). Es una puerta de enlace API de microservicios para Kubernetes que ofrece características de seguridad, entre otras cosas. AES es una forma de «administrar la frontera entre los usuarios finales y los servicios de Kubernetes» permitiendo a los equipos «publicar, monitorear y actualizar rápidamente los servicios para los usuarios finales».

Apache Atlas

Apache Atlas es un conjunto escalable y extensible de servicios básicos que permite a las empresas cumplir de forma efectiva con los requisitos de cumplimiento de Hadoop. Además, permite la integración con el ecosistema de datos empresariales. ¿Qué proporciona Apache Atlas? Capacidades abiertas de gestión para que las organizaciones puedan crear un catálogo de activos de datos, clasificar y manejar estos activos, así como proporcionar capacidades de colaboración con analistas.