<?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>DEV Community: Luca Bianchi</title>
    <description>The latest articles on DEV Community by Luca Bianchi (@aletheia).</description>
    <link>https://dev.to/aletheia</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%2F274488%2Ffcd513bb-362b-4898-be64-786229342c53.png</url>
      <title>DEV Community: Luca Bianchi</title>
      <link>https://dev.to/aletheia</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/aletheia"/>
    <language>en</language>
    <item>
      <title>AII4DEVS #10: Diverse knowledge is the key to grow the next generation of ML practitioners into AI engineers.</title>
      <dc:creator>Luca Bianchi</dc:creator>
      <pubDate>Sun, 04 Jul 2021 12:38:46 +0000</pubDate>
      <link>https://dev.to/aws-heroes/aii4devs-10-diverse-knowledge-is-the-key-to-grow-the-next-generation-of-ml-practitioners-into-ai-engineers-8a9</link>
      <guid>https://dev.to/aws-heroes/aii4devs-10-diverse-knowledge-is-the-key-to-grow-the-next-generation-of-ml-practitioners-into-ai-engineers-8a9</guid>
      <description>&lt;p&gt;Diverse knowledge is the key to grow the next generation of ML practitioners into AI engineers. Our weekly newsletter becomes bi-weekly, with more content, deep dives, and lands on Medium's most relevant publication.&lt;/p&gt;

&lt;h2&gt;
  
  
  The road so far…
&lt;/h2&gt;

&lt;p&gt;When the AI4DEVS newsletter started, it was just an experiment following a gentle nudge from people asking to have a reference about what’s new on AI and machine learning. The fun part of the story is that all these requests came mainly from peers with no prior expertise in data science willing to get started somewhere.&lt;/p&gt;

&lt;p&gt;The last few years saw an unprecedented evolution in the technical role of machine learning experts, growing to a mere wizard pulling complex spells out from their arcane books into an engineering profession, with workflows and best practices to bring any machine learning project to a successful production. The well-known Facebook anecdote of &lt;em&gt;“less than 10% of our AI projects makes it to production”&lt;/em&gt; is not acceptable anymore if these competencies are becoming mainstream if we’re approaching the Fourth Industrial Revolution.&lt;/p&gt;

&lt;p&gt;AI4DEVS was born out of an attempt to empower people with the knowledge they needed to start their journey. Week after week, a lot of feedback coming to the newsletter better shaped this feeling about &lt;em&gt;what people need&lt;/em&gt;: a newsletter that is a mere collection of URLs is good enough if you have time, but it is not great enough to make people deep dive into the content. People, especially technical folks with no time to experiment on their own, need someone to shed light on these results, in the form of curated comments and hints of discussion, to build a strong opinion about what could and what couldn’t work them. This is why AI4DEVS took a few weeks off and comes back with a new format that will hopefully support people to leap AI.&lt;/p&gt;

&lt;h3&gt;
  
  
  A new beginning
&lt;/h3&gt;

&lt;p&gt;The AI4DEVS newsletter is evolving with its tenth issue, becoming longer and shifting to a bi-weekly publication. Content will be curated by a team of data scientists, developers, and guest experts willing to support this initiative. Moreover, this initiative is thought from the community, for the community so that the obvious choice would be to Our final goal remains the same: to empower people adopting machine learning and AI in what they love, thus building the deep transformation we believe these technologies can bring to our lives.&lt;/p&gt;

&lt;h2&gt;
  
  
  Trending topics
&lt;/h2&gt;

&lt;p&gt;In many applications, just having a good prediction is not enough, but we need a way to understand “why” a model produced such a result. Think about a model deciding who will get a loan: regulatory constraints require knowing why a given contract is approved or rejected perfectly. This happens because models could incur bias either in data or within the models themselves. Bias detection is one fundamental step in &lt;strong&gt;explainable AI,&lt;/strong&gt; and it is getting more and more attention in recent months. Shashwat Siddhant explains &lt;a href="https://www.linkedin.com/pulse/reducing-bias-ai-diversity-inclusion-shashwat-siddhant/"&gt;all the issues related to bias&lt;/a&gt; in machine learning and how to identify them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Real-life use cases
&lt;/h2&gt;

&lt;p&gt;One of my favorite approaches to machine learning is the practical “learn by doing.” Hence AWS offers a great use case with this post about &lt;a href="https://aws.amazon.com/it/blogs/machine-learning/using-machine-learning-to-predict-vessel-time-of-arrival-with-amazon-sagemaker/"&gt;**vessel time arrival prediction&lt;/a&gt;*&lt;em&gt;. Maybe ship tracking is not your job, but this concrete use case offers a great example of handling tabular structured data. Moreover, the post showcases how to address a machine learning project, framing the problem, understanding the data, and engineering features. In this scenario, vessel position is computed as well as vessel efficiency. In the end, this post is a nice and comprehensive use case for *scikit-learn&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;One of the most underrated capabilities of Amazon Rekognition is Custom Labels, which enable image classification customization on specific datasets. A great use case for this managed service is Ostervall which &lt;a href="https://aws.amazon.com/it/blogs/machine-learning/automate-car-insurance-claims-processing-with-autonet-and-amazon-rekognition-custom-labels/"&gt;uses this amazing technology to classify claims to insurance&lt;/a&gt; companies from driver images. Amazon Rekognition is used to classify the type of damage and identify where the damage is within an image.&lt;/p&gt;

&lt;p&gt;On the Natural Language Processing side, a great application comes from Daniel Wellington’s service department implementation of Amazon Translate to &lt;a href="https://aws.amazon.com/it/blogs/machine-learning/how-daniel-wellingtons-customer-service-department-saved-99-on-translation-costs-with-amazon-translate/"&gt;reduce translation costs for their customer care services&lt;/a&gt;, which led to providing answers to customer issues in their home language. An application developed in less than two weeks reduced operational costs by 90% and improved team response time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Frameworks and libraries
&lt;/h2&gt;

&lt;p&gt;To all folks in love with &lt;strong&gt;Rust&lt;/strong&gt; programming language, &lt;a href="https://github.com/rust-ml/linfa"&gt;**linfa&lt;/a&gt;** is a promising library to check out: a complete porting of the well known &lt;em&gt;scikit-learn&lt;/em&gt; library, which enables common preprocessing tasks and classical ML algorithms such as clustering, linear learners, logistic regression, and decision trees as well as support vector machines and Bayesian algorithms such as Naive Bayes. We all know that Python has the 98% of the machine learning languages market share, but if I looked to something else, a super-fast Rust implementation would be my first stop.&lt;/p&gt;

&lt;h2&gt;
  
  
  Engineering Machine Learning
&lt;/h2&gt;

&lt;p&gt;In &lt;a href="https://www.youtube.com/watch?v=Ta14KpeZJok"&gt;a recent panel&lt;/a&gt;, Ryan Keenan joined together Andrew Ng, Robert Crowe, Laurence Moroney, Chip Huyen, and Rajat Monga to discuss how MLOps shapes the future of machine learning production engineering.&lt;/p&gt;

&lt;p&gt;Speaking of MLOps, &lt;strong&gt;Julien Simon&lt;/strong&gt;, technical evangelist at AWS, presents Amazon SageMaker comprehensive set of applications within their platform to enable project management. It’s pretty scary to understand how many tools can be used to address every aspect, from data cleaning to feature engineering, model training, and bias evaluation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where to go from here?
&lt;/h2&gt;

&lt;p&gt;AI4DEVS is coming back in two weeks with a new issue full of machine learning use cases, MLOps stuff, and outlines from the world of AI.&lt;/p&gt;

&lt;p&gt;If you are interested in joining the team, send me a DM, and we’ll start a discussion.&lt;/p&gt;

</description>
      <category>machinelearning</category>
      <category>ai</category>
      <category>aws</category>
    </item>
    <item>
      <title>AI4DEVS: Issue #7</title>
      <dc:creator>Luca Bianchi</dc:creator>
      <pubDate>Thu, 29 Apr 2021 21:56:30 +0000</pubDate>
      <link>https://dev.to/aws-heroes/ai4devs-issue-7-3ac4</link>
      <guid>https://dev.to/aws-heroes/ai4devs-issue-7-3ac4</guid>
      <description>&lt;h2&gt;
  
  
  It's SageMaker month!
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://ai4devs.io/issue-20210416-006"&gt;Last issue&lt;/a&gt; presented AI in medicine, NLP, and serverless adoption AI. This week we start unwrapping what NVidia GTC, space, and food have in common, while we enter the SageMaker month!&lt;/p&gt;

&lt;h3&gt;
  
  
  Here are our top picks of the week!
&lt;/h3&gt;

&lt;p&gt;Just at the beginning of its annual conference, NVidia CEO Jensen Huang, announced the availability of &lt;a href="https://developer.nvidia.com/blog/announcing-megatron-for-training-trillion-parameter-models-nvidia-jarvis-availability/"&gt;its massive parameters NLP model&lt;/a&gt;. Since the cool thing in language processing nowadays are transformer models, this trillion parameters model could have no other name than Megatron.&lt;/p&gt;

&lt;p&gt;This pandemic situation made clear we need more empathy and emotions to be shared. The Washington Post &lt;a href="https://developer.nvidia.com/blog/ai-generated-art-accompanies-pandemic-poetry-washington-post/"&gt;tries to fill this gap joining poetry and generated Art using GANs&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Cooking can be art on its own, but mixing different flavors is not something for every taste. Now FlavorGraph &lt;a href="https://developer.nvidia.com/blog/flavorgraph-serves-up-food-pairings-with-ai-molecular-science/"&gt;uses AI to predict how two ingredients will pair togheter&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This application of computer vision classification, to &lt;a href="https://developer.nvidia.com/blog/flavorgraph-serves-up-food-pairings-with-ai-molecular-science/"&gt;catalog Distant Galaxies from Penn University&lt;/a&gt;, is a cool massive leap into a better understanding of our not so close neighbors.&lt;/p&gt;

&lt;h3&gt;
  
  
  Upcoming events and announcements
&lt;/h3&gt;

&lt;h4&gt;
  
  
  It's the SageMaker month
&lt;/h4&gt;

&lt;p&gt;Starting from April 20th for one month, AWS is going to publish content, announcements, and use cases about Amazon SageMaker. &lt;a href="https://aws.amazon.com/sagemaker/sagemaker-month/"&gt;Be sure to check out the updated recap every day&lt;/a&gt; or come back here for selected top picks!&lt;/p&gt;

&lt;h4&gt;
  
  
  AWS Machine Learning Summit Registration now open
&lt;/h4&gt;

&lt;p&gt;This &lt;a href="https://aws.amazon.com/events/summits/machine-learning/"&gt;long-awaited event&lt;/a&gt; is back in a fully virtual fashion, on June 2nd in the Americas and June 3rd in Europe and Asia with a day full of top-level speakers. &lt;a href="https://aws.amazon.com/events/summits/machine-learning/"&gt;Be sure to reserve your spot!&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And this is all for this week. Stay tuned and subscribe to be always up to date with the latest news in AI and machine learning applications.&lt;/p&gt;

&lt;p&gt;Thank you for reading, see you next week! &lt;/p&gt;




&lt;h4&gt;
  
  
  About the AI4DEVS
&lt;/h4&gt;

&lt;p&gt;AI4DEVS is a weekly selection of curated AI news selected from the internet by a community of professionals to help you add a bit of AI in your next project or better understand its applications.&lt;/p&gt;

&lt;p&gt;This newsletter would haven’t been possible without ML specialists’ joint efforts and AWS Heroes  &lt;a href="https://twitter.com/virtualgill"&gt;Gillian Armstrong&lt;/a&gt;,  &lt;a href="https://aws.amazon.com/it/developer/community/heroes/pavlos-mitsoulis/?did=dh_card&amp;amp;trk=dh_card"&gt;Pavlos Mitsoulis Ntompos&lt;/a&gt;, and  &lt;a href="https://aws.amazon.com/it/developer/community/heroes/alex-schultz/?did=dh_card&amp;amp;trk=dh_card"&gt;Alex Schultz&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;A special mention to &lt;a href="https://twitter.com/cameronperon"&gt;Cameron Peron&lt;/a&gt; and  &lt;a href="https://twitter.com/alex_casalboni"&gt;Alex Casalboni&lt;/a&gt; for their steady support and incentive to raise the bar for the community, pushing more people to embrace Artificial Intelligence.&lt;/p&gt;

&lt;p&gt;Thank you for reading, see you next week! &lt;/p&gt;

&lt;p&gt;Cheers,&lt;/p&gt;

&lt;p&gt;Luca&lt;/p&gt;

&lt;p&gt;%%[ga]&lt;/p&gt;

