<?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: OLABAYO BALOGUN</title>
    <description>The latest articles on DEV Community by OLABAYO BALOGUN (@olabayobalogun).</description>
    <link>https://dev.to/olabayobalogun</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%2F669167%2Fb95a7f61-7eff-44f8-bfba-252a2ab68602.jpeg</url>
      <title>DEV Community: OLABAYO BALOGUN</title>
      <link>https://dev.to/olabayobalogun</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/olabayobalogun"/>
    <language>en</language>
    <item>
      <title>Steps to Follow for Container Security</title>
      <dc:creator>OLABAYO BALOGUN</dc:creator>
      <pubDate>Sat, 07 May 2022 07:58:49 +0000</pubDate>
      <link>https://dev.to/olabayobalogun/steps-to-follow-for-container-security-ae1</link>
      <guid>https://dev.to/olabayobalogun/steps-to-follow-for-container-security-ae1</guid>
      <description>&lt;p&gt;Containerization since it hit the market has optimized development, scalability of applications, and a ton of other utilities, so much so that it can easily be viewed by development teams as the gift that keeps on giving. Be that as it may, containerization for all its benefits has led to the unintended consequence of creating some application silos. Depending on the scale of your company’s digital operation, this can be a lot to handle even with the help of Docker.&lt;/p&gt;

&lt;p&gt;Container security has become a hot topic in the wake of several cybersecurity attacks, notable among which is the cryptojacking &lt;a href="https://www.infosecurity-magazine.com/opinions/tesla-hack-cryptojacking-warning/"&gt;attack on Tesla&lt;/a&gt;, which was temporarily successful due to their insufficient container security. &lt;/p&gt;

&lt;p&gt;Container security involves bulletproofing your deployment environment and resources and inculcating &lt;a href="https://www.armosec.io/blog/kubernetes-security-best-practices/"&gt;Kubernetes security best practices&lt;/a&gt; to secure your Docker, host, and/or cloud deployment resources.&lt;/p&gt;

&lt;h2&gt;
  
  
  Important Steps For Container Security
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8DoxGAo9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z3wcut9s5b53zhtnd4sg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8DoxGAo9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z3wcut9s5b53zhtnd4sg.png" alt="Image showing container security lifecycle" width="880" height="377"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://cloudone.trendmicro.com/docs/container-security/img/lifecycle.png"&gt;Image Source&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.trendmicro.com/en_us/what-is/container-security.html#:~:text=Container%20security%20is%20the%20process,Secure%20Host"&gt;Container security&lt;/a&gt; isn’t a random “once and done” check you do when you’re about to deploy an application. And it’s not a periodic audit of your deployment environment to check for issues or free up space. Effective container security is policy and real-time container monitoring that leverages software and professional inspection to prevent external threats from slipping through the cracks. &lt;/p&gt;

&lt;p&gt;Some of the best practices for container security are basic rule of thumb actions that do not require learning more than you already know. These are the steps we explore in this article. &lt;/p&gt;

&lt;p&gt;It’s an open secret that a lot of organizations do not have a proper handle on how many containers they’re running. For massive corporations that are slowly transitioning into microservices architecture, you will have a mix of containers and monolithic applications to handle. It’s very important to know the location of all containers as well as their responsibilities in order to speed up monitoring and managing your container security.&lt;/p&gt;

&lt;h3&gt;
  
  
  Creating a Deployment Control Policy
&lt;/h3&gt;

&lt;p&gt;During pre-deployment processes, it’s important to develop policy-based deployment control rules that will be implemented in your deployment environment. By infusing your rules into your Kubernetes object’s properties, you make it easier for other tools that evaluate your deployment control to determine if your image is ready for deployment or if it needs a second look. Little things like this can have a snowball effect if things go wrong. This is why it’s best to err on the side of caution.&lt;/p&gt;

&lt;h3&gt;
  
  
  Container Image Scanning
&lt;/h3&gt;

&lt;p&gt;Starting with deployment, container image scanning has to rank as the first thing you need to do regardless of whether you’re deploying to a new operating system or one that already hosts other applications. Image scanning helps reduce the likelihood of deploying applications that are corrupted directly or are compromised as a result of the packages and other dependencies that they’ve been bundled with. &lt;/p&gt;

&lt;h3&gt;
  
  
  VPNs and MFA
&lt;/h3&gt;

