<?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: Eugenia K</title>
    <description>The latest articles on DEV Community by Eugenia K (@eugenia).</description>
    <link>https://dev.to/eugenia</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%2F846739%2F3e76de2a-94c8-4629-b187-2d4994019d5b.jpg</url>
      <title>DEV Community: Eugenia K</title>
      <link>https://dev.to/eugenia</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/eugenia"/>
    <language>en</language>
    <item>
      <title>A guide to effective implementation of SaaS architecture</title>
      <dc:creator>Eugenia K</dc:creator>
      <pubDate>Fri, 27 Jan 2023 12:25:21 +0000</pubDate>
      <link>https://dev.to/eugenia/a-guide-to-effective-implementation-of-saas-architecture-22hd</link>
      <guid>https://dev.to/eugenia/a-guide-to-effective-implementation-of-saas-architecture-22hd</guid>
      <description>&lt;p&gt;Many companies have already switched to SaaS solutions or integrated them into daily use. With the help of the SaaS model, implementing a new software product can exceed 7 hours, while some time ago, it could take up to 57 hours. &lt;/p&gt;

&lt;p&gt;By adopting SaaS, you can benefit from cloud computing, which speeds up the development process and enables companies to bring new capabilities to the market around &lt;a href="https://www.mckinsey.com/capabilities/mckinsey-digital/our-insights/how-cios-and-ctos-can-accelerate-digital-transformations-through-cloud-platforms"&gt;20-40% faster&lt;/a&gt;. The automation allows cloud-native organizations to release code into production hundreds of times daily. Many long-existing major companies have already switched to the SaaS model. Microsoft, Adobe, and Google are among them. There are several ways to &lt;a href="https://kitrum.com/blog/which-approach-is-better-for-your-saas-software-integration/"&gt;integrate SaaS&lt;/a&gt; solutions to another app or computer system so that they can function together and automatically exchange data.&lt;/p&gt;

&lt;p&gt;One of the most beneficial of SaaS is the flexible architecture to meet most of the business requirements and give customers the services they opt for. Different architecture types give you different levels of control over infrastructure, data and abilities to customize. SaaS (Software-as-a-Service) model also gives you scalability and customization. It allows you to deliver services to your customers anytime and anywhere without special hardware or software. &lt;/p&gt;

&lt;p&gt;Let’s find out what SaaS architecture is and why more and more companies go from on-premises to cloud applications. &lt;/p&gt;

&lt;h3&gt;
  
  
  What is SaaS architecture?
&lt;/h3&gt;

&lt;p&gt;SaaS architecture is a software delivery method when a vendor on a remote server hosts an organization’s application. The capabilities are delivered to the users of the app through the Internet. Various companies can use a single model and configuration. They share the same hardware, network, operation system operating system, and other components by accessing the same hosted application. The vendor deals with tech issues, such as hardware, data storage, updates, and infrastructure security. &lt;/p&gt;

&lt;p&gt;Software engineers may additionally employ APIs (Application Programming Interface) to meet software requirements and customize the SaaS. For the users, the application works upon subscription plans that can differ in price depending on the complexity of the tools they want to access. There is no need to buy the full version or install it on a specific device. &lt;/p&gt;

&lt;h2&gt;
  
  
  On-premises vs. SaaS architecture
&lt;/h2&gt;

&lt;p&gt;Hosting a third-party application utilizing on-premises architecture requires local hardware or a data center. All the technical requirements for the app are your responsibility, as well as infrastructure design and development. &lt;/p&gt;

&lt;p&gt;While SaaS architecture doesn’t require building an infrastructure from scratch and fixing issues, as the vendor fulfills those tasks himself, the team can focus on developing features of your application and maintaining them based on users’ feedback. &lt;/p&gt;

&lt;h2&gt;
  
  
  There are several advantages of adopting SaaS Architecture:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;all the backend infrastructure is the responsibility of the vendor, so you don’t need to maintain it;&lt;/li&gt;
&lt;li&gt;the data within SaaS is stored on remote servers and automatic backups are part of Saas architecture, so even if your local hardware fails, you won’t lose the data; &lt;/li&gt;
&lt;li&gt;SaaS architecture provides scalability, as SaaS platforms provide you with on-demand scaling compute resources. You don’t need additional hardware to enlarge your customer base; &lt;/li&gt;
&lt;li&gt;vendors use advanced cloud technologies and release a thoroughly tested product, so you can deliver services without worrying about bugs, resolving issues, or performing a complicated deployment. &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Types of SaaS architecture
&lt;/h2&gt;

&lt;p&gt;SaaS architecture differs according to industry, tenancy model and software category. &lt;/p&gt;