</description>
      <category>art</category>
      <category>ai</category>
      <category>food</category>
    </item>
    <item>
      <title>AI4DEVS: Issue #6</title>
      <dc:creator>Luca Bianchi</dc:creator>
      <pubDate>Thu, 15 Apr 2021 21:05:05 +0000</pubDate>
      <link>https://dev.to/aws-heroes/ai4devs-issue-6-3jed</link>
      <guid>https://dev.to/aws-heroes/ai4devs-issue-6-3jed</guid>
      <description>&lt;h2&gt;
  
  
  Serverless and AI, a match made in Heaven
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://ai4devs.io/issue-20210409-005"&gt;Last week&lt;/a&gt; talked about winning your customer base, detecting objects and diseases using AI. This week we explore how to improve medical diagnosis management, introduce some fundamentals of NLP, and what does means serverless to AI.&lt;/p&gt;

&lt;h3&gt;
  
  
  Here are our top picks of the week!
&lt;/h3&gt;

&lt;p&gt;Health and Medical AI applications are becoming the new normal in diagnosis, but this is just half of the story. A compelling AI system should be able to infer from previous reports, thus detecting the usage of medical terms. Ram Vegiraju explains how &lt;a href="https://link.medium.com/54RubFeGjfb"&gt;AWS Comprehend Medical can be used for Medical Entity Detection using&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Comprehend is one of the powerful tools we can leverage to implement Natural Language Processing or NLP for short. to deep dive into these practices, Ketan Doshi &lt;a href="https://link.medium.com/av3aL0kGjfb"&gt;does a gentle introduction to NLP&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I am a huge fan of serverless, and Jeremy Daly does a great job interviewing Alexandra Abbas in this new &lt;a href="https://www.serverlesschats.com/96/"&gt;Serverless Chats episode exploring how AI can match it to raise the bar of your next project&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Finally, an advanced example of machine learning model handling, &lt;a href="https://aws.amazon.com/it/blogs/machine-learning/hawkeye-360-uses-amazon-sagemaker-autopilot-to-streamline-machine-learning-model-development-for-maritime-vessel-risk-assessment/"&gt;through Sagemaker Autopilot&lt;/a&gt;. Model hyperparameters fine-tuning is not an easy task. Still, this use case is explanatory of the potential and wide range of applications.&lt;/p&gt;

&lt;h4&gt;
  
  
  Upcoming events
&lt;/h4&gt;

&lt;p&gt;We're just wrapping up a week full of AI with &lt;a href="https://www.nvidia.com/en-us/gtc/"&gt;nVidia GTC conference&lt;/a&gt;. We'll talk about all of them in a future episode, but there is a lot of juice coming from this conference.&lt;br&gt;
If you wish to approach Machine Learning on AWS, I could suggest attending this workshop on &lt;a href="https://amazonsagemakerworkshops.splashthat.com/"&gt;getting started with Amazon Sagemaker&lt;/a&gt; on April 23rd.&lt;/p&gt;

&lt;p&gt;And this is all for this week. Stay tuned and subscribe to be always up to date with the latest news in AI and machine learning applications.&lt;/p&gt;

&lt;p&gt;Thank you for reading, see you next week! &lt;/p&gt;




&lt;h4&gt;
  
  
  About the AI4DEVS
&lt;/h4&gt;

&lt;p&gt;AI4DEVS is a weekly selection of curated AI news selected from the internet by a community of professionals to help you add a bit of AI in your next project or better understand its applications.&lt;/p&gt;

&lt;p&gt;This newsletter would haven’t been possible without ML specialists’ joint efforts and AWS Heroes  &lt;a href="https://twitter.com/virtualgill"&gt;Gillian Armstrong&lt;/a&gt;,  &lt;a href="https://aws.amazon.com/it/developer/community/heroes/pavlos-mitsoulis/?did=dh_card&amp;amp;trk=dh_card"&gt;Pavlos Mitsoulis Ntompos&lt;/a&gt;, and  &lt;a href="https://aws.amazon.com/it/developer/community/heroes/alex-schultz/?did=dh_card&amp;amp;trk=dh_card"&gt;Alex Schultz&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;A special mention to &lt;a href="https://twitter.com/cameronperon"&gt;Cameron Peron&lt;/a&gt; and  &lt;a href="https://twitter.com/alex_casalboni"&gt;Alex Casalboni&lt;/a&gt; for their steady support and incentive to raise the bar for the community, pushing more people to embrace Artificial Intelligence.&lt;/p&gt;

&lt;p&gt;Thank you for reading, see you next week! &lt;/p&gt;

&lt;p&gt;Cheers,&lt;/p&gt;

&lt;p&gt;Luca&lt;/p&gt;

</description>
      <category>serveless</category>
      <category>tracking</category>
      <category>nlp</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>AI4DEVS: Issue #5</title>
      <dc:creator>Luca Bianchi</dc:creator>
      <pubDate>Thu, 08 Apr 2021 23:15:01 +0000</pubDate>
      <link>https://dev.to/aws-heroes/ai4devs-issue-5-1dhm</link>
      <guid>https://dev.to/aws-heroes/ai4devs-issue-5-1dhm</guid>
      <description>&lt;h2&gt;
  
  
  Harnessing the power of customers with AI
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://ai4devs.io/issue-20210402-004"&gt;Last week&lt;/a&gt; presented some interesting advancements in the NLP domain, which is living a renaissance. This week we talk about winning your customer base, detecting objects and diseases using AI.&lt;/p&gt;

&lt;h3&gt;
  
  
  Here are our top picks of the week!
&lt;/h3&gt;

&lt;p&gt;Building a strong customer base means predicting and preventing customer churn, then maximizing your customer lifetime value. Recent applications in the retail space are shifting from basic product recommendation systems based on previously bought items. &lt;a href="https://aws.amazon.com/it/personalize/"&gt;Amazon Personalize&lt;/a&gt; addresses a lot of use cases with its existing managed service. Still, this is a great article to &lt;a href="https://aws.amazon.com/it/blogs/machine-learning/building-a-customized-recommender-system-in-amazon-sagemaker/"&gt;start building your customized recommender system&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Looking for a detailed description about &lt;a href="https://cloud.google.com/solutions/machine-learning/clv-prediction-with-offline-training-intro?hl=it"&gt;what is Customer Lifetime Value&lt;/a&gt; and how you could detect this score for your customer base, this is a great place to land.&lt;/p&gt;

&lt;p&gt;One year ago, Facebook Research released a top-level, state-of-the-art machine learning model for object detection, named &lt;a href="https://github.com/facebookresearch/detectron2"&gt;Detectron2&lt;/a&gt;. Today this model is available as &lt;a href="https://aws.amazon.com/it/blogs/machine-learning/object-detection-with-detectron2-on-amazon-sagemaker/"&gt;a pre-built notebook on Amazon SageMaker&lt;/a&gt;. Just run the notebook, and you can use it within minutes.&lt;/p&gt;

&lt;p&gt;Computer vision is empowering every market, and even agriculture can deploy &lt;a href="https://aws.amazon.com/it/blogs/machine-learning/plant-leaf-disease-detection-with-amazon-rekognition-custom-labels/"&gt;a crop disease detection model&lt;/a&gt; with Amazon Rekognition Custom Labels.&lt;/p&gt;

&lt;p&gt;Your next doctor will probably be a machine learning model on the research landscape that now &lt;a href="https://www.nature.com/articles/s41598-021-87171-5"&gt;can read your laboratory data and detect your disease&lt;/a&gt; better than an average medical practitioner. Healthcare is an amazing field for data science, and we're just scratching the surface of what will be possible in the next few years.&lt;/p&gt;

&lt;h4&gt;
  
  
  Upcoming events
&lt;/h4&gt;

&lt;p&gt;Many of you asked for upcoming events and speaking opportunities in the machine learning world. This week two of the worldwide top events have been announced!&lt;br&gt;
&lt;a href="https://www.nvidia.com/en-us/gtc/"&gt;nVidia GTC conference&lt;/a&gt; is coming online next week (April 12-15th), and it is definitely the place to be whether you want to deep dive into deep learning stuff and have a glimpse of the near future. Never mind, you are not a skilled data scientist, be sure to attend at least the main keynotes: it's a great value for your time.&lt;br&gt;
A bit ahead of time, AWS announced the upcoming &lt;a href="https://aws.amazon.com/it/blogs/machine-learning/save-the-date-for-the-aws-machine-learning-summit-june-2-2021/"&gt;AWS Machine Learning Summit&lt;/a&gt; which is happening on June 2nd. This is a huge one-day event joining together researchers, visionaries, and state-of-the-art applications. Stay tuned for more info when registration opens.&lt;/p&gt;

&lt;p&gt;And this is all for this week. Stay tuned and subscribe to be always up to date with the latest news in AI and machine learning applications.&lt;/p&gt;

&lt;p&gt;Thank you for reading, see you next week! &lt;/p&gt;




&lt;h4&gt;
  
  
  About the AI4DEVS
&lt;/h4&gt;

&lt;p&gt;AI4DEVS is a weekly selection of curated AI news selected from the internet by a community of professionals to help you add a bit of AI in your next project or better understand its applications.&lt;/p&gt;

&lt;p&gt;This newsletter would haven’t been possible without ML specialists’ joint efforts and AWS Heroes  &lt;a href="https://twitter.com/virtualgill"&gt;Gillian Armstrong&lt;/a&gt;,  &lt;a href="https://aws.amazon.com/it/developer/community/heroes/pavlos-mitsoulis/?did=dh_card&amp;amp;trk=dh_card"&gt;Pavlos Mitsoulis Ntompos&lt;/a&gt;, and  &lt;a href="https://aws.amazon.com/it/developer/community/heroes/alex-schultz/?did=dh_card&amp;amp;trk=dh_card"&gt;Alex Schultz&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;A special mention to &lt;a href="https://twitter.com/cameronperon"&gt;Cameron Peron&lt;/a&gt; and  &lt;a href="https://twitter.com/alex_casalboni"&gt;Alex Casalboni&lt;/a&gt; for their steady support and incentive to raise the bar for the community, pushing more people to embrace Artificial Intelligence.&lt;/p&gt;

&lt;p&gt;Thank you for reading, see you next week! &lt;/p&gt;

&lt;p&gt;Cheers,&lt;/p&gt;

&lt;p&gt;Luca&lt;/p&gt;

&lt;p&gt;%%[ga]&lt;/p&gt;

</description>
      <category>machinelearning</category>
      <category>aws</category>
      <category>sagemaker</category>
      <category>churn</category>
    </item>
    <item>
      <title>AI4DEVS: Issue #1</title>
      <dc:creator>Luca Bianchi</dc:creator>
      <pubDate>Fri, 12 Mar 2021 18:42:51 +0000</pubDate>
      <link>https://dev.to/aws-heroes/ai4devs-the-evolution-of-artificial-intelligence-from-magic-art-to-engineering-practice-1j0k</link>
      <guid>https://dev.to/aws-heroes/ai4devs-the-evolution-of-artificial-intelligence-from-magic-art-to-engineering-practice-1j0k</guid>
      <description>&lt;h1&gt;
  
  
  The evolution of artificial intelligence from magic art to engineering practice
&lt;/h1&gt;

&lt;p&gt;In the last few years, machine learning has become mainstream and has been widely adopted by data scientists and a growing number of developers, architects, and decision-makers. This new age of AI makes tools and models more accessible to everyone without data science skills, but understanding these techniques will soon be the core foundation of any software project.&lt;br&gt;
When practitioners shift from a wizard pulling magic spells from an arcane book to an engineering professional, a change of mind is required to discover a new world of opportunities and many use cases.&lt;/p&gt;

&lt;p&gt;AI4DEVS is a weekly selection of curated AI news selected from the internet by a community of professionals to help you add a bit of AI in your next project or better understand its applications. &lt;/p&gt;

&lt;h3&gt;
  
  
  Here are our top picks of the week!
&lt;/h3&gt;

&lt;p&gt;Natural Language Processing (NLP) and Natural Language Understanding (NLU) have always been some of the most promising fields of AI, with many applications, even making  &lt;a href="https://aws.amazon.com/blogs/machine-learning/applying-voice-classification-in-an-amazon-connect-telemedicine-contact-flow/"&gt;a contact center able to diagnose COVID-19 using managed services&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;AI is becoming a tool to be used in everyday applications. Nothing more than a showcase about adding  &lt;a href="https://aws.amazon.com/it/blogs/machine-learning/translate-and-analyze-text-using-sql-functions-with-amazon-athena-amazon-translate-and-amazon-comprehend/"&gt;text analytics capabilities into an existing workflow&lt;/a&gt;  makes the point.&lt;/p&gt;

&lt;p&gt;Finally, if you want to be amazed by what AI can do today, check out this video about  &lt;a href="https://www.youtube.com/watch?v=Lu56xVlZ40M&amp;amp;t=187s"&gt;OpenAI playing hide and seek&lt;/a&gt;  in a simulated environment. Impressive!&lt;/p&gt;




