<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Rohit Akiwatkar</title>
    <description>The latest articles on Forem by Rohit Akiwatkar (@rohitakiwatkar).</description>
    <link>https://forem.com/rohitakiwatkar</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F33886%2F65e50330-b9b7-4395-a6a6-c0e5aa7dd223.jpg</url>
      <title>Forem: Rohit Akiwatkar</title>
      <link>https://forem.com/rohitakiwatkar</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/rohitakiwatkar"/>
    <language>en</language>
    <item>
      <title>Can you use Serverless Everywhere? Any Drawbacks?</title>
      <dc:creator>Rohit Akiwatkar</dc:creator>
      <pubDate>Fri, 09 Mar 2018 14:28:24 +0000</pubDate>
      <link>https://forem.com/rohitakiwatkar/can-you-use-serverless-architecture-everywhere-any-drawbacks--gfj</link>
      <guid>https://forem.com/rohitakiwatkar/can-you-use-serverless-architecture-everywhere-any-drawbacks--gfj</guid>
      <description>&lt;p&gt;&lt;em&gt;Update: I recently wrote a post on different &lt;a href="https://www.simform.com/serverless-examples-aws-lambda-use-cases/" rel="noopener noreferrer"&gt;use cases of serverless&lt;/a&gt;. A list of 10 serverless use-cases which is a good introduction to the areas in which serverless can be useful. Though the article is AWS focused, these ideas can obviously be used elsewhere.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;As a huge promotor of serverless, I am very positive about its future. But I feel bad when this technology is falsely lauded as a panacea for all the future applications.&lt;br&gt;
&lt;iframe class="tweet-embed" id="tweet-944776732380356608-934" src="https://platform.twitter.com/embed/Tweet.html?id=944776732380356608"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-944776732380356608-934');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=944776732380356608&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A discussion on the drawbacks of this technology will give new developers and cloud architects a complete picture.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  For the beginners
&lt;/h2&gt;

&lt;p&gt;Serverless architectures refer to applications that significantly depend on third-party services (knows as Backend as a Service or “BaaS”) or on custom code that’s run in ephemeral containers (Function as a Service or “FaaS”), the best-known vendor host of which currently is AWS Lambda.&lt;/p&gt;

&lt;p&gt;Despite the name, it does not actually involve running code without servers. The name “serverless computing” is used because the business or person that owns the system does not have to purchase, rent, or provision servers or virtual machines for the back-end code to run on.  &lt;/p&gt;

&lt;p&gt;Below are some of the prominent drawbacks in serverless technology&lt;/p&gt;

&lt;h2&gt;
  
  
  Problems Due to Third-Party API Systems (Simply Vendor Lockin!!)
&lt;/h2&gt;

&lt;p&gt;Startups are agile boats, but the decisions you make initially have rippling consequences over time. There is a reason why cloud providers offer $100,000 initial credit to early-stage startups.&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-961613404585721856-735" src="https://platform.twitter.com/embed/Tweet.html?id=961613404585721856"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-961613404585721856-735');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=961613404585721856&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;Once you make your initial infrastructure on a particular cloud it becomes very difficult to migrate out of it. Vendor control, multitenancy problems, vendor lock-in, and security concerns are some of the problems due to the use of third-party APIs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Lack of Operational Tools
&lt;/h2&gt;

&lt;p&gt;The developers are dependent on vendors for debugging and monitoring tools. Debugging distributed systems is difficult and usually requires access to a significant amount of relevant metrics to identify the root cause. But recently many tools have come up in the serverless ecosystem for - &lt;br&gt;
Monitoring - Epsagon, IOpipe, Dashbird, Stackery&lt;br&gt;
Security - PureSec, Sync, TwistLock &lt;/p&gt;

&lt;h2&gt;
  
  
  Architectural Complexity
&lt;/h2&gt;

&lt;p&gt;Decisions about how small (granular) the function should be, take the time to assess, implement and test. It gets cumbersome to manage too many functions, and ignoring granularity will end up creating mini-monoliths.&lt;/p&gt;

&lt;p&gt;AWS Lambda, for now, limits you to how many concurrent executions you can be running on all your lambdas. The problem here is that this limit is across your whole AWS account. Some organizations use the same AWS account for both production and testing. That means if someone, somewhere in your organization does a new type of load test and starts trying to execute 1,000 concurrent Lambda functions, you’ll accidentally Denial of service (DoS) your production applications.&lt;/p&gt;

&lt;h2&gt;
  
  
  Testing Headache
&lt;/h2&gt;

&lt;p&gt;Integration testing serverless apps are tough. The units of integration with Serverless FaaS (i.e. each function) are a lot smaller than with other architectures and therefore we rely on integration testing a lot more than we may do with other architectural styles.&lt;/p&gt;