&lt;p&gt;While a lot of best practices dictate that you foolproof your containers against external threats, sometimes internal threats can be more damaging. The use of a &lt;a href="https://us.norton.com/internetsecurity-privacy-what-is-a-vpn.html"&gt;VPN&lt;/a&gt; (virtual private network) and MFA (multi-factor authentication) for employees who have administrative access to your containers can reduce the likelihood of their user accounts falling into the wrong hands and being used maliciously. This measure is especially important now that working remotely has become the norm.&lt;/p&gt;

&lt;h3&gt;
  
  
  Using the Right OS
&lt;/h3&gt;

&lt;p&gt;When deciding on operating systems for your containers, it’s best to leverage the OS that best aligns with the nature of your container. Reducing the amount of unnecessary packages and resources in an environment will directly reduce the number or possible loopholes that can be exploited. The rule of thumb is that if your container doesn’t interact with a dependency resource, the resource shouldn’t be in your OS. The rise in infected packages justifies the need to trim the excess in your OS.&lt;/p&gt;

&lt;h3&gt;
  
  
  Container Management
&lt;/h3&gt;

&lt;p&gt;There are times when it’s easy to forget why a microservice architecture is revolutionary when building applications. Knowing when to make a component of your application into a separate service can sometimes be challenging. A mistake at this point of development can result in a container that does too many things and needs to constantly be modified. &lt;/p&gt;

&lt;p&gt;Containers must remain lightweight and focused on specific responsibilities in order to reduce the number of modifications needed on it. This in turn reduces the likelihood of compromising the container security by mistakenly introducing resources that compromise the container.&lt;/p&gt;

&lt;h3&gt;
  
  
  Continuous Monitoring
&lt;/h3&gt;

&lt;p&gt;Deploying your application and having your containers running without any challenges doesn’t exactly mean it’s ok to kick back and relax, it’s important that you continuously monitor your environment and containers as cybersecurity threats can spring out of nowhere. Moreover, by virtue of the fact that your applications interact with the internet and with users who have different motives, frequent inspections are needed to confirm that things are the way they should be or resolve anomalies in your container.&lt;/p&gt;

&lt;p&gt;The use of monitoring tools can’t be overemphasized in container security. Procurement of container security &lt;a href="https://techbeacon.com/security/17-open-source-container-security-tools"&gt;tools&lt;/a&gt; can provide round-the-clock security for your containers and react faster to threats as they appear. Because the human ability to actively juggle multiple pieces of information is relatively finite, it’s more pragmatic to saddle container security tools with the bulk of the responsibility of enforcing policies and checking container images during and after deployment.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;As the world pivots more applications from the monolithic architecture to microservice architecture, it’s important that cybersecurity is enforced not just in the application, but in the environment that helps the application interact with the broader internet. Protecting your digital infrastructure for the benefit of your clients and your organization must also include container security in order to guarantee holistic immunity to the attackers of hackers and other malignant actors. &lt;/p&gt;

&lt;p&gt;There are tools that make the process of securing containers less tedious and it can be really handy to leverage them where necessary, depending on the size of your team and your budget.&lt;/p&gt;

</description>
      <category>kubernetes</category>
      <category>security</category>
      <category>devops</category>
      <category>microservices</category>
    </item>
    <item>
      <title>
Managing YAML Errors for Kubernetes Configuration</title>
      <dc:creator>OLABAYO BALOGUN</dc:creator>
      <pubDate>Tue, 22 Feb 2022 06:10:04 +0000</pubDate>
      <link>https://dev.to/olabayobalogun/managing-yaml-errors-for-kubernetes-configuration-k85</link>
      <guid>https://dev.to/olabayobalogun/managing-yaml-errors-for-kubernetes-configuration-k85</guid>
      <description>&lt;p&gt;The process of developing and scaling enterprise software solutions across the globe to serve netizens has evolved greatly over the last few decades. The dependence on hardware has rapidly reduced in favor of software optimizations that allow software engineers and development teams to scale up the utility they can derive from hardware installation by as much as is needed to get the job done.&lt;/p&gt;

&lt;p&gt;Kubernetes is one such solution that has allowed us to significantly scale software solutions. However, to leverage its benefits, adequate knowledge of &lt;a href="https://komodor.com/blog/the-top-5-kubernetes-configuration-mistakes-and-how-to-avoid-them/?swcfpc=1"&gt;Kubernetes configuration&lt;/a&gt; is required to ensure that things don’t break in production. YAML is arguably the neatest tool that can be leveraged for providing configuration instructions when running and deploying applications using Kubernetes.&lt;/p&gt;