&lt;h4&gt;
  
  
  About the Authors
&lt;/h4&gt;

&lt;p&gt;This newsletter would haven’t been possible without ML specialists’ joint efforts and AWS Heroes  &lt;a href="https://twitter.com/virtualgill"&gt;Gillian Armstrong&lt;/a&gt;,  &lt;a href="https://aws.amazon.com/it/developer/community/heroes/pavlos-mitsoulis/?did=dh_card&amp;amp;trk=dh_card"&gt;Pavlos Mitsoulis Ntompos&lt;/a&gt;, and  &lt;a href="https://aws.amazon.com/it/developer/community/heroes/alex-schultz/?did=dh_card&amp;amp;trk=dh_card"&gt;Alex Schultz&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Thank you for reading, see you next week! &lt;/p&gt;

&lt;p&gt;Cheers,&lt;/p&gt;

&lt;p&gt;Luca&lt;/p&gt;

</description>
      <category>machinelearning</category>
      <category>ai</category>
      <category>cloud</category>
      <category>aws</category>
    </item>
    <item>
      <title>AWS Heroes reactions to Swami Sivasubramanian keynote on Machine Learning</title>
      <dc:creator>Luca Bianchi</dc:creator>
      <pubDate>Wed, 09 Dec 2020 06:11:13 +0000</pubDate>
      <link>https://dev.to/aws-heroes/aws-heroes-reactions-to-swami-sivasubramanian-keynote-on-machine-learning-cjj</link>
      <guid>https://dev.to/aws-heroes/aws-heroes-reactions-to-swami-sivasubramanian-keynote-on-machine-learning-cjj</guid>
      <description>&lt;p&gt;This year re:Invent has been quite far from usual: firstly, the conference is entirely online. Secondly, it is lasting three weeks in a row, with a bonus update scheduled for mid-January. Bonus point, we just had a dedicated Keynote entirely focused on machine learning delivered by Swami Sivasubramanian, VP Amazon AI.&lt;/p&gt;

&lt;p&gt;Since talking about machine learning is super cool, and AWS is announcing a lot of new features and services, Swami is not the only keynote with AI stuff in it: Andy Jassy delivered a couple of mind-blowing news last Tuesday, and Dr. Matt Wood joined Swami to further deep dive into presented topics.&lt;/p&gt;

&lt;p&gt;Being an AWS Hero, with interests in machine learning and serverless, makes my job wonderful these days. &lt;br&gt;
Here a few reactions of fellow heroes:&lt;/p&gt;

&lt;p&gt;We had wonderful recaps from &lt;a href="https://virtualgill.medium.com/all-the-machine-learning-announcements-at-aws-re-invent-2020-ce3b9f917599"&gt;Gillian Armstrong&lt;/a&gt;, &lt;a href="https://zamirajaupaj.medium.com/machine-learning-keynote-liveblog-re-invent-2020-9abab404a280"&gt;Zamira Jaupaj&lt;/a&gt; and &lt;a href="https://www.facebook.com/groups/MDLI1/permalink/1748180432012664/"&gt;Or Hiltch&lt;/a&gt; about all the announcements.&lt;/p&gt;

&lt;h3&gt;
  
  
  SageMaker announcements
&lt;/h3&gt;

&lt;p&gt;A lot of features have been announced related to SageMaker. As Mike Chambers pointed out, it appears clear that AWS is trying to onboard data scientists with no prior cloud expertise and provide machine learning capabilities to developers without any data science knowledge.&lt;/p&gt;

&lt;p&gt;One step towards this ambitious goal has been the announcement last week of &lt;strong&gt;SageMaker Data Wrangler&lt;/strong&gt;, &lt;strong&gt;SageMaker Feature Store&lt;/strong&gt;, and **SageMaker Pipelines.&lt;/p&gt;

&lt;p&gt;This week, Swami presented another interesting feature, focused on model bias detection and  explainability: Amazon &lt;strong&gt;SageMaker Clarify&lt;/strong&gt;, which has been received with enthusiasm:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"It helps you to detect biases in your dataset. I think it's fantastic; it's just surfacing that this problem exists. A lot of people don't even realize this a problem at all. It's pretty amazing!"&lt;/em&gt;&lt;br&gt;
&lt;a href="https://www.linkedin.com/in/jedberg/"&gt;Jeremy Edberg&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This feature could improve a lot the application of machine learning to many fields:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"I think it's a big step forward getting people thinking about ethics and AI and responsible AI"&lt;/em&gt;&lt;br&gt;
&lt;a href="https://www.linkedin.com/in/gillian-armstrong/"&gt;Gillian Armstrong&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Another common issue when dealing with machine learning models is related to profiling and debugging. Here comes &lt;strong&gt;Amazon Deep Profiling for SageMaker Debugger&lt;/strong&gt;, which offers the capability to drill down into how a model performs with his focus centered on visibility.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;" Visibility is key. Machine learning, especially when you are starting, is a kind of magic black box. I'd like things providing this sense of how things work"&lt;/em&gt;&lt;br&gt;
&lt;a href="https://www.linkedin.com/in/mikegchambers/"&gt;Mike Chambers&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Another enabling technology is easing things out for data scientists when dealing with deployments (or the so-called MLOps). Sagemaker Pipelines&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;_"AWS is surfacing services that are elsewhere and make them available within SageMaker."&lt;br&gt;
&lt;a href="https://www.linkedin.com/in/mikegchambers/"&gt;Mike Chambers&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In this direction moves also &lt;strong&gt;Amazon SageMaker Edge Manager&lt;/strong&gt; that aims to simplify deployments to edge devices from the cloud.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Hopefully now you can actually manage huge fleet of edge (deep learning) devices"&lt;/em&gt;&lt;br&gt;
&lt;a href="https://www.linkedin.com/in/guyernest/"&gt;Guy Ernest&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Bringing ML to databases
&lt;/h3&gt;

&lt;p&gt;In an effort to remove friction to developers using ML where data is, today AWS announced the support of its machine learning bridge for two additional databases: &lt;strong&gt;Amazon Redshift ML&lt;/strong&gt; and &lt;strong&gt;Amazon Neptune ML&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  New services
&lt;/h3&gt;

&lt;p&gt;A re:Invent keynote couldn't be over without the announcement of completely new services, and there they came: &lt;strong&gt;Amazon Lookout for Metrics&lt;/strong&gt; complements AWS solution stack in the anomaly detection domain, adding a flexible service for time series analysis which is probably at the core of &lt;strong&gt;Amazon Lookout for Equipment&lt;/strong&gt;, &lt;strong&gt;Amazon Lookout for Vision&lt;/strong&gt;, and &lt;strong&gt;Amazon Monitron&lt;/strong&gt;. Lookout for metrics exposes the capability to track multi-dimensional metrics and how they change through time.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"We've building anomaly detection systems for decades, but this makes things easier because you essentially need just to have an anomaly and figure out to detect it, but it was a lot of back and forth. But now it's just magic."&lt;/em&gt;&lt;br&gt;
&lt;a href="https://www.linkedin.com/in/jedberg/"&gt;Jeremy Edberg&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;" Applying ML to real-world use cases such as gluing a Lookout sensor to a manufacturing machine or connecting a Panorama appliance to a network of existing cameras is the right way to get ML to be useful for more people and companies"&lt;/em&gt;&lt;br&gt;
&lt;a href="https://www.linkedin.com/in/guyernest/"&gt;Guy Ernest&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Final thoughts
&lt;/h3&gt;

&lt;p&gt;AWS Heroes are amazed by the direction AWS is leading, pushing data scientists to the cloud and developers without prior expertise to the complex domain of artificial intelligence.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"What we have seen so far in reInvent 2020, and what we see again in Swami's keynote, is AWS focusing on getting real business and social value out of ML and AI, not just jumping on the latest shiny thing.  We see this with practical end-to-end hardware powered solutions like Monitron and Panorama, through to high level enabling announcements like Amazon HealthLake."&lt;/em&gt;&lt;br&gt;
&lt;a href="https://www.linkedin.com/in/mikegchambers/"&gt;Mike Chambers&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A complete &lt;a href="https://www.youtube.com/watch?v=BDe8833La5A"&gt;round-up of first impressions&lt;/a&gt; is also available in this panel held by &lt;a href="https://www.linkedin.com/in/mikegchambers/"&gt;Mike Chambers&lt;/a&gt; right after keynote end. Definitely to check out!&lt;/p&gt;

&lt;p&gt;This year machine learning keynote saw the rise of Amazon SageMaker Studio as a complete IDE for data scientists and the deployment of vertical solutions addressing industrial domains such as healthcare and industrial anomaly detection. It means AI and machine learning are becoming mainstream components in any real-world application, not just a promising research field. In this scenario, serverless or managed services offer a straightforward and clear advantage compared to on-premise deployment, either for model training, operation, and no model at all, which represent the real competitor to players such as AWS.&lt;/p&gt;




&lt;p&gt;Cover photo by &lt;a href="https://unsplash.com/@gabrielbassino?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Gabriel Bassino&lt;/a&gt; on &lt;a href="href="&gt;Unsplash&lt;/a&gt;&lt;/p&gt;

</description>
      <category>machinelearning</category>
      <category>aws</category>
      <category>reinvent2020</category>
      <category>ai</category>
    </item>
    <item>
      <title>Clean or dirty HVAC? Using Amazon SageMaker and Amazon Rekognition Custom Labels to automate detection</title>
      <dc:creator>Luca Bianchi</dc:creator>
      <pubDate>Tue, 17 Nov 2020 16:36:28 +0000</pubDate>
      <link>https://dev.to/aws-heroes/clean-or-dirty-hvac-using-amazon-sagemaker-and-amazon-rekognition-custom-labels-to-automate-detection-1mhp</link>
      <guid>https://dev.to/aws-heroes/clean-or-dirty-hvac-using-amazon-sagemaker-and-amazon-rekognition-custom-labels-to-automate-detection-1mhp</guid>
      <description>&lt;h1&gt;
  
  
  ML classification: Amazon Rekognition or Amazon SageMaker?
&lt;/h1&gt;

&lt;p&gt;Computer vision problems have been tackled using neural networks in recent years, obtaining unprecedented results and continuously raising the bar of accuracy to near-human performances.&lt;br&gt;
In this article, the focus is set on image classification in an uncommon context related to a Neosperience customer that provided the opportunity to compare two different approaches: Amazon Rekognition Custom Labels and Amazon SageMaker custom model.&lt;br&gt;
Both approaches have advantages and could find their spot in a given context, but Amazon Rekognition Custom Labels offer an interesting tradeoff between time-to-market and cost.&lt;/p&gt;
&lt;h1&gt;
  
  
  Alisea
&lt;/h1&gt;

&lt;p&gt;Machine Learning applications are steadily shifting from research domains to industry, opening a wide range of applications from simple object detection to people tracking in dangerous environments.&lt;br&gt;
In this scenario, brands decide to innovate their target market, introducing smart products with features made possible by modern machine learning applications.&lt;br&gt;
Alisea has led the Heating, Ventilation, and Air Conditioning (HVAC) systems sanitization market for almost two decades with over 3000 customers in Italy and abroad. Back in 2005, Alisea was born with a single mission: to offer the market the best HVAC hygienic management service with state-of-the-art innovations, without compromise.&lt;/p&gt;

&lt;p&gt;Alisea customers range from corporate offices to malls, supermarkets, and hotels. In recent years, in the US, private houses also adopted HVAC technologies to control air temperature due to better efficiency than standard air conditioning systems.&lt;br&gt;
Every HVAC plant requires periodic inspection, usually once a year, to provide a minimum hygiene level and reduce risks people.&lt;br&gt;
Unfortunately, in crowded environments, this cannot provide good enough guarantees about risk biological management: hazardous agents such as bacterias, dust, and viruses tend to reform faster than expected. &lt;br&gt;
To ensure the safest environment for people, air quality and plant status need to be checked frequently to avoid the spread of respiratory diseases, but it is an expensive procedure.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fqq7ex5soxdqdrhizpyuu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fqq7ex5soxdqdrhizpyuu.png" alt="Alt Text" width="800" height="192"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Introducing Remotair
&lt;/h2&gt;

&lt;p&gt;A few years ago, Alisea decided to innovate its market, start developing a new smart product, detect in near real-time duct status, and trigger alarms when air quality and cleanliness fall below a risk threshold.&lt;br&gt;
The system comprises a hardware board with pressure, humidity, CO2 sensors, and two cameras. Snapshots of duct status are taken periodically and should be processed by a machine learning model to understand whether or not the plant is dangerous to people. This feature has been called &lt;strong&gt;Visual Clean&lt;/strong&gt;&lt;/p&gt;
&lt;h1&gt;
  
  
  Implementation with a ResNet on Amazon SageMaker
