<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Dragonsoft Technology View</title>
	<atom:link href="https://blog.dragonsoft.us/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.dragonsoft.us/</link>
	<description>Talk about Technologies, Software Architecture and Management</description>
	<lastBuildDate>Sun, 06 Nov 2022 06:31:52 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://blog.dragonsoft.us/wp-content/uploads/2022/04/logo-main-bw-150x150.png</url>
	<title>Dragonsoft Technology View</title>
	<link>https://blog.dragonsoft.us/</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">2577970</site>	<item>
		<title>GreyDragon v.1.3.9 has been released</title>
		<link>https://blog.dragonsoft.us/2022/11/05/greydragon-v-1-3-9-has-been-released/</link>
					<comments>https://blog.dragonsoft.us/2022/11/05/greydragon-v-1-3-9-has-been-released/#respond</comments>
		
		<dc:creator><![CDATA[Serguei Dosyukov]]></dc:creator>
		<pubDate>Sun, 06 Nov 2022 06:26:55 +0000</pubDate>
				<category><![CDATA[Piwigo]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web-design]]></category>
		<category><![CDATA[GreyDragon Theme]]></category>
		<category><![CDATA[PIWIGO]]></category>
		<guid isPermaLink="false">https://blog.dragonsoft.us/?p=2171</guid>

					<description><![CDATA[<p>Copyright &#169; 2026 Dragonsoft Technology View. This Feed is for personal non-commercial use only.</p>
<p>The post <a href="https://blog.dragonsoft.us/2022/11/05/greydragon-v-1-3-9-has-been-released/">GreyDragon v.1.3.9 has been released</a> appeared first on <a href="https://blog.dragonsoft.us">Dragonsoft Technology View</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p></p>



<ul class="wp-block-list">
<li>Fixed issue with undefined variable p_pict_descr and p_pict_comment in footer JS</li>



<li>Removed some compatibility warnings by adjusting tags</li>



<li>Font Awesome updated to 6.2</li>



<li>Bootstrap CSS updated to 5.0.2</li>



<li>Deprecated support PNG for IE 7</li>



<li>Deprecated obsolete.list</li>
</ul>
<hr/><span style="font-size: 7pt">Copyright &copy; 2026 <strong><a href="https://blog.dragonsoft.us">Dragonsoft Technology View</a></strong>. This Feed is for personal non-commercial use only.</span><p>The post <a href="https://blog.dragonsoft.us/2022/11/05/greydragon-v-1-3-9-has-been-released/">GreyDragon v.1.3.9 has been released</a> appeared first on <a href="https://blog.dragonsoft.us">Dragonsoft Technology View</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.dragonsoft.us/2022/11/05/greydragon-v-1-3-9-has-been-released/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2171</post-id>	</item>
		<item>
		<title>GDThumb 1.0.25 has been released</title>
		<link>https://blog.dragonsoft.us/2022/10/30/gdthumb-1-0-25-has-been-released/</link>
					<comments>https://blog.dragonsoft.us/2022/10/30/gdthumb-1-0-25-has-been-released/#comments</comments>
		
		<dc:creator><![CDATA[Serguei Dosyukov]]></dc:creator>
		<pubDate>Sun, 30 Oct 2022 23:48:30 +0000</pubDate>
				<category><![CDATA[Piwigo]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web-design]]></category>
		<category><![CDATA[PIWIGO]]></category>
		<guid isPermaLink="false">https://blog.dragonsoft.us/?p=2169</guid>

					<description><![CDATA[<p>Copyright &#169; 2026 Dragonsoft Technology View. This Feed is for personal non-commercial use only.</p>
<p>The post <a href="https://blog.dragonsoft.us/2022/10/30/gdthumb-1-0-25-has-been-released/">GDThumb 1.0.25 has been released</a> appeared first on <a href="https://blog.dragonsoft.us">Dragonsoft Technology View</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<ul class="wp-block-list">
<li>Support for PIWIGO 13 verified</li>



<li>ADMIN: Updated reference to styles from GreyDragon Theme</li>



<li>Added antiflicker logic to improve CLS</li>
</ul>
<hr/><span style="font-size: 7pt">Copyright &copy; 2026 <strong><a href="https://blog.dragonsoft.us">Dragonsoft Technology View</a></strong>. This Feed is for personal non-commercial use only.</span><p>The post <a href="https://blog.dragonsoft.us/2022/10/30/gdthumb-1-0-25-has-been-released/">GDThumb 1.0.25 has been released</a> appeared first on <a href="https://blog.dragonsoft.us">Dragonsoft Technology View</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.dragonsoft.us/2022/10/30/gdthumb-1-0-25-has-been-released/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2169</post-id>	</item>
		<item>
		<title>GreyDragon v.1.3.8 has been released</title>
		<link>https://blog.dragonsoft.us/2022/10/30/greydragon-v-1-3-8-has-been-released/</link>
					<comments>https://blog.dragonsoft.us/2022/10/30/greydragon-v-1-3-8-has-been-released/#respond</comments>
		
		<dc:creator><![CDATA[Serguei Dosyukov]]></dc:creator>
		<pubDate>Sun, 30 Oct 2022 23:45:25 +0000</pubDate>
				<category><![CDATA[Piwigo]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web-design]]></category>
		<category><![CDATA[GreyDragon Theme]]></category>
		<category><![CDATA[PIWIGO]]></category>
		<guid isPermaLink="false">https://blog.dragonsoft.us/?p=2167</guid>

					<description><![CDATA[<p>Copyright &#169; 2026 Dragonsoft Technology View. This Feed is for personal non-commercial use only.</p>
<p>The post <a href="https://blog.dragonsoft.us/2022/10/30/greydragon-v-1-3-8-has-been-released/">GreyDragon v.1.3.8 has been released</a> appeared first on <a href="https://blog.dragonsoft.us">Dragonsoft Technology View</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<ul class="wp-block-list">
<li>Verified compatibility with PIWIGO 13.x</li>



<li>Added detection for Home Page when settings need to be updated.</li>



<li>Added removal of home page content when the feature is turned off.</li>



<li>Adjusted help for improved full-width CSS</li>



<li>TR: Improved translation string to make PIWIGO version reference dynamic</li>



<li>HELP: Adjusted Full body width suggestion to reflect current style references</li>
</ul>
<hr/><span style="font-size: 7pt">Copyright &copy; 2026 <strong><a href="https://blog.dragonsoft.us">Dragonsoft Technology View</a></strong>. This Feed is for personal non-commercial use only.</span><p>The post <a href="https://blog.dragonsoft.us/2022/10/30/greydragon-v-1-3-8-has-been-released/">GreyDragon v.1.3.8 has been released</a> appeared first on <a href="https://blog.dragonsoft.us">Dragonsoft Technology View</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.dragonsoft.us/2022/10/30/greydragon-v-1-3-8-has-been-released/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2167</post-id>	</item>
		<item>
		<title>Lightroom Classic hangs during import</title>
		<link>https://blog.dragonsoft.us/2022/05/02/lightroom-classic-hangs-during-import/</link>
					<comments>https://blog.dragonsoft.us/2022/05/02/lightroom-classic-hangs-during-import/#respond</comments>
		
		<dc:creator><![CDATA[Serguei Dosyukov]]></dc:creator>
		<pubDate>Tue, 03 May 2022 06:50:35 +0000</pubDate>
				<category><![CDATA[Scratch Pad]]></category>
		<category><![CDATA[0x8007003b]]></category>
		<category><![CDATA[lightroom]]></category>
		<category><![CDATA[lightroom import issue]]></category>
		<guid isPermaLink="false">https://blog.dragonsoft.us/?p=2078</guid>

					<description><![CDATA[<p>For a few weeks, I have experienced an interesting issue in Adobe Lightroom &#8211; during import application will become unresponsive and no files would be processed. Please note that photos are stored on NAS and there is some heavy traffic involved while images are being manipulated and rearranged. Much research [&#8230;]</p>
<p>The post <a href="https://blog.dragonsoft.us/2022/05/02/lightroom-classic-hangs-during-import/">Lightroom Classic hangs during import</a> appeared first on <a href="https://blog.dragonsoft.us">Dragonsoft Technology View</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>For a few weeks, I have experienced an interesting issue in Adobe Lightroom &#8211; during import application will become unresponsive and no files would be processed. Please note that photos are stored on NAS and there is some heavy traffic involved while images are being manipulated and rearranged.</p>



<p>Much research did not reveal anything useful. In forums, there will be suggestions about turning off antivirus and firewalls, changing registry settings, etc. with no cure.</p>



<p>Lightroom does not show any errors, there is no trace in the event log, yet there is something very wrong deep inside.</p>



<p>Normally NAS can be accessed without any issues and there is no indication of any problems.</p>



<p>As a next step I tried to simulate copying the same files from local storage to NAS through Explorer and this is where it become interesting. During copy progress transfer speed would go to zero at some point and network error 0x8007003b would be presented. An <a href="https://social.technet.microsoft.com/Forums/office/en-US/01b5f31b-e911-410f-a24e-f5175ceed709/error-0x8007003b-an-unexpected-network-error-occurred" target="_blank" rel="noreferrer noopener">Internet search would lead you to yet another wild goose chase.</a></p>



<p>Coincidently, I just upgraded my router and should have seen 1Gb speeds across all my devices. Strangely enough connection between the local machine and NAS never reached above 100Mb. Running ping to NAS would detect random network packet drops.</p>



<p>We are getting warmer&#8230;</p>



<p>Replacing a few ethernet patch cables later NAS talks now with the source machine at 1Gb and no lost packets.</p>



<p>Crossing fingers, and running the &#8220;copy files&#8221; test again&#8230; no more errors, good speed, 300 files transferred without issues.</p>



<p>Let&#8217;s hope Lightroom now would be happier as well. And&#8230; magic&#8230; import now works flawlessly.</p>



<p><strong><em>Let&#8217;s summarize:</em></strong> Lightroom file error handling has room for improvement and is not too user-friendly. If you run into issues while processing files, a) make sure Lightroom is up-to-date, b) look at your hardware and wires, and c) try to simulate problematic operations by some other means, so errors may be surfaced and become more apparent leading you to resolution.</p>



<p>The following links were shared by Adobe Support, but unfortunately did not contribute to the diagnostic:</p>



<ul class="wp-block-list"><li><a href="https://helpx.adobe.com/ca/lightroom-classic/kb/crash-gpu-directx-enabled.html">https://helpx.adobe.com/ca/lightroom-classic/kb/crash-gpu-directx-enabled.html</a></li><li><a href="https://helpx.adobe.com/lightroom-classic/help/setting-preferences-lightroom.html#:~:text=Lightroom%20Classic%20can%20display%20menus,Preferences%20and%20restart%20Lightroom%20Classic">https://helpx.adobe.com/lightroom-classic/help/setting-preferences-lightroom.html#:~:text=Lightroom%20Classic%20can%20display%20menus,Preferences%20and%20restart%20Lightroom%20Classic</a></li></ul>
<hr/><span style="font-size: 7pt">Copyright &copy; 2026 <strong><a href="https://blog.dragonsoft.us">Dragonsoft Technology View</a></strong>. This Feed is for personal non-commercial use only.</span><p>The post <a href="https://blog.dragonsoft.us/2022/05/02/lightroom-classic-hangs-during-import/">Lightroom Classic hangs during import</a> appeared first on <a href="https://blog.dragonsoft.us">Dragonsoft Technology View</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.dragonsoft.us/2022/05/02/lightroom-classic-hangs-during-import/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2078</post-id>	</item>
		<item>
		<title>DevOps in the Era of Agile</title>
		<link>https://blog.dragonsoft.us/2021/08/17/devops-development-and-it-in-the-era-of-agile/</link>
					<comments>https://blog.dragonsoft.us/2021/08/17/devops-development-and-it-in-the-era-of-agile/#respond</comments>
		
		<dc:creator><![CDATA[Serguei Dosyukov]]></dc:creator>
		<pubDate>Wed, 18 Aug 2021 03:20:57 +0000</pubDate>
				<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Agile in IT]]></category>
		<category><![CDATA[Agile IT]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[DevOps Engineer]]></category>
		<guid isPermaLink="false">https://blog.dragonsoft.us/?p=1975</guid>

					<description><![CDATA[<p>Development and IT in the Era of Agile need to evolve. I am reading LinkedIn, following up on various companies, and often come across the term DevOps in various flavors. The term is popular but there is a great difference in what it means for different people as goals are [&#8230;]</p>
<p>The post <a href="https://blog.dragonsoft.us/2021/08/17/devops-development-and-it-in-the-era-of-agile/">DevOps in the Era of Agile</a> appeared first on <a href="https://blog.dragonsoft.us">Dragonsoft Technology View</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Development and IT in the Era of Agile need to evolve.</p>



<p>I am reading LinkedIn, following up on various companies, and often come across the term <strong>DevOps</strong> in various flavors. The term is popular but there is a great difference in what it means for different people as goals are changing.</p>



<p>For many years we knew very well the role of the IT department and of its important responsibilities. On the other side of the &#8220;fence&#8221;, we had software development teams.</p>



<h2 class="wp-block-heading">Time of Agile</h2>



<p>Software development went through drastic changes in recent years &#8211; waterfall, XP, and now Agile. The main goal of these changes was to improve the effectiveness of the software development teams. It involved the proactive discovery of requirements and developing solutions through the collaboration of self-organizing, cross-functional teams and being closer to customers and end-users. Practice includes adaptive planning, incremental development, early delivery, and continual improvement. Agile encourages a quick reaction to changes in requirements and resource availability.</p>



<p>Development has been already absorbed and incorporated the Quality Assurance team. Code delivered must be stable and a rapid development cycle requires close collaboration between two teams. We are going through a new &#8220;merger&#8221; now.</p>



<p>The software does not exist in a vacuum. It depends on infrastructure both for development in-house and in production. Here is where the IT team becomes essential in supporting dev activities or becomes a roadblock that slows momentum.</p>



<p>Practice shows that the best operating and effective team must blur boundaries between Development, Quality Assurance, and IT. This is where the <em>DevOps</em> term is born.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><em>IT is not DevOps, neither DevOps is IT. As we will discuss below, DevOps is a robust process that incorporates an entire stack of teams in the software company</em> and elevates it to the next level.</p></blockquote>



<h2 class="wp-block-heading">Theory</h2>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><a data-type="URL" data-id="https://www.ibm.com/cloud/learn/devops-a-complete-guide" href="https://www.ibm.com/cloud/learn/devops-a-complete-guide" target="_blank" rel="noreferrer noopener">IBM defines DevOps process as</a> &#8220;a software development&nbsp;process and an organizational culture shift that speeds the delivery of higher quality software&nbsp;by automating and integrating the efforts of development and IT&nbsp;operations teams – two groups that traditionally practiced separately from each other, or in silo&#8221;. It does not however stops there and must extend across other essential teams &#8211; Quality Assurance, security, compliance, product management and more.</p></blockquote>



<p><strong>DevOps is a compound term for Development (Dev) and Operations (Ops). It is not the siloed team responsible for specific &#8220;it&#8221;, but the versatile aggregate of various roles in your organization allowing bring everyone together with one goal &#8211; the ability to better respond to customer needs, streamline the development process, and achieve business goals faster.</strong> <strong>The end goal is to build better products faster without jeopardizing customer satisfaction.</strong></p>



<p>It is essential to understand that you cannot simply rename the IT team as DevOps, nor can you make the dev team responsible for DevOps activities. As with the Agile process in development, there must be a mental shift from a linear approach (transition from Waterfall to Agile in software development) in the IT department. For the dev team to move fast, the IT team must have buy-in and be able to move fast as well.</p>



<p>There are a few considerations that must not be forgotten or overlooked &#8211; IT teams traditionally are responsible for IT infrastructure security and compliance. This is a very regulated and tedious area that requires careful orchestration and practices to ensure the stability and security of the software and client&#8217;s data. Said that it is not prohibitive to structure IT activities to incorporate agility. If anything, it is easier, in my opinion, for IT to be agile in the era of cloud computing and infrastructure than it is for some software engineering teams.</p>



<p>Continuous Integration and Continuous Delivery become cornerstones of any successful development team build. It ensures that repetitive tasks are automated &#8211; from continuous automated testing to the ability to certify and deploy new versions.</p>



<h2 class="wp-block-heading">Corner Stones of DevOps</h2>



<p>The same IBM white paper defines the following steps integral for any development:</p>



<ul class="wp-block-list"><li><strong>Planning</strong> &#8211; identify and scope new features for the current dev cycle based on company&#8217;s product goals and client&#8217;s feedback. Rapid iterations allow for some flexibility and &#8220;catch up&#8221; approach in requirements as next cycle will bring more feedback and more clarity of what need to happen.</li><li><strong>Development</strong> &#8211; each team can implement their own steps of getting from A to B in implementation and choose between varieties of approaches &#8211; test driven development, behavior-driven development, contract programming, etc.<br />Main thing style must accommodate ability fast deliver quality code in each iteration.</li><li><strong>Integration</strong> &#8211; CI or <strong>Continuous Integration</strong> &#8211; You cannot ensure rapid development without clearly defined and automated way to test and ensure that software is not broken in each iteration. Yes, you can beef up your QA team to allow for full regression testing in reasonable time, but to ensure that testing fatigue would not set in, automation is a key. It is a goal for QA team to spend reasonable time on scripting test where and as deep as possible so unit and UX testing can be plugged into Build process.</li><li><strong>Deployment</strong> &#8211; CD or <strong>Continuous Deployment</strong> &#8211; all above steps are meaningless if software cannot be deployed properly ensuring all setting and prerequisites are met. Deployment downtime only can be limited if and when there is reasonable amount of automation in deployment and deployment validation. While humans are perfect and we can do many things over many cycles, assurance that all deployment steps are accounted for is possible only through automation. If you have to provide SOC compliance evidence, this step becomes even more important and evidence collection is automated and repeatable.</li><li><strong>Operations</strong> &#8211; After production delivery development team&#8217;s role could phase out. Performance and Security monitoring, along with audit, and client support becomes routine day-to-day activity. It is important to mention that in agile cycle developers must be very close to client&#8217;s pain, be able to live and feel it every day. Only that way software will evolve in organic way. This leads us to &#8230;</li><li><strong>Learning</strong> &#8211; CF or <strong>Continuous Feedback</strong> &#8211; teams must talk. You must demolish walls, you must have buy-in from all teams involved. It is essential to ensure that there is no &#8220;broken phone line&#8221; between clients,  development, IT and QA teams. Exchanging information in most effective way is crucial. While learning from client&#8217;s feedback and any discovered errors we are going back to step 1 &#8211; Planning &#8211; above. New cycle starts.</li></ul>



<h2 class="wp-block-heading">Agility of Agile Process</h2>



<p>It is important to recognize that the Agile process is not formal to the same degree as the Waterfall models of the past. Your team must be flexible and adopt practices best suited for your product, your organization structure, and your budget. This is the beauty of the Agile approach &#8211; you can scale up, scale down, expand and shrink your iterations to gain as much as possible from it &#8211; be flexible.</p>



<h2 class="wp-block-heading">Agile Process and Tools</h2>



<p>None of the above is possible without proper tools which will help to streamline and automate DevOps process adoption. Any team needs all or most of the tools to be able to automate steps in the above list &#8211; Source control tools, test and build automation tools, team management, communication, workflow, and visualization. <br />I am not going to spend much time here discussing available options because tomorrow there will be new and better tools as the software stack constantly changing. Once you decide to adopt the Agile approach, please spend proper time deciding on tools that will fit your budget and your requirements, but do not overlook the importance of tools that will make your Agile and DevOps journey easier. Looks at GCP, AWS, and Azure offerings if you are in the cloud, or even if you are not. But do not stop there, there is plenty of good open-source and proprietary tools on the market and with each day new products would appear. The main thing to remember is to ensure that what tools you would settle on should not restrict your ability to continue to evolve.</p>



<h2 class="wp-block-heading">More Variances</h2>



<p>As DevOps methodology evolves new variances start to appear. One of the recent extensions represents growing pain associated with security &#8211; DevSecOps &#8211; in addition to focusing on the collaboration of Development and Operations teams, the Security team is folded in to ensure that software is designed and proactively addresses growing concerns associated with data breaches.</p>



<h2 class="wp-block-heading">Who is DevOps Engineer</h2>



<p>While DevOps is more of a business philosophy than anything else, DevOps Engineer is still a real thing in the job market today. Companies would target these positions to cover the necessity to program for automation and monitoring tools. If in the past bash script knowledge was enough, with the complexity of cloud environments and integrated systems, the person in this role becomes closer and closer aligned with the software team than with IT in classical terms. Not only knowledge of CI/CD tools is required, but knowledge of the cloud stack, various APIs, and things like Lambda, Python, Java, Ruby, Git, Jira, and even languages and IDEs used by supported dev teams. The boundary between IT and dev is further blurred to the point where there would be very little distinction between knowledge required.</p>



<h2 class="wp-block-heading">Transformation is complete</h2>



<p>When adopting the DevOps methodology software organizations must be ready and accepting of the fact that everyone is working toward one goal, there are fewer and fewer inter-team boundaries and the distinction between IT and development disappears. For the organization to be effective in today&#8217;s world we must now focus more on clear communications, better requirements, and eliminating &#8220;org silos&#8221;.</p>
<hr/><span style="font-size: 7pt">Copyright &copy; 2026 <strong><a href="https://blog.dragonsoft.us">Dragonsoft Technology View</a></strong>. This Feed is for personal non-commercial use only.</span><p>The post <a href="https://blog.dragonsoft.us/2021/08/17/devops-development-and-it-in-the-era-of-agile/">DevOps in the Era of Agile</a> appeared first on <a href="https://blog.dragonsoft.us">Dragonsoft Technology View</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.dragonsoft.us/2021/08/17/devops-development-and-it-in-the-era-of-agile/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1975</post-id>	</item>
		<item>
		<title>Database as a Service, High Availability, Horizontal Scalability, and Multi-master Architecture</title>
		<link>https://blog.dragonsoft.us/2021/07/14/database-as-a-service-high-availability-horizontal-scalability-and-multi-master-architecture/</link>
					<comments>https://blog.dragonsoft.us/2021/07/14/database-as-a-service-high-availability-horizontal-scalability-and-multi-master-architecture/#respond</comments>
		
		<dc:creator><![CDATA[Serguei Dosyukov]]></dc:creator>
		<pubDate>Thu, 15 Jul 2021 05:09:46 +0000</pubDate>
				<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Always On Architecture]]></category>
		<category><![CDATA[Continuous Availabilty]]></category>
		<category><![CDATA[Database as a Service]]></category>
		<category><![CDATA[DB comparison]]></category>
		<category><![CDATA[DBaaS]]></category>
		<category><![CDATA[High Availability]]></category>
		<category><![CDATA[Horizontal Scalability]]></category>
		<category><![CDATA[Hosted MariaDB]]></category>
		<category><![CDATA[Multi Master Architecture]]></category>
		<category><![CDATA[SkySQL]]></category>
		<guid isPermaLink="false">https://blog.dragonsoft.us/?p=1868</guid>

					<description><![CDATA[<p>DISCLAIMER: This post intended to aggregate research performed while evaluating various DB solution fitting specific requirements. While it may be a bit lengthy, I hope it would give the reader good starting point while deciding which path to take. SkySQL was reviewed in more details, and this article presents in-depth [&#8230;]</p>
<p>The post <a href="https://blog.dragonsoft.us/2021/07/14/database-as-a-service-high-availability-horizontal-scalability-and-multi-master-architecture/">Database as a Service, High Availability, Horizontal Scalability, and Multi-master Architecture</a> appeared first on <a href="https://blog.dragonsoft.us">Dragonsoft Technology View</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>DISCLAIMER:</strong> This post intended to aggregate research performed while evaluating various DB solution fitting specific requirements. While it may be a bit lengthy, I hope it would give the reader good starting point while deciding which path to take.</p><p>SkySQL was reviewed in more details, and this article presents in-depth review of &#8220;last-mile&#8221; considerations. The intent is not to force reader into particular solution, but to share all accumulated information.</p></blockquote>



<h1 class="wp-block-heading" id="introduction">Introduction</h1>



<p>While deciding about changes to the database layer at the core of your system many questions and concerns are being raised.</p>



<ul class="wp-block-list"><li>Will my system perform as expected after migration?</li><li>How much effort is required to migrate existing solution? </li><li>Will it require serious code refactoring?</li><li>How a new DB solution will fit existing CI/CD practices?</li><li>What would be impact on product budget in the near future and a long term?</li><li>Is it available on current cloud platform? Can it be cloud provider agnostic?</li><li>Can my DevOps team support it and/or will require extensive additional training?</li></ul>



<p>Team needs to take a few things into considerations to ensure a smooth transition and minimize downtime while gaining as much from the migration.</p>



<h2 class="wp-block-heading" id="project-s-okrs">Project&#8217;s OKRs</h2>



<p>Let&#8217;s establish more narrow goals and assess our milestones:</p>



<ul class="wp-block-list"><li>Evaluate a Database-as-a-Service vs database as an appliance in the cloud.</li><li>Ensure High Availability for the database layer.</li><li>Add Horizontal Scalability and Multi-Primary support.</li><li>Minimize impact on existing application while minimizing adjustments to the code (in-place drop-in is ideal, i.e. keep standard connectivity to database through non-API DB access layer, if possible).</li><li>Ability to integrate into existing CI/CD workload.</li></ul>



<p>For purpose of our specific research a few additional requirements also apply:</p>



<ul class="wp-block-list"><li>Existing solution uses MariaDB database engine with Primary and Replicas in place.</li><li>Downtime should be no more than few hours.</li></ul>



<p>Let&#8217;s review each requirement, its benefits, and then options available with MariaDB engine.</p>



<h1 class="wp-block-heading" id="HighAvailability,HorizontalScalabilityandmultiprimaryinDBArchitecture-Database-as-a-Service">Database-as-a-Service</h1>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><em>&#8220;Database-as-a-Service (DBaaS)</em> is one of the fastest-growing cloud markets. According to Gartner, 75% of all databases will be running in the cloud by 2022. The first relational DBaaS offerings were created by cloud service providers – Amazon RDS, Microsoft Azure Database and Google Cloud SQL. These&nbsp;services started with MariaDB, MySQL and/or PostgreSQL.&#8221;</p></blockquote>



<h2 class="wp-block-heading" id="HighAvailability,HorizontalScalabilityandmultiprimaryinDBArchitecture-Advantages">Benefits</h2>



<ul class="wp-block-list"><li><strong>Save money</strong> by combining hardware, hosting, software and support cost into one package.</li><li><strong>Rapid Provisioning</strong> of DB instances takes shorter time due to automation and streamlining of the associated activities.</li><li><strong>Outsourcing</strong> of administration and monitoring reduces on-premise IT team activity requirements and optimizes time to market and results in further cost savings.</li><li><strong>Enhanced Security</strong> created through &#8220;by-design&#8221; security practices helping with compliance and security breaches. Off-site hosting lowers complexity of on-site security requirements.</li><li>Improved <strong>monitoring</strong> and <strong>tracking </strong>of time, space and resource consumption.</li><li><strong>Server Space</strong> requirements are reduced and optimized.</li><li><strong>Scalability</strong> is achieved through advanced provisioning via provider&#8217;s offering.</li></ul>



<h1 class="wp-block-heading" id="HighAvailability,HorizontalScalabilityandmultiprimaryinDBArchitecture-Highavailability/Always-OnArchitecture">High availability / Always-On Architecture</h1>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>&#8220;High availability</strong> (<strong>HA</strong>) is a characteristic of a system which aims to ensure an agreed level of operational performance, usually uptime, for a higher-than-normal period.&#8221;</p></blockquote>



<p>To facilitate High Availability and Always-On Architecture number of considerations need to be taken.</p>



<p>MariaDB already provides several options (<a rel="noreferrer noopener" href="https://mariadb.com/docs/multi-node/high-availability/" target="_blank">reference</a>):</p>



<ol class="wp-block-list"><li><strong>MariaDB Replication </strong>&#8211; MaxScale&#8217;s MariaDB Monitor (mariadbmon) detects primary server failure and promotes the most up-to-date replica based on Global Transaction ID (GTID), waits for that replica to execute any transactions in its relay log, and begins routing queries to it.</li><li><strong>MaxScale&#8217;s Galera</strong> Monitor (galeramon) is used to minimize application impact upon server failure. Additionally, MaxScale may be used to assign primary and replica roles to database instances within a cluster to support read/write traffic splitting and to minimize the risk of certification failures.</li><li><strong>Multi-Node Enterprise ColumnStore</strong> &#8211; MaxScale&#8217;s MariaDB Monitor (mariadbmon) determines which node is the primary server, and automatically performs fail-over upon primary server failure.</li><li><strong>MariaDB Xpand</strong> &#8211; Xpand divides tables and indexes into slices, and it distributes those slices among all the nodes. Xpand maintains replicas of each slice, so that it can recover from a node failure without loss of data.</li></ol>



<p>The replication approach is the most common one today and works well with non-distributed processing.&nbsp;&nbsp;However, it puts certain limitations on how architecture can scale horizontally.</p>



<h1 class="wp-block-heading" id="multi-master-architecture-horizontal-scalability-continuous-availability">Multi Master Architecture / Horizontal Scalability / Continuous Availability</h1>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>Horizontal scalability:</strong> The ability to increase capacity of the server by connecting multiple hardware or software entities so that they work as a single logical unit. HS can be achieved with the help of clustering, distributed file system, and load balancing.</p><p><strong>Continuous availability:</strong> The infrastructure (or the applications running on it) cannot be interrupted at all. Essentially, there is no allowance for any outage, either planned or unplanned.</p></blockquote>



<p>This is where the multi-master approach (ex: MaxScale&#8217;s Galera Cluster &#8211; option #2 above) comes in.</p>



<p>&#8220;Galera Cluster turns the popular MySQL and MariaDB server into a <strong>multi-master replication</strong> enabled solution with an <strong>automated member provisioning</strong> <strong>and joining</strong> process and <strong>no-data-loss guarantee</strong> with a proper configuration&#8221;.</p>



<p>With the maturity of MariaDB Xpand Distributed SQL architecture, MaxScale can be substituted to achieve even greater MMA flexibility. </p>



<p>The concept of MMA is not new and is used with distributed AD controllers, multi-zone data centers, etc.</p>



<p>Here is an old introduction video that provides some top-level details about how Galera architecture extends the classical Replication approach &#8211; <a href="https://www.youtube.com/watch?v=n8vM_HVnnfc" target="_blank" rel="noreferrer noopener">Galera Cluster for MySQL introduction &#8211; YouTube</a></p>



<p>Official information on Galera can be found here &#8211; <a href="https://mariadb.com/kb/en/what-is-mariadb-galera-cluster/" target="_blank" rel="noreferrer noopener">https://mariadb.com/kb/en/what-is-mariadb-galera-cluster/</a></p>



<p>All MariaDB Galera features listed below are now rolled into the Enterprise cluster setup and are supported natively.</p>



<p>Let&#8217;s review 3 workflows:</p>



<h3 class="wp-block-heading" id="HighAvailability,HorizontalScalabilityandmultiprimaryinDBArchitecture-Failover">Node Failover</h3>



<figure class="wp-block-image size-large is-resized"><img fetchpriority="high" decoding="async" src="https://blog.dragonsoft.us/wp-content/uploads/2021/05/image.png" alt="" class="wp-image-1930" width="711" height="495"/></figure>



<p>MMR can be used to protect the availability of a mission-critical database. For example, a multi-master replication environment can replicate data in your database to establish a fail-over site should the primary site become unavailable due to system or network outages. Such a fail-over site can also serve as a fully functional database to support application access when the primary site is concurrently operational.</p>



<p>The database can be configured for automatic fail-over, which enables the main node to switch over to a different master site if the first master site fails.</p>



<h3 class="wp-block-heading" id="HighAvailability,HorizontalScalabilityandmultiprimaryinDBArchitecture-LoadBalancing">Load Balancing and Multi-Master Replication</h3>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://blog.dragonsoft.us/wp-content/uploads/2021/05/image-1.png" alt="" class="wp-image-1931" width="709" height="487" srcset="https://blog.dragonsoft.us/wp-content/uploads/2021/05/image-1.png 607w, https://blog.dragonsoft.us/wp-content/uploads/2021/05/image-1-300x206.png 300w" sizes="(max-width: 709px) 100vw, 709px" /></figure>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://blog.dragonsoft.us/wp-content/uploads/2021/05/image-2.png" alt="" class="wp-image-1932" width="707" height="491" srcset="https://blog.dragonsoft.us/wp-content/uploads/2021/05/image-2.png 599w, https://blog.dragonsoft.us/wp-content/uploads/2021/05/image-2-300x208.png 300w" sizes="(max-width: 707px) 100vw, 707px" /></figure>



<p>MMR is useful for transaction processing applications that require multiple points of access to database information with the following goals:</p>



<ul class="wp-block-list"><li>Distributing a heavy application load.</li><li>Ensuring continuous availability.</li><li>Providing support for edge computing efficiency.</li><li>Protect from geographical impacts.</li></ul>



<p>The main goal of MMR is to ensure that data is available when and where you need it. The following describes several different scenarios that have different information delivery requirements.</p>



<p>Applications that have application load distribution requirements commonly include customer service-oriented applications.</p>



<h3 class="wp-block-heading" id="what-is-maxscale">What is MaxScale</h3>



<p>MariaDB <a rel="noreferrer noopener" href="https://mariadb.com/kb/en/maxscale/" target="_blank">MaxScale</a> is a &#8220;DB conductor&#8221; which enables database access orchestration and automatic load balancing and has the following characteristics:</p>



<ul class="wp-block-list"><li>High availability, scalability, and security.</li><li>Simplifying application development by providing unified direct client connections, native MariaDB look &amp; feel.</li><li>Transparent load balancer with support of &#8220;Write to primary, read through replicas&#8221; distribution.</li><li>Automatic membership control, and primary recovery on primary loss.</li></ul>



<h1 class="wp-block-heading" id="HighAvailability,HorizontalScalabilityandmultiprimaryinDBArchitecture-OtherConsiderations">Other Considerations</h1>



<p>When comparing various DB options, it is important to note that there could be simply a difference in DB engines that will drive your decision. As an example, while MySQL and MariaDB are close in theory, and MariaDB supports MySQL backward compatibility mode, engines are different and software must be tested to ensure a smooth transition between the two. Furthermore, a<em>fter version 10.2 MariaDB is no longer considered a drop-in replacement for MySQL.</em></p>



<ul class="wp-block-list"><li><em><a href="https://mariadb.com/kb/en/incompatibilities-and-feature-differences-between-mariadb-104-and-mysql-80/" target="_blank" rel="noreferrer noopener">Incompatibilities and Feature Differences Between MariaDB 10.4 and MySQL 8.0</a></em></li><li><a href="https://mariadb.com/resources/blog/benchmark-mariadb-vs-mysql-on-commodity-cloud-hardware/" target="_blank" rel="noreferrer noopener">Benchmark: MariaDB vs MySQL on Commodity Cloud Hardware</a> (provided by MariaDB / Sept 15, 2020).</li><li>While Maria DB is younger product and some concerns could be raised about its future, many hosting providers are switching to MariaDB, and there is now much more diverse community behind it as compare to mySQL.</li></ul>



<h1 class="wp-block-heading" id="dbaas-solutions">DBaaS Solutions</h1>



<p>We have established the foundation, let&#8217;s look at what is offered in a cloud. There are more options available, but we keep the list short for the purposes of this research.</p>



<ul class="wp-block-list"><li><a rel="noreferrer noopener" href="https://cloud.google.com/sql/docs/" target="_blank">Cloud SQL</a> &#8211; mySQL / SQL Server / PostgeSQL &#8211; hosted in GCP by Google team. HA* options. No multi-master support. No Maria DB support.</li><li><a href="https://mariadb.com/products/skysql/" target="_blank" rel="noreferrer noopener">SkySQL MariaDB</a> &#8211; hosted in GCP/AWS by MariaDB managed services. HA and MMS/MMR.</li><li><a href="https://aws.amazon.com/rds/aurora/" target="_blank" rel="noreferrer noopener">AWS Aurora</a> – mySQL / PostgeSQL – hosted in AWS by AWS team. HA and <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-multi-master.html">MMS</a>.</li><li><a href="https://azure.microsoft.com/en-us/services/mariadb/" target="_blank" rel="noreferrer noopener">Azure Database for MariaDB/MySQL</a> &#8211; MariaDB/MySQL &#8211; hosted in AWS by AWS team. HA enabled. Scalable.</li><li><a href="https://azure.microsoft.com/en-us/services/cosmos-db/" target="_blank" rel="noreferrer noopener">Azure Cosmos</a> – fully managed NoSQL DB – hosted in Azure. HA and MMS.</li><li><a href="https://cloud.google.com/spanner">Google Cloud Spanner </a>&#8211; non-traditional RDMS as data access requires API abstraction. &nbsp;HA enabled.</li></ul>



<h2 class="wp-block-heading" id="mariadb-mysql-based-dbaas-solutions-side-by-side">MariaDB/MySQL based DBaaS Solutions Side-by-Side</h2>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" src="https://blog.dragonsoft.us/wp-content/uploads/2021/05/image2021-2-8_19-0-45-1024x945.png" alt="" class="wp-image-1937" width="767" height="708" srcset="https://blog.dragonsoft.us/wp-content/uploads/2021/05/image2021-2-8_19-0-45-1024x945.png 1024w, https://blog.dragonsoft.us/wp-content/uploads/2021/05/image2021-2-8_19-0-45-300x277.png 300w, https://blog.dragonsoft.us/wp-content/uploads/2021/05/image2021-2-8_19-0-45-768x709.png 768w, https://blog.dragonsoft.us/wp-content/uploads/2021/05/image2021-2-8_19-0-45.png 1190w" sizes="auto, (max-width: 767px) 100vw, 767px" /></figure>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" src="https://blog.dragonsoft.us/wp-content/uploads/2021/05/image2021-2-8_18-58-13.png" alt="" class="wp-image-1938" width="767" height="358" srcset="https://blog.dragonsoft.us/wp-content/uploads/2021/05/image2021-2-8_18-58-13.png 889w, https://blog.dragonsoft.us/wp-content/uploads/2021/05/image2021-2-8_18-58-13-300x140.png 300w, https://blog.dragonsoft.us/wp-content/uploads/2021/05/image2021-2-8_18-58-13-768x359.png 768w" sizes="auto, (max-width: 767px) 100vw, 767px" /></figure>



<h2 class="wp-block-heading" id="cloud-sql-features">Cloud SQL Features</h2>



<p>Cloud SQL&#8217;s second generation was announced on Aug 1, 2016, for general availability and introduced some changes not applicable in the previous iteration.</p>



<ul class="wp-block-list"><li>Fully managed with 99.95% availability</li><li>Integrated</li><li><strong>Based on MySQL 8.0.18 / 5.7</strong> &#8211; slightly behind from official but not terribly (8.0.23 is officially available). As of time of this research, CloudSQL no longer includes information about current build used in official release notes.</li><li>Reliable &#8211; SSAE 16, ISO 27001, and PCI DSS compliant and supports HIPAA compliance</li><li>Offered by Google, but is lesser offering than SkySQL or Cloud Spanner.</li><li>No Memcache support</li><li><strong>Read replicas are supported, but not as clustered solution.</strong> Application must maintain direct connection to a <strong>read replica</strong> and perform load balancing internally.</li><li><a href="https://cloud.google.com/sql/docs/mysql/high-availability" target="_blank" rel="noreferrer noopener">CloudSQL High Availability configuration</a><br /><em>Note: The HA standby instance cannot be used for read queries. Read replicas cannot have HA mode enabled.<br />HA is achieved by disk replication between Zones to a standby instance. In order for standby instance be brought online, engine on standby would be brought online and would process any pending binlog transactions which may take up to 3 minutes.</em></li></ul>



<p>HA in both Amazon RDS and GCP CloudSQL implemented via Shared Storage topology (DISK level synchronous replication across different zones). Actually, on the failure of the Primary server watchdog will switch to the instance which is in the standby state. During boot, MariaDB/MySQL service will analyze binary logs and roll back all uncommitted transactions. So, that 2-3 minutes are the time required for boot and applying binary log to data. In my opinion, 2-3 minutes is a very optimistic time. Probably GCP is using Shared Storage topology because it is much cheaper (MaxScale analog &#8211; MySQL Router is available under a dual license, probably this obstacle don&#8217;t let to integrate it as a solution for cloud providers).</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>HA in SkySQL implemented via MaxScale. So it is not correct to compare CloudSQL and SkySQL side-by-side. Also additional MaxScale layer means that if it fails no matter how many replicas are in place, DB will stay unavailable until MaxScale instance is recovered. SkySQL now offers HA option for MaxScale now to address the issue.</p></blockquote>



<h2 class="wp-block-heading" id="HighAvailability,HorizontalScalabilityandmultiprimaryinDBArchitecture-MaxScaleFeatures">SkySQL Features and Benefits</h2>



<p>SkySQL is MariaDB&#8217;s answer to CloudSQL and builds on top of extensive enterprise knowledge the MariaDB team acquired over the years.</p>



<p>SkySQL is managed solution which expands MariaDB, MaxScale, and Galera Cluster offerings to the cloud and includes all features from individual products. It is available in GCP and AWS allowing for easy hosting migration.</p>



<p>The solution is managed by the SkySQL team &#8211; the professional services arm of MariaDB Corporation.</p>



<h3 class="wp-block-heading" id="skysql-features">SkySQL Features</h3>



<p>First announced on March 31, 2020. <a href="https://www.helpnetsecurity.com/2020/05/12/mariadb-skysql-google-cloud-marketplace/">GA announced on May 12</a>.</p>



<p>Current versions:</p>



<ul class="wp-block-list"><li><strong><a href="https://mariadb.com/products/mariadb-platform/components/">MariaDB Enterprise Server</a> &#8211; 10.4.14-8</strong></li><li><strong><a href="https://mariadb.com/products/mariadb-platform/components/#maxscale">MaxScale</a> &#8211; 2.5.3</strong></li><li><a href="https://mariadb.com/products/mariadb-platform/components/#columnstore">ColumnStore</a> &#8211; 5.4.1</li><li><a href="https://mariadb.com/products/mariadb-platform/xpand/">Xpand</a> &#8211; used in Distributed SQL configuration. Would resemble CloudSpanner in behaviour without API overhead</li><li>Galera 4.0+ &#8211; offered as an option but can be overlooked by proper tuning of MaxScale cluster or via <strong>Distributed SQL</strong> configuration.</li></ul>



<p>Other features:</p>



<ul class="wp-block-list"><li>Fully managed with 99.95% &#8211; 99.995% availability</li><li>Cluster Nodes split across zones within the same region with DR nodes in different region if necessary.</li><li>TLS 1.2/1.3 required for all connections</li></ul>



<p>Please refer to the attached <a href="https://wiki.wideorbit.com:444/download/attachments/523370576/202010octoberskysqlupdate.pdf?version=1&amp;modificationDate=1612839163127&amp;api=v2">October 2020 SkySQL Announcement</a> for additional details.</p>



<p>SkySQL usage is reviewed below in Transactional usage and offered in 4 configurations:</p>



<ul class="wp-block-list"><li>Transactional Standalone &#8211; 1 node</li><li>HA &#8211; primary and 2 replicas &#8211; 3 nodes</li><li>Galera &#8211; 3 nodes</li></ul>



<h3 class="wp-block-heading" id="skysql-benefits">SkySQL Benefits</h3>



<ul class="wp-block-list"><li><strong>Always up to date: </strong>SkySQL is kept current and updated to stay in line with current products available</li><li><strong>Cloud Distributed:</strong> SkySQL includes a fully distributed cloud data warehouse that now provides massively parallel processing (MPP) for scalability and high availability on large datasets.</li><li><strong>End-to-end security:</strong>&nbsp;All SkySQL databases are secure by default, built from the ground up to provide the ultimate security in the cloud. SkySQL now also enforces secure SSL/TLS connections for any database access, avoiding exposure of data due to insecure defaults or configuration choices. AD integration is available on request.</li><li><strong>Disaster Recovery:</strong> SkySQL combines nightly backups, persistent disks, point-in-time rollback and cross-region replication to minimize the recovery point and recovery time objectives (RPO/RTO) of mission-critical, production databases.</li><li><strong>Expanded monitoring:</strong>&nbsp;SkySQL monitoring shows the status and all vital metrics for database instances and is highly customizable. Health state of the nodes within defined scalability strategies.</li><li><strong>Radically reduced complexity for application development:</strong>&nbsp;SkySQL provides a single connection point for applications rather than exposing individual database instances, primaries or high availability replicas. SkySQL manages read/write-splitting, seamless fail-over and application session migration. The result is fault tolerance and efficient use of resources that is completely transparent to developers and end users.</li></ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="900" height="369" src="https://blog.dragonsoft.us/wp-content/uploads/2021/05/image2021-2-8_19-6-35.png" alt="" class="wp-image-1939" srcset="https://blog.dragonsoft.us/wp-content/uploads/2021/05/image2021-2-8_19-6-35.png 900w, https://blog.dragonsoft.us/wp-content/uploads/2021/05/image2021-2-8_19-6-35-300x123.png 300w, https://blog.dragonsoft.us/wp-content/uploads/2021/05/image2021-2-8_19-6-35-768x315.png 768w" sizes="auto, (max-width: 900px) 100vw, 900px" /></figure>



<ul class="wp-block-list"><li>SkySQL is provided and supported by MariaDB team as a cloud solution</li><li>Based on MariaDB Platform X5</li><li>Runs on <a href="https://kubernetes.io/">Kubernetes Containers</a> and <a href="https://www.servicenow.com">ServiceNow Workflow Engine</a></li><li>Implements a reference cloud security architecture &#8211; <a href="https://www.helpnetsecurity.com/2021/02/01/mariadb-iso-iec-270012013/">ISO/IEC 27001:2013 certification achieved Feb 1, 2021</a></li><li>No SOC 2 certification at this time, but artifacts could be generated per client&#8217;s request. SOC2 is targeted for EOY to align with ISO 27001 renewal</li><li>Support for AD integration is included</li><li><a href="https://www.youtube.com/watch?v=TAvKGl0eCKI">MariaDB Xpand for distributed SQL</a> (youtube)</li><li>Optionally can include DBA support as well &#8211; premium service available for engagement</li></ul>



<h2 class="wp-block-heading" id="HighAvailability,HorizontalScalabilityandmultiprimaryinDBArchitecture-SkySQLforDistributedSQL">SkySQL for Distributed SQL</h2>



<p>Alternative to SkySQL cluster and Galera is <strong>SkySQL for Distributed SQL</strong>.</p>



<ul class="wp-block-list"><li>Based on Xpand technology.</li><li>Requires min 3 nodes.</li><li>Single node failure without loss of data. Auto healing without intervention.</li><li>Elastic scale-up/scale-down infrastructure topology.</li></ul>



<h2 class="wp-block-heading" id="skysql-sla-considerations">SkySQL SLA Considerations</h2>



<p><a href="https://mariadb.com/products/skysql/docs/features/service-availability/#service-downtime" target="_blank" rel="noreferrer noopener">Official Service Downtime metrics and Service Credits</a></p>



<ul class="wp-block-list"><li>99.95% service availability in multi node configuration &#8211; ex: 22 min max over 30 days</li><li>if exceeded 99.95% Service Credits will be applied per calculated monthly uptime percentage prorate.</li><li>Excludes impact of GCP and GKE engine.</li></ul>



<h2 class="wp-block-heading" id="HighAvailability,HorizontalScalabilityandmultiprimaryinDBArchitecture-SkySQLSupportOptions">SkySQL Support Options</h2>



<p>As presented in the <a href="https://mariadb.com/products/skysql/pricing/">Pricing</a> section several tiers are available:</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" src="https://blog.dragonsoft.us/wp-content/uploads/2021/05/image2021-3-15_14-49-27-1024x550.png" alt="" class="wp-image-1942" width="722" height="388" srcset="https://blog.dragonsoft.us/wp-content/uploads/2021/05/image2021-3-15_14-49-27-1024x550.png 1024w, https://blog.dragonsoft.us/wp-content/uploads/2021/05/image2021-3-15_14-49-27-300x161.png 300w, https://blog.dragonsoft.us/wp-content/uploads/2021/05/image2021-3-15_14-49-27-768x413.png 768w, https://blog.dragonsoft.us/wp-content/uploads/2021/05/image2021-3-15_14-49-27.png 1213w" sizes="auto, (max-width: 722px) 100vw, 722px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://blog.dragonsoft.us/wp-content/uploads/2021/05/image4-1024x576.png" alt="" class="wp-image-1943" srcset="https://blog.dragonsoft.us/wp-content/uploads/2021/05/image4-1024x576.png 1024w, https://blog.dragonsoft.us/wp-content/uploads/2021/05/image4-300x169.png 300w, https://blog.dragonsoft.us/wp-content/uploads/2021/05/image4-768x432.png 768w, https://blog.dragonsoft.us/wp-content/uploads/2021/05/image4-1536x864.png 1536w, https://blog.dragonsoft.us/wp-content/uploads/2021/05/image4.png 1564w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<ul class="wp-block-list"><li>Normal response time 4-8 hours for Standard tier.</li><li>SkyDBA / Premium &#8211; in minutes / self managed / self driven &#8211; <em>additional cost</em>.</li><li>DBA backup recovery &#8211; normal &#8211; severity 1 &#8211; 8 min avg, 30 min SLA &#8211; immediate action upon reporting / detection.</li><li>GCP Kybernetes engine takes on recovery of the lost node and will rejoin the cluster &#8211; does not require ticket.</li><li>Patches are applied every 3 months with 2 weeks advanced notice with ability to delay.</li><li>Patches are first applied to replicas. Time can be agreed on.</li><li>Testing instance can be spin off for advance evaluation.</li><li>7 days daily backup option is included. Backup retention policy can be extended for additional pass-through cost of GCS storage. <a href="https://cloud.google.com/storage/docs/storage-classes">Nearline storage class</a> is used.</li><li>AD authentication for access can be implemented during on-boarding.</li></ul>



<h2 class="wp-block-heading" id="HighAvailability,HorizontalScalabilityandmultiprimaryinDBArchitecture-SkySQLvsCloudSQL">SkySQL vs CloudSQL</h2>



<p><a rel="noreferrer noopener" href="https://blog.dragonsoft.us/wp-content/uploads/2021/05/cloud-database-comparison-skysql-vs-google-cloud-sql_whitepaper_1099.pdf" target="_blank">SkySQL vs CloudSQL comparison</a> provided by (by SkySQL team)</p>



<p>Light recap &#8211; read above for a more detailed comparison.</p>



<ul class="wp-block-list"><li>CloudSQL is mySQL based vs MariaDB in SkySQL</li><li>CloudSQL caps write throughput forcing to upgrade instance type.</li><li>CloudSQL only allows Read replicas</li><li>In addition to Primary/replica supported by CloudSQL, SkySQL offers Multi-master and Distributed SQL configuration based on MariaDB Enterprise Server nodes for transactional access.</li><li>CloudSQL HA option is based on Hot/Spare two node configuration. While &#8220;Hot&#8221; node is alive, all traffic routed to it.  Spare is used for auto healing when main node fails. Per documentation failover can take up 2 minutes to complete transition. May require transaction replay if caught in-flight.<br />SkySQL failover takes less than a second. No transaction replay if caught in-flight required.</li><li>CloudSQL does not offer automatic load balancing.</li></ul>



<h1 class="wp-block-heading" id="expect-things-to-be-slightly-slower">Expect things to be slightly slower</h1>



<p>While analyzing stats from your staging setup before making a final decision, do not overlook the fact that you are looking at Apples and Oranges. While the DBaaS engine may be a drop-in for your project and not many physical changes are required to keep it running, one thing is important &#8211; you are changing IT architecture. Even with GCP dedicated interconnect, you are still looking at virtualized environments and new considerations need to be made for network pipes length, edge networks, regions, and zones. Don&#8217;t be dissuaded, by making a few important, and maybe postponed, changes to your current topology and data patterns, you should be able to regain &#8220;lost&#8221; speed.</p>



<p>Said that after careful review and tuning comparable speeds were achieved. Adding to its ability to distribute processing load between nodes, the final result should be satisfactory. </p>



<h1 class="wp-block-heading" id="conclusion">Conclusion</h1>



<p>This article makes attempt to give the reader enough information and references to make the best choice suitable for your application configuration while satisfying your CI/CD requirements and I hope you find it useful. Google Cloud, Azure, and AWS offer many different database options and it is important to choose a DBaaS solution that makes your project a success. Good luck.</p>
<hr/><span style="font-size: 7pt">Copyright &copy; 2026 <strong><a href="https://blog.dragonsoft.us">Dragonsoft Technology View</a></strong>. This Feed is for personal non-commercial use only.</span><p>The post <a href="https://blog.dragonsoft.us/2021/07/14/database-as-a-service-high-availability-horizontal-scalability-and-multi-master-architecture/">Database as a Service, High Availability, Horizontal Scalability, and Multi-master Architecture</a> appeared first on <a href="https://blog.dragonsoft.us">Dragonsoft Technology View</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.dragonsoft.us/2021/07/14/database-as-a-service-high-availability-horizontal-scalability-and-multi-master-architecture/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1868</post-id>	</item>
		<item>
		<title>Death of CentOS? NOT&#8230; Think &#8220;rebirth&#8221; instead</title>
		<link>https://blog.dragonsoft.us/2021/03/31/death-of-centos-not-think-rebirth-instead/</link>
					<comments>https://blog.dragonsoft.us/2021/03/31/death-of-centos-not-think-rebirth-instead/#respond</comments>
		
		<dc:creator><![CDATA[Serguei Dosyukov]]></dc:creator>
		<pubDate>Wed, 31 Mar 2021 23:51:42 +0000</pubDate>
				<category><![CDATA[Piwigo]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[CentOS and RedHat]]></category>
		<category><![CDATA[CentOS is dead]]></category>
		<category><![CDATA[CentOS Stream]]></category>
		<category><![CDATA[CetOS Linux]]></category>
		<guid isPermaLink="false">https://blog.dragonsoft.us/?p=1894</guid>

					<description><![CDATA[<p>I am active user of CentOS in production for many years and counting. While Windows was and still is my OS of choice on desktop, actively using WordPress and LAMP stack in general lead me to CentOS as a base platform to host our web applications and solutions. We are [&#8230;]</p>
<p>The post <a href="https://blog.dragonsoft.us/2021/03/31/death-of-centos-not-think-rebirth-instead/">Death of CentOS? NOT&#8230; Think &#8220;rebirth&#8221; instead</a> appeared first on <a href="https://blog.dragonsoft.us">Dragonsoft Technology View</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>I am active user of CentOS in production for many years and counting. While Windows was and still is my OS of choice on desktop, actively using WordPress and LAMP stack in general lead me to CentOS as a base platform to host our web applications and solutions. We are now equally using Debian in our deployments.</p>



<p>When <a rel="noreferrer noopener" href="https://www.redhat.com/en/blog/centos-stream-building-innovative-future-enterprise-linux" target="_blank">RedHat announced shift of focus from CentOS Linux to CentOS Stream</a> in December of last year it caused a stir in Linux/CentOS community. It was still acknowledged that announcement was botched and misleading. For me bells started to ring when IBM first acquired RedHat. Usually such changes lead to more &#8220;enterprisy&#8221; approach. And year later we now see it happening. How can we generate more $$$ for our shareholders has its meaning and drives future decisions? Yes, it is unclear what driven it and we would be told stories what lead to the decision, but there is old saying  &#8211; follow the money &#8211; which most of the time is true.</p>



<p>Problem with CentOS was that it was sitting &#8220;downstream&#8221; from RHEL and led to the notion of &#8220;why pay for RedHat Unix when you can get even more stable CentOS for free&#8221;. Historically CentOS would receive changes even later than they are in RHEL/RedHat. I think thinking behind RedHat&#8217;s decision to move things around were rooted from the notion that CentOS cannibalizes on RedHat corporate sales.</p>



<p>New approach is that CentOS Stream, which is replacing CentOS Linux, is now moved &#8220;upstream&#8221; getting changes before RHEL gets them officially. This lead to a scare in the community and triggered people considering abandon then platform, i.e. &#8220;death of CentOS&#8221;.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>&#8220;Reports of&nbsp;my&nbsp;death&nbsp;have&nbsp;been&nbsp;greatly&nbsp;exaggerated&#8221;, replied Mark Twain </p></blockquote>



<p>or &#8220;The report of my death was an exaggeration&#8221; to be more accurate when asked to comment on rumor that he was dead.</p>



<p><em>CentOS is not dead. It changed its model. CentOS Project, it&#8217;s governing board and SIGs are still committed to CentOS growth.</em></p>



<p>Benjamin Porter wrote great detailed analysis of the story here &#8211; <a href="https://freedomben.medium.com/centos-is-not-dead-please-stop-saying-it-is-at-least-until-you-read-this-4b26b5c44877" target="_blank" rel="noreferrer noopener">CentOS is NOT dead. Please Stop Saying It Is (at least until you read this)</a>. Please read it and don&#8217;t overlook links to internal blogs and announcements in the article, it worth the time spent reading ten fold.</p>



<p>Off course there is Debian and other Linux distros. Everyone is free to make their choices, just don&#8217;t base your decisions on misleading statements and news especially driven by enterprise marketing teams like these from <a rel="noreferrer noopener" href="https://www.redhat.com/en/blog/faq-centos-stream-updates" target="_blank">RedHat FAQ</a>.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>If you’re using CentOS Linux in a commercial deployment, we suggest you look at moving to RHEL for the added management technologies, security, and support that are an integral part of the RHEL subscription. Our sales teams can help you identify the appropriate offerings that match your use case</p></blockquote>



<p>Good luck and may the force of Open Source be with you always.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p></p><cite>PS: For more information on CentOS refer to <a rel="noreferrer noopener" href="https://www.centos.org/" target="_blank">CentOS Project Home</a></cite></blockquote>
<hr/><span style="font-size: 7pt">Copyright &copy; 2026 <strong><a href="https://blog.dragonsoft.us">Dragonsoft Technology View</a></strong>. This Feed is for personal non-commercial use only.</span><p>The post <a href="https://blog.dragonsoft.us/2021/03/31/death-of-centos-not-think-rebirth-instead/">Death of CentOS? NOT&#8230; Think &#8220;rebirth&#8221; instead</a> appeared first on <a href="https://blog.dragonsoft.us">Dragonsoft Technology View</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.dragonsoft.us/2021/03/31/death-of-centos-not-think-rebirth-instead/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1894</post-id>	</item>
		<item>
		<title>GreyDragon v.1.3.5 has been released</title>
		<link>https://blog.dragonsoft.us/2021/03/04/greydragon-v-1-3-5-has-been-released/</link>
					<comments>https://blog.dragonsoft.us/2021/03/04/greydragon-v-1-3-5-has-been-released/#respond</comments>
		
		<dc:creator><![CDATA[Serguei Dosyukov]]></dc:creator>
		<pubDate>Thu, 04 Mar 2021 21:48:47 +0000</pubDate>
				<category><![CDATA[Piwigo]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web-design]]></category>
		<category><![CDATA[GreyDragon Theme]]></category>
		<category><![CDATA[PIWIGO]]></category>
		<guid isPermaLink="false">https://blog.dragonsoft.us/?p=1879</guid>

					<description><![CDATA[<p>Verified compatibility with PIWIGO 11.x Translation files synced from repo Fix misalignment of admin section header for PW 11+ Fix issue with plugin detection Copyright &#169; 2026 Dragonsoft Technology View. This Feed is for personal non-commercial use only.</p>
<p>The post <a href="https://blog.dragonsoft.us/2021/03/04/greydragon-v-1-3-5-has-been-released/">GreyDragon v.1.3.5 has been released</a> appeared first on <a href="https://blog.dragonsoft.us">Dragonsoft Technology View</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<ul class="wp-block-list"><li>Verified compatibility with PIWIGO 11.x</li><li>Translation files synced from repo</li><li>Fix misalignment of admin section header for PW 11+</li><li>Fix issue with plugin detection</li></ul>



<p></p>
<hr/><span style="font-size: 7pt">Copyright &copy; 2026 <strong><a href="https://blog.dragonsoft.us">Dragonsoft Technology View</a></strong>. This Feed is for personal non-commercial use only.</span><p>The post <a href="https://blog.dragonsoft.us/2021/03/04/greydragon-v-1-3-5-has-been-released/">GreyDragon v.1.3.5 has been released</a> appeared first on <a href="https://blog.dragonsoft.us">Dragonsoft Technology View</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.dragonsoft.us/2021/03/04/greydragon-v-1-3-5-has-been-released/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1879</post-id>	</item>
		<item>
		<title>Making your network connected HP ENVY Photo 7855 print again</title>
		<link>https://blog.dragonsoft.us/2021/02/19/making-your-network-connected-hp-envy-photo-7855-print-again/</link>
					<comments>https://blog.dragonsoft.us/2021/02/19/making-your-network-connected-hp-envy-photo-7855-print-again/#comments</comments>
		
		<dc:creator><![CDATA[Serguei Dosyukov]]></dc:creator>
		<pubDate>Sat, 20 Feb 2021 00:51:22 +0000</pubDate>
				<category><![CDATA[Scratch Pad]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[HP ENVY Photo 7855]]></category>
		<category><![CDATA[port match fixed]]></category>
		<category><![CDATA[Unable to print]]></category>
		<guid isPermaLink="false">https://blog.dragonsoft.us/?p=1870</guid>

					<description><![CDATA[<p>HP printers seems to always being stop-and-go solution. Anything from upgrading to new version of Windows, switching local to network or Wi-Fi can throw them off. Over years I had number of HP and Canon printers and latest device is HP ENVY Photo 7855. It started all great &#8211; new [&#8230;]</p>
<p>The post <a href="https://blog.dragonsoft.us/2021/02/19/making-your-network-connected-hp-envy-photo-7855-print-again/">Making your network connected HP ENVY Photo 7855 print again</a> appeared first on <a href="https://blog.dragonsoft.us">Dragonsoft Technology View</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>HP printers seems to always being stop-and-go solution. Anything from upgrading to new version of Windows, switching local to network or Wi-Fi can throw them off. Over years I had number of HP and Canon printers and latest device is HP ENVY Photo 7855.</p>



<p>It started all great &#8211; new printer arrived in good condition. Installation went well, Windows 10 recognized it and Store has proper apps to use. It appeared we have had a winner.</p>



<p><em>Note: Printer was connected over Wi-Fi with dedicated IP provisioned on secured locked down network. </em> </p>



<p>After a while I started to notice that printer will not always register properly on restart/wake up and would become unresponsive to print requests. As a scanner it would continue operate without issues and scan as PDF to computer with ease.</p>



<p>Firmware, driver updates, software refresh did not address the issue that sending documents to be printed ended with generic error that printer unable to print. HP Smart was still recognizing printer presence. I was able to print status page, clean print heads, any other maintenance operations just fine, but trying to print from browser, PDF or other apps end up with failure. HP Print and Scan Doctor utility would consistently &#8220;fix&#8221; port issue.</p>



<p>This was a clue to follow&#8230;</p>



<p>When you dig in printer&#8217;s settings you will notice WSD port.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>WSD is not a port</strong> but a &#8216;port monitor&#8217;. WSD devices communicate using a series of SOAP (Simple Object Access Protocol) messages over UDP and HTTPs BUT NOT local IP addresses. Therefore, there is not an IP address for WSD devices.</p></blockquote>



<p>To find port associated with printer in Windows 10, open the Start menu by clicking the Windows icon on your taskbar. Start typing <strong>Control Panel</strong> until system finds it in apps and click to open. Select <strong>View devices and printers</strong>. Select your printer in <strong>Printers</strong> section and notice that <strong>Print server properties</strong> is activated in top bar &#8211; click to open.</p>



<p>Now the magic&#8230;</p>



<p>Scroll through the list of ports. You will see infamous WSD port &#8211; ignore it. Look for any ports marked as <strong>Standard TCP/IP Port</strong>. Check that none of them associated with your printer IP.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Printer IP can be found in your printer&#8217;s LED menu for your printer&#8217;s network connection. Printer must be setup to use Static IP. If you tap on network icon and drag it down, <strong>Info</strong> section would be opened and just below printer&#8217;s name, you will find printer&#8217;s IP Address. Write it down.</p></blockquote>



<p>Go back to <strong>Print Server Properties</strong> and <strong>Add Port</strong>. In next step select <strong>Standard TCP/IP Port</strong>, click New Port and follow Wizard steps &#8211; provide you printer&#8217;s IP and Port Name (same as IP), complete other wizard steps. Once finished, a new port will be added into the list.</p>



<p>If port for our IP already existed, click <strong>Configure Port</strong> and verify that <strong>Printer Name or IP Address</strong> is correct, Raw protocol is being used, Raw <strong>port number</strong> is normally set to 9100. Click OK to exit <strong>Print Server Properties</strong> and save all your changes.</p>



<p>Almost done&#8230; but one more step &#8211; now we need to tell Windows which port to use.</p>



<p>In <strong>Devices and Printers</strong> dialog right click on your printer&#8217;s icon and select <strong>Printer Properties</strong>. Navigate to <strong>Ports</strong>&#8230; again. You will notice that port&#8217;s list now has check boxes next to ports available and <strong>WSD Port</strong> is selected. We need to fix that &#8211; find your new, just off the press Standard TCP/IP Port. Select it and make sure check box is ticked for it. Click <strong>Apply</strong> to save your great work.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>Note:</strong> This last step most likely would need to be repeated every time a new driver update is installed as HP will revert your choices back and make printer inoperable again.</p></blockquote>



<p>Switch to <strong>General</strong> tab and hold your breath in excitement while enjoying your beautiful test page being printed.  </p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>I have no idea why HP Printer Setup utility or HP Smart cannot configure printer properly for static IP use. It does see the printer. It communicates with it. HP Scan and Capture utility works just fine. </p><p>I cannot fathom why HP Smart drivers end up being not so smart.</p></blockquote>



<p>I hope this little writing of mine helped someone avoid pain trying figure out why lovely HP printer is not so loving.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>PS: Printer can be stubborn. One more thing to try is to assign static IP on the printer itself using direct configuration via touch screen. </p></blockquote>
<hr/><span style="font-size: 7pt">Copyright &copy; 2026 <strong><a href="https://blog.dragonsoft.us">Dragonsoft Technology View</a></strong>. This Feed is for personal non-commercial use only.</span><p>The post <a href="https://blog.dragonsoft.us/2021/02/19/making-your-network-connected-hp-envy-photo-7855-print-again/">Making your network connected HP ENVY Photo 7855 print again</a> appeared first on <a href="https://blog.dragonsoft.us">Dragonsoft Technology View</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.dragonsoft.us/2021/02/19/making-your-network-connected-hp-envy-photo-7855-print-again/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1870</post-id>	</item>
		<item>
		<title>Firefox 77 and Awesome expanding address bar</title>
		<link>https://blog.dragonsoft.us/2020/06/05/firefox-77-and-awesome-expanding-address-bar/</link>
					<comments>https://blog.dragonsoft.us/2020/06/05/firefox-77-and-awesome-expanding-address-bar/#respond</comments>
		
		<dc:creator><![CDATA[Serguei Dosyukov]]></dc:creator>
		<pubDate>Fri, 05 Jun 2020 19:28:44 +0000</pubDate>
				<category><![CDATA[Technology]]></category>
		<guid isPermaLink="false">https://blog.dragonsoft.us/?p=1845</guid>

					<description><![CDATA[<p>Awesome design decisions I do not have much time to write these days, but this situation made enough annoyance for me to warrant this content. First, kudos to Firefox team for well maintained browser. Then&#8230; In general, I am one of the stubborn one, who do not like fluidity of [&#8230;]</p>
<p>The post <a href="https://blog.dragonsoft.us/2020/06/05/firefox-77-and-awesome-expanding-address-bar/">Firefox 77 and Awesome expanding address bar</a> appeared first on <a href="https://blog.dragonsoft.us">Dragonsoft Technology View</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">Awesome design decisions</h2>



<p>I do not have much time to write these days, but this situation made enough annoyance for me to warrant this content.</p>



<p>First, kudos to Firefox team for well maintained browser.</p>



<p>Then&#8230;</p>



<p>In general, I am one of the stubborn one, who do not like fluidity of Chrome and its ever changing behaviour. In the past, IE and Microsoft was the one breaking standards. Now it appears that these great minds moved to Google and every new version of Chrome will give you something new and unexpected from great wisdom of all-knowing and all-seeing company. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p>Firefox team seems to feel the pressure and joined the party of making users happier by delivering surprising features.</p>



<p>In last few months one of the great things to appear was expanding/enlarging address bar.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="196" height="71" src="https://blog.dragonsoft.us/wp-content/uploads/2020/06/image.png" alt="" class="wp-image-1847"/></figure>



<p>There is probably some great reason for it to behave this way, and I respect the decision Firefox UX team made, but it is really distracting.</p>



<p>In Firefox 75 and 76 advanced users could use about:config settings to suppress this behaviour, but it was taken away in Firefox 77, so I will skip referencing solution there and instead focus on awesome 77+ build and we would need to do some coding.</p>



<h2 class="wp-block-heading">Taking control back</h2>



<p><em>Chrome is creeping in. No way to avoid its influence these days.</em></p>



<p>As with Chrome, you can define your own CSS styles for Firefox as well, if you know the tags.</p>



<p>First, you need to enable CSS styles overrides for Firefox.<br />Visiting userChrome.org will help you with step by step instruction on how to do that <a href="https://www.userchrome.org/how-create-userchrome-css.html">here</a>.</p>



<p>Once you give yourself tools, next step is to start using them &#8211; override how address bar is styled.</p>



<p>From the same site, you can grab ready to go userChrome.css file which will return your bar under control <a href="https://www.userchrome.org/samples/userChrome-ZeroEnlargement.css">here</a> then drop it into <strong>chrome</strong> folder under your Firefox <a href="https://support.mozilla.org/en-US/kb/profiles-where-firefox-stores-user-data">user profile</a> folder. <em>It is important that you create <strong>chrome</strong> folder if it does not exist before placing CSS there.</em></p>



<p>After making sure <strong>toolkit.legacyUserProfileCustomizations.stylesheets</strong> is set to true in your about:config and restarting the Firefox, you will get your address bar back.</p>



<p><em>PS: Additional candy is that reviewing the CSS will tell you exactly how to modify the bar in any other way you like. Fave fun, give it color, make it big to take half the screen, go crazy. Just kidding.</em></p>



<p></p>
<hr/><span style="font-size: 7pt">Copyright &copy; 2026 <strong><a href="https://blog.dragonsoft.us">Dragonsoft Technology View</a></strong>. This Feed is for personal non-commercial use only.</span><p>The post <a href="https://blog.dragonsoft.us/2020/06/05/firefox-77-and-awesome-expanding-address-bar/">Firefox 77 and Awesome expanding address bar</a> appeared first on <a href="https://blog.dragonsoft.us">Dragonsoft Technology View</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.dragonsoft.us/2020/06/05/firefox-77-and-awesome-expanding-address-bar/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1845</post-id>	</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Page Caching using Disk: Enhanced 
Lazy Loading (feed)
Minified using Disk
Database Caching 13/82 queries in 0.271 seconds using Disk

Served from: blog.dragonsoft.us @ 2026-04-21 23:24:34 by W3 Total Cache
-->