• Designing Cloud Native RESTFul Microservices APIs


    Start Time:

    Feb 8, 2018 6:00 PM

    End Time:

    Feb 8, 2018 9:00 PM

    Location:
    Constant Contact Reservoir Place
    1601 Trapelo Road Waltham MA 021451
    1


    Speaker: Rohit Bhardwaj

    Ten steps methodology for designing superior Cloud Native RESTFul Microservices APIs

    In most of the Monolithic applications business objects and data, model designs are already present. As part of moving to cloud, companies miss out of the use-cases the REST APIs need to support. Implementing cloud solutions on top of existing models may lead to performance issues with APIs and cause scalability issues. Clients need to rewrite code due to a new version of APIs.

     

    In this talk, we will explore ten steps methodology for designing superior Cloud Native RESTFul Microservices APIs. Firstly, define the business domain objects and how they relate to use cases. If the use-case is to support <500 ms response time and availability of 99.99%, design the application for Consistency, Availability, and Partition tolerant. Next, Create an ideal design which solves the use-cases, refer to the industry standard JSONs and designs from schema.orgiana.org, and ​microformats.org. Later, find the fail points in the process and go back to the first step to resolving the pain points: Go back to Define the problem. Question to ask is what can go wrong? When can it go wrong? Next, create Facade pattern to connect to either existing Monolithic App or create a new App to support the new cloud use-cases. Create API Gateway, so other companies can build software and create more offerings. Next, design common Layers for error handling, logs, and security. For API security, perform Threat Modeling to find security vulnerabilities and plan for mitigation of risks. Use generic authentication using SAML, OAuth, and JWT to support Authentication and Authorization. Next, create API Versioning strategy so that the REST API can evolve with minimal client changes. Apply Cloud Native design patterns for Resiliency. In the end, test APIs using contract driven testing and PACT files.

    Speaker Biography

    Rohit Bhardwaj is a Chief Architect/Consultant expert with extensive experience in architecting multi-tenant cloud-native solutions for enterprise customers. Rohit has proven ability in designing solutions and executing and delivering transformational programs that reduce costs and increase efficiencies.

    As a trusted advisor, leader and collaborator Rohit applies problem resolution, analytical, and operational skills to all initiatives. Recognized for developing strategic requirement and solution analysis through all stages of the project lifecycle, as well as product readiness to execution.

    Recently, Rohit has developed solutions for lambda architecture solutions using Apache Spark, Cassandra, and Camel for real-time analytics and integration projects. Rohit excel in designing scalable cloud microservice architectures using Spring Boot and Netflix OSS technologies using AWS and Google clouds. As a Security Ninja, Rohit looks for ways to resolve application security vulnerabilities using ethical hacking and threat modeling. Rohit is excited about architecting cloud technologies using Dockers, REDIS, NGINX, RightScale, RabbitMQ, Apigee, Azul Zing, Actuate BIRT reporting, Chef, Splunk, Rest-Assured, SoapUI, Dynatrace, and EnterpriseDB.

    Rohit has done MBA from Babson College in Corporate Entrepreneurship. Rohit did his Masters in Computer Science from Boston University and Harvard University. Rohit is a regular speaker at No Fluff Just Stuff, UberConf, RichWeb, GIDS, and other international conferences.

    Rohit loves to connect on http://linkedin.com/in/rohit-bhardwaj-cloud or using Twitter at rbhardwaj1




NEJUG Calendar

Recent Events
  • You’ve probably heard of MicroProfile, but how do you go from buzz to production? In this code-heavy, interactive presentation, we’ll describe how to use OpenTracing (http://opentracing.io/) with Jaeger (https://www.jaegertracing.io/)  and annotations in MicroProfile and other Microservice architectures to reliably improve and deploy updated versions your applications to OpenShift and Kubernetes in the cloud.  Topics include best practices for performance analysis, maintaining delivery pipelines using the Linux command line, plus tips on the best free OpenTracing tools and SDKs available on GitHub.

     

    NOTE: This meeting is NOT on our normal "second-Thursday" schedule.

     

  • The popularity of Amazon's Alexa and Google Home has been inspiring both developers and businesses to think about Voice computing. From a banking assistant on your phone to grocery shopping on your TV - it is truly exciting to see how Voice Interfaces could be used. The challenge, however, is that most Voice Apps are fairly limited in what they can do.

    In this talk, Vineet shares experiences from prototyping and building over a dozen Voice Apps. He shows how practical decisions can make implementing great apps easy, reviews existing tools that have been built and talks about Violet (http://helloviolet.ai/) an Open-Source Voice App Framework designed to help developers create Voice Apps. Violet uses an approach inspired by Angular and React to simplify the complexity needed when manually building using other lower-level frameworks, while providing for more flexibility than the drag-and-drop non-technical tools on the market.

  • Learning a new programming language doesn’t have to be hard. Sure, there’s a lot of new stuff to wrap your head around: syntax, keywords and symbols, conventions, how to define variables and methods, arrays, and the list go on and on! But what if there were a technique and toolkit you could use to master a new language fast?

    In this session, Richard Kasperowski introduces mob programming and code koans. Mobbing is about getting all the best minds working on the same computer at the same time. Code koans are a series of micro-puzzles that teach you the new language in little chunks, using test-driven development. We’ll mob together on a set of code koans to learn a new language. Even better, we’ll decide on the language together! Current choices include C++, Java, JavaScript, Python, and Ruby.

    Who should attend? Anyone who wants to learn about mob programming and how to learn a new language.

     

    We would like to thank our event host Chewy.com for all the support for making this event possible in Downtown Boston. 

     

    • The venue will open at 5:30 PM for networking, so come early and meet everyone else. 
    • Pizza, drinks (including beer!)  sponsored by Chewy --- there will be some Gluten free pizza as well.
    • There will be a 15 minutes Lighting Talk at 6:00 by Marco Ferrer, Software Engineer at Chewy.

     

    If you have any questions, feel free contact Mahesh Acharya (Nejug Event Coordinator) at 617 767 Three One Seven One.

    We would like to thank the following volunteers:

    Photography: George Yazbeck

    Videography:  Francis Solis Olivares

     

     

  • Resilient architecture is crucial for all cloud implementations. In this talk, we explore different design patterns to make a distributed application more resilient. 

    As part of this journey, for any process, we need to ask what if something goes wrong? Then, plan a course of action to the process auto heal without any human intervention and how to lower risks by performing canary deployments. Design starts with at first understanding of requirements and performing empathy map and value chain analysis. 

    Thinking application as stateless for all the API calls makes the system available most of the time requires creating a cache for common distributed data. Next, we examine how to deal with cascading failures, and timeouts scenarios.  Applications, as part of auto-healing, need to Detect, Prevent, Recover, Mitigate, Complement so that the service is resilient. 

    Key takeaways for the audience are as follows:

    • Resiliency is essential for any feature in cloud
    • Understanding the value chain is critical to identify failure points
    • Challenges come in identifying if there is a failure and design the system for auto healing
    • Focus should be first to prevent a failure to occur. 
    • Identifying key challenges in your company and tools and techniques to auto-heal and provide a sustainable solution