&lt;/h1&gt;

&lt;p&gt;The first implementation of the Visual Clean machine learning model consisted of a ResNet50 neural network, trained using &lt;a href="//www.pytorch.org"&gt;PyTorch&lt;/a&gt; and &lt;a href="https://github.com/fastai/fastai"&gt;FastAI&lt;/a&gt; library with transfer learning and loss function adjustments. Also, a considerable effort was required through the phases of data preparation.&lt;br&gt;
The training phase required a couple of hours and a hundred epochs to reach a final accuracy score of 0.90 ~ 0.92.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F9viudvm35jg0qig0fkzs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F9viudvm35jg0qig0fkzs.png" alt="Alt Text" width="800" height="275"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The result has been a deep learning model, served through Amazon SageMaker, and invoked as an HTTP endpoint.&lt;br&gt;
It required having data scientists available to handle the task, prepare the dataset, build the network, and fine-tune the training phase to reach that score.&lt;/p&gt;
&lt;h1&gt;
  
  
  Amazon Rekognition Custom Labels
&lt;/h1&gt;

&lt;p&gt;As soon as AWS released Rekognition Custom Labels, we decided to compare the results to our Visual Clean implementation to the one produced by Rekognition.&lt;/p&gt;
&lt;h2&gt;
  
  
  Upload images
&lt;/h2&gt;

&lt;p&gt;The first step to create a dataset is to upload the images to S3 or directly to Amazon Rekognition.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fze3oil9eyiklrnh92xjm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fze3oil9eyiklrnh92xjm.png" alt="Alt Text" width="800" height="457"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fhc24wd6b9ofxbhv9lgwt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fhc24wd6b9ofxbhv9lgwt.png" alt="Alt Text" width="800" height="493"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Recently, the capability to upload images into the console has been added. However, reproducibility is fundamental in an industrial project, so we decided to upload data into an S3 bucket, divided into a folder for each label to predict, in our case, &lt;strong&gt;dirty&lt;/strong&gt; and &lt;strong&gt;clean&lt;/strong&gt;. Massive data uploads can be achieved through the command line with&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;aws s3 &lt;span class="nb"&gt;sync&lt;/span&gt; &amp;lt;source_path&amp;gt; s3://&amp;lt;destination_bucket&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once images have been uploaded, access policy must be set on the bucket to ensure Amazon Rekognition will access data. This can be done by adding to the bucket policies (in bucket properties within S3):&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fe4aq3shzhyzykia668x8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fe4aq3shzhyzykia668x8.png" alt="Alt Text" width="800" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Create a dataset
&lt;/h2&gt;

&lt;p&gt;Once images have been uploaded, a dataset can be created, providing a manifest file describing the available type of data.&lt;br&gt;
The manifest consists of a set of JSON lines added to the same file (&lt;em&gt;note:&lt;/em&gt; it is not a JSON file itself, but a plain text file containing JSON fragments). Each line has the structure:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"source-ref"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"s3://dataset/images/Slot123_clean.png"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"visual-clean-dataset-cleanliness"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"visual-clean-dataset-cleanliness-metadata"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"confidence"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"job-name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"labeling-job/visual-clean-dataset"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"class-name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"clean"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"human-annotated"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"yes"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"creation-date"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2020-06-26T17:46:39.176"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"groundtruth/image-classification"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To make things easy, images can be labeled through Amazon SageMaker Ground Truth or with a pre-defined folder structure (one for each label).&lt;/p&gt;

&lt;p&gt;The overall result is shown as follows:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Feh7pp3h39y6u460sewsu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Feh7pp3h39y6u460sewsu.png" alt="Alt Text" width="800" height="498"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Model training and evaluation
&lt;/h2&gt;

&lt;p&gt;Once a dataset has been built, just hitting the "Train Model" button triggers a training job, asking how to obtain a testing set. The simplest way is to let Rekognition split the existing dataset in 80% training and 20% testing.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fqwiu0rh2x4r0z20lins3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fqwiu0rh2x4r0z20lins3.png" alt="Alt Text" width="800" height="424"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After that, the training job starts and required a couple of hours to complete&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fwlat9masyn6zmenqy7gc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fwlat9masyn6zmenqy7gc.png" alt="Alt Text" width="800" height="381"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once the model has been trained, it is reported into the &lt;strong&gt;"Projects"&lt;/strong&gt; section of Amazon Rekognition Custom Labels with its evaluation.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fx6929mgy48apz7y0wpg9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fx6929mgy48apz7y0wpg9.png" alt="Alt Text" width="800" height="305"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Discovering that the Rekognition Custom Label model reached the same accuracy score of &lt;strong&gt;0.92&lt;/strong&gt; was mind-blowing. The overall training time stating that &lt;strong&gt;1.066&lt;/strong&gt; hrs were used a clear insight that Rekognition tries many different models and parameters simultaneously to find the best one.&lt;/p&gt;

&lt;p&gt;Once the model has been trained, it can be invoked directly through API, just passing an image to its endpoint:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;aws rekognition detect-custom-labels &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--project-version-arn&lt;/span&gt; &lt;span class="s2"&gt;"arn:aws:rekognition:eu-west-1:XXXXXXXXXX:project/alisea-visual-clean/version/alisea-visual-clean.2020-10-26T23.00.38/1603749XXXXX0"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--image&lt;/span&gt; &lt;span class="s1"&gt;'{"S3Object": {"Bucket": "dataset.alisea","Name": "clean/Slot_620.JPG"}}'&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--region&lt;/span&gt; eu-west-1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Since Amazon Rekognition Custom Label has an hourly price for the model, it can be stopped and started whenever required to reduce costs when no inference is required or to pack data processing efficiently.&lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusions
&lt;/h1&gt;

&lt;p&gt;Amazon Rekognition offers a viable solution to machine learning model development every time a custom classification model (either binary and multi-class) is required. It doesn't require a dedicated data scientist and can provide the same outcome. The pricing model is hourly based on a fixed cost of $1 for each training hour and $4 for each inference hour. Better profile cost can be achieved by optimizing the model active hours, thus reducing the working window.&lt;/p&gt;

</description>
      <category>amazonsagemaker</category>
      <category>aws</category>
      <category>computervision</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>Building a Neural Network on Amazon SageMaker with PyTorch Lightning</title>
      <dc:creator>Luca Bianchi</dc:creator>
      <pubDate>Mon, 13 Jul 2020 23:17:40 +0000</pubDate>
      <link>https://dev.to/aletheia/building-a-neural-network-on-amazon-sagemaker-with-pytorch-lightning-4ilh</link>
      <guid>https://dev.to/aletheia/building-a-neural-network-on-amazon-sagemaker-with-pytorch-lightning-4ilh</guid>
      <description>&lt;p&gt;&lt;a href="https://towardsdatascience.com/building-a-neural-network-on-amazon-sagemaker-with-pytorch-lightning-63730ec740ea?source=rss-6550450171ac------2"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--n27JfXDs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1920/1%2A3tQ4tDDAZHNqpjVQi36HkA.jpeg" alt="" width="800" height="607"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Leverage the power of Amazon SageMaker and PyTorch Lightning to build ML models avoiding to manage boilerplate code and infrastructure.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://towardsdatascience.com/building-a-neural-network-on-amazon-sagemaker-with-pytorch-lightning-63730ec740ea?source=rss-6550450171ac------2"&gt;Continue reading on Towards Data Science »&lt;/a&gt;&lt;/p&gt;

</description>
      <category>aws</category>
      <category>sagemaker</category>
      <category>machinelearning</category>
      <category>pytorch</category>
    </item>
    <item>
      <title>Neosperience Cloud empowering product development on AWS</title>
      <dc:creator>Luca Bianchi</dc:creator>
      <pubDate>Mon, 06 Jul 2020 15:16:00 +0000</pubDate>
      <link>https://dev.to/aletheia/neosperience-cloud-empowering-product-development-on-aws-b3m</link>
      <guid>https://dev.to/aletheia/neosperience-cloud-empowering-product-development-on-aws-b3m</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--05B_doga--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2AyNfNxazxsIYEG-zDolyVSA.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--05B_doga--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2AyNfNxazxsIYEG-zDolyVSA.jpeg" alt="" width="800" height="500"&gt;&lt;/a&gt;Neosperience aims to become the foundation of partners' product strategy and the backbone of our services. Photo by &lt;a href="https://unsplash.com/photos/V_y81v_lI4k"&gt;Mirko Blicke&lt;/a&gt; from &lt;a href="https://unsplash.com/"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Some of the companies joining us in the last few months brought non only strong domain expertise and technical competencies in their field (i.e., &lt;a href="https://www.mikamai.com/"&gt;MIkamai&lt;/a&gt;, &lt;a href="https://www.linkme.it/"&gt;LinkMe&lt;/a&gt;) but also widely adopted products, like &lt;a href="https://www.rubinred.com/ita/"&gt;Workup RubinRed&lt;/a&gt; Digital Commerce platform. Many to come in the next months as soon as we find top performers in their fields, willing to scale up and join our family. On a product strategy basis, it has not been easy to think which evolution model was the best to provide the best value for our customers.&lt;br&gt;&lt;br&gt;
On one side, we could adopt a centralized model with firm product feature decisions coming from a steering committee, including domain experts from our subsidiaries, at the risk of losing some particular point of view that gets flooded into an enormous backlog. On the other side, a decentralized model could empower teams taking ownership, but integration issues could become an issue.&lt;/p&gt;

&lt;h3&gt;
  
  
  The ruling or serving dilemma
&lt;/h3&gt;

&lt;p&gt;Company growth often means acquiring new teams that join your dream. The most challenging part of this process is to set up the relation between the leading company and its subsidiaries. Here at Neosperience, we developed through the years a sound technological structure that empowers several innovative solutions and their evolution through years while remaining with a modern approach and a strong knowledge of our customer experience domain. Every acquisition we made has been on an industrial basis, forecasting which companies we would like to join us bringing their domain knowledge to our family. Domain knowledge is an incredible value we would like to build into our products. So it comes to how we could make these reality express their full potential into Neosperience products.&lt;br&gt;&lt;br&gt;
We decided to make Neosperience Cloud the backbone of our products while letting them be great at what they already are with no external constraints. Our microservices architecture and wide adoption of technological standards make us able to provide powerful tools to our teammates. They could make a product more robust and interoperable.&lt;/p&gt;

&lt;h3&gt;
  
  
  Neosperience as the backbone of our products
&lt;/h3&gt;

&lt;p&gt;Neosperience Cloud is the foundation of solutions such as Unbreakable Community, Image Memorability and Nudging, and Gamification. We plan to make this happen for every product within our family. In the next months, we are going to expose Neosperience Cloud architectural services and design principles to let other products integrate with us, obtaining a set of ready-to-use AI services while getting seamless integration between every product.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kwrKDf7q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/800/1%2ASGgidWbv8Wznjgj0uKyKrQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kwrKDf7q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/800/1%2ASGgidWbv8Wznjgj0uKyKrQ.png" alt="" width="800" height="341"&gt;&lt;/a&gt;Neosperience Cloud becomes the foundation of Neosperience products, standardizing principles, libraries, and tools to ensure interoperability between our solutions.&lt;/p&gt;

&lt;p&gt;In 2020, we plan to let Neosperience become the backbone of our products, developing support among four distinct paths: guidelines, events, architecture, and tools. An ambitious outcome achieved through four pillars: guidelines, events, architecture, and tools.&lt;/p&gt;

&lt;h4&gt;
  
  
  1. Guidelines
&lt;/h4&gt;