&lt;h2&gt;
  
  
  Implementation Drawbacks
&lt;/h2&gt;

&lt;p&gt;Problems related to deployment, versioning, and packaging also exist. You may need to deploy a FaaS artifact separately for every function in your entire logical application. It also means you can’t atomically deploy a group of functions. On top of it, there’s no concept of versioned applications so atomic rollback isn’t an option. You may need to turn off whatever event source is triggering the functions, deploy the whole group, and then turn the event source back on.&lt;/p&gt;

&lt;h2&gt;
  
  
  Related Services
&lt;/h2&gt;

&lt;p&gt;Architectural components such as &lt;a href="https://www.simform.com/serverless-databases/" rel="noopener noreferrer"&gt;serverless databases&lt;/a&gt;, frameworks, libraries are not mature and developers don't have a wide range of choices.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2F1LUwUUK.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2F1LUwUUK.png" alt="Latency Issue"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Other drawbacks are &lt;strong&gt;performance related issues&lt;/strong&gt; in functions, security vulnerability (susceptible to DoS attack), event-driven architectural problems such as - snowball effect due to cascading events, asynchronous side-effects, and poison messages.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;The serverless code can be used in conjunction with code written in traditional server style, such as microservices. For example, part of an application could be written as microservices using compute instances and another part could be written as serverless code. Alternatively, very few application could be written that uses no provisioned servers at all, being completely serverless.&lt;/p&gt;

&lt;p&gt;If there is any other drawback which you want me to discuss, please mention in the comment section. Looking forward to the views of Dev community.&lt;/p&gt;

</description>
      <category>serverless</category>
      <category>cloud</category>
      <category>discuss</category>
    </item>
    <item>
      <title>How feasible is Serverless technology for startups?</title>
      <dc:creator>Rohit Akiwatkar</dc:creator>
      <pubDate>Wed, 31 Jan 2018 12:48:34 +0000</pubDate>
      <link>https://forem.com/rohitakiwatkar/how-feasible-is-serverless-technology-for-startups-3onj</link>
      <guid>https://forem.com/rohitakiwatkar/how-feasible-is-serverless-technology-for-startups-3onj</guid>
      <description>&lt;p&gt;If you are working with a startup, you know that it is a race against time and money.&lt;br&gt;
I have been evaluating a lot of &lt;a href="https://www.simform.com/ecosystem-serverless-technologies/"&gt;serverless technologies&lt;/a&gt; for our clients who are looking to build applications with serverless components. Now that there is a new project ahead of us, we are wondering if it is a perfect fit for our requirements or not.&lt;/p&gt;

&lt;p&gt;Since it’s a simple app but has huge potential to scale,  we are thinking to go for microservices or continue with monoliths? The application is just going to perform user authentication, registration, push notifications and standard CRUD operations, however, it might have a CRON in the background sending updates to the app. &lt;/p&gt;

&lt;p&gt;Here are some of the questions we are looking answers for: &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;As per my experience, service-based architecture adds a lot of complexity and communication overhead. If we have a team of 100 engineers, we can divide the project into small pieces that can be worked upon by a manageably sized team. Since the initial project team is small, I am not sure microservice will be a good fit. However, we are looking forward to good scalability options. What is your experience?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Serverless seems to be a new kid on the block and the use cases are still fit into a bit of a narrow band. Also, I am particularly not sure about serverless performance and how it operates in a development environment for rapid test/prototyping. How about cold-hot startup time and concurrency? &lt;br&gt;
Liquid error: internal&lt;br&gt;
&lt;/p&gt;
&lt;blockquote class="ltag__twitter-tweet"&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--KH7gsInN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/868870643541958658/0r5UjWr-_normal.jpg" alt="Drew Firment profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Drew Firment
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        @drewfirment
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      &lt;a href="https://twitter.com/RohitAkiwatkar"&gt;@RohitAkiwatkar&lt;/a&gt; increasing the size of allocated memory not only increases performance (and costs), but also the consistency and predictability of your functions &lt;a href="https://t.co/OGudCk5ZSg"&gt;bit.ly/2CHepKC&lt;/a&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      21:19 PM - 02 Jan 2018
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=948302640223604741" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=948302640223604741" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=948302640223604741" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;But most importantly we envision faster time to market and are looking forward to improving our MVP by circling back around and ironing out the imperfections and operational issues. How good is serverless for this?&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Looking forward to the views of Dev community. Let me know what do you think about this case. Also, if there is anything I should be considering, please mention in the comment section.&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>serverless</category>
      <category>aws</category>
    </item>
  </channel>
</rss>