&lt;p&gt;Despite the proven utility of YAML as a data serialization language and its &lt;a href="https://techterms.com/definition/ergonomics"&gt;ergonomics&lt;/a&gt;, there are unavoidable errors that occur using YAML in Kubernetes configuration. Learning how to avoid or manage these errors will greatly impact your development journey and the stability of your software solution using containerization. In this article, you’ll learn a number of tips for managing YAML errors for Kubernetes configuration.&lt;/p&gt;

&lt;h2&gt;
  
  
  5 Tips for Managing YAML Errors for Kubernetes Configuration
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Keep Your YAML Structure Simple&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The entire point of YAML is its simplicity, which is aimed at reducing convoluted code that isn’t manageable. Sometimes, this may mean using more common patterns like:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--E-s5YSk0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gg6lra93rwgqw9r1y1sq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--E-s5YSk0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gg6lra93rwgqw9r1y1sq.png" alt="Image of Code snippet showing lists in YAML" width="880" height="453"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://ray.so/?title=YAML+List&amp;amp;theme=breeze&amp;amp;spacing=64&amp;amp;background=true&amp;amp;darkMode=true&amp;amp;code=YXBwbGljYXRpb246CiAgLWZpcnN0LWxpc3QtaXRlbTogZmlyc3QtbGlzdC1jb250ZW50CiAgLXNlY29uZC1saXN0LWl0ZW06IHNlY29uZC1saXN0LWNvbnRlbnQ&amp;amp;language=yaml"&gt;Source&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Rather than patterns like:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--bSo_4bqm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/14sjitns3rtlsmqdl0cp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bSo_4bqm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/14sjitns3rtlsmqdl0cp.png" alt="Image of Code snippet showing lists in YAML" width="880" height="334"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://ray.so/?title=YAML+List+Style&amp;amp;theme=breeze&amp;amp;spacing=64&amp;amp;background=true&amp;amp;darkMode=true&amp;amp;code=YXBwbGljYXRpb246IFtmaXJzdC1saXN0LWl0ZW0sIHNlY29uZC1saXN0LWl0ZW1d&amp;amp;language=yaml"&gt;Source&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The latter can become harder to read if your list has nested objects or lists within them. All of these lean into the KISS (Keep It Simple Stupid) ideology that is prevalent in the field of software development.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Employ Consistent Conventions&lt;/p&gt;

&lt;p&gt;This is arguably more important than the first tip. A code’s quality is made apparent when multiple professionals work on the codebase, but it looks like one person did it all. It is important to agree on a consistent writing style for your YAML configuration because as the size of your configuration grows, it may become much harder to spot errors in a configuration with multiple writing conventions. &lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Leverage Linters and YAML Formatters&lt;/p&gt;

&lt;p&gt;Having linters can be incredibly helpful for proofreading your code on the go. Also, online YAML formatters can be equally helpful for providing insights on how to correct hard-to-spot errors that may be messing with your Kubernetes configurations. At other times, copying and pasting your YAML code in a new environment helps bring about a new perspective that will be instrumental in finding bugs. Finally, tools like &lt;a href="https://hub.datree.io/"&gt;Datree&lt;/a&gt; can save a lot of debugging time.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Leverage Multiple YAML Files&lt;/p&gt;

&lt;p&gt;Trying to fit all of your configurations in one YAML file is a recipe for disaster because regardless of how easy YAML is on the eyes, debugging errors will be a lot tougher. Therefore, it is important to make use of multiple YAML files where possible to further decouple your Kubernetes configuration. As a rule of thumb, when trying to debug your YAML errors, it can be incredibly helpful to copy bits of the code into separate files and review them in bits rather than taking on the whole chunk of the YAML configuration in one file. &lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Seek Help from Peers&lt;/p&gt;

&lt;p&gt;There are times when your YAML script’s bug is a result of a much deeper problem. In such instances, it can be very helpful to escalate your error messages to more experienced developers who will save you time that would have been wasted running in circles. Bear in mind, however, that you need to mask or remove sensitive data when sharing your code with the public to avoid compromising your digital infrastructure. Platforms like &lt;a href="https://stackoverflow.com/"&gt;StackOverflow&lt;/a&gt; have a rich community of developers who have either been through what you’re going through or are able to debug your code better than you can.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Managing YAML errors during Kubernetes configuration can seem like looking for a needle in a haystack due to how many of the mistakes result directly from human error. More often than not, these errors can be hard to spot because, upon revision of the code, you’re more likely to see what you wanted to write rather than what you actually wrote. This challenge is further compounded by overly verbose YAML configuration files.&lt;/p&gt;