&lt;h2&gt;
  
  
  Vertical and Horizontal SaaS
&lt;/h2&gt;

&lt;p&gt;Vertical SaaS targets a specific niche and is mainly used in healthcare, real estate, agriculture, finance, logistics, retail, and many more industries. It’s quite a new phenomenon. Instead of covering all product categories, vertical SaaS focuses on specific industry verticals and covers their particular needs. It offers different services and functionalities for a single industry, bringing even more value, as one organization can depend on a single app. &lt;/p&gt;

&lt;p&gt;The horizontal SaaS apps are functionality oriented and operate in any industry. It meets the business requirements and offers functionalities used in almost every field, such as marketing, sales, management, or communication. &lt;/p&gt;

&lt;h2&gt;
  
  
  Single-tenant, Multi-tenant and Mixed-tenant Architecture
&lt;/h2&gt;

&lt;p&gt;Every customer of the SaaS platform is called a tenant and depending on the tenancy model, the architecture can vary. Each tenant is granted access rights after subscription. &lt;/p&gt;

&lt;h2&gt;
  
  
  There is a Single-tenant, Multi-tenant and Mixed-tenant Architecture.
&lt;/h2&gt;

&lt;p&gt;In a single-tenancy architecture, the application’s components, as an application itself, serve a single customer, while in a multi-tenant model, the SaaS app and its framework serve multiple tenants. Within the multi-tenancy model, each tenant uses two parts of the application and shares the rest of the components, such as instances or databases. &lt;/p&gt;

&lt;h2&gt;
  
  
  Best practices to implement SaaS architecture
&lt;/h2&gt;

&lt;p&gt;SaaS architecture is a cost-effective, scalable solution for building progressive software. Several practices will allow you to leverage this environment:&lt;/p&gt;

&lt;h2&gt;
  
  
  Use microservice architecture
&lt;/h2&gt;

&lt;p&gt;Microservices allow you to structurize different applications into sets of data and services. It helps you to deploy, write, test, and patch each service separately. If you aim for growth, microservers will make later changes easier. The teams can work with each service independently, use different coding languages or deploy on other infrastructures. Thus you can isolate problem areas and don’t need to stop the operations or make changes to the entire application. &lt;/p&gt;

&lt;p&gt;Each of your microservices can focus on a particular business offering. For example, in Netflix, several microservices are responsible for different functionality, like billing, movie recommendations, adaptation to the device, etc. &lt;/p&gt;

&lt;h2&gt;
  
  
  Enable customization
&lt;/h2&gt;

&lt;p&gt;Give your customers the tools to customize SaaS solutions according to their requirements without needing to hire a specialist or write the code. You can empower your architecture with APIs, provide the documentation and allow users to integrate other necessary tools that they already use. &lt;/p&gt;

&lt;h2&gt;
  
  
  Secure the data
&lt;/h2&gt;

&lt;p&gt;One of the biggest concerns of adopting SaaS architecture is data security and potential losses in case of data breaches. &lt;/p&gt;

&lt;p&gt;To prevent security issues, use Role-Based Access Control in which users can access the data that corresponds to them by role in an organization. The role can be assigned according to the job position and authority or may contain administrators, contractors, vendors and end-users.  &lt;/p&gt;

&lt;h2&gt;
  
  
  Use a multi-tenant model
&lt;/h2&gt;

&lt;p&gt;Develop a multi-tenant architecture to utilize your resources to the full. But remember that if your user’s workload uses significant resources, you may consider a single-tenant model, as it may drastically influence the user experience of other tenants. &lt;/p&gt;

&lt;p&gt;There are two approaches to multi-tenant architecture. One refers to using one app instance and several databases. The users enter different databases at the same time, and new users are redirected to another database only when the previous one is filled to a certain amount. It gives your application faster scalability, responsiveness and gives your users more resources, though it needs more investments from the start as more resources are allocated. &lt;/p&gt;

&lt;p&gt;The other approach is based on using one database and one app instance, where the users enter the same database and are redirected to the new one as soon as the previous one is filled. This variant is less costly, and takes less time. Though it might limit the scaling, influencing the app’s performance. &lt;/p&gt;

&lt;h2&gt;
  
  
  Monitor spending within your SaaS application
&lt;/h2&gt;

&lt;p&gt;While multi-tenant architecture is a cost-effective solution, its costs may increase as the quantity of user increase. Sometimes it isn’t very easy to keep track, as one database manages multiple tenant’s data. &lt;/p&gt;

&lt;p&gt;After some time, your SaaS architecture can go beyond your margins and monitoring the cost of SaaS will prevent it. &lt;/p&gt;

