MySQL – Devstyler.io https://devstyler.io News for developers from tech to lifestyle Thu, 13 Apr 2023 09:15:25 +0000 en-US hourly 1 https://wordpress.org/?v=6.8.5 Redgate Software Releases Test Data Management Tool https://devstyler.io/blog/2023/04/13/redgate-software-releases-test-data-management-tool/ Thu, 13 Apr 2023 09:15:25 +0000 https://devstyler.io/?p=104491 ...]]> Redgate Software has introduced a new and comprehensive DevOps tool for various databases – Redgate Clone. It allows development teams to incorporate test data management as an easy and natural step in their DevOps processes across the four most popular databases.

Taking advantage of database virtualization technologies, Redgate Clone enables small and light clones of databases to be created manually or as part of an automated process, which can be used for development and testing, and as part of Continuous Integration and Continuous Delivery pipelines.

Teams working with SQL Server, PostgreSQL, MySQL and Oracle can now branch, reset and version their database instances at application-code speed as they develop, with zero risk of affecting other team members. To further improve modern development environments, Redgate Clone supports teams working across on-premises, cloud and hybrid architectures, including those running containers and Kubernetes.

Developers can now self-serve production-like clones of SQL Server, PostgreSQL, MySQL and Oracle databases in seconds, and validate database updates with an advanced set of tests, checks and reports, which can be run as part of an automated process. Because the virtual clones in Redgate Clone are quick to create, independent, and have minimal storage overhead, they enable consistent production-like development environments to be automatically provisioned in seconds, and free developers from working on shared databases, enabling them to carry out their work and test new ideas without the risk of disrupting each other.

Testing with consistent, realistic, and compliant datasets throughout the development process means developers can catch data-related issues long before they reach customers. All of which increases efficiency, minimizes costs, standardizes practices across development teams, improves the quality of software releases, and releases value to customers faster.

Importantly with Redgate Clone, a clone of an entire instance can be spun up with all of its databases and configuration data. As a result, teams are not blocked by cross-database dependencies, greatly improving their ability to develop features and resolve issues.

The ability of the clones to be versioned as work progresses also enables developers to restore to a given point in time to restart or remedy their work if an issue arises. And to further improve efficiencies, Redgate Clone runs as a central service and removes the maintenance overhead of local database instances and agents.

When used to standardize test data management practices across databases and teams, and across architectures and containers, Redgate Clone improves the quality of the data used in testing, the safety of that data, and the speed at which databases and applications can be developed.

]]>
8 Open Source GitHub Repositories That Are Trending Right Now https://devstyler.io/blog/2021/07/27/8-open-source-github-repositories-that-are-trending-right-now/ Tue, 27 Jul 2021 08:19:53 +0000 https://devstyler.io/?p=61779 ...]]> San Francisco-based Internet hosting for software development GitHub was founded in 2008 as Microsoft’s subsidiary. Since then, GitHub has been offering distributed version control and source code management functionality of Git. 

GitHub Repositories usually consist of folders, files, images, spreadsheets, and videos; and are used to organise projects. GitHub boasts of being one of the world’s largest communities of developers. As of January 2020, it reported hosting over 40 million users with 190 million repositories. A developer can either create private repositories or choose to share them with others.

Nоw, we will take a look at eight open-source GitHub Repositories that are currently trending:

Mobile Verification Toolkit 

Developed by Amnesty International Security Lab, Mobile Verification Toolkit or MVT is a collection of utilities to automate the gathering of forensic traces used in identifying potential threats on Android or iOS devices. It was released recently in the context of the Pegasus project.

For iOS devices, MVT helps extract artefacts from iTunes backup and full filesystem dump. It also compares stored JSON results to provide indicators. For Android devices, MVT downloads all or non-safe listed installed APKs and checks the Android backup.

Using the MVT tool requires technical skills including understanding the basics of forensic analysis and using command-line tools.