&lt;p&gt;In this article, we discussed useful tips to ensure your YAML configuration files leverage the best aspect of YAML, which is its cleanliness. This will enable better configuration. You also learned a number of tips that drive home the need for keeping your configuration files small and decoupled to aid easy debugging and reduce the chances of something going wrong. The time lost in following best practices is ultimately recovered over time in the form of achieving an easily manageable digital infrastructure with minimal technical debt.&lt;/p&gt;

&lt;p&gt;I hope you found this post enjoyable and easy to follow. If you have any queries or feedback, please feel free to leave a comment. Good luck!&lt;/p&gt;

</description>
      <category>kubernetes</category>
      <category>yaml</category>
      <category>webdev</category>
      <category>softwaredevelopment</category>
    </item>
    <item>
      <title>Introduction to Data Engineering
</title>
      <dc:creator>OLABAYO BALOGUN</dc:creator>
      <pubDate>Thu, 23 Dec 2021 08:42:38 +0000</pubDate>
      <link>https://dev.to/olabayobalogun/introduction-to-data-engineering-5bi3</link>
      <guid>https://dev.to/olabayobalogun/introduction-to-data-engineering-5bi3</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;The year is 2021, and the internet as we know it is transitioning into &lt;a href="https://flatworldbusiness.wordpress.com/flat-education/previously/web-1-0-vs-web-2-0-vs-web-3-0-a-bird-eye-on-the-definition/"&gt;web 3.0&lt;/a&gt;, with web 4.0 becoming more than a concept note. Underneath all the pomp and fanfare, we produce a massive amount of data that needs to be refined and properly categorized before all of the massive digital infrastructures we leverage on a daily basis can work.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.coursera.org/articles/what-does-a-data-engineer-do-and-how-do-i-become-one"&gt;Data engineering&lt;/a&gt; is a practice where you design and build systems to collect, store, and analyze data at scale. A more relatable explanation is that data engineering is what is done to data that we receive from users (or alternative sources) to ensure that the said data is useful and can be relied upon to make decisions that may result in a product or service. &lt;/p&gt;

&lt;p&gt;For many, the term data engineering seems like something that should fall under the purview of data scientists. However, the reality is that data engineers have entirely &lt;a href="https://www.dremio.com/data-lake/data-engineering/"&gt;different&lt;/a&gt; responsibilities from what data scientists do. Data engineers create an enabling environment for data scientists to perform their analysis of data.&lt;/p&gt;

&lt;p&gt;In the past (and present in some organizations that are behind the times), data scientists would complain about the data they needed to analyze. Most of the data they were working with required a lot of cleanup to be useful. These cleanups constituted &lt;a href="https://blog.ldodds.com/2020/01/31/do-data-scientists-spend-80-of-their-time-cleaning-data-turns-out-no/"&gt;80%&lt;/a&gt; of their workload and delayed data analysis. Data engineering exists to get rid of this bottleneck.&lt;/p&gt;

&lt;p&gt;To the untrained eye, having data scientists clean the data might not look like much, but for organizations in fast-moving industries, such as machine learning, it can be quite a &lt;a href="https://www.theverge.com/2017/11/1/16589246/machine-learning-data-science-dirty-data-kaggle-survey-2017"&gt;nightmare&lt;/a&gt; for data scientists. Data engineering exists to improve the efficiency of data scientists by working with all stakeholders, including software engineers and database administrators.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ST3B9GB8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/max/1400/1%2AhDQDvNvjElvgsbxDgql3Bw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ST3B9GB8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/max/1400/1%2AhDQDvNvjElvgsbxDgql3Bw.png" alt="Data engineering illustration" width="880" height="358"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Applications Of Data Engineering
&lt;/h2&gt;

&lt;p&gt;The applications of data are inexhaustible. But, despite the work of software engineers and other well-meaning professionals, the data that makes its way from applications to databases is far from what data scientists need. While there are processes like &lt;a href="https://www.whitehatsec.com/glossary/content/input-validation"&gt;input validation&lt;/a&gt; put in place by software engineers, a huge amount of data slips through the cracks and must be fixed.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6LTIXHCv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.pinimg.com/564x/8a/dd/cb/8addcb33a535a50251aae9d72c21a0fa.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6LTIXHCv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.pinimg.com/564x/8a/dd/cb/8addcb33a535a50251aae9d72c21a0fa.jpg" alt="Data cleansing illustration" width="564" height="343"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Data Cleansing
&lt;/h2&gt;