&lt;p&gt;Neosperience Cloud is the expression of many best practices in software engineering carved through the last decade of product development. Such expertise is a value we have to share with our peers. Sometimes these guidelines should be suggested even vigorously because they seem time-consuming at first sight but become valuable in the long run. We propose the adoption of the following modern software development principles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a &lt;strong&gt;shared unified Design Library&lt;/strong&gt; , to provide our customers with a consistent experience through our solutions. Interaction principles adopt easy to use metaphors, and a consolidated design of UI components makes our user feel comfortable with any of our product flattening the learning curve.&lt;/li&gt;
&lt;li&gt;An architecture made of &lt;strong&gt;microservices&lt;/strong&gt; , to encourage integrations either between Neosperience solutions and with 3rd party ecosystem. Microservices allow adopting service composition into new products and projects. Breaking monolithic services into smaller components means increased flexibility and interoperation.&lt;/li&gt;
&lt;li&gt;The use as much as possible of &lt;strong&gt;managed computing resources&lt;/strong&gt; as containers or, even better, &lt;strong&gt;serverless&lt;/strong&gt; is suggested &lt;strong&gt;.&lt;/strong&gt; It avoids the need to manage infrastructure scalability and focus on providing the most value to customers instead of handling servers. This requirement matches a strong focus on cloud providers, especially Amazon Web Services (AWS), which offers a set of quick out-of-the-box services to build modern apps.&lt;/li&gt;
&lt;li&gt;A shared layer for &lt;strong&gt;authentication&lt;/strong&gt; is required &lt;strong&gt;,&lt;/strong&gt; leveraging &lt;a href="https://oauth.net/2/"&gt;OAuth2&lt;/a&gt; to authenticate users and a &lt;a href="https://tools.ietf.org/html/rfc7519"&gt;&lt;strong&gt;JWT&lt;/strong&gt;&lt;/a&gt; token with a standard structure for &lt;strong&gt;authorization.&lt;/strong&gt; The usage of Amazon Cognito is encouraged since it eases the need to write a lot of boilerplate code.&lt;/li&gt;
&lt;li&gt;The support of &lt;strong&gt;events&lt;/strong&gt; emitted and consumed by every entity within a product architecture to allow other solutions (either Neosperience or 3rd party) is encouraged. Services can react to them, getting notified of data changes without the need for direct communication. Events represent the preferred way of communication and provide many advantages such as standardization, validation, and fast webhooks development. AWS EventBridge is the reference technology for event handling within Neosperience. Still, in some specific contexts, Apache Kafka, Amazon SNS, or MQTT could be used to support event transport when AWS is not a viable choice.&lt;/li&gt;
&lt;li&gt;An &lt;strong&gt;API First&lt;/strong&gt; approach that makes every product expose a set of APIs. We ask our teams to start designing a product or a feature from the business and move downward to its interfaces. If the domain is unclear to &lt;em&gt;every&lt;/em&gt; stakeholder, they could use mapping techniques such as &lt;a href="https://www.eventstorming.com/"&gt;event storming&lt;/a&gt;. Defining APIs means stating what happens between our product and the external world. It also has the benefit of easing a lot of work with integrations because no one has to build them on top, specifically for clients. A robust API strategy also empowers the &lt;a href="https://en.wikipedia.org/wiki/Separation_of_concerns"&gt;separation of concerns&lt;/a&gt; and pushes companies to avoid monolithic architectures.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Ejvn21OV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/740/1%2AIupqPV5LmcOkhkxwPBa29Q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Ejvn21OV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/740/1%2AIupqPV5LmcOkhkxwPBa29Q.png" alt="" width="740" height="406"&gt;&lt;/a&gt;A summary of the six pillars within the guidelines domain&lt;/p&gt;

&lt;p&gt;These guidelines can be adopted incrementally, having a minimum impact on product roadmap but enable a lot of the benefits we would like to leverage within Neosperience products and 3rd party partners.&lt;/p&gt;

&lt;h4&gt;
  
  
  2. Interfaces
&lt;/h4&gt;

&lt;p&gt;Integration between different software products means building a mechanism to exchange data between them. Interfaces play a fundamental role because they guarantee a standard communication pattern to transfer data. In Neosperience Cloud, we plan to have two kinds of interfaces: REST APIs and Events.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Application Programming Interfaces (API)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Web APIs allow clients to invoke HTTP URLs and obtain data in a &lt;em&gt;pull&lt;/em&gt; fashion. &lt;a href="https://en.wikipedia.org/wiki/Representational_state_transfer"&gt;REST&lt;/a&gt; emerged in the last few years as a standard for domain entities representation using simple URL paths and HTTP methods (GET, POST, DELETE, PUT). Upon this standard, software developers defined some protocols to overload simple web links into full-fledged APIs. One of the most adopted protocol is &lt;strong&gt;OAuth2&lt;/strong&gt; for data access control. Neosperience Cloud exposes its API with a well-documented structure, utilizing a standard fashion to describe API. Every API within Neosperience Core and Business Services should expose a regularly maintained Swagger file, describing API structure and how to invoke any of them: params, expected data in and out as well as authorization support and error codes expected when performing operations.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gM1lXV_O--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2Aeb5R4hIyKsC571H1PITghg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gM1lXV_O--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2Aeb5R4hIyKsC571H1PITghg.png" alt="" width="800" height="552"&gt;&lt;/a&gt;An example of a Swagger definition of an API&lt;/p&gt;

&lt;p&gt;Beside APIs, there is the need to document and also standardize the structure handled by services. Since the de-facto syntax of data follows JSON as a representation protocol, we adopted &lt;a href="https://json-schema.org/"&gt;JSON-schema&lt;/a&gt; as its validation language. JSON-like syntax and a defined set of properties describe &lt;strong&gt;semantically&lt;/strong&gt; the structure of a payload of data expected or returned by a service within Neosperience Cloud.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--RM8NOSbo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2Axl6AiR-BsNeXnTY70PXgXA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--RM8NOSbo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2Axl6AiR-BsNeXnTY70PXgXA.png" alt="" width="800" height="541"&gt;&lt;/a&gt;An example of JSON-schema to enforce payload structure validation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Events&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Web and mobile applications usually interact with a backend service, often via an API. Many frontend applications pass requests for processing, wait for a result, and then display this to the user. A synchronous architecture is only one way to handle messages, but modern applications have alternatives to provide a better user experience.&lt;/p&gt;

&lt;p&gt;In recent years, &lt;a href="https://www.reactivemanifesto.org/en"&gt;reactive software architectures&lt;/a&gt; obtained a lot of hype due to their strong reliability and the efficient usage of server resources. One of the main cornerstones of reactive designs is to pull API invocations, in favor of message-passing solutions,&lt;/p&gt;

&lt;p&gt;Neosperience Cloud has an event-based architecture implementing communication between different services. Each domain entity publishes events in response to state changes. Events are small JSON payloads that resemble a flexible structure.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--L142lc20--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2AfEQYlZG0a80r-ObZnpwB9A.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--L142lc20--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2AfEQYlZG0a80r-ObZnpwB9A.png" alt="" width="800" height="646"&gt;&lt;/a&gt;Example for “product added to cart” event&lt;/p&gt;

&lt;p&gt;Neosperience Cloud exposes events for several actions on domain objects: &lt;em&gt;e-commerce, chatbot, the voice of the customer, notification, user-insight, customer, content, store, profile.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Publishing and subscribing to events allows communication between different services and data synchronization with an &lt;a href="https://en.wikipedia.org/wiki/Eventual_consistency"&gt;eventual consistency&lt;/a&gt; pattern. Event-based architectures are preferable to direct remote calls through RPC because they offer many advantages in scalability and fault tolerance as well as allow for interesting patterns such as event sourcing and fan-in / fan-out.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qXFczGwa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/800/1%2ARgfFrr5GzVrszbPjgrr3Tg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qXFczGwa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/800/1%2ARgfFrr5GzVrszbPjgrr3Tg.png" alt="" width="800" height="300"&gt;&lt;/a&gt;APIs and events represent the interfaces between Neosperience Cloud and Solutions&lt;/p&gt;

&lt;h4&gt;
  
  
  3. Services
&lt;/h4&gt;

&lt;p&gt;Neosperience Cloud becomes the foundation of any SaaS strategy, offering several ready available infrastructure services that enable cross-cutting behavior between different products. Thanks to the adoption of the &lt;strong&gt;Infrastructure-as-Code (IaC)&lt;/strong&gt; pattern, we can leverage AWS capabilities in cloud-native application deployments. The ubiquitous adoption of serverless technologies makes these services readily available, scalable, and cost-effective independently from their usage. We were able to build some infrastructure services that empowered Neosperience Solutions in the last decade and &lt;a href="https://medium.com/@aletheia/neosperience-journey-to-microservices-f900277987d5"&gt;evolved throughout all the technological advancements of cloud computing&lt;/a&gt;. Today we’re opening up these services to our partners and companies, allowing a fast time-to-market, interoperability with Neosperience existing &lt;strong&gt;business services&lt;/strong&gt; such as &lt;a href="https://www.neosperience.com/solutions/image-memorability/"&gt;Image Memorability&lt;/a&gt;, &lt;a href="https://www.neosperience.com/solutions/nudging-gamification/"&gt;Nudging/Gamification&lt;/a&gt;, and &lt;a href="https://www.neosperience.com/solutions/unbreakable-community/"&gt;Unbreakable Community&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--rgFnzNMA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/841/1%2ACDnrkU4-W01lpSuuBcAPAQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rgFnzNMA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/841/1%2ACDnrkU4-W01lpSuuBcAPAQ.png" alt="" width="800" height="529"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Specifically, we are going to make our &lt;strong&gt;core&lt;/strong&gt; services available such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;nsp-identity&lt;/strong&gt; : a service developed specifically to handle service authorization independently from the entity being authorized. You could be a human, a backend service, or a toaster and can call every service with identity, roles, and permissions. Identities implement all &lt;strong&gt;OAuth2&lt;/strong&gt; fashion to offer access control to any REST service through &lt;em&gt;HTTP&lt;/em&gt; &lt;em&gt;Authorization&lt;/em&gt; header tokens. nsp-identity also provides service helpers to get tokens from social accounts, AWS credentials, username and passwords, third party providers, and machine-to-machine. Tokens can also be exchanged between all of them. In 2018, we added support for &lt;a href="https://auth0.com/"&gt;Auth0&lt;/a&gt; credential providers, thus enabling 40+ additional providers. It relies on Amazon Cognito Identity management to allow data segregation but adds a standard layer that supports OAuth2 header management, roles, and token standardization through &lt;a href="https://jwt.io/"&gt;JSON Web Token (JWT)&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;nsp-user:&lt;/strong&gt; user credentials management is the foundation of many Neosperience services, which is provided as a standard layer on Amazon Cognito User Pools, thus making its internal workflow entirely transparent to services, even when they do not rely on AWS. Moreover, login/registration flow is implemented as well with frontend components wrapping all the required service calls.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;nsp-organization:&lt;/strong&gt; Neosperience built a B2B2C platform, which means data should be segregated within different instances of any service, and a given identity must belong to only one of them. At the same time, a user could join multiple instances. This result is achieved through the development of the Neosperience Organization, which supports multi-tenant data handling and offers the capability to create a new organization, subscribe users, add licenses to them, and org-specific metadata (such as company-wide preferences and configurations) which can be retrieved by specific services. Neosperience Organization makes SaaS scalability independent for its underlying AWS account, thus allowing for multi orgs within the same account which relies on better management of cloud resources.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Customer Data Platform (CDP):&lt;/strong&gt; is a data platform capable of storing and querying user data even in unstructured form. It supports an event-based collector and management, and data can be stored raw or aggregated in events within a user profile. Users can be queried by their attributes or timelines, thus offering and aggregated time-based evolution of a customer base. CDP support sources such as Salesforce, Shopify, SAP, and many more, as well as Neosperience Solutions, through a number of connectors. Integrations can be leveraged through service APIs, custom events (either published or subscribed by CDP), and &lt;a href="https://zapier.com/"&gt;Zapier&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Neosperience Cloud offers a &lt;strong&gt;service registry&lt;/strong&gt; to provide relevant information about deployed microservices. It stores service health and status information about Neosperience as well as third-party services, through a health update and health check event bus and Amazon CloudWatch log analyzer which extracts metrics and usage insights. A &lt;strong&gt;Service Health Dashboard&lt;/strong&gt; is offered to publish a summarized overview about service quality for a given account or organization.&lt;/li&gt;
&lt;li&gt;An integrated &lt;strong&gt;Developer Portal&lt;/strong&gt; offers third party teams the capability to obtain their Neosperience Cloud AccessKeyId and SecretAccessKey as well as to access service documentation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;On the deployment aspect, we offer to every team support through Neosperience CI/CD architecture, built on &lt;a href="https://about.gitlab.com/"&gt;Gitlab&lt;/a&gt; and AWS CloudFormation with &lt;a href="https://github.com/aws/aws-cdk"&gt;AWS Cloud Development Kit&lt;/a&gt; and &lt;a href="https://www.serverless.com/"&gt;Serverless Framework&lt;/a&gt;.&lt;/p&gt;

&lt;h4&gt;
  
  
  4. Tools
&lt;/h4&gt;

&lt;p&gt;Neosperience aims to become the starting point for product development leveraging serverless technologies and forecast this important duty through an offering than includes not only ready to use services, but also tools to speed up teams building their next product.&lt;/p&gt;