In order to install MVT, first install the dependencies using the following code:

For Linux: sudo apt install python3 python3-pip libusb-1.0-0

For macOS: brew install python3 libusb

Post this, one can either directly install MVT from PyPI with: pip3 install mvt

Or directly from sources:

git clone https://github.com/mvt-project/mvt.git

cd mvt

pip3 install

Tinode Instant Messaging Server 

The Tinode Instant Messaging Server, on the surface, looks similar to WhatsApp or Telegram. Backed in pure Go, it is meant as a replacement for XMPP and Jabber. Its goal is to create a modern open platform for federated instant messaging, focusing on mobile communication. Additionally, in line with the recent controversies around privacy concerns, Tinode Instant Messaging Server aims to create a decentralised instant messaging platform that would be challenging for the government to track and block.

At present, Tinode is available in English, Chinese, Korean, Russian and Spanish.

NocoDB

NocoDB is the open-source alternative to Airtable. It turns any MySQL, PostgreSQL, SQL Server, SQLite and MariaDB into a smart spreadsheet. The idea behind developing NocoDB is to provide a powerful open source and no-code interface for databases to digital businesses across the globe. It is focused on democratising access to powerful computing tools.

NocoDB requires a database to store metadata of spreadsheet views and external databases.

Flutter 

Google’s SDK to create user experiences for mobile, web and desktop from a single codebase, Flutter works with existing code. The open-source UI software development kit is used by developers and organisations across the globe. Flutter composting capabilities allows one to overlay and animate graphics, video, text and controls without limitations. It also includes a set of widgets to allow the delivery of experiences on both iOS and Android ecosystems.

Powered by hardware-accelerated 2D graphics library Skia, and the Dart platform, Flutter enables the compilation to 32-bit and 64-bit ARM machine code for iOS, Android; JavaScript for web and Intel x64 for desktop devices.

Flutter works with any development tool and is a fully open-source project.

Coding Interview University 

This repository is useful for everyone trying to crack a Software Development Engineer’s role at any software company, including the likes of the tech giants– Amazon, Facebook, Google and Microsoft. It is a multi-month study plan for self-taught web developers looking to become software engineers.

Created by John Washam, it is a to-do list of study topics that helped John crack a Software Development Engineering job at Amazon.

Тhis study repository prepares one for the interview process, provides a daily plan, finding the best career opportunity, building a resume, and questions to ask an interviewer, among others.

CBL-Mariner

CBL-Mariner is an internal Linux distribution for Microsoft’s cloud infrastructure and edge products and services. It enhances Microsoft’s ability to stay current on Linux’s updates. Consuming limited disk and memory resources, CBL-Mariner provides minimal attack surface. In the rise of a security vulnerability, CBL-Mariner supports both package-based and image-based update models.

The CBL-Mariner initiative is a part of Microsoft’s investment in Linux technologies– SONiC, Azure Sphere OS and WSL.

Forem Self-Host

This is a repository to set up a free, self-managed install of Forem in a Fedora CoreOS VM running on popular cloud providers– DigitalOcean, AWS and Google Cloud. The main aim of this project is to provide developers with the choice, freedom and cost-effectiveness of hosting their own Forem community.

The requirements include Git, Python 3.x and pip3, Ansible, Butane, Fedora CoreOS and a supported cloud provider.

Windows11 in React 

The Windows11 open source project replicates the Windows11 desktop experience on the web using technologies React, CSS and Js. It features all the widgets, menus and layouts of Windows11.

The stack consists of React and Redux, SCSS and CSS Modules.

]]>
Web Developer vs Software Developer https://devstyler.io/blog/2021/07/19/web-developer-vs-software-developer/ Mon, 19 Jul 2021 08:56:01 +0000 https://devstyler.io/?p=60017 ...]]> The primary difference between web developers vs. software developers has to do with the programs they work with and what they’re trying to create. Web developers are mainly concerned with websites and web applications that run on internet browsers, while software developers are more focused on computer programs for desktop and mobile devices.