&lt;p&gt;If there’s anything this article must have sold you on, it should be this: we need data engineers to clean up our data. For many, data is hard to conceptualize. We perceive data as just pictures, music, videos, and word documents floating around cyberspace and possibly on devices. Perceiving data in such a way prevents us from seeing the need for clean up of data.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.tableau.com/learn/articles/what-is-data-cleaning"&gt;Data cleansing&lt;/a&gt; or data cleaning is when you fix or remove incorrect, corrupted, inaccurately formatted, repeated, or incomplete data within a dataset.  Data cleansing is different from data transformation (though some argue that data transformation is encompassed by data cleansing). Data transformation involves changing the format or the structure of data.&lt;/p&gt;

&lt;p&gt;If data is dirty, then it is unreliable. The impact of unreliable data manifests in algorithms. A recent example of what can happen when algorithms are wrong is Zillow’s &lt;a href="https://www.bloomberg.com/news/articles/2021-11-08/zillow-z-home-flipping-experiment-doomed-by-tech-algorithms"&gt;$569 million&lt;/a&gt; financial scandal, where the algorithm was blamed for the error. However, algorithms work hand in hand with data. So, a bad algorithm is a function of bad data.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--i5Wfk-Q4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/max/1400/1%2AQ25w6qRh89gKmKrPaq9osg.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--i5Wfk-Q4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/max/1400/1%2AQ25w6qRh89gKmKrPaq9osg.jpeg" alt="ETL illustration" width="880" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  ETL
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/Extract,_transform,_load"&gt;ETL&lt;/a&gt; is an acronym for extract, transform and load. ETL describes the process of taking data from one or more sources, manipulating it, and storing it somewhere else. The process of manipulation of this data changes some of the characters and characteristics of the data. ETL is where data warehousing is called upon. &lt;/p&gt;

&lt;p&gt;The amount of liquid capital required to store and manage data gave rise to industries like PaaS (Platform as a Service) and IaaS (Infrastructure as a Service), all of which can be regarded as a &lt;a href="https://www.firebolt.io/blog/cloud-data-warehouse"&gt;cloud data warehouse&lt;/a&gt;. ETL has to occur because if a project is big enough, the data it requires will come from different sources, and these sources may have different storage conventions. &lt;/p&gt;

&lt;p&gt;At other times, ETL is used to create databases in compliance with laws and as a company decides to change its cloud storage processes. On a small scale, this may not seem like much. However, when you’re dealing with thousands of databases holding millions of datasets, ETL becomes a project in itself.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3S2SrGL4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://developers.google.com/machine-learning/crash-course/images/RawDataToFeatureVector.svg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3S2SrGL4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://developers.google.com/machine-learning/crash-course/images/RawDataToFeatureVector.svg" alt="Feature engineering illustration" width="880" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Feature Engineering
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.omnisci.com/technical-glossary/feature-engineering"&gt;Feature engineering&lt;/a&gt; describes the act of identifying and manipulating key component(s) of unprocessed data to create statistical models and predictive models through the use of machine learning. As a result of the amount of esoteric knowledge one needs to have about the dataset, data engineers are the best qualified to carry out feature engineering.&lt;/p&gt;

&lt;p&gt;Modeling is at the heart of machine learning, artificial intelligence, and other disciplines that require strong predictive analysis. Feature engineering is a critical process that can determine how algorithms behave, and, if Zillow is anything to go by, mistakes at this level can prove costly if not quickly identified.&lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;Data engineering remains indispensable for making sense of the noise we now know as data. The work that goes into clearing the rubble to create order among data sets is one that is well worth its weight in gold now that data is beginning to take on a larger-than-life persona. As we stabilize web 3.0 and try to chart our course for web 4.0, our need for solid footing on not just data, but refined and structured data, can very well be the determining factor in building the internet of the future.&lt;/p&gt;