&lt;h2&gt;
  
  
  Make scalability a part of the plan
&lt;/h2&gt;

&lt;p&gt;The companies generate a lof data, queries and transactions and your SaaS application will eventually attract more users. Be ready to scale and process the high load, keeping your performance on a stable level. Make sure from the very beginning that your SaaS architecture will be able to scale horizontally and vertically. &lt;/p&gt;

&lt;h2&gt;
  
  
  Minimize the downtime
&lt;/h2&gt;

&lt;p&gt;Service outages and downtime are not something your users seek with your SaaS product. Make sure your tools are powerful enough to avoid this, and you can deliver good service. It includes the tested updates and responses to the clients if they need assistance resolving any issues. &lt;/p&gt;

&lt;h2&gt;
  
  
  Take into account compliance issues
&lt;/h2&gt;

&lt;p&gt;If you are building a vertical SaaS architecture and the industry you work in has specific compliance regulations, build them into your SaaS. Such regulations as  General Data Protection Regulation are applied to any niche, so it is mandatory that your SaaS complies with them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ensure standard APIs integration
&lt;/h2&gt;

&lt;p&gt;Prevent your tenants from vendor lock-in concerns. The situation may occur if the tenant wants to move to another platform, but it will cost him too much assets or effort, so he is stuck with a particular provider. &lt;/p&gt;

&lt;p&gt;To avoid this, make standard integration APIs available in your SaaS application. Your users may utilize other SaaS applications to connect the solutions, adding new capabilities instead of changing the vendor. &lt;/p&gt;

</description>
      <category>saas</category>
      <category>saasarchitecture</category>
      <category>saassoftwareintegration</category>
    </item>
    <item>
      <title>How DASK can help your Data Science project? Pros of the framework in simple terms</title>
      <dc:creator>Eugenia K</dc:creator>
      <pubDate>Wed, 13 Apr 2022 10:36:07 +0000</pubDate>
      <link>https://dev.to/eugenia/how-dask-can-help-your-data-science-project-pros-of-the-framework-in-simple-terms-a4d</link>
      <guid>https://dev.to/eugenia/how-dask-can-help-your-data-science-project-pros-of-the-framework-in-simple-terms-a4d</guid>
      <description>&lt;h2&gt;
  
  
  Intro
&lt;/h2&gt;

&lt;p&gt;Working with Data Science you have to deal with huge amounts of unstructured information: for example, weather data for a certain period, query statistics in search engines, microorganism genome databases, and much more. Not only is the volume of data huge but it’s also unstructured, and the amount of it grows day by day. &lt;/p&gt;

&lt;p&gt;By 2025 the amount of Big Data will be about trillion gigabytes, as said in &lt;a href="https://www.import.io/wp-content/uploads/2017/04/Seagate-WP-DataAge2025-March-2017.pdf"&gt;the International Data Corporation research&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;Within just 10 years our society transformed from analog to digital. In the next decade, we will face the virtually limitless power of big data. With more technologies emerging today we receive data from countless channels. It’s not only your computer or smartphone. Dozens of social networks and services, like music, financial or sports apps, smartwatches and glasses, TV and game consoles, and even smart cars – all of them can collect and process data. That made Big Data show rapid growth in recent years. &lt;/p&gt;

&lt;p&gt;Once siloed, remote, inaccessible, and mostly underutilized, data has become essential to our society and our individual lives. By 2025 nearly 20% of the data in the global datasphere will be critical to our daily lives and nearly 10% of that will be hypercritical. A vital role in structuring Big Data and making it useful lies within a Data Scientist. With the help of his models, which can predict possible outcomes based on Big Data it becomes easier to make decisions in science, business, and everyday life. &lt;/p&gt;

&lt;p&gt;Data Scientist uses mathematical statistics and machine learning methods in his work. To simplify, he creates a software algorithm that &lt;a href="https://kitrum.com/blog/steps-to-solve-data-science-projects/"&gt;finds the optimal solution&lt;/a&gt; to the problem. A Data Scientist can spend up to 80 percent of his time working with data, and only the remaining 20 percent is spent on running and tuning the model, evaluating the results. The main work is related to the collection of data, its transformation, cleaning, and writing pipelines. &lt;br&gt;
Taking into account all the above-mentioned, the crucial role of Big Data in everyday life, and its rapid growth, it’s important to evaluate the level of Data Scientists’ work. There are several tools that help a professional sort the data easier and process it faster. In this article, we will present one of the most current tools for working with Big Data – DASK, a flexible library for parallel computing in Python.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is DASK
&lt;/h2&gt;