Both career fields require extensive programming experience, a strong attention to detail, and a knack for problem solving, but they have different workflows, maintenance requirements, and levels of complexity. For example, web developers often work in close collaboration with business and marketing experts to ensure their company’s website is efficient, user friendly, and aesthetically pleasing. Software developers, on the other hand, tend to work with other tech-oriented co-workers on large-scale software, operating system, and mobile application projects that might not require input from other business units. Ultimately, the career path students choose should align with their professional goals and personal interests, which is why it’s crucial to explore each role in detail before committing the time and resources.

Becoming a Web Developer

Web developers are responsible for how a website or web application looks and functions, from its user interface and page layout to back-end systems for gathering data. They work with organization leaders to design unique and engaging websites for businesses, nonprofits, government agencies, and anyone else looking to communicate more effectively online. Web developers are also in charge of maintaining the performance of the websites and applications they create, ensuring users have a consistent and positive browsing experience. According to the U.S. Bureau of Labor Statistics, common web developer job responsibilities include:

  • Coordinating with clients/business leaders to outline new web design projects
  • Creating and testing web applications and website features
  • Writing code in various programming languages, including HTML/CSS, XML, and JavaScript
  • Integrating content into websites, such as graphics, written copy, videos, and audio
  • Establishing technical requirements to support websites’ long-term functionality
  • Developing security elements to protect user data and business assets
  • Monitoring website traffic and performance

Diving a bit deeper, the web development field can be broken down into three specialized areas based on a candidate’s particular skill sets and professional interests: back-end developers, front-end developers, and full-stack developers. Each of these web design roles comes with different expectations and responsibilities:

Back-end web developers: These professionals focus on the technical aspects of websites and web applications that support both basic and advanced functionality. They largely work on administrative components including databases, website architecture, and application logic, creating new APIs and user interfaces based on predefined specifications. Generally speaking, this type of developer is concerned with how websites and web-based applications work on a fundamental level.

Front-end web developers: Sometimes called client-side developers, these design experts are in charge of how websites and applications look and function from the users’ perspective. They are responsible for making all online content easy to access, browse, and interact with, especially for users who may have limited computer skills. Front-end web developers must also ensure their websites are compatible with a wide range of operating systems, browsers, and devices to prevent display and functionality errors.

Full-stack web developers: As the job title suggests, these web design professionals are proficient in both front- and back-end development tasks. Most full-stack web developers have extensive experience in application design, user experience, and programming languages like HTML, XML, JavaScript, MySQL, and others. As such, they are able to fill advisory roles and technical positions that require both computer science and business savvy.

Becoming a Software Developer

Software developers invent, manage, and optimize computer programs that run on desktops, laptops, smartphones, and other mobile devices. Using different programming languages ― such as Java, Python, C#, and SQL ― these computer science professionals write complex code that governs how desktop applications function. Many software developers work for large technology companies, like Microsoft and Oracle, designing new products or fine-tuning existing applications. This includes troubleshooting code bugs, updating user interfaces, creating new in-app tools, and much more. According to the BLS, software developers have some combination of the following responsibilities:

  • Analyzing users’ needs and designing software-based solutions
  • Recommending software upgrades to existing computer programs and systems
  • Designing new applications for specific audiences (consumers, enterprises, etc.)
  • Creating detailed models and diagrams that outline which software code is needed
  • Documenting all aspects of application and system design for future reference
  • Testing code for new applications to ensure consistency and efficiency
  • Ensuring software is compatible with present data management systems

Software developers are heavily involved in every stage of the application design process, from the initial planning to the final rollout of new computer programs. However, just like web developers, professionals in this field are often categorized into specific roles based on their specializations: software applications developers and software systems developers.