</description>
      <category>dataengineering</category>
      <category>programming</category>
      <category>datascience</category>
      <category>database</category>
    </item>
    <item>
      <title>5 Advantages of Data Versioning Technology for AI/ML</title>
      <dc:creator>OLABAYO BALOGUN</dc:creator>
      <pubDate>Wed, 08 Dec 2021 18:30:05 +0000</pubDate>
      <link>https://dev.to/olabayobalogun/5-advantages-of-data-versioning-technology-for-aiml-1nli</link>
      <guid>https://dev.to/olabayobalogun/5-advantages-of-data-versioning-technology-for-aiml-1nli</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Anyone who has ever used a computer can attest to the immeasurable value of ctrl/cmd + z. The ability to undo changes is the greatest attribute of computers—a great tool that provides great possibilities. And its usability in data versioning has been a game-changer in coding.  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://lakefs.io/data-versioning/"&gt;Data versioning&lt;/a&gt; by itself represents some of the ideologies of time travel. One can go back and forth between different versions of data. In this article, we’re going to look at how data versioning can be advantageous for AI/ML projects.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1ieo0hb1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zxmvlqfve3pugnjroiqe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1ieo0hb1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zxmvlqfve3pugnjroiqe.png" alt="Data versioning breakdown" width="880" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Advantages of Data Versioning Tech for AI/ML
&lt;/h2&gt;

&lt;p&gt;While data versioning has been around a lot longer than the phrase “data versioning”, it’s worth noting that data versioning technologies have been built to give this process a more robust use-case have a number of &lt;a href="https://medium.com/swlh/4-reasons-why-data-scientists-should-version-data-672aca5bbd0b"&gt;advantages&lt;/a&gt; that are either underutilized or ignored by AI/ML teams, some of these “underneath your nose” perks are summarized below.&lt;/p&gt;

&lt;p&gt;1) Organization: AI and ML work closely with big data. As a result, it deals with mind-boggling data sets. As data sets become more extensive, it becomes harder and harder to work with them without leveraging the organization capacity of data versioning. The ability to work with data reduces as the project size increases. This eventually results in a tipping point where the project is unmanageable.&lt;/p&gt;

&lt;p&gt;For context, imagine building Google’s search engine with binary language. It’s practically impossible. The use of high-level languages makes the project less herculean. In such massive projects involving multiple teams, data versioning is invaluable.&lt;/p&gt;

&lt;p&gt;2) Debugging: The process of debugging in production, remotely or in development, is one that takes a toll on even the most experienced software engineers. Especially when a project has numerous data points, it can be hard to tell where things have gone wrong if there is an issue in a new update. Data versioning makes it easy to compare changes and review impacts. &lt;/p&gt;

&lt;p&gt;This is especially important when an update doesn’t have the desired result. With multiple teams working on a project, mistakes during testing or during development can often remain undetected till the project is live. Data versioning is a lifesaver in this regard.&lt;/p&gt;

&lt;p&gt;3) Reversion of Changes: Something that doesn’t get talked about enough is the impact of being able to revert changes made to a codebase or dataset. While there’s no conclusive evidence to support or adequately measure the impact of being able to revert data, it is a great tool for development teams.&lt;/p&gt;

&lt;p&gt;Millions of hours that would have been lost to debugging are saved due to the use of data versioning. It helps rollback changes when they have less than the desired effect. Data versioning doesn’t just benefit development teams. It also makes it easier to work with clients who are resistant to change.&lt;/p&gt;

&lt;p&gt;Considering the amount of data and resources being expended on AI/ML development projects, the absence of reversion of changes would make collaboration even harder. A lot of manual copying and saving of projects would be needed to gain the benefits data versioning provides.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/Technical_debt#:~:text=Technical%20debt%20(also%20known%20as,approach%20that%20would%20take%20longer.)"&gt;Technical debt&lt;/a&gt;, which involves managing a bad situation due to the fallacy of a sunk cost or having to restart a project, are two hard choices that can be avoided through data versioning. Data versioning technologies make reversion of changes synchronized, seamless, and less error-prone.&lt;/p&gt;

&lt;p&gt;4) Collaboration: Since AI and ML are still in their infancy, many hands are needed to help build them quickly. Data versioning technology enables teams to collaborate regardless of distance and in real-time. This has yielded a positive growth in the speed at which the fields of AI and ML are growing.&lt;/p&gt;

&lt;p&gt;The pandemic had a huge impact on the way we work. The field of software development was able to rebound a lot quicker than other fields owing largely to data versioning. Data versioning technology quickly became the new confluence where work could be aligned, and it showed in the &lt;a href="https://www.bbc.com/news/business-57979268"&gt;increased earning of the top tech companies&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;5) Fluid Development: Features like &lt;a href="https://www.redhat.com/en/topics/devops/what-is-ci-cd"&gt;CI/CD&lt;/a&gt; (continuous delivery and continuous integration) and extended forms of automation testing are only possible due to the advances that have been made in data versioning. Development is a lot sleeker with less downtime.&lt;/p&gt;