&lt;p&gt;Neosperience provides its partners support in adopting the aforementioned guidelines, with a set of &lt;strong&gt;libraries&lt;/strong&gt; , offering services middleware, and project bootstrap code to ease starting building stuff. On the frontend, our complete design library offers support to UX/UI development with a consistent look and feels as well as interaction principles. Language-specific &lt;strong&gt;SDK&lt;/strong&gt; s are the starting point for teams to integrate our services without the hassle of handling APIs and authentication. We plan to support React, NodeJS, iOS, and Android. Finally, we envision the release of a &lt;strong&gt;Command-Line Input (CLI)&lt;/strong&gt; tool to be used by teams to scaffold a new project (either client or service) with middleware, libraries, and our design library with no need to dive into dependency management or library download and built-in support for service deployment within a Neosperience Cloud dedicated instance.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--D854DZmn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/821/1%2AmeQOWBOgnq2bjFbp24Y6ig.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--D854DZmn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/821/1%2AmeQOWBOgnq2bjFbp24Y6ig.png" alt="" width="800" height="468"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Where to go from here?
&lt;/h3&gt;

&lt;p&gt;In 2020 Neosperience plans to take a huge leap towards partner ecosystem support while maintaining our strong focus on our solutions making our technology more accessible and inclusive to diverse teams. We value the personal point of view everyone could provide to the ambitious goal of bringing empathy in technology and we can’t wait to see what amazing things our partners are going to build together.&lt;/p&gt;

&lt;p&gt;My name is &lt;strong&gt;Luca Bianchi&lt;/strong&gt;. I am &lt;strong&gt;Chief Technology Officer&lt;/strong&gt; at &lt;a href="https://www.neosperience.com/"&gt;&lt;strong&gt;Neosperience&lt;/strong&gt;&lt;/a&gt; and, the author of &lt;a href="https://www.packtpub.com/application-development/serverless-design-patterns-and-best-practices-video"&gt;&lt;strong&gt;Serverless Design Patterns and Best Practices&lt;/strong&gt;&lt;/a&gt;. I have built software architectures for production workload at scale on AWS for nearly a decade.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Neosperience Cloud&lt;/strong&gt; is the one-stop SaaS solution for brands aiming to bring &lt;em&gt;Empathy in Technology&lt;/em&gt;, leveraging innovation in machine learning to provide support for 1:1 customer experiences.&lt;/p&gt;

&lt;p&gt;You can contact me via &lt;a href="https://twitter.com/bianchiluca"&gt;Twitter&lt;/a&gt; and &lt;a href="https://www.linkedin.com/in/lucabianchipavia/"&gt;LinkedIn&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>cloud</category>
      <category>productmanagement</category>
      <category>microservices</category>
      <category>aws</category>
    </item>
    <item>
      <title>A practical application of Amazon Leadership Principles</title>
      <dc:creator>Luca Bianchi</dc:creator>
      <pubDate>Tue, 30 Jun 2020 07:06:01 +0000</pubDate>
      <link>https://dev.to/aletheia/a-practical-application-of-amazon-leadership-principles-3gjk</link>
      <guid>https://dev.to/aletheia/a-practical-application-of-amazon-leadership-principles-3gjk</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--hnmLVZTk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2AmTaKCmOkrR2HcCqS3aV7gg.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hnmLVZTk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2AmTaKCmOkrR2HcCqS3aV7gg.jpeg" alt="" width="800" height="534"&gt;&lt;/a&gt;Photo by &lt;a href="https://unsplash.com/photos/TamMbr4okv4"&gt;Ian Schneider&lt;/a&gt; from &lt;a href="https://unsplash.com/"&gt;Unsplash&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Since we started scaling up Neosperience from a single company to a group, while onboarding people with different stories and experiences, making everyone feel comfortable has been one of our top priorities.&lt;br&gt;&lt;br&gt;
We know this posed several challenges we had to consider to reach the ambitious goal of having everyone “feel like being at home” within Neosperience.&lt;br&gt;&lt;br&gt;
We know that the three keys driving people’s motivation are &lt;a href="https://www.ted.com/talks/dan_pink_the_puzzle_of_motivation"&gt;autonomy, mastery, and purpose&lt;/a&gt;. Such principles are good at keeping a single person engaged with a company or a team. Unfortunately, they do not provide sufficient enough guidelines about the strategies to help employees participate in a shared vision. Moreover, they do not explain an inclusive and supportive behavior between different teams. Furthermore, onboarding teams with different cultures and history but excellent at providing value to customers means being able to match strategies that effectively works and the principles behind them.&lt;/p&gt;

&lt;h3&gt;
  
  
  Be inspired by great stories, make them real.
&lt;/h3&gt;

&lt;p&gt;Stories make people live exciting lives. We have been fortunate enough to work in unprecedented times when companies in just a few years grew up from a small startup to international enterprise companies. So we looked to them and tried to understand what principles they follow daily and the outcome of such tenets in company growth, team satisfaction, and customer value.&lt;/p&gt;

&lt;p&gt;We decided to deep dive into &lt;a href="https://www.youtube.com/watch?v=B-xdfQv3I1k"&gt;Amazon Leadership Principles&lt;/a&gt; to understand how to apply them in practical situations and how far this takes us. At first naive reading, they could sound abstract and not concrete, but such distilled knowledge needs to be meditated and elaborated before becoming actionable. Leadership Principles are not prescriptions nor legal articles, and instead, they can be intended as guidelines to strive for to inspire and be inspired in everything every employee does at Amazon. &lt;strong&gt;Customer Obsession&lt;/strong&gt; means, for example, to avoid developing features just for technical pleasure or “why we can” principles, but validate early your ideas with customers. At the same time, &lt;strong&gt;Learn and Be Curious&lt;/strong&gt; is an input to invest in R&amp;amp;D and explore new paths, avoiding to fall on the status quo.&lt;/p&gt;

&lt;p&gt;One of our primary goals is to develop products that raise the bar of performance of our customers. We applied these principles through our product strategy, contextualizing them to product development to shed light on what is in our future and how every employee at Neosperience can help to make our dream of a more empathic world become a reality:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Customer Obsession&lt;/strong&gt; : our solutions have and must have a direct connection to customers’ needs to provide them the best value. We should engineer our product’s features from the feedback provided by customers. One great idea is to start from the end of the process, with an internal press release about new features or products, and understand how it works moving backward. It is a powerful tool in product development, called “&lt;a href="https://www.inc.com/justin-bariso/amazon-uses-a-secret-process-for-launching-new-ideas-and-it-can-transform-way-you-work.html"&gt;working backward&lt;/a&gt;s.” Every team within Neosperience has to understand what is happening in a continuously evolving market. One customer request does not make a feature, but it’s an idea that deserves to be explored to understand the impact it can produce on a similar business. Monitoring competition could be useful, but it is not our prime focus because we’re here to fill a need and serve customers, not do better than others.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ownership&lt;/strong&gt; : we’ve been lucky enough to onboard teams with strong domain expertise. They trusted our vision of empathic technology. Now it’s our turn to support them in acquiring ownership in their application domain within the group and make the difference. We prefer technologies such as Infrastructure as Code that put in the hands of builders all the tools they need to own a solution. Ownership is balanced by the availability of shared tools that ease repetitive tasks and ensure interoperability.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Invent and Simplify&lt;/strong&gt; : remove the complexity. As Calvino explains much in his &lt;a href="https://en.wikipedia.org/wiki/Six_Memos_for_the_Next_Millennium"&gt;Six Memos for the Next Millennium&lt;/a&gt; book, “lightness” is what remains when we remove everything not necessary. It means the effectiveness, exceptional value we want to deliver. We have to engineer our releases to make things easier for our customers. It starts with the integration of our products to provide a seamless experience to customers within our products portfolio.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Are Right, A Lot&lt;/strong&gt; : we value instinct and ideas, especially when they come from a different history or culture. They enrich us all, forcing us to change our point of view. We look forward to onboarding people and companies with keen judgment and knowledge.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Learn and Be Curious&lt;/strong&gt; : an excellent complement to avoid doing things in the same inefficient way is being curious about new ideas, markets, and technologies. Our growth opens up the road to sharing ideas and having the possibility to learn new skills both within and outside Neosperience. This passionate work has a direct impact on the quality and innovation level of our products. Passion and curiosity drive the best of us into exploring new paths, technologies, and ideas, then share them with the team. We have launched the &lt;a href="https://www.youtube.com/channel/UCX2oyTtnc3hAg-qJXAvClHw"&gt;Neosperience Academy webinar series&lt;/a&gt; (open to everyone) to encourage this sharing within our organization and the community.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hire and Develop the Best&lt;/strong&gt; : every company and team who join our forces makes us a step closer to our goal of making the difference. Every release of our products must be better than the previous one. A new version of our products could improve stability or reliability, but it must also raise the bar of performance for our customers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Insist on the Highest Standards&lt;/strong&gt; : every software has bugs and can be improved, but our products must consistently progress the quality curve. We do not accept poor quality releases as well as temporary solutions or “workarounds.” We ask everyone to focus on what makes the product excellent. Teams should continuously ask themselves, “what is best for the customer?”&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Think Big&lt;/strong&gt; : our products must solve problems for good. Customers expect us not to be the cheapest alternative to market leaders but to work with and integrate their products to provide a differentiating value. Our products are not an all-or-nothing solution, but we design them to work at their best when integrated into an ecosystem. It means providing connectors, APIs, and interoperability by design.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bias for Action&lt;/strong&gt; : we prefer writing code in favor of complex analysis because it is only building things that you can figure out the strengths and weaknesses of an idea. Moreover, requirements tend to be vague, especially for product features, when you work on cutting edge technologies in an uncertain market. People are free to make mistakes, but we, as managers and architects, have to reduce the impact of failure when things go wrong.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Frugality&lt;/strong&gt; : there are no extra points for wasting people’s time in endless meetings. Time is a constrained resource for everyone and must be dedicated as much as possible to our customers instead of discussing resource allocation or administrative tasks. Efficiency is always a bonus point every time it does not compromise quality. Frugality does not mean to be cheap or stingy, but to make the best use of the resource you have. They could be a team of 2, 10, or a hundred people and a multi-millionaire budget or just a few thousand dollars; it does not matter regarding frugality. The outcome will be different, but efficiency still applies to the bill. Time is the most precious resource because it’s scarce.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Earn Trust&lt;/strong&gt; : prefer listening rather than speaking. Respect every point of view. Integrate into our products the best ideas even if they are not your own. Confront and discuss with teammates and colleagues. Be supportive and, if not possible, explain the big picture to earn people’s Trust.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dive Deep&lt;/strong&gt; : products win and fail through data. Measure as much as possible a product strategy or implementation. Provide data and discuss interpretation. Have a deep understanding of the technology you’re using, explore and anticipate your customers’ questions, to have answers, and frankly admit when you don’t.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Have Backbone; Disagree and Commit&lt;/strong&gt; : one of the best aspects of being part of a growing group of excellent professionals is you have plenty of confrontation opportunities. Every domain owner must listen to challenges to their ideas because it is only discussing the status quo we can improve. When an owner makes a decision, however, everyone must commit to that, stop debating, regretting, and work hard to realize it. Owners should have checkpoints, named retrospective in agile, to consider whether a decision was right or not, sharing the knowledge with the team but carrying the responsibility of everyone’s commitment to that choice. Everyone accountable for a decision must also be in charge of making it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deliver Results&lt;/strong&gt; : bad things happen, especially when building compelling and innovative products that strive to challenge the status quo and evolve customers providing them unprecedented value. Setbacks occur in the form of requirement pitfalls or immature technology adoption in a production release or wrong choices when &lt;a href="https://dev.to/aletheia/serverless-big-data-lessons-learned-building-an-event-ingestion-pipeline-on-amazon-web-services-31ad-temp-slug-2566506"&gt;storing a massive amount of data&lt;/a&gt; on purpose-built storage or database, then having to migrate it. Failure means knowledge, and this is a value we have to share with teammates and the community. We are not upset when a product or a solution misses its goal, nor we do not persist in a wrong path. Teams know and understand very well many factors can impact the success of a product, and that some of them are outside of their control, and accept it. Nonetheless, they are always engaged in finding the way through obstacles to deliver outstanding solutions at market speed.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The road ahead
&lt;/h3&gt;

&lt;p&gt;These principles are a strong foundation of our management policies and should be the reason behind every choice we make. Companies are not the perfect expression of the theoretical tenets, and Neosperience makes no exception: our teams are encouraged to strive for them. At the same time, we support and coach them when this does not happen. Leadership principles should be our main guideline in Neosperience for product development and be enforced through our decisions. We’ll share more details about how we architected our products following these principles in the next months.&lt;/p&gt;

&lt;p&gt;Stay tuned and build great stuff!&lt;/p&gt;