Software applications developers: These professionals tend to focus on designing specific desktop and mobile applications, tools, and games for consumer audiences, according to the National Center for O*NET Development (NCOD). They often work on the same project for many years and are responsible for ensuring their software is functional, engaging, and efficient.

Software systems developers: Developers in this role are largely concerned with designing systems-level software for enterprise customers, rather than the public, according to the NCOD. They use their extensive programming knowledge to create computing applications for a range of industries, from manufacturing to aerospace and beyond. The software they develop is used to manage corporate networking apps, database management systems, and other critical infrastructure.

]]>
MySQL Database Service with High Availability https://devstyler.io/blog/2021/04/29/mysql-database-service-with-high-availability/ Thu, 29 Apr 2021 07:03:00 +0000 https://devstyler.io/?p=49366 ...]]> MySQLDatabase Service is now easier to use and has flexible deployment options, including High Availability. While creating a new DB System using the web console, users can choose between Standalone, Highly Availability, and HeatWave deployments. The service will pre-populate the necessary fields with the recommended settings. You only need to provide the MySQL user name and password to get MySQL up and running.

With the Standalone option, users get a single-instance MySQL DB System back-ended by the resilient and secure OCI Block Volumes. This option is the most common for test and development environments.

If you want to understand more about how to create MySQL DB System check Airton Lastori, MYSQL Product Manager, latest article.

]]>
Molly Struve: Fail forward! https://devstyler.io/blog/2019/06/27/molly-struve-fail-forward/ Thu, 27 Jun 2019 11:35:02 +0000 https://devstyler.io/?p=10346 ...]]> Molly Struve is Lead Site Reliability Engineer at Kenna Security. Currently, her work revolves around Elasticsearch and MySQL databases, with Ruby and Ansible coming to the rescue. Learn about her experienceg and the difficulties of choosing a technology that truly works wonders!

What does one Lead Site Reliability Engineer do?

Before I talk about what I do as a lead I first what to define what a Site Reliability Engineer is. Site Reliability Engineering(SRE) can mean a lot of different things depending on the company. The SRE team at Kenna is a group of developers that are focused on using software to optimize performance and ensure stability and reliability across all of our systems. When talking with our lead operations engineer, we decided that an SRE is a developer+. The plus stands for some bit of extra knowledge beyond that of just writing code. For me, the plus is my comprehensive understanding of how Elasticsearch works. For others, their plus might be the ability to work seamlessly with a framework like Ansible, or maybe they have a deep understanding of containers. The plus can be almost anything tech related that would help an SRE with their job.

Another trait that I feel characterizes a good SRE, is the ability to look at and understand how an entire system works. It is easy to understand small pieces of a system, but the ability to step back and conceptually understand how all the pieces fit together is key to being an SRE. Having a high level understanding allows us to figure out a system’s weakest points and improve on them to ensure reliability across the entire system.

As the lead of the team I am responsible for not only acting as an SRE myself by writing code but I also get to determine what projects the team will work on based on what would benefit the company and our platform the most.

What technologies/languages do you use & prefer?

My primary and preferred language is Ruby and that is what I have been using for all of my professional career. A lot of people give Ruby a bad rap for being slow, but it has gotten significantly faster recently. Also, how you use it can greatly affect how fast or slow it performs. It is an easy language to learn but like all other coding languages, takes a lifetime to master and really do well.

What project are you currently working on and how many people are in your team?

There are currently 2 other people on my team and we are looking for a 4th. The team itself has a few projects going on.

      • Upgrading Elasticsearch to 6.x. Our last upgrade was rough, so we have some extensive testing plans associated with this upgrade.
      • Defining service level objectives. Our customers are happy now, but what does that mean in terms of metrics? How fast do we need to load searches to keep customers happy? How fast does data processing need to happen? Our goal is to answer questions like these.
      • Wrangling all our new virtual private cloud(VPC) environments. A lot of our large clients want their own virtual private cloud for running Kenna. This means we have a lot of different environments. As you can imagine, working with all of them and keeping them in sync is a challenge. As our VPC numbers increase this year, my team is hoping to make working across all VPCs as seamless as possible.

 

 