&lt;p&gt;Before CI/CD, the rollout of new changes could only occur during off-peak hours and after spending a considerable amount of time informing clients of the impending change. These changes would then be gradually monitored over a period of time, with the development team on standby. Such practices are now a thing of the past.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;AI and ML is still a developing arm of software engineering. While there’s a lot we don’t know, it seems clear that data versioning will play a huge role in the evolution of AI/ML. As technology and trends change, data will remain the bedrock upon which AI and ML are built.&lt;/p&gt;

&lt;p&gt;For these reasons, there’s an implicit and explicit burden placed on development teams to properly leverage data versioning technologies in line with global best practices. This helps ensure that projects costing millions of dollars and billions of datasets don’t end up abandoned due to an increasing difficulty in managing and manipulating data.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>machinelearning</category>
      <category>programming</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>Introduction to Typosquatting Attacks
</title>
      <dc:creator>OLABAYO BALOGUN</dc:creator>
      <pubDate>Tue, 05 Oct 2021 06:28:55 +0000</pubDate>
      <link>https://dev.to/olabayobalogun/introduction-to-typosquatting-attacks-4bl1</link>
      <guid>https://dev.to/olabayobalogun/introduction-to-typosquatting-attacks-4bl1</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;The internet is a digital universe that shares a lot in common with a maze. It’s so easy to lose our way and tumble into a rabbit hole that feels like an abyss. From pop-up ads to other intrusive forms of advertising that redirect us to other platforms, netizens have to contend with a lot of assault to surf the web.&lt;/p&gt;

&lt;p&gt;Notable among the many boobytraps on the internet is one called &lt;a href="https://www.kaspersky.com/resource-center/definitions/what-is-typosquatting"&gt;typosquatting&lt;/a&gt;. It is a situation where malignant actors and cutthroat marketers register domain names that are somewhat similar to the domain names of organizations and popular entities with the hope of ensnaring unsuspecting netizens who click or mistype the URL of their intended website.&lt;/p&gt;

&lt;p&gt;Many times, typosquatting attacks can be used to redirect to other platforms (a competitor’s website, betting, ads, or pornographic platforms). However, there are times when typosquatting can be used for utterly malignant activities, one of which is automatically installing dangerous software on your device. This can happen by simply visiting these platforms; a strategy termed &lt;a href="https://www.mcafee.com/blogs/consumer/drive-by-download"&gt;drive-by download&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--FXLCwfBW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/70ij2rez8z92z5h908wr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--FXLCwfBW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/70ij2rez8z92z5h908wr.png" alt="Picture showing examples of typosquatting website"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://devopedia.org/images/article/284/7713.1597080417.png"&gt;Image Source&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Typosquatting is a cyber-attack strategy that is used in every sphere of human interaction. While the business use is more common, there are famous cases where it has been utilized in politics to defame other political candidates and redirect potential political donors to the typosquatter’s donor. This was famously done in the 2020 &lt;a href="https://www.digitalshadows.com/blog-and-research/typosquatting-and-the-2020-u-s-presidential-election/"&gt;US presidential election&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Common Typosquatting Attack Strategies
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--up1hORSz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y2ddjlfuihnidwziuv4n.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--up1hORSz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y2ddjlfuihnidwziuv4n.jpg" alt="Picture showing typosquatting techniques"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://devopedia.org/images/article/284/5250.1597080458.jpg"&gt;Image Source&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Typosquatting is built on the Achilles heel of the human mind that makes us likely to generalize words to infer their meaning quickly, preserve brain power, and boost efficiency. A lot of &lt;a href="https://www.wired.com/2014/08/wuwt-typos/"&gt;research&lt;/a&gt; has gone into trying to understand why humans are prone to typographical errors. Hence, it’s safe to say typosquatting attacks will continue to have a disconcerting success rate.&lt;/p&gt;

