GithubHelp home page GithubHelp logo

mnjstwins / claudia Goto Github PK

View Code? Open in Web Editor NEW

This project forked from claudiajs/claudia

0.0 1.0 0.0 357 KB

Deploy Node.js microservices to AWS easily

License: MIT License

JavaScript 100.00%

claudia's Introduction

Claudia.js

Claudia helps you deploy Node.js microservices to Amazon Web Services easily. It automates and simplifies deployment workflows and error prone tasks, so you can focus on important problems and not have to worry about AWS service workflows. Check out this video to see how to create and deploy a microservice in under 5 minutes.

Here are some of the things you can do with Claudia:

  • Create or update Lambda functions and Web APIs from Node.js projects hassle-free:
    • deploy using a single command (instead of 120 lines of shell scripts)
    • automatically handle AWS service edge cases such as waiting for IAM roles to propagate to Lambda and retrying throttled API management requests
    • simplify code management and avoid inconsistencies by using a single Lambda function for all the web API operations
  • Automatically configure the Lambda function for commonly useful tasks:
    • Allow console.log to pipe to CloudWatch
    • Add event sources with correct IAM privileges
    • Manage different versions for production, development and testing easily
  • Automatically set up API Gateway resources the way JavaScript developers expect them to work:
    • enable CORS for all endpoints (so your users' browsers can call the APIs directly)
    • make query string, form post and request headers directly available (instead of having to specify API Gateway models and templates)
    • route errors to HTTP response code 500 (instead of the default 200 which breaks Promise-like request libraries)

Just call claudia create and Claudia will pack up and post-process your code, grab all the dependencies, clean up irrelevant resources, upload to Lambda, set-up web APIs, and update version aliases.

Questions/Comments?

Join the chat at https://gitter.im/claudiajs/claudia

Examples, please!

For some nice examples, see the Example Projects.

Getting started

Please read the Getting started guide for information on setting up credentials and initialising your Lambda functions.

Check out Command Line Usage for details about command line options.

Further reading

See Related Articles for more articles, reviews and tutorials.

Contributing

Contributions are greatly appreciated. See the Contributors' guide for information on running and testing code.

Why?

AWS Lambda and API Gateway are incredibly flexible, but they can be tedious to set up, especially for simple scenarios. The basic runtime is oriented towards executing Java code, so running Node.js functions requires you to iron out quite a few quirks, that aren't exactly well documented. Claudia is essentially a bunch of checklists and troubleshooting tips we've collected while developing microservices designed to run in AWS, automated behind a convenient API.

How does it compare to ...?

Claudia is a deployment utility, not a framework. It does not abstract away AWS services, but instead makes them easier to get started with. As opposed to Serverless and Seneca, Claudia is not trying to change the way you structure or run projects. The optional API Builder, which simplifies web routing, is the only additional runtime dependency and it's structured to be minimal and standalone. Microservice frameworks have many nice plugins and extensions that can help kick-start standard tasks, but Claudia intentionally focuses only on deployment. One of our key design goals is not to introduce too much magic, and let people structure the code the way they want to.

Claudia is focused on Node.js. As opposed to Apex and similar deployers, Claudia has a much narrower scope. It works only for Node.js, but it does it really well. Generic frameworks support more runtimes, but leave the developers to deal with language-specific issues. Because Claudia focuses on Node.js, it automatically installs templates to convert parameters and results into objects that Javascript can consume easily, and makes things work the way Javascript developers expect out of the box.

Claudia helps you get simple stuff done, quickly. As opposed to Swagger, Claudia has fewer features, but does simple stuff easier. Claudia doesn't require you to define APIs in separate interface files. There's no need to learn a special interface syntax, no need to keep your definition spread across multiple files and introduce the overhead of coordination and maintenance -- just write the code to handle requests. So, for example, Claudia can help you get started easily with a simple web API, but you won't be able to export it easily into iOS or Android SDKs. If you want to use a heavy interface-definition library you still can, and Claudia can deploy it, but for most of what we needed to do, that was a huge overkill.

So, as a summary, if you want to build simple services and run them with AWS Lambda, and you're looking for something low-overhead, easy to get started with, and you only want to use the Node.js runtime, Claudia is a good choice. If you want to export SDKs, need fine-grained control over the distribution, allocation or discovery of services, need support for different runtimes and so on, use one of the alternative tools.

What's new since...?

See the Release History

claudia's People

Contributors

gojko avatar marcusoftnet avatar erem-ifg avatar stojanovic avatar yairraz 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.