Is there a platform, tool, framework etc., in which you see a problem, but keep on using?

That is a GREAT question! I have so many examples of tools we used for the longest time at Kenna and it wasn’t until we got a full time SRE team that we finally replaced them. Each replacement has paid off tremendously! For example, a year ago we were having issues with NewRelic because it was not retaining data long enough to be useful for us. Once the SRE team was formed we took on the task of switching us to Datadog and it was the best decision we ever made. Another example of a tool that was used at Kenna for years and we finally are making the push to get rid of is Resque. Resque is a background processing framework that uses Redis to process and track background jobs. Resque has become very dated and is currently not very performant for our use case so we recently have made a push to move all our background jobs to a new framework called Sidekiq. Sidekiq is very well maintained, constantly coming out with new features, and is much more performant than Resque. Looking ahead, the next system that will likely get replaced is our CI solution CircleCI. As we scale it has gotten tremendously more expensive and we are on the hunt for a more practical solution.

You’re currently trying Ansible. Why did you choose to start this journey & what are the benefits of this tool?  

3 years ago our Operations team made the switch from Chef to Ansible for managing all of our infrastructure. Now that I am an SRE I work a lot more with the Operations team so I have made it a point to learn more about Ansible so I can better understand what they do. It is also great to have another tool in my toolbox that I can use when it comes to building SRE features. Even though I am new to Ansible, I have found that understanding it at a high level and what it is doing is very easy. It gives you the ability to run commands on multiple servers which is incredibly convenient and powerful when you are working and managing a lot of infrastructure.

What is the use of Elasticsearch?

Elasticsearch is at the cornerstone of Kenna’s platform and is used extensively for comprehensive searching of a company’s assets and vulnerabilities. Elasticsearch is actually the reason I ended up becoming an SRE. When I joined Kenna no one had taken ownership over it so I decided to step up and learn everything I could about it. Becoming proficient in Elasticsearch and working a lot with it to improve performance and stability made the transition from Software Engineer to Site Reliability Engineer very natural. Elasticsearch is a great tool for when you have a lot of data that needs to be searched in complex ways very quickly. It is what allows Kenna to stand apart from its competitors because no one else offers the kind of search speed that we do.

What’s the hardest tech task that you’ve encountered?

Oh man, it is so hard to pick just one. Usually what is hard at the time, I look back a few months later and it seems so easy. I think the hardest part of my job in general is debugging a performance issue. For example, if a server crashes that is running our application it is usually my job to figure out why. Figuring out the why involves combing through lots of logs and data and trying to piece together what exactly the server was doing at the time it crashed. Once I have figured out what it was doing, then I have to take my best guess at which task caused it to crash. Putting all the pieces together involves a lot of problem solving and having the ability to step back and really look at the big picture of how everything is running together. It also involves a bit of trial and error. Sometimes the cause is not easy to deduce and I have to take my best guess at fixing it. Sometimes it takes a couple of fixes before I finally solve the root cause of the problem.

Is there any question that every Lead Site Reliability Engineer should know the answer to?

One strategy that I read about in Google’s SRE book that I think is paramount to being a good SRE is when a system breaks the first thing you should always do is work on getting the system back online. Sometimes as a SRE we immediately want to know WHY it happened. We need to fight the urge to figure out why until after we have the system back online.

What’s your motivational phrase that keeps your code running?  😉

Fail forward! This is a saying that our VP of Engineering has instilled in our culture at Kenna and has really hit home with me. Anytime we find ourselves with broken code or an upgrade gone bad we always try to push forward. The mantra also reminds me that it’s ok to fail sometimes, but when you do, keep moving forward. Don’t ever let failure send you retreating backwards.

]]>