&lt;p&gt;Common methods of typosquatting are:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Omission:&lt;/strong&gt; This is when a domain name similar to a popular domain name target is registered, albeit with one or more letters missing. One example is registering a domain name like “Gogle.com” in a bid to ensnare users who subconsciously assumed the URL to be “Google.com”.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Addition:&lt;/strong&gt; This is when an extra letter(s) is added when registering a domain name that looks like the target domain name of the typosquatting attack. One example is registering a domain name like “G0oogle.com” because it looks like “Google.com”.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Transposition:&lt;/strong&gt; This is when a domain name intended to look like the target domain name is registered with the positions of the letters of the URL swapped around. One example is registering a domain name like “Googel.com” because it looks like “Google.com”.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Substitution:&lt;/strong&gt; This is when a domain name has substituted characters to confuse unsuspecting netizens that they’re the same thing. For example, one can use “G00gle.com” to imitate “Google.com. Hint: zeroes have been used in the first one. It may or may not be apparent, depending on the font you’re using.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;All of the above tricks of typosquatting are a means to an end. Typosquatting is typically the pipeline for executing unethical endeavors like:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Impersonating financial organizations to illegally obtain the financial details of victims for the purpose of theft or money laundering.&lt;/li&gt;
&lt;li&gt;E-commerce fraud, which can occur by getting unsuspecting victims to pay for products that don’t get delivered.&lt;/li&gt;
&lt;li&gt;Hate pages aimed at demarketing the product or services of a business and defaming public figures.&lt;/li&gt;
&lt;li&gt;Hacking unsuspecting users by facilitating a drive-by download of malware or ransomware.&lt;/li&gt;
&lt;li&gt;Intrusive advertising, which is aimed at bombarding victims with adverts and redirecting them to an advertising page.
Redirecting victims to betting or pornographic platforms.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Reducing Risk Exposure To Typosquatting Attacks
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Jt6_V9dx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fl7huzlm8js5x648ln6d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Jt6_V9dx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fl7huzlm8js5x648ln6d.png" alt="A pie chart showing the percentage and categories of typosquatting attacks"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.digitalshadows.com/uploads/2019/10/Breakdown-of-relevant-typosquatted-sites-uncovered-by-category-768x584.png"&gt;Image Source&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Due to the ease with which typosquatting attacks can be executed, it may appear like all hope is lost. However, there are cybersecurity tips that can help end-users, business owners, and software engineers avoid these boobytraps. It is worth noting that there is a burden on software engineers and DevOps engineers to reduce the likelihood of success of typosquatting attacks.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Use browsers like Google Chrome that have &lt;a href="https://www.forbes.com/sites/zakdoffman/2019/10/05/google-warns-users-about-new-chrome-updatesome-content-will-now-be-blocked/?sh=c39bec030a90"&gt;policies&lt;/a&gt; that help ensure netizens can safely surf the internet.&lt;/li&gt;
&lt;li&gt;DevOps engineers need to purchase domain names that are similar to the domain name of their client to redirect traffic from those domain names to the client’s main domain name and to forestall typosquatting attacks. For example, “www.google.co” redirects to “www.google.com” (a smart move by the Google team). &lt;/li&gt;
&lt;li&gt;Netizens need to avoid clicking on links without reading through them carefully.&lt;/li&gt;
&lt;li&gt;Pin your favorite websites to your browser homepage (Google Chrome, Opera Mini, and other browsers do this automatically).&lt;/li&gt;
&lt;li&gt;Leveraging development tools: Software engineers typically leverage packages and libraries to build enterprise software solutions. Unfortunately, this can sometimes expose the developer and software solution to unintended typosquatting attacks. &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Because a lot of packages and libraries consumed have names that sometimes defy normal language conventions, developers are less likely to carefully scrutinize resources before using them. This risk can have damaging consequences if things go wrong. As a result, many teams are beginning to rely on software solutions that help minimize this risk.&lt;/p&gt;

&lt;p&gt;Tools like &lt;a href="https://www.whitesourcesoftware.com/whitesource-diffend/"&gt;WS Diffend&lt;/a&gt; (a free tool for Ruby applications) help protect development teams and their solutions from falling prey to cyber threats that arise as a result of digital handshakes with third-party (and sometimes open source dependencies). As a result of the number of dependencies that developers use, tools like WS Diffend are a must. &lt;/p&gt;

&lt;p&gt;WS Diffend is particularly notable because it scans for risks in Ruby applications (with a Javascript version nearing release) and offers robust, end-to-end cybersecurity that guards against typosquatting attacks, accidental injections, botnet code injections, viruses, package tampering, Ruby CVEs, dependency confusion, etc.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Typosquatting is one of those obvious threats that are still easy to fall for. It’s surprising how the simplest tricks work so well. We are all busy professionals who make thousands of decisions daily. As such, it’s common to make split-second decisions or skip out on reading things clearly before clicking or visiting websites. &lt;/p&gt;

&lt;p&gt;There is an explicit burden placed on software engineers to help reduce the success rate of typosquatting by collaborating with cybersecurity experts and leveraging tools like WS Diffend in foolproofing software solutions.&lt;/p&gt;

</description>
      <category>cybersecurity</category>
      <category>codenewbie</category>
      <category>typosquatting</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
