ComputeNext started 3 years ago to develop the first open marketplace for cloud computing services.
We started by using the technologies we were most familiar with - C# and SQL Server, and our initial architecture and implementation was based on these technologies.
Over time, we have progressively introduced more open source elements, including MongoDB, RabbitMQ and Node.js.
Now we are at the point where most of our back-end services rely on Node.js. The talk will talk about why we did this, how we did this, and discuss our experiences - both good and bad.
The document discusses using Java with HTML5 and related technologies like CSS3 and WebSockets. It provides an overview of HTML5 features like Canvas, SVG, CSS3 animations, and WebSockets. It describes how these features can be used to build interactive client-side applications and how Java servers can integrate with HTML5 apps by saving/retrieving application state and graphics from the client. Java servers can generate graphics like SVG dynamically based on data from HTML5 clients.
"Fintech inside of a SaaS powered by 2000+ Microservices", Volodymyr MalykFwdays
The way Architecture is done in BigTech, top-down “rules” and technology choices.
We will talk about freedom in making architecture decisions for Product and Core teams.
We'll go deeper into Fintech solution, built as a crucial component of global SaaS: Microservices, APIs and Queues, Event Sourcing, Feature Toggles, SDLC, CI/CD, DevOps, Monitoring, Analytics and more.
This document discusses using Kafka and VoltDB together for streaming data architectures. It provides an overview of VoltDB as an operational database that can run entirely in-memory at web scale. It describes how VoltDB supports real-time analytics like counters, aggregates, and rankings through features like materialized views. The document also discusses how to configure Kafka producers and consumers to integrate with VoltDB importers and exporters. Using Kafka can simplify streaming data architectures by providing centralized queuing and resiliency while VoltDB supports low-latency transactions and analytics on streaming data.
Building an E-commerce website in MEAN stackdivyapisces
This document provides an overview of building an eCommerce site using the MEAN stack. It begins with an introduction to JavaScript and then discusses the key components of the MEAN stack including Node.js, AngularJS, and MongoDB. It provides details on each component, their history, features, and how they work together. It emphasizes how MongoDB is well-suited for eCommerce applications due to its flexible schema and ability to store different product types within the same collection.
Kiến trúc phần mềm cho các site chịu tải lớn – Software architecture for high traffic Website
Case study giới thiệu về kiến trúc của một site traffic lớn đó là stackoverflow.com - trang hỏi đáp về lập trình rất nổi tiếng
Bài trình bày của bạn Ngô Xuân Hòa tại Meetup 4 của Ha Noi .NET Group.
Chi tiết vui lòng xem tại: http://tungnt.net
This document discusses using Docker to build and deploy microservices for a Bizweb application. It proposes using Docker Swarm mode for orchestration along with Netflix OSS components like Eureka, Zuul and Ribbon to provide service discovery, API gateway functionality and load balancing between microservices. Continuous integration is achieved using Jenkins to build Docker images from code commits, tag them and push to a private Docker registry. When code is committed, Jenkins triggers deployment of updated services to a Docker Swarm cluster for testing or production. This approach aims to reduce delivery time, simplify deployment and scaling of microservices.
Microservices with Apache Camel, Docker and Fabric8 v2Christian Posta
My talk from Red Hat Summit 2015 about the pros/cons of microservices, how integration is a strong requirement for doing distributed systems designs, and how open source projects like Apache Camel, Docker, Kubernetes, OpenShift and Fabric8 can help simplify and manage microservice environments
This is my presentation about CFWheels at CFObjective ANZ, November 2010, Melbourne, Australia.
ColdFusion on Wheels (CFWheels), is an elegant framework inspired by Ruby on Rails.
The document discusses using Java with HTML5 and related technologies like CSS3 and WebSockets. It provides an overview of HTML5 features like Canvas, SVG, CSS3 animations, and WebSockets. It describes how these features can be used to build interactive client-side applications and how Java servers can integrate with HTML5 apps by saving/retrieving application state and graphics from the client. Java servers can generate graphics like SVG dynamically based on data from HTML5 clients.
"Fintech inside of a SaaS powered by 2000+ Microservices", Volodymyr MalykFwdays
The way Architecture is done in BigTech, top-down “rules” and technology choices.
We will talk about freedom in making architecture decisions for Product and Core teams.
We'll go deeper into Fintech solution, built as a crucial component of global SaaS: Microservices, APIs and Queues, Event Sourcing, Feature Toggles, SDLC, CI/CD, DevOps, Monitoring, Analytics and more.
This document discusses using Kafka and VoltDB together for streaming data architectures. It provides an overview of VoltDB as an operational database that can run entirely in-memory at web scale. It describes how VoltDB supports real-time analytics like counters, aggregates, and rankings through features like materialized views. The document also discusses how to configure Kafka producers and consumers to integrate with VoltDB importers and exporters. Using Kafka can simplify streaming data architectures by providing centralized queuing and resiliency while VoltDB supports low-latency transactions and analytics on streaming data.
Building an E-commerce website in MEAN stackdivyapisces
This document provides an overview of building an eCommerce site using the MEAN stack. It begins with an introduction to JavaScript and then discusses the key components of the MEAN stack including Node.js, AngularJS, and MongoDB. It provides details on each component, their history, features, and how they work together. It emphasizes how MongoDB is well-suited for eCommerce applications due to its flexible schema and ability to store different product types within the same collection.
Kiến trúc phần mềm cho các site chịu tải lớn – Software architecture for high traffic Website
Case study giới thiệu về kiến trúc của một site traffic lớn đó là stackoverflow.com - trang hỏi đáp về lập trình rất nổi tiếng
Bài trình bày của bạn Ngô Xuân Hòa tại Meetup 4 của Ha Noi .NET Group.
Chi tiết vui lòng xem tại: http://tungnt.net
This document discusses using Docker to build and deploy microservices for a Bizweb application. It proposes using Docker Swarm mode for orchestration along with Netflix OSS components like Eureka, Zuul and Ribbon to provide service discovery, API gateway functionality and load balancing between microservices. Continuous integration is achieved using Jenkins to build Docker images from code commits, tag them and push to a private Docker registry. When code is committed, Jenkins triggers deployment of updated services to a Docker Swarm cluster for testing or production. This approach aims to reduce delivery time, simplify deployment and scaling of microservices.
Microservices with Apache Camel, Docker and Fabric8 v2Christian Posta
My talk from Red Hat Summit 2015 about the pros/cons of microservices, how integration is a strong requirement for doing distributed systems designs, and how open source projects like Apache Camel, Docker, Kubernetes, OpenShift and Fabric8 can help simplify and manage microservice environments
This is my presentation about CFWheels at CFObjective ANZ, November 2010, Melbourne, Australia.
ColdFusion on Wheels (CFWheels), is an elegant framework inspired by Ruby on Rails.
Presentation for the Dutch Open University on Lift, the webframework written in Scala. Though the slides are light on content, the sample application that was used throughout the presentation can be found at https://github.com/sammy8306/Lift/tree/lift_ou/playground and should give more than enough insight into a working Lift application
This document provides an overview of the MEAN stack, which is a full-stack JavaScript framework that simplifies and accelerates web application development. It defines MEAN as an acronym for the technologies it incorporates: MongoDB for the database, Express for the server framework, AngularJS for the client-side framework, and Node.js for the runtime environment. Each technology is described in 1-2 sentences. The document then discusses advantages like using a single programming language throughout and disadvantages like lack of coding guidelines. It concludes that MEAN provides a fast, easy way to build modern web applications.
MongoDB Days Silicon Valley: Building Applications with the MEAN StackMongoDB
Presented by Jason Zucchetto, Curriculum Engineer, MongoDB
Experience level: Introductory
Walk through building a sample application with the MEAN stack (MongoDB-Express-Angular-Node.js). We'll start from the beginning, walking through every component of the MEAN stack, in building a modern web application. The presentation focuses on building MongoMart, a simple application for searching and viewing MongoDB merchandise. You'll walk away with a basic knowledge of MEAN stack components and how to leverage them in building applications.
JUDCon Brazil 2013 - Vert.x an introductionSamuel Tauil
Vert.x is a general purpose application platform that provides asynchronous APIs for building polyglot, highly concurrent applications. It uses a verticle model where applications are composed of isolated verticle execution units that communicate via an event bus. Vert.x runs on the JVM and supports multiple languages including JavaScript, Groovy, Python, Ruby, and Java. It uses Netty for network IO and integrates technologies like SockJS and Hazelcast.
The document discusses building applications with the MEAN stack. It introduces the speakers and their experience. It then discusses using MongoDB, Express, AngularJS and Node.js together. It provides an example of how a submission flows through the full stack, from a user filling out a form to it being saved to the database. It also discusses customizing applications with plugins, modular development, and building software as a service applications.
Presentation for Stichting DotNed in 2015:
Microsoft neemt ASP.NET op de schop. Het web applicatie framework uit .NET 1.0 wordt grotendeels herschreven om te voldoen aan de eisen die men tegenwoordig stelt aan het realiseren van een moderne web applicatie. Deze sessie kijken we naar de nieuwe opzet van ASP.NET. We zien hoe Microsoft daarmee een cloud geoptimaliseerd, cross-platform framework creeert, dat zij zelf sneller kunnen laten evolueren door kortere release cycles. Dit alles betekent wel dat ASP.NET anders is geworden. In deze sessie leer je daarom ook wat er is veranderd, hoe je aan de slag gaat en waarom ASP.NET vNext een revolutionaire stap is in Microsoft's framework.
This document discusses the runtime of Node.js and its V8 JavaScript engine. It describes how V8 uses fast property access through hidden classes, dynamic machine code generation to compile JavaScript directly to machine code, and efficient garbage collection. It also provides an example "Hello World" Node.js program.
Performance and Scalability Art of Isomorphic React ApplicationsDenis Izmaylov
A couple weeks ago I have talked at React Amsterdam Meetup about Performance and Scalability of Isomorphic React Application.
Have a look at the video from this talk: https://www.youtube.com/watch?list=PLNBNS7NRGKMGLeJj3cuE4JDqJ0_9xAbZV&v=kI19MCP-wIE
This document provides an agenda and overview for a presentation on Apache Camel essential components. The presentation is given by Christian Posta from Red Hat on January 23, 2013. The agenda includes an introduction to Camel, a discussion of components, and time for questions. An overview of FuseSource/Red Hat is given, noting the acquisition of FuseSource by Red Hat in 2012. Details are provided on the speaker and their background. The document focuses on introducing some of the most widely used and essential Camel components, including File, Bean, Log, JMS, CXF, and Mock. Configuration options and examples of using each component are summarized.
presented by Sruti Cheedalla, Senior Web Developer, The Washington Post; Kat Styons, Web Developer, The Washington Post; Matthew Cwalinski, Senior Web Developer, The Washington Post at MongoDB Evenings DC on October 13, 2015
Real-world #microservices with Apache Camel, Fabric8, and OpenShiftChristian Posta
What are and aren't microservices?
Microservices is a validation of the open-source approach to integration and service implementation and a rebuff of the committee-driven SOA approach. In this
MVC 6 - the new unified Web programming modelAlex Thissen
Presentation for Dutch Microsoft TechDays 2015:
With ASP.NET 5 comes MVC 6 with a programming model that unifies Web Pages, MVC and Web API. Each of these has been rebuilt to reflect Microsoft's vision of lean and composable web applications. In this session you will see the changes that have been made to the programming model. We will cover topics such as the new POCO controllers, View Components, dependency injection and much more. Plus, you are going to see the significant changes to the ASP.NET runtime on which MVC 6 is built.
Building Real World Application with Azuredivyapisces
This document discusses building real world applications with Microsoft Azure. It covers cloud development patterns like automating everything, using source control, continuous integration and delivery, and web development best practices. It demonstrates the Azure management portal and shows how to use source control in Visual Studio. The document also discusses data storage options in Azure like SQL Database, blob storage, and data partitioning strategies. It provides an overview of key concepts like PaaS versus IaaS, choosing relational databases, and understanding the three Vs of data storage. Finally, it demonstrates walking through an Azure app and discusses SLAs and scaling applications in the cloud.
Spicing up JMX with Jolokia (Devoxx 2014)roland.huss
Slides for my "Tools-in-Action" Talk @ Devoxx 2014
The source code for the demos can be found at http://ro14nd.de/talks/2014/devoxx/jolokia-devoxx-2014-demo.tgz
The evolution of the Java Management Extensions (JMX) has stalled. Its fossilisation started some years ago but although JMX's future is more than unclear, it is still present in every JVM out there. However, JMX is not without severe issues in a polyglot world with regard to remote access. Jolokia is an open source project which provides an easy HTTP access to JMX not only for Java clients.
Originally intended as backbone for lightweight Nagios monitoring, Jolokia is nowadays used as a general purpose management API adopted by platforms such as ActiveMQ or Spring XD and used by HTML5 consoles like hawt.io.
This talk gives a detailed overview of Jolokia and its architecture. Jolokia uses an agent based approach where multiple variants with support for many platforms are available. In addition to standard JMX operations, Jolokia provides unique features like bulk requests or policy based security.
The live coding part in this presentation demonstrates how easily a custom browser based JMX-JavaScript client can be developed.
A live sneak preview of the forthcoming Jolokia 2.0 release finally completes this session.
Diễn giả: Nguyễn Minh Quý - DKT
Caching là một cơ chế không thể thiếu trong các kiến trúc website hiệu năng cao. Hãy đến tham dự và cùng tìm hiểu cách thức xây dựng kiến trúc cache cho BizWeb - nền tảng bán hàng trực tuyến có số lượng người dùng lớn nhất Việt Nam:
1. Giới thiệu Bizweb Model
2. Mô hình microservices Bizweb sử dụng
3. Frontend caching
4. API caching
5. Assets caching
6. Content delivery network
The document provides an overview of the MEAN stack, which is a full-stack JavaScript framework that simplifies and accelerates web application development using MongoDB, Express, AngularJS, and Node.js. It discusses each component of the MEAN stack in detail, including their features and advantages. The key advantages are that MEAN allows for fast development of robust and maintainable web applications using a single programming language across both front-end and back-end. However, MongoDB is not as robust as an SQL database and JavaScript lacks coding guidelines.
The document discusses various JVM web frameworks including Play, Ratpack, Spring Boot, and Rails. It provides code examples for templating, databases, servers, and other aspects of each framework. It compares the strengths and weaknesses of frameworks like Play, Ratpack, and Spring Boot. It emphasizes that modern JVM web development uses languages like Scala, Groovy, JRuby and Clojure rather than traditional Java web apps with WAR files. The document encourages the audience to pick a framework like Play, Ratpack or Rails and provides the basic commands to create a new project in each.
(ARC309) Getting to Microservices: Cloud Architecture PatternsAmazon Web Services
Gilt transitioned from a monolithic Ruby on Rails and Java application architecture to a microservices architecture running on AWS. This allowed teams to work independently and deploy changes more quickly. Key aspects of Gilt's microservices architecture included organizing teams around business capabilities, using service discovery with Zookeeper, deploying single services per container with Docker, managing data decentralization, and monitoring services. Common challenges in microservices like service communication and distributed transactions were addressed through patterns like client-side caching and eventual consistency.
This document provides an overview of serverless computing without code (Lambda). It introduces CloudHesive as a professional services company and describes their services including assessment, strategy, migration, implementation, support, DevOps, security, and managed services. The agenda outlines topics on serverless, APIs, event buses, data stores, operational considerations, and adoption approaches. References are provided for the AWS Well Architected Framework and serverless application lens as well as examples for API Gateway, AppSync, Lambda, and Step Functions.
Presentation for the Dutch Open University on Lift, the webframework written in Scala. Though the slides are light on content, the sample application that was used throughout the presentation can be found at https://github.com/sammy8306/Lift/tree/lift_ou/playground and should give more than enough insight into a working Lift application
This document provides an overview of the MEAN stack, which is a full-stack JavaScript framework that simplifies and accelerates web application development. It defines MEAN as an acronym for the technologies it incorporates: MongoDB for the database, Express for the server framework, AngularJS for the client-side framework, and Node.js for the runtime environment. Each technology is described in 1-2 sentences. The document then discusses advantages like using a single programming language throughout and disadvantages like lack of coding guidelines. It concludes that MEAN provides a fast, easy way to build modern web applications.
MongoDB Days Silicon Valley: Building Applications with the MEAN StackMongoDB
Presented by Jason Zucchetto, Curriculum Engineer, MongoDB
Experience level: Introductory
Walk through building a sample application with the MEAN stack (MongoDB-Express-Angular-Node.js). We'll start from the beginning, walking through every component of the MEAN stack, in building a modern web application. The presentation focuses on building MongoMart, a simple application for searching and viewing MongoDB merchandise. You'll walk away with a basic knowledge of MEAN stack components and how to leverage them in building applications.
JUDCon Brazil 2013 - Vert.x an introductionSamuel Tauil
Vert.x is a general purpose application platform that provides asynchronous APIs for building polyglot, highly concurrent applications. It uses a verticle model where applications are composed of isolated verticle execution units that communicate via an event bus. Vert.x runs on the JVM and supports multiple languages including JavaScript, Groovy, Python, Ruby, and Java. It uses Netty for network IO and integrates technologies like SockJS and Hazelcast.
The document discusses building applications with the MEAN stack. It introduces the speakers and their experience. It then discusses using MongoDB, Express, AngularJS and Node.js together. It provides an example of how a submission flows through the full stack, from a user filling out a form to it being saved to the database. It also discusses customizing applications with plugins, modular development, and building software as a service applications.
Presentation for Stichting DotNed in 2015:
Microsoft neemt ASP.NET op de schop. Het web applicatie framework uit .NET 1.0 wordt grotendeels herschreven om te voldoen aan de eisen die men tegenwoordig stelt aan het realiseren van een moderne web applicatie. Deze sessie kijken we naar de nieuwe opzet van ASP.NET. We zien hoe Microsoft daarmee een cloud geoptimaliseerd, cross-platform framework creeert, dat zij zelf sneller kunnen laten evolueren door kortere release cycles. Dit alles betekent wel dat ASP.NET anders is geworden. In deze sessie leer je daarom ook wat er is veranderd, hoe je aan de slag gaat en waarom ASP.NET vNext een revolutionaire stap is in Microsoft's framework.
This document discusses the runtime of Node.js and its V8 JavaScript engine. It describes how V8 uses fast property access through hidden classes, dynamic machine code generation to compile JavaScript directly to machine code, and efficient garbage collection. It also provides an example "Hello World" Node.js program.
Performance and Scalability Art of Isomorphic React ApplicationsDenis Izmaylov
A couple weeks ago I have talked at React Amsterdam Meetup about Performance and Scalability of Isomorphic React Application.
Have a look at the video from this talk: https://www.youtube.com/watch?list=PLNBNS7NRGKMGLeJj3cuE4JDqJ0_9xAbZV&v=kI19MCP-wIE
This document provides an agenda and overview for a presentation on Apache Camel essential components. The presentation is given by Christian Posta from Red Hat on January 23, 2013. The agenda includes an introduction to Camel, a discussion of components, and time for questions. An overview of FuseSource/Red Hat is given, noting the acquisition of FuseSource by Red Hat in 2012. Details are provided on the speaker and their background. The document focuses on introducing some of the most widely used and essential Camel components, including File, Bean, Log, JMS, CXF, and Mock. Configuration options and examples of using each component are summarized.
presented by Sruti Cheedalla, Senior Web Developer, The Washington Post; Kat Styons, Web Developer, The Washington Post; Matthew Cwalinski, Senior Web Developer, The Washington Post at MongoDB Evenings DC on October 13, 2015
Real-world #microservices with Apache Camel, Fabric8, and OpenShiftChristian Posta
What are and aren't microservices?
Microservices is a validation of the open-source approach to integration and service implementation and a rebuff of the committee-driven SOA approach. In this
MVC 6 - the new unified Web programming modelAlex Thissen
Presentation for Dutch Microsoft TechDays 2015:
With ASP.NET 5 comes MVC 6 with a programming model that unifies Web Pages, MVC and Web API. Each of these has been rebuilt to reflect Microsoft's vision of lean and composable web applications. In this session you will see the changes that have been made to the programming model. We will cover topics such as the new POCO controllers, View Components, dependency injection and much more. Plus, you are going to see the significant changes to the ASP.NET runtime on which MVC 6 is built.
Building Real World Application with Azuredivyapisces
This document discusses building real world applications with Microsoft Azure. It covers cloud development patterns like automating everything, using source control, continuous integration and delivery, and web development best practices. It demonstrates the Azure management portal and shows how to use source control in Visual Studio. The document also discusses data storage options in Azure like SQL Database, blob storage, and data partitioning strategies. It provides an overview of key concepts like PaaS versus IaaS, choosing relational databases, and understanding the three Vs of data storage. Finally, it demonstrates walking through an Azure app and discusses SLAs and scaling applications in the cloud.
Spicing up JMX with Jolokia (Devoxx 2014)roland.huss
Slides for my "Tools-in-Action" Talk @ Devoxx 2014
The source code for the demos can be found at http://ro14nd.de/talks/2014/devoxx/jolokia-devoxx-2014-demo.tgz
The evolution of the Java Management Extensions (JMX) has stalled. Its fossilisation started some years ago but although JMX's future is more than unclear, it is still present in every JVM out there. However, JMX is not without severe issues in a polyglot world with regard to remote access. Jolokia is an open source project which provides an easy HTTP access to JMX not only for Java clients.
Originally intended as backbone for lightweight Nagios monitoring, Jolokia is nowadays used as a general purpose management API adopted by platforms such as ActiveMQ or Spring XD and used by HTML5 consoles like hawt.io.
This talk gives a detailed overview of Jolokia and its architecture. Jolokia uses an agent based approach where multiple variants with support for many platforms are available. In addition to standard JMX operations, Jolokia provides unique features like bulk requests or policy based security.
The live coding part in this presentation demonstrates how easily a custom browser based JMX-JavaScript client can be developed.
A live sneak preview of the forthcoming Jolokia 2.0 release finally completes this session.
Diễn giả: Nguyễn Minh Quý - DKT
Caching là một cơ chế không thể thiếu trong các kiến trúc website hiệu năng cao. Hãy đến tham dự và cùng tìm hiểu cách thức xây dựng kiến trúc cache cho BizWeb - nền tảng bán hàng trực tuyến có số lượng người dùng lớn nhất Việt Nam:
1. Giới thiệu Bizweb Model
2. Mô hình microservices Bizweb sử dụng
3. Frontend caching
4. API caching
5. Assets caching
6. Content delivery network
The document provides an overview of the MEAN stack, which is a full-stack JavaScript framework that simplifies and accelerates web application development using MongoDB, Express, AngularJS, and Node.js. It discusses each component of the MEAN stack in detail, including their features and advantages. The key advantages are that MEAN allows for fast development of robust and maintainable web applications using a single programming language across both front-end and back-end. However, MongoDB is not as robust as an SQL database and JavaScript lacks coding guidelines.
The document discusses various JVM web frameworks including Play, Ratpack, Spring Boot, and Rails. It provides code examples for templating, databases, servers, and other aspects of each framework. It compares the strengths and weaknesses of frameworks like Play, Ratpack, and Spring Boot. It emphasizes that modern JVM web development uses languages like Scala, Groovy, JRuby and Clojure rather than traditional Java web apps with WAR files. The document encourages the audience to pick a framework like Play, Ratpack or Rails and provides the basic commands to create a new project in each.
(ARC309) Getting to Microservices: Cloud Architecture PatternsAmazon Web Services
Gilt transitioned from a monolithic Ruby on Rails and Java application architecture to a microservices architecture running on AWS. This allowed teams to work independently and deploy changes more quickly. Key aspects of Gilt's microservices architecture included organizing teams around business capabilities, using service discovery with Zookeeper, deploying single services per container with Docker, managing data decentralization, and monitoring services. Common challenges in microservices like service communication and distributed transactions were addressed through patterns like client-side caching and eventual consistency.
This document provides an overview of serverless computing without code (Lambda). It introduces CloudHesive as a professional services company and describes their services including assessment, strategy, migration, implementation, support, DevOps, security, and managed services. The agenda outlines topics on serverless, APIs, event buses, data stores, operational considerations, and adoption approaches. References are provided for the AWS Well Architected Framework and serverless application lens as well as examples for API Gateway, AppSync, Lambda, and Step Functions.
This document introduces Node.js and provides an overview of its key features and use cases. Some main points:
- Node.js is a JavaScript runtime built on Chrome's V8 engine that allows building scalable network applications easily. It is not a web framework but you can build web frameworks with Node.js modules.
- Node.js is well-suited for building web servers, TCP servers, command line tools, and anything involving high I/O due to its non-blocking I/O model. It has over 15,000 modules and an active community for support.
- Common use cases include building JSON APIs, single page apps, leveraging existing Unix tools via child processes, streaming
The document introduces Microsoft's Windows Azure cloud platform. It summarizes that Windows Azure provides an operating system for the cloud that abstracts away hardware and provides services for automated management, scalable computing and storage. It allows developers to build applications and services that can easily scale across large, connected data centers. The talk demonstrates how Windows Azure allows building complex service architectures from simple components like web and worker roles that interact through a durable storage system. It emphasizes that the platform aims to provide a familiar development experience while handling all the complexities of highly scalable cloud services.
Tokyo Azure Meetup #7 - Introduction to Serverless Architectures with Azure F...Tokyo Azure Meetup
Serverless architecture is the next big shift in computing - completely abstracting the underlying infrastructure and focusing 100% on the business logic.
Today we can create applications directly in our browser and leave the decision how they are hosted and scaled to the cloud provider. Moreover, this approach give us incredible control over the granularity of our applications since most of the time we are dealing with single function at a time.
In this presentation we will cover:
• Introduce Serverless Architectures
• Talk about the advantages of Serverless Architectures
• Discuss in details in event-driven computing
• Cover common Serverless approaches
• See practical applications with Azure Functions
• Compare AWS Lambda and Azure Functions
• Talk about open source alternatives
• Explore the relation between Microservices and Serverless Architectures
This document discusses cloud computing and Microsoft's Windows Azure platform. It defines cloud computing concepts like infrastructure as a service (IaaS), platform as a service (PaaS), and software as a service (SaaS). It outlines the key components of Windows Azure including the Azure Fabric for running applications, Azure Storage for databases, and the Azure SDK. It also covers how to develop, deploy, and scale applications on the Azure platform using web and worker roles.
Sails.js is a realtime MVC framework for Node.js that provides conventions and structures for building applications. It includes features like a lightweight ORM, policies for authentication and authorization, and integrates Socket.io for realtime functionality. Sails.js aims to simplify building realtime apps by handling websockets and HTTP requests together and providing patterns for application structure. The framework is actively maintained by an open source community.
The document discusses the MEAN stack, which is a full-stack JavaScript framework that uses MongoDB, ExpressJS, AngularJS, and Node.js. It provides an overview of each component, explaining that MongoDB is the database, ExpressJS is the web application framework, AngularJS is the front-end framework, and Node.js is the web server. The MEAN stack allows for full-stack development with JavaScript and provides benefits like asynchronous communication and being easy to start developing with.
6 weeks 6 months live project summer industrial training in cmc limited 2012CMC Limited
CMC Limited (A TCS Subsidiary) is India’s leading Information Technology company, which has been under the Ministry of Information Technology, Department of Electronics, Government of India, since 1976. Today, it offers high quality IT solutions & services to users worldwide, Hardware Maintenance, Education & Training & Turnkey Project Implementation through a group of highly qualified professionals operating from 14 major cities in India & abroad, including the Middle East, European Union and the United States of America. CMC America (formerly BRI Inc.) is CMC’s subsidiary in USA.
Post merger of CMC with TATA Sons in October 2001, CMC-TCS are now working jointly on important offshore and national projects globally and constitute one of the biggest IT consortium in the World.
CMC has been in the forefront of developing some of the largest IT projects in India and abroad due to which the practical exposure of its IT personnel is unmatched. CMC is a pioneer in the field of Education and Training also. We have tie-ups with a number of reputed academic institutes like JNTU, Hyderabad, Netaji Subhash Open University, , Narsee Monjee Institute of Management Studies, and University of Calcutta etc. to jointly conduct courses.
Meeting your Industrial Training requirement, CMC has conceptualized and designed live projects, and provides necessary infrastructure, guidance, software and hardware for project development. Trainees can develop these projects in a team as per their interests in the latest technology areas. Trainees can go back with a well-documented project report and an Industrial Project Training certificate from CMC Limited (A Tata Enterprise). Details of the training programs are attached herewith for your reference (Kindly download all attachments).
Running Airflow Workflows as ETL Processes on Hadoopclairvoyantllc
While working with Hadoop, you'll eventually encounter the need to schedule and run workflows to perform various operations like ingesting data or performing ETL. There are a number of tools available to assist you with this type of requirement and one such tool that we at Clairvoyant have been looking to use is Apache Airflow. Apache Airflow is an Apache Incubator project that allows you to programmatically create workflows through a python script. This provides a flexible and effective way to design your workflows with little code and setup. In this talk, we will discuss Apache Airflow and how we at Clairvoyant have utilized it for ETL pipelines on Hadoop.
Social Photos is an online social network for photographers and photo lovers. Users can take photos and share them on the network. Other users can like, dislike, or comment on photos. The network also integrates location-based features so photos can be listed near the location where they were taken. The social network is built using various Microsoft and non-Microsoft technologies integrated seamlessly. It uses technologies like Entity Framework, WCF data services, OData, and supports multiple client platforms like Windows Phone, Android, iOS, and web clients.
The document discusses using GraphQL to build a serverless API for a mobile app that detects construction errors. Key points include:
1. GraphQL provides an efficient way to fetch data from microservices in a single roundtrip and allows flexible field selection.
2. The previous monolithic REST API was split into microservices for data fetching, state management, and serving the API to improve performance and scalability.
3. Serverless is a good fit for the stateless GraphQL architecture as resolvers can trigger other serverless functions and the API can scale up and down easily.
How to Build a Big Data Application: Serverless Editionecobold
Come learn how to build, launch, and scale a Big Data application in a serverless context. This is going to be an information packed meetup around Big Data processing, Lambda functions, Lambda Step functions, and everything that ties them together.
Big Data is something we're very passionate about. As the cost of servers have come down and the cost of software has become free, using data to drive your business has become much more obtainable to a larger group of companies. The serverless methodology has recently come in the scene, and it's proving to be just as transformational as cloud has been to the Big Data analytics space. We will be sharing some of our learnings and experiences over the last two years of working with Big Data in a serverless context. We will cover one or two examples of eventful Big Data processing, and the impact it can have on your business in terms of speed of analytics and cost savings to the bottom line.
The document provides an introduction to Typesafe Activator and the Play Framework. It discusses how Activator is a tool that helps developers get started with the Typesafe Reactive Platform and Play applications. It also covers some core features of Play like routing, templates, assets, data access with Slick and JSON, and concurrency with Futures, Actors, and WebSockets.
This document summarizes serverless design patterns and tools. It begins with a brief history of cloud computing and an introduction to serverless computing. Common serverless use cases like event-driven applications and stream processing are described. Several serverless patterns are then outlined, such as hosting a static website or REST API using AWS Lambda and API Gateway. Finally, the document demonstrates a serverless application and discusses future directions for serverless technologies.
Vincent biret azure functions and flow (ottawa)Vincent Biret
This document outlines Vincent Biret's presentation on Azure Functions and Microsoft Flow. The presentation includes demos of using Flow to automate workflows across various services and using Functions to run pieces of code in the cloud. It also discusses pricing plans for Flow, supported languages for Functions, and best practices for integrating Flow and Functions. The presentation agenda covers introductions to Flow and Functions, demos of each, and a conclusion about how these tools can provide reliable development, save time and money, and empower users.
Vincent biret azure functions and flow (toronto)Vincent Biret
This document outlines Vincent Biret's presentation on Azure Functions and Microsoft Flow. The presentation includes demos of using Flow to automate workflows across various services and using Functions to run pieces of code in the cloud. The agenda covers introductions to Flow and Functions, demos of each, best practices for using them together, and a conclusion on how they can provide reliable development, save time and money, and empower users.
This document discusses designing microservices architectures. It begins by defining microservices as small, autonomous services that work together. The benefits of microservices include continuous innovation, independent deployments, and fault isolation. Challenges include complexity, testing, and service discovery. Key principles in designing microservices are modeling them around business domains, making each independently deployable, and decentralizing all components. Additional topics covered include service boundaries, communication patterns, data management, and monitoring microservices applications. The document provides examples and recommendations for implementing microservices on Azure.
Similar to Evolution of a cloud start up: From C# to Node.js (20)
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfMalak Abu Hammad
Discover how MongoDB Atlas and vector search technology can revolutionize your application's search capabilities. This comprehensive presentation covers:
* What is Vector Search?
* Importance and benefits of vector search
* Practical use cases across various industries
* Step-by-step implementation guide
* Live demos with code snippets
* Enhancing LLM capabilities with vector search
* Best practices and optimization strategies
Perfect for developers, AI enthusiasts, and tech leaders. Learn how to leverage MongoDB Atlas to deliver highly relevant, context-aware search results, transforming your data retrieval process. Stay ahead in tech innovation and maximize the potential of your applications.
#MongoDB #VectorSearch #AI #SemanticSearch #TechInnovation #DataScience #LLM #MachineLearning #SearchTechnology
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!SOFTTECHHUB
As the digital landscape continually evolves, operating systems play a critical role in shaping user experiences and productivity. The launch of Nitrux Linux 3.5.0 marks a significant milestone, offering a robust alternative to traditional systems such as Windows 11. This article delves into the essence of Nitrux Linux 3.5.0, exploring its unique features, advantages, and how it stands as a compelling choice for both casual users and tech enthusiasts.
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
Threats to mobile devices are more prevalent and increasing in scope and complexity. Users of mobile devices desire to take full advantage of the features
available on those devices, but many of the features provide convenience and capability but sacrifice security. This best practices guide outlines steps the users can take to better protect personal devices and information.
Programming Foundation Models with DSPy - Meetup SlidesZilliz
Prompting language models is hard, while programming language models is easy. In this talk, I will discuss the state-of-the-art framework DSPy for programming foundation models with its powerful optimizers and runtime constraint system.
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfPaige Cruz
Monitoring and observability aren’t traditionally found in software curriculums and many of us cobble this knowledge together from whatever vendor or ecosystem we were first introduced to and whatever is a part of your current company’s observability stack.
While the dev and ops silo continues to crumble….many organizations still relegate monitoring & observability as the purview of ops, infra and SRE teams. This is a mistake - achieving a highly observable system requires collaboration up and down the stack.
I, a former op, would like to extend an invitation to all application developers to join the observability party will share these foundational concepts to build on:
UiPath Test Automation using UiPath Test Suite series, part 6DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 6. In this session, we will cover Test Automation with generative AI and Open AI.
UiPath Test Automation with generative AI and Open AI webinar offers an in-depth exploration of leveraging cutting-edge technologies for test automation within the UiPath platform. Attendees will delve into the integration of generative AI, a test automation solution, with Open AI advanced natural language processing capabilities.
Throughout the session, participants will discover how this synergy empowers testers to automate repetitive tasks, enhance testing accuracy, and expedite the software testing life cycle. Topics covered include the seamless integration process, practical use cases, and the benefits of harnessing AI-driven automation for UiPath testing initiatives. By attending this webinar, testers, and automation professionals can gain valuable insights into harnessing the power of AI to optimize their test automation workflows within the UiPath ecosystem, ultimately driving efficiency and quality in software development processes.
What will you get from this session?
1. Insights into integrating generative AI.
2. Understanding how this integration enhances test automation within the UiPath platform
3. Practical demonstrations
4. Exploration of real-world use cases illustrating the benefits of AI-driven test automation for UiPath
Topics covered:
What is generative AI
Test Automation with generative AI and Open AI.
UiPath integration with generative AI
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceIndexBug
Imagine a world where machines not only perform tasks but also learn, adapt, and make decisions. This is the promise of Artificial Intelligence (AI), a technology that's not just enhancing our lives but revolutionizing entire industries.
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...Neo4j
Leonard Jayamohan, Partner & Generative AI Lead, Deloitte
This keynote will reveal how Deloitte leverages Neo4j’s graph power for groundbreaking digital twin solutions, achieving a staggering 100x performance boost. Discover the essential role knowledge graphs play in successful generative AI implementations. Plus, get an exclusive look at an innovative Neo4j + Generative AI solution Deloitte is developing in-house.
Building Production Ready Search Pipelines with Spark and MilvusZilliz
Spark is the widely used ETL tool for processing, indexing and ingesting data to serving stack for search. Milvus is the production-ready open-source vector database. In this talk we will show how to use Spark to process unstructured data to extract vector representations, and push the vectors to Milvus vector database for search serving.
GraphRAG for Life Science to increase LLM accuracyTomaz Bratanic
GraphRAG for life science domain, where you retriever information from biomedical knowledge graphs using LLMs to increase the accuracy and performance of generated answers
HCL Notes and Domino License Cost Reduction in the World of DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-and-domino-license-cost-reduction-in-the-world-of-dlau/
The introduction of DLAU and the CCB & CCX licensing model caused quite a stir in the HCL community. As a Notes and Domino customer, you may have faced challenges with unexpected user counts and license costs. You probably have questions on how this new licensing approach works and how to benefit from it. Most importantly, you likely have budget constraints and want to save money where possible. Don’t worry, we can help with all of this!
We’ll show you how to fix common misconfigurations that cause higher-than-expected user counts, and how to identify accounts which you can deactivate to save money. There are also frequent patterns that can cause unnecessary cost, like using a person document instead of a mail-in for shared mailboxes. We’ll provide examples and solutions for those as well. And naturally we’ll explain the new licensing model.
Join HCL Ambassador Marc Thomas in this webinar with a special guest appearance from Franz Walder. It will give you the tools and know-how to stay on top of what is going on with Domino licensing. You will be able lower your cost through an optimized configuration and keep it low going forward.
These topics will be covered
- Reducing license cost by finding and fixing misconfigurations and superfluous accounts
- How do CCB and CCX licenses really work?
- Understanding the DLAU tool and how to best utilize it
- Tips for common problem areas, like team mailboxes, functional/test users, etc
- Practical examples and best practices to implement right away
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
1. Evolution of a Cloud Start-Up:
From C# to Node.js
Steve Jamieson
Lead Developer at ComputeNext
steve@computenext.com
2. Overview
• ComputeNext started 3 years ago to develop the first open
marketplace for cloud computing services.
• We started by using the technologies we were most familiar with -
C# and SQL Server, and our initial architecture and
implementation was based on these technologies.
• Over time, we have progressively introduced more open source
elements, including MongoDB, RabbitMQ and Node.js.
• Now we are at the point where most of our back-end services rely
on Node.js. The talk will talk about why we did this, how we did
this, and discuss our experiences - both good and bad.
3. What do we do? (vision)
• Provide a marketplace for Cloud resources
• Choices in resource types (VM/VS etc.)
• Choices in level – IaaS/PaaS/SaaS
• Choices in providers & regions
• Able to search for what you need
• Able to buy what you want
4. How do we do it? (challenges)
• How to define all these different cloud resource types from
different sources in a normalized way?
• How do we provide the appearance of a single cloud over multiple
different cloud providers & regions?
• How do we provide a single interface (API) to multiple cloud
providers?
• How do we manage accounts and keep track of billing?
5. Components (6)
• Web UI
• User Management
• Billing
• Search/Catalog (resources)
• Fulfilment/Provisioning
• Infrastructure & Monitoring
6. Step 1 – C#
• Web UI – ASP.NET & C#
• Users – ASP.NET & SQL Server
• Billing – C# & WCF, SQL Server
• Search – “semantic web” – C/RDF/SPARQL
• Provisioning – C# & WCF, SQL Server
• Federation Server (FS)
• Provider Gateway (PG) - connector model
• REST API – Service Stack
• Infra – Windows services & tracing
• Service restart
7. Step 1 – All C#
FEDERATION
SERVER
PROVIDER
GATEWAY
C1
INTERNAL
REST API
REST WCF WCF
SQL
P1HTTP
BILLING
RESOURCES
C2 P2HTTP
C3 P3HTTP
WEB UI
ASP.NET
C# Windows Service
C# IIS Web Service
8. V1 Provisioning
• Workload and Transaction Model
• Declarative model of a workload in JSON
• Workload is a collection of workload elements
• Transaction is a “running workload” (collection of running VM or VS instances)
• V1 API
• WCF first, then REST (ServiceStack)
• Design: AWS and OpenStack, workloads & transactions
• Workload & transactions immutable (cannot be changed after execute)
• Federation Server – C#/WCF
• SQL access via Data Access Layer (DAL)
• Event driven model, graph for dependencies
• Resource types hardcoded (C# class)
• Provider Gateway – C#/WCF
• Connector Model
9. Why Node.js?
• Deployment Flexibility
• Platform independent
• Might need to deploy services anywhere
• We heard it could scale…
• Small footprint
• Fits well with our new proposed architecture (REST services)
• Lots of packages
• Good fit with NoSql (MongoDB) - JSON
• Good “word on the street”
10. Step 2 - Hybrid
• Web UI – Wordpress & PHP
• Users – SQL Server
• authentication service (Node.js + MongoDB)
• roles (authorization) service (Node.js + MongoDB)
• Billing – C# & SQL Server
• Search – Node.js & MongoDB
• Infrastructure
• iisnode + Nagios + tracing
• Other
• insight service (Node.js)
11. V1 Node.js services (4)
• authentication
• usernames/passwords/cookies/tokens/apikeys
• passwords salted & hashed
• roles (authorization)
• roles based on REST API, nested roles
• GET /workload > get.workload
• insight
• execute prepared SQL queries on demand
• run “sqlcmd” as XML, convert to JSON, REST API
• resources
• “triples” in MongoDB (subject/predicate/object)
12. Step 2 – C# and some Node.js
FEDERATION
SERVER
PROVIDER
GATEWAY
C1
WEB UI
WP PHP
INTERNAL
REST API
REST WCF WCF
SQL
P1HTTP
EXTERNAL
REST API
BILLING
RESOURCES
C2 P2HTTP
C3 P3HTTP
WCF
ROLESAUTH
INSIGHT
M M
C# Windows Service
C# IIS Web Service
Node.js
M MongoDB
M
13. Step 3 (V2) – Mostly Node.js!
• Web UI – Wordpress, PHP & Magento (MySql)
• Users – SQL Server & authentication & roles (Node.js)
• Billing – Node.js & MySql, still some C#
• Search – Magento/SOLR, plus resources for API
• Provisioning – Node.js & RabbitMQ & MongoDB
• Infrastructure - iisnode & Nagios & tracing
14. V2 Node.js services (10 + 3)
• instance – requests & instances, MongoDB
• provider – JavaScript connector model (simplified from V1)
• workload – plan/execute model
• insight (V2) - timing & inventory
• gateway – external API
• billing
• resources – catalog and search
• chef – deploy Chef cookbooks (to VM)
• archive – stores data for analytics
• upload – upload private images to regions
15. Step 3 – Mostly Node.js!
INSTANCE PROVIDER
C1
WEB UI
MAGENTO
WORKLOAD
P1HTTP
GATEWAY
BILLING
RESOURCES
C2 P2HTTP
C3 P3HTTP
ROLESAUTH
TIMING &
INVENTORY
MYSQL
SQL
USER
RABBITMQ
M
M
M M
M
M C# IIS Web Service
Node.js
RabbitMQ
Other
16. Migration
• Instances
• Migrate all the instances from V1 to V2
• Export all active instances from SQL Server
• Import instances into MongoDB
• Solution: Node.js scripts, JSON
• Connectors
• V1 (C#) wants to use the new V2 (JavaScript) connectors
• V2 (JavaScript) wants to use the old V1 (C#) connectors
• Solution: C# and Node.js can talk over RabbitMQ
23. What we’ve learned
• A good tracing system is critical
• End-to-end JSON (Node.js + MongoDB + JavaScript) makes life a
lot easier
• Small self-contained services with well defined REST interfaces are
quick to write/change/fix (but lots of communication)
• Async – takes some getting used to - single threaded but highly
concurrent
• Data driven design pays off (esp. if data is JSON)
• Separate concerns (workloads/instances/plan/execute)
• File system is a pretty good database
24. What we’ve learned about clouds
• Lots of diversity in cloud object models (connectors)
• normalization is not straightforward
• concepts don’t line-up exactly
• easier for some resource types than others
• error handling is key
• not always well documented
• things change very fast!
• Diversity across cloud implementations (providers)
• “standard” clouds… are not!
• lots of data to manage and keep up to date
• performance – test, monitor & track
• Relationships with cloud providers are key
• marketplace helps providers understand their customers
• Futures
• beyond virtualization & images – Chef/Puppet/Docker
25. Favorite Node.js packages
• express (REST API)
• async (flow control)
• json-schema (input validation)
• JSONPath (like XPath for JSON - used to parse JSON from connectors)
• string (C# like string functions – startsWith/endsWith)
• request (simple HTTP client)
• node-yaml-config (YAML for config files)
• cjson (JSON with comments, great for data-driven code)
• underscore (useful functions)
• datejs (expire dates)
• xml2json & xml2js (XML to JSON conversions)
• mongodb/amqp/mysql
• tracer (customized)
• node-cache (better than do-it-yourself)
• edge (call C# from Node.js)
26. Great things about Node.js
• NPM – lots of packages
• Version control - it doesn’t break!
• End-to-end JavaScript & JSON
• Single thread eliminates whole class of bugs
• Single thread – no locks, easier to program
• REST is easy (with express)
• No compile
• It’s a scripting language too!
• “functions” beat “objects”?
• Platform independent (Windows or Linux)
27. Not so great…
• Miss tools integration & easy to use debugger, IntelliSense
• Miss C# AppDomains – not so good in Node (Domains)
• Service model limited (iisnode - web services only)
• Error handling & exceptions can be confusing
• No binary model – everyone sees source code
• JavaScript/JSON – no schemas, so forget!
• JavaScript – beware gotcha’s
• Because not compiled, can get silly runtime errors
• Async - can get no callbacks, or multiple callbacks!
• Packages – some are Linux only, some don’t work “as advertised”
28. Where are we now?
• www.ComputeNext.com
• ~ 40 providers
• ~ 145 regions
• ~ 25 connectors
• 10 resource types: vm/vs/kp/sg/ip/image/lb/mp/snap/obs
• www.MediaPaaS.com
• External REST API, tools & docs
You need to be able to search for what you need across all provider and regions.
You need to be able to have one account and one bill for all the resources you use across any providers and regions.
WCF = Windows Communication Foundation
The Provider Gateway (PG) implemented a “connector model” by which we could independently develop multiple connectors and load them into the PG as required. This allowed us to develop our various connectors more quickly.
FS and PG were Windows services, which gave us some restart capabilities if the service crashed for some reason.
Circles are essentially process boundaries.
Blue = Windows Service, C#
Yellow = Web Service running under IIS, C#
We developed our V1 API using as WCF interfaces first, then extended it to REST using ServiceStack.
We moved away from ASP.NET to gain more speed & flexibility in the UI development.
Having done that we lost the user management capabilities of ASP.NET so we had to develop authentication & authorization (roles) services – this became our “proof of concept” for using Node.js.
Adding our own authentication service allowed us to add new capabilities that we needed such as supporting “apikeys” for our REST API authentication.
The “insight” service was added to allow us to do simple queries on our SQL Server database. At this point the Node.js driver for SQL Server was not available, so Node.js would run “sqlcmd” as a separate process, get the output as XML, and convert to JSON to be made available through a REST interface for our UI.
The “M” indicates that the service uses MongoDB. Unlike V1, where we shared one SQL database across multiple services, in V2 each service uses a separate MongoDB database, so every service is “self contained”.
Magento – open source e-commerce platform
Apache SOLR – open source search engine
iisnode is a Node.js package from Microsoft that allows Node.js services to run as IIS web services managed by IIS. This gives us process pooling, process recycling and restart.
Unlike V1, in V2 we now split the API between the “instance service” and the “workload service”.
The “instance service” is what you might expect from AWS or OpenStack – an API that allows single instances of particular resources to be provisioned.
The “workload service” is similar to what we had in V1, a collection of declarative workload elements that specifies what you want.
In V2, the workload service calls the instance service to provision each individual resource.
Also, in V2 the workloads are a lot more flexible – you can add things to them, remove things from them, and deactivate and re-activate them again, unlike in V1 where you basically got one shot at it.
For V2, The insight service, although it has a similar name, is quite different from the insight service in V1.
The V2 insight service now provides timing information and inventory for the workload service and the UI.
This slide shows our transition to mostly Node.js services.
The connectors are now JavaScript.
The red arrows show our use of RabbitMQ – you can see that the timing & inventory services (in the V2 insight service) and the billing service “listen-in” on the queue between the instance service and the provider service. This makes communication between services simpler.
As of June 2014. Adding more providers and regions every month!
vm = virtual machine
vs = volume storage
kp = key pair
sg = security group
ip = IP address
image = image
lb = load balancer
mp = MediaPaas
snap = volume snapshot
obs = object storage