&lt;p&gt;DASK is an open-source library that provides a framework for Python distributed computing. It processes large amounts of data and increases the speed of computations. Furthermore, DASK lets you scale out your computation to cloud platforms like AWS, Azure, and Google Cloud Platform through connecting to services like Kubernetes and Yarn. &lt;/p&gt;

&lt;p&gt;It’s easy to adopt DASK, as it works with a large number of data science libraries within Python: NumPy, Pandas, Xarray, and Scikit-learn. That means that you don’t have to learn a new set of arguments or restructure your code to start using it. &lt;/p&gt;

&lt;p&gt;DASK fulfills two main tasks: creating Big Data collections and Dynamic task scheduling. It makes it faster to process data, as it makes some functions run in parallel. One of the most revolutionary features is that it scales from a single node to many node clusters, which helps you analyze large-scale data. So basically DASK is a tool for improving your performance and scalability.&lt;/p&gt;

&lt;p&gt;Let’s dive into the plot of how DASK works and how it assists a Data Scientist in dealing with a huge amount of data sets. &lt;/p&gt;

&lt;h2&gt;
  
  
  Work in parallel and process larger data sets than your RAM can handle
&lt;/h2&gt;

&lt;p&gt;DASK consists of three pieces, which in combination make distributed code run with minimal effort. They are: &lt;/p&gt;

&lt;p&gt;– Collections&lt;br&gt;
– Task Graph&lt;br&gt;
– Schedulers&lt;/p&gt;

&lt;p&gt;Collections such as Dataframes, Bags, and Arrays are the re-work of common Python data structures. These collections make it possible to compute in parallel larger data sets that your RAM can handle. Each of these collections uses data partitioned between RAM and a hard disk as well distributed across multiple nodes in a cluster. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6TLDUObN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z7fmdp8x2a0wi37n4k7f.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6TLDUObN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z7fmdp8x2a0wi37n4k7f.jpeg" alt="dask" width="880" height="440"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Collections create Task Graphs which organize tasks and enable optimization. They define how to perform the computation in parallel. Each node in the Task Graph is a normal Python function and edges between nodes are normal Python objects. You can view the Graph by calling visualize() on any collection object.&lt;/p&gt;

&lt;p&gt;Then the actual computation takes place. The flow of work is managed by the Scheduler, which also decides which worker in a potentially many-node cluster gets which task. The task is passed on to the scheduler by a “client”, which is a place where you write your Python code. &lt;/p&gt;

&lt;p&gt;DASK implements blockwise operations so it can work on each block of data individually and then combines the results. Dealing with each kind of operation separately, providing only the final result, makes the computation faster than if there was only a single worker having to do it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Inspect the processes and optimize your code
&lt;/h2&gt;

&lt;p&gt;DASK also contains an interactive dashboard. With its help, you can diagnose the state of your cluster. Plots and tables within the dashboard display live information, which you can use to inspect the process and optimize the code. The different plots and tables include status indicators, system information, logs, etc. It helps you to learn what makes the performance faster and what slows it down. &lt;/p&gt;

&lt;p&gt;The dashboard uses Bokeh plots, so with the help of its tools, such as hover, zoom, tap, pan, etc you can interact with the plot objects. You can also access the dashboard plots directly in JupyterLab using the dask-labextension. &lt;/p&gt;

&lt;p&gt;*&lt;em&gt;Useful Plots:&lt;br&gt;
*&lt;/em&gt;&lt;br&gt;
Cluster Map – is a visualization map, which shows the interaction of the scheduler with the workers around it.&lt;/p&gt;

&lt;p&gt;Task Steam – shows the tasks executed by workers in real-time. It saves the state of the workers, showing a history of the tasks performed at the end of the computation. It denotes idle time and communication. &lt;/p&gt;

&lt;p&gt;Progress Bar – shows the progress on each task during parallel execution. Each task has a different color and remains consistent throughout the dashboard. It helps you make inferences quickly.&lt;/p&gt;

&lt;h2&gt;
  
  
  A wholesome tool for your data volume-heavy projects
&lt;/h2&gt;

&lt;p&gt;To sum up, DASK is one of the most revolutionary tools for data processing. It’s easy to adopt as syntax is similar to the PyData ecosystem. But the most important is that with minimal code changes you can run code in parallel taking advantage of the processing power even on your laptop laptop, regardless of your RAM capacity. Processing data in parallel means less time to execute, less time to wait, and more time to analyze. Performance, scalability, familiarity, and the popular Python at the core, make DASK a wholesome tool for your data volume-heavy projects.&lt;/p&gt;

</description>
      <category>datascience</category>
      <category>bigdata</category>
      <category>programming</category>
      <category>database</category>
    </item>
  </channel>
</rss>