&lt;p&gt;My name is &lt;strong&gt;Luca Bianchi&lt;/strong&gt;. I am &lt;strong&gt;Chief Technology Officer&lt;/strong&gt; at &lt;a href="https://www.neosperience.com/"&gt;&lt;strong&gt;Neosperience&lt;/strong&gt;&lt;/a&gt; and, the author of &lt;a href="https://www.packtpub.com/application-development/serverless-design-patterns-and-best-practices-video"&gt;&lt;strong&gt;Serverless Design Patterns and Best Practices&lt;/strong&gt;&lt;/a&gt;. I have built software architectures for production workload at scale on AWS for nearly a decade.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Neosperience Cloud&lt;/strong&gt; is the one-stop SaaS solution for brands aiming to bring &lt;em&gt;Empathy in Technology&lt;/em&gt;, leveraging innovation in machine learning to provide support for 1:1 customer experiences.&lt;/p&gt;

&lt;p&gt;You can contact me via &lt;a href="https://twitter.com/bianchiluca"&gt;Twitter&lt;/a&gt; and &lt;a href="https://www.linkedin.com/in/lucabianchipavia/"&gt;LinkedIn&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>leadership</category>
      <category>amazon</category>
      <category>management</category>
    </item>
    <item>
      <title>Migrating Image Memorability service to AWS Lambda using a shared Elastic File System volume</title>
      <dc:creator>Luca Bianchi</dc:creator>
      <pubDate>Wed, 17 Jun 2020 14:31:47 +0000</pubDate>
      <link>https://dev.to/aletheia/migrating-image-memorability-service-to-aws-lambda-using-a-shared-elastic-file-system-volume-ph0</link>
      <guid>https://dev.to/aletheia/migrating-image-memorability-service-to-aws-lambda-using-a-shared-elastic-file-system-volume-ph0</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1KGY6njx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2AIXtbSMeWsUA9sM4vNlkBQg.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1KGY6njx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2AIXtbSMeWsUA9sM4vNlkBQg.jpeg" alt="" width="800" height="533"&gt;&lt;/a&gt;Image analysis ML models can be run smoothly from a serverless function, democratizing access to AI. Photo by &lt;a href="https://unsplash.com/@alisaanton?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Alisa Anton&lt;/a&gt; on &lt;a href="/s/photos/photograph?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;On June, 16th Amazon Web Services released the long-awaited feature of &lt;strong&gt;AWS Elastic File System (EFS)&lt;/strong&gt; support for their &lt;strong&gt;AWS Lambda&lt;/strong&gt; service. It is a huge leap forward in serverless computing, enabling a whole set of new use cases, and could have a massive impact on our AI infrastructure, thus reducing machine learning inference costs down to pennies for a wide number of applications.&lt;/p&gt;

&lt;p&gt;The most exciting feature of Elastic File System is its capability to be mounted both on EC2 virtual machines, Fargate containers, and AWS Lambda. This feature is not anything new on the EFS domain. It has been primarily used by many application sharing stored data, helping customers evolve their applications towards stateless services: a couple of EC2 or containers could save vast amounts of data on an EFS volume and share them with producers and consumers. It avoids the complexity (and latencies) of storing objects on S3, then downloading them every time they are needed. Moreover, EFS throughput can be configured up to 1024MB/s speed, thus making it work seamlessly as a local file system.&lt;/p&gt;

&lt;p&gt;Since AWS SageMaker involves EC2 to run Jupyter Notebooks, mounting shared storage between different instances &lt;a href="https://aws.amazon.com/it/blogs/machine-learning/mount-an-efs-file-system-to-an-amazon-sagemaker-notebook-with-lifecycle-configurations/"&gt;is quite easy to set up&lt;/a&gt; and can avoid a lot of pain when managing huge deep learning models with millions of parameters and size of hundreds of megabytes.&lt;/p&gt;

&lt;h3&gt;
  
  
  The case for Image Memorability
&lt;/h3&gt;

&lt;p&gt;Image analysis, classification, object detection, and picture rating through machine learning were applications unimaginable only a few years ago. Now they are commoditized services offered by any cloud provider, such as Amazon Rekognition, through an API interface that can easily be invoked with no need to understand the complexities of how a neural network works&lt;/p&gt;

&lt;p&gt;Nevertheless, some specific image analysis tasks are far from being solved by general standardized services and require a context-specific approach, which means building a customized neural network to process images and extract meaningful insights. One of the most exciting services within Neosperience Cloud is related to image scoring on metrics that can be useful to marketers to decide whether or not it could be used in a campaign. The wrong image, or merely a picture not making the viewer focus on the message, can make your company waste a lot of money, lowering the return on investment to a poor outcome. Focus groups have been used since forever with the constraint of testing a campaign on a tiny number of potential users. Standing on the shoulders of giants such as Netflix, techniques such as A/B testing tried to do their best to find the most suitable image for the vast majority of users.&lt;/p&gt;

&lt;p&gt;Following our experience in the last decade of digital marketing, we understood that all these methods are flawed because they do not consider the emotional impact of an image, which is deeply connected to its success. To fill this gap for our customers and provide a set of tools that support empathic analysis of content, we started building our &lt;strong&gt;Neosperience Image Services&lt;/strong&gt; leveraging serverless technologies offered by AWS. One of the most interesting is our &lt;strong&gt;Image Memorability&lt;/strong&gt; scoring system. Starting from &lt;a href="http://people.csail.mit.edu/khosla/papers/iccv2015_khosla.pdf"&gt;a preliminary work published by MIT in 2015&lt;/a&gt;, we moved forward building a memorability dataset, but with a focus on images usually involved in marketing campaigns and product showcases to increase the model accuracy. After that, we used &lt;strong&gt;Amazon SageMaker&lt;/strong&gt; to train an ensemble of neural networks in detecting a memorability score for a given image and extract the features of the picture contributing to that score.&lt;/p&gt;

&lt;h4&gt;
  
  
  Service architecture before EFS support
&lt;/h4&gt;

&lt;p&gt;The overall service architecture is outlined in the image below. A simplified version of this architecture is discussed in an episode of &lt;a href="https://www.youtube.com/watch?v=V2ZRQhqqifI"&gt;This is My Architecture (in Italian)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jGnNkE20--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2AV5N2HVAnbTMrFf0rB3Kv4A.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jGnNkE20--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2AV5N2HVAnbTMrFf0rB3Kv4A.png" alt="" width="800" height="559"&gt;&lt;/a&gt;Image Memorability services architecture&lt;/p&gt;

&lt;p&gt;In this article, we focus on the part of the architecture related to when a trained model is uploaded from SageMaker to Amazon S3, then served either to on-premise customer servers or SageMaker endpoints, to support a variety of use cases:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Z84egpcC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2AX5w5JaV7g16Yygk0iIQKDQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Z84egpcC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2AX5w5JaV7g16Yygk0iIQKDQ.png" alt="" width="800" height="561"&gt;&lt;/a&gt;Introducing AWS EFS allow reducing the part of an architecture related to model storing a management&lt;/p&gt;

&lt;h4&gt;
  
  
  Upgrading inference to serverless
&lt;/h4&gt;

&lt;p&gt;Thanks to EFS support for AWS Lambda, it is now possible to remove the need for Amazon Sagemaker endpoints and shift the load to a Lambda function, triggered by an image saved to Amazon S3. It is a huge leap forward for many reasons:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;removing the Amazon EC2 instances from the architecture resulted in lower costs by one order of magnitude&lt;/li&gt;
&lt;li&gt;AWS Lambda scalability is more granular than Amazon EC2 Autoscaling groups and requires less time to scale up/down, with an impact on service response time&lt;/li&gt;
&lt;li&gt;using S3 triggers to Lambda function, we can remove the need to poll an SQS queue containing processing jobs&lt;/li&gt;
&lt;li&gt;since there are no more EC2 instances to manage in cloud, there is no need for an instance pool DynamoDB Table anymore (used to coordinate different workers on the same data)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The final architecture is much more simplified, using fewer AWS resources to accomplish the same task&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--X0moMAmB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/984/1%2AijHQNndXki1sYRgMGeBGfQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--X0moMAmB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/984/1%2AijHQNndXki1sYRgMGeBGfQ.png" alt="" width="800" height="537"&gt;&lt;/a&gt;The final architecture after adopting EFS as a shared volume between on-premise servers, Amazon SageMaker training instances and Lambda processing images for inference&lt;/p&gt;

&lt;h3&gt;
  
  
  About performances and costs
&lt;/h3&gt;

&lt;p&gt;The usage pattern for Image Memorability often occurs when a marketer uploads a bunch of pictures from her laptop, preparing the next campaign. With an average of 15–20 images for each upload, our service incurs in peaks related to different users uploading sets of different photos during the same timeframe (i.e., working hours). For each batch, a marketer identifies some of the most impactful images, then computes memorability heatmaps upon them to ensure the remembered details are what she wants.&lt;/p&gt;

&lt;p&gt;To serve our customers with a responsive platform, we dedicated an inference worker to everyone. Such choice is necessary to avoid spinning up an EC2 instance every time a batch is loaded, resulting in poor user experience. The drawback is in an EC2 autoscaling group dedicated to a given customer, with a minimum number of one p2.xlarge instance per customer within their cluster.&lt;/p&gt;

&lt;p&gt;Adopting AWS Lambda with EFS support, we were able to shift all the load related to image scoring (which is the most common operation done by customers) to serverless while maintaining a shared cluster of p2.xlarge workers to compute heatmaps when required.&lt;/p&gt;

&lt;p&gt;Such improvement made our score computing time grow from 5 seconds to 10/12 seconds per image. Still, it allowed us to lower the overall batch execution time to less than 20 seconds, thanks to lambda parallelization: a noticeable improvement compared to a batch processing time of more than 90 seconds achieved by the previous service version.&lt;/p&gt;

&lt;p&gt;On the cost side, we were able to remove the dedicated p2.xlarge autoscaling group, which is used only for heatmaps, in favor of a shared group: this results in a considerable saving on the overall customer base and better resource optimization.&lt;/p&gt;

&lt;h3&gt;
  
  
  Where to go from here?
&lt;/h3&gt;

&lt;p&gt;AWS Lambda support for Elastic File System is a game-changer improvement in serverless computing, enabling to overcome Lambda storage size limit of 512MB and S3 transfers bottlenecks to the function runtime. ML models are often quite heavy (especially if they work on images), good advice is always to load the model into VM memory. It can be done initializing the Neural Network object in your deep learning framework, and make this alive within Lambda cache for the life of the container. Such a simple trick could speed up further inferences, even more, avoiding the wait for 100+MB transfer from the file system to the memory.&lt;/p&gt;

&lt;p&gt;At this time, we migrated only Image Memorability services related to image scoring. However, Memorability Heatmaps still need GPUs to backpropagate score through the network and extract features, which unfortunately is not yet available on AWS Lambda instances.&lt;/p&gt;

&lt;p&gt;Image Memorability was migrated to this architecture in just a few days because &lt;a href="https://aws.amazon.com/it/blogs/aws/new-a-shared-file-system-for-your-lambda-functions/"&gt;configuring a new mount point for EFS&lt;/a&gt; is an easy task if your functions are already within a Virtual Private Cloud (VPC). Computing cost reduction by one order of magnitude means we’re able now to consider some improvements to our service. Different prediction models could be used for the same image, sending back to users different scores at the same time together with their performances to let them choose which suits best to their use case.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://image.neosperience.com/"&gt;Neosperience Image Memorability&lt;/a&gt; service is free to try and more information is available on our product page to help marketing teams maximize their campaign ROI.&lt;/p&gt;

&lt;p&gt;To get started with AWS Lambda and EFS support please refer to &lt;a href="https://aws.amazon.com/it/blogs/aws/new-a-shared-file-system-for-your-lambda-functions/"&gt;this great blog post&lt;/a&gt; by &lt;a href="https://medium.com/u/3fdee8fcc5ef"&gt;Danilo Poccia&lt;/a&gt;, while details can be found in the &lt;a href="https://docs.aws.amazon.com/lambda/latest/dg/services-efs.html"&gt;documentation&lt;/a&gt;. Starting with AWS EFS and Lambda is quite easy while shifting to modern architectures to leverage serverless and microservices requires support by an experienced team. Feel free to reach out to our consultancy team at &lt;a href="https://www.mikamai.com/"&gt;Mikamai&lt;/a&gt; to get help building your next cloud-native solution on AWS.&lt;/p&gt;

&lt;p&gt;My name is &lt;strong&gt;Luca Bianchi&lt;/strong&gt;. I am &lt;strong&gt;Chief Technology Officer&lt;/strong&gt; at &lt;a href="https://www.neosperience.com/"&gt;&lt;strong&gt;Neosperience&lt;/strong&gt;&lt;/a&gt; and, the author of &lt;a href="https://www.packtpub.com/application-development/serverless-design-patterns-and-best-practices-video"&gt;&lt;strong&gt;Serverless Design Patterns and Best Practices&lt;/strong&gt;&lt;/a&gt;. I have built software architectures for production workload at scale on AWS for nearly a decade.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Neosperience Cloud&lt;/strong&gt; is the one-stop SaaS solution for brands aiming to bring &lt;em&gt;Empathy in Technology&lt;/em&gt;, leveraging innovation in machine learning to provide support for 1:1 customer experiences.&lt;/p&gt;

&lt;p&gt;You can contact me via &lt;a href="https://twitter.com/bianchiluca"&gt;Twitter&lt;/a&gt; and &lt;a href="https://www.linkedin.com/in/lucabianchipavia/"&gt;LinkedIn&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>elasticfilesystem</category>
      <category>awslambda</category>
      <category>serverless</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>Architetture a microservizi, tra hype e casi d’uso — parte 1</title>
      <dc:creator>Luca Bianchi</dc:creator>
      <pubDate>Tue, 16 Jun 2020 07:01:01 +0000</pubDate>
      <link>https://dev.to/serverlessitaly/architetture-a-microservizi-tra-hype-e-casi-d-uso-parte-1-4bi5</link>
      <guid>https://dev.to/serverlessitaly/architetture-a-microservizi-tra-hype-e-casi-d-uso-parte-1-4bi5</guid>
      <description>&lt;h3&gt;
  
  
  Architetture a microservizi, tra hype e casi d’uso — parte 1
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ZVjdlP1j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2An5HkOuwhinc7UenWVKnG5g.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZVjdlP1j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2An5HkOuwhinc7UenWVKnG5g.jpeg" alt="" width="800" height="599"&gt;&lt;/a&gt;Majestic Reflections of Shaik Zayed Grand Mosque. One of the world's most astonishing example of Islamic architecture. &lt;a href="https://unsplash.com/photos/CFbVdWD1RiI"&gt;Photo&lt;/a&gt; by Photo by &lt;a href="https://unsplash.com/@farhan5792"&gt;Farhan Khan&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Il mondo IT non è esente dal fascino delle &lt;em&gt;“mode del momento”&lt;/em&gt;: soluzioni che magari sono state adottate da aziende considerate punti di riferimento e che assumono nell’immaginario collettivo il ruolo di “no brainer” diventando il nuovo status quo, almeno per alcuni mesi, in attesa che la nuova “moda” prenda il posto della precedente. Il più delle volte si tratta di soluzioni che hanno più di un razionale forte nella loro adozione da parte delle aziende che le hanno proposte per prime. Si tratta, più in generale, di metodologie, architetture o tecnologie che vale la pena prendere in considerazione, ma è necessario avere ben chiari i problemi che si desidera risolvere ed il rapporto costi/benefici offerto da queste tecnologie.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Nessuna scelta tecnologica è esente da “costi”: compito di un buon architect è valutarne l’impatto in relazione ai benefici che si desidera ottenere.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Perché sono interessanti le architetture microservizi?
&lt;/h3&gt;

&lt;p&gt;In questo scenario è opportuno valutare adeguatamente l’impatto delle cosiddette architetture a microservizi. Vediamo cosa caratterizza le scelte tecnologiche alla base di questa metodologia per la definizione di architetture. In particolare un fattore fondamentale di queste soluzioni è legato alla &lt;strong&gt;scalabilità&lt;/strong&gt; intrinseca a queste architetture, soprattutto in presenza di pattern di scalabilità differenti per le diverse componenti del nostro sistema. Consideriamo, ad esempio, un portale e-commerce. Sappiamo ormai da quasi un decennio che il primo passo per garantire una buona scalabilità è la separazione quantomeno della componente client dalla parte backend dell’architettura. Questa scelta che oggi appare intuitiva, non lo era affatto solo pochi anni fa: numerose tecnologie affermatesi nel tempo, incentrate sulla semplicità ed il rapido time-to-market hanno invece proposto un approccio diametralmente opposto. Si tratta di framework come Django, Rails e soluzioni analoghe che solo recentemente hanno abbracciato quantomeno un’architettura multi-tenant, separando il client (ormai sempre più una Single Page App o “SPA”) dalle componenti relative al backend, richiedendo lo sviluppo di endpoint. In questo scenario si è affermato sempre più lo standard di sviluppo di backend che espongano verso i client, endpoint REST. Non si tratta ancora di architetture a microservizi, ma di una prima suddivisione di componenti con requisiti e molteplicità profondamente diversi: grazie all’avvento del mobile, oggi si considera sempre più spesso lo sviluppo di differenti client, magari costruiti con la medesima tecnologia, ma rivolti ad utenze diverse. Il sistema backend, in questo contesto diventa un oggetto software che ha il compito di esporre degli endpoint verso i client attraverso cui inviare o ricevere informazioni utili al soddisfacimento dei nostri requisiti. Tornando all’esempio del sto e-commerce, il backend offrirà ai client quantomeno endpoint relativi al catalogo, al carrello ed alla procedura di pagamento dei prodotti acquistati.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--y8OFXhyF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/364/1%2AiTy5YQi6L1R-UQ1QWiMp5w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--y8OFXhyF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/364/1%2AiTy5YQi6L1R-UQ1QWiMp5w.png" alt="" width="364" height="300"&gt;&lt;/a&gt;Progettare la scalabilità di un sistema richiede un’attenta analisi della variazione nel tempo delle differenti componenti dell’architettura&lt;/p&gt;

&lt;p&gt;Ovviamente dal punto di vista della scalabilità questi insiemi di endpoint avranno requisiti molto diversi tra loro: il catalogo subirà un traffico legato ad eventuali campagne promozionali, mentre il carrello (oppure un’eventuale wish list) avranno traffico necessariamente minore. In molti casi si sperimenta non solo un differente volume di chiamate, ma anche pattern tra loro alquanto diversi, soggetti alle iniziative del business che hanno lo scopo di servire: ad esempio offerte “flash” da Black Friday generano traffico molto diverso da normali periodi di esercizio. Supportare differenti pattern di accesso con una medesima architettura impone di trovare un minimum comune denominatore tra le varie esigenze. Le architetture a microservizi consentono di separare i vari endpoint, in base alle necessità imposte dai requisiti business per meglio soddisfarle. Si accetta quindi un maggiore costo “gestionale” giungendo a differenti configurazioni di deploy, così da consentire una gestione più efficiente del sistema con un migliore profilo di costi. L’impatto di queste scelte risulta ancora più evidente quando si considera la persistenza dei dati relative alla soluzione realizzata.&lt;/p&gt;

&lt;h3&gt;
  
  
  A ciascun servizio la sua persistenza
&lt;/h3&gt;

&lt;p&gt;La separazione delle varie componenti di un’architettura in microservizi offre la possibilità di valutare per ciascuna di esse il miglior database disponibile in base alla struttura dati. Si tratta di un cambiamento quasi epocale nella gestione dei dati, poiché per quasi tre decadi l’unico approccio disponibile, considerato da molti un vero e proprio “silver bullet”, è stato l’utilizzo di modelli di dati strutturati, che venivano poi calati su database relazionali (spesso impropriamente detti SQL per via del linguaggio di query utilizzato da questi DBMS). Prodotti di mercato del calibro di Oracle, IBM DB2 e Microsoft SQL Server, affiancati negli anni da soluzioni open source come MySQL e PostgreSQL, hanno suggerito come unica soluzione alla gestione della persistenza dei dati la riduzione del modello nella cosiddetta “forma normale” così da minimizzarne la ridondanza informativa. Questi database provengono da un’epoca in cui lo storage aveva costi decisamente maggiori della potenza computazionale che, nella maggior parte dei casi applicativi, si trovava ad essere largamente sotto-utilizzata. L’avvento del cloud e la comparsa dei primi servizi di computazione on-demand, unitamente alla disponibilità di memorie a basso costo, ha ribaltato questa prospettiva.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--mxq_dDL8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1000/1%2Ab5vneT_J4-dKejbYH4o5qg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--mxq_dDL8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1000/1%2Ab5vneT_J4-dKejbYH4o5qg.png" alt="" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Non si tratta però di un solo fattore economico: negli ultimi vent’anni l’adozione in modo pervasivo di tecnologie mobile e la digitalizzazione di interi comparti industriali hanno portato alla nascita di casi d’uso che mettevano in crisi il modello unico relazionale su temi di scalabilità e consistenza di dati spesso acceduti e modificati da varie parti del globo. In particolare la pubblicazione nel 2000 del &lt;a href="https://en.wikipedia.org/wiki/CAP_theorem"&gt;teorema CAP&lt;/a&gt; ha dimostrato come un sistema software sia sempre il risultato di una serie di compromessi che ne determinano l’architettura e l’impatto che tali scelte hanno sulla persistenza dei dati rischia di essere non trascurabile. In particolare negli ultimi anni, si è affermato il modello dei &lt;a href="https://www.allthingsdistributed.com/2018/06/purpose-built-databases-in-aws.html"&gt;purpose-built database&lt;/a&gt;, contrapposti alla scelta di un solo DBMS per tutto il nostro applicativo. In questo scenario diventa puerile la diatriba SQL vs NoSQL che ha appassionato architect e developer per quasi un decennio: il database migliore dipende dai requisiti di un sistema che deve soddisfare un determinato caso d’uso e, nel caso di architetture a microservizi, non esiste una risposta univoca. In particolare queste architetture offrono la possibilità di &lt;a href="https://thenewstack.io/selecting-the-right-database-for-your-microservices/"&gt;scegliere il miglior database per un determinato insieme di endpoint&lt;/a&gt;, incoraggiando quindi una pluralità di modelli dati all’interno della stessa soluzione. All’interno del perimetro di ciascun servizio, è possibile valutare le esigenze degli specifici schemi di accesso ai dati ed in base alle esigenze della logica di business, scegliere la persistenza più adatta.&lt;/p&gt;

&lt;h4&gt;
  
  
  Cicli di vita e rilasci incrementali
&lt;/h4&gt;

&lt;p&gt;Un beneficio interessante spesso sottovalutato delle architetture a microservizi è la capacità di parallelismo del ciclo di vita delle varie componenti: ciascun team è in buona parte indipendente dagli altri e quindi può procedere con iterazioni di sviluppo più brevi e minori rischi di regression poichè la base di codice da manutenere risulta più piccola. Questo significa che i componenti del team non devono necessariamente conoscere il dettaglio di tutti gli aspetti del sistema, mentre un maggiore valore è dato al ruolo dell’architect che svolge una funzione importante della condivisione del know-how necessario alla realizzazione dei macro-requisiti di business.&lt;/p&gt;

&lt;p&gt;Questo aspetto evidenzia anche alcuni punti di attenzione che le architetture a microservizi presentano: la &lt;a href="https://en.wikipedia.org/wiki/Separation_of_concerns"&gt;separation of concern&lt;/a&gt; è garantita by design da questa metodologia richiede ovviamente un’attenzione particolare alla gestione della comunicazione tra i vari microservizi.&lt;/p&gt;

&lt;h4&gt;
  
  
  Nella seconda parte..
&lt;/h4&gt;

&lt;p&gt;Nella seconda parte di questo articolo vedremo quali criticità pongono le architetture a microservizi e come possono essere superate mediante l’adozione di tecniche quali API Façade e comunicazione event-based.&lt;/p&gt;

&lt;h3&gt;
  
  
  Informazioni sull’autore
&lt;/h3&gt;

&lt;p&gt;Sviluppatore e Cloud Architect da oltre un decennio, Luca Bianchi segue in qualità di CTO, lo sviluppo della tecnologia e dei prodotti &lt;a href="http://www.neosperience.com"&gt;Neosperience&lt;/a&gt;, Technology partner AWS, con particolare focus su &lt;strong&gt;serverless&lt;/strong&gt; e &lt;strong&gt;machine learning&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Dal 2015 è co-organizer del &lt;a href="https://www.meetup.com/it-IT/Serverless-Italy/"&gt;Serverless Italy Meetup&lt;/a&gt; e dal 2016 collabora all’organizzazione del capitolo italiano di &lt;a href="http://italy.serverlessdays.io"&gt;ServerlessDays&lt;/a&gt;. Autore di numerose pubblicazioni, talk e video è da sempre appassionato di tecnologia, con particolare attenzione allo sviluppo di applicativi &lt;em&gt;serverless&lt;/em&gt;, ai modelli di &lt;em&gt;machine learning&lt;/em&gt; e al mondo &lt;em&gt;IoT&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Potete contattare Luca su &lt;a href="https://twitter.com/bianchiluca"&gt;Twitter&lt;/a&gt;, &lt;a href="https://www.linkedin.com/in/lucabianchipavia/"&gt;LinkedIn&lt;/a&gt; e &lt;a href="https://medium.com/@aletheia"&gt;Medium&lt;/a&gt;&lt;/p&gt;




</description>
      <category>microservices</category>
      <category>architecture</category>
      <category>cloud</category>
      <category>designpatterns</category>
    </item>
  </channel>
</rss>
