<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Posts on Christopher Bradford - @bradfordcp</title>
    <link>https://bradfordcp.io/posts/</link>
    <description>Recent content in Posts on Christopher Bradford - @bradfordcp</description>
    <generator>Hugo</generator>
    <language>en-US</language>
    
    <lastBuildDate>Tue, 12 Oct 2021 07:00:00 -0400</lastBuildDate>
    
    
    <atom:link href="https://bradfordcp.io/posts/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
      <title>Taking Your Database Beyond a Single Kubernetes Cluster</title>
      <link>https://thenewstack.io/taking-your-database-beyond-a-single-kubernetes-cluster/</link>
      <pubDate>Tue, 12 Oct 2021 07:00:00 -0400</pubDate>
      <guid>https://thenewstack.io/taking-your-database-beyond-a-single-kubernetes-cluster/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Originally published on &lt;a href=&#34;https://thenewstack.io/taking-your-database-beyond-a-single-kubernetes-cluster/&#34;&gt;The New Stack&lt;/a&gt; on October 12, 2021, with Ty Morton. This file is a local backup and is not served as a page.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;How to leverage Kubernetes and Apache Cassandra to more easily manage distributed applications with thousands of nodes.&lt;/p&gt;
&lt;p&gt;In this post, we’ll give you a sneak peek of our presentation at KubeCon 2021, where DataStax and Google Cloud Platform will show you how to leverage Kubernetes and Apache Cassandra to more easily manage distributed applications with thousands of nodes across both on-premises and in the cloud.&lt;/p&gt;</description>
    </item>
    <item>
      <title>A Case for Databases on Kubernetes from a Former Skeptic</title>
      <link>https://thenewstack.io/a-case-for-databases-on-kubernetes-from-a-former-skeptic/</link>
      <pubDate>Mon, 05 Apr 2021 09:00:00 -0400</pubDate>
      <guid>https://thenewstack.io/a-case-for-databases-on-kubernetes-from-a-former-skeptic/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Originally published on &lt;a href=&#34;https://thenewstack.io/a-case-for-databases-on-kubernetes-from-a-former-skeptic/&#34;&gt;The New Stack&lt;/a&gt; on April 5, 2021. This file is a local backup and is not served as a page.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Should you run a database on Kubernetes, in a cloud native environment? Here&amp;rsquo;s why the answer is now &amp;ldquo;yes!&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Kubernetes is everywhere. Transactional apps, video streaming services and machine learning workloads are finding a home on this ever-growing platform. But what about databases? If you had asked me this question five years ago, the answer would have been a resounding “No!” — based on my experience in development and operations. In the following years, as more resources emerged for stateful applications, my answer would have changed to “Maybe,” but always with a qualifier: “It’s fine for development or test environments…” or “If the rest of your tooling is Kubernetes-based, and you have extensive experience…”&lt;/p&gt;</description>
    </item>
    <item>
      <title>Running Zeppelin 0.8.2 on Windows 10 with Python and PySpark support</title>
      <link>https://bradfordcp.io/posts/running-zeppelin-0.8.2-with-python-and-pyspark-on-windows-10/</link>
      <pubDate>Wed, 18 Dec 2019 18:45:00 -0500</pubDate>
      <guid>https://bradfordcp.io/posts/running-zeppelin-0.8.2-with-python-and-pyspark-on-windows-10/</guid>
      <description>&lt;p&gt;While trying to get Zeppelin up and running locally for a local PySpark project I hit no end of issues. Googling online turned up minimal information related to my supply of error messages. Hopefully this helps you get up and running.&lt;/p&gt;
&lt;h2 id=&#34;0-prerequisites&#34;&gt;0. Prerequisites&lt;/h2&gt;
&lt;p&gt;To get things started you need a functioning Python environment with PIP available. On my machine I&amp;rsquo;m using &lt;a href=&#34;https://www.anaconda.com/&#34;&gt;Anaconda&lt;/a&gt; to install Python 3. The &lt;code&gt;conda&lt;/code&gt; command &lt;em&gt;is&lt;/em&gt; available in PowerShell.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Simplifying Datastax Enterprise Deployments With Kubernetes for Containerized Workflows</title>
      <link>https://www.datastax.com/blog/2019/11/simplifying-datastax-enterprise-deployments-kubernetes-containerized-workflows</link>
      <pubDate>Mon, 18 Nov 2019 00:00:00 -0400</pubDate>
      <guid>https://www.datastax.com/blog/2019/11/simplifying-datastax-enterprise-deployments-kubernetes-containerized-workflows</guid>
      <description>&lt;p&gt;Available today in &lt;a href=&#34;https://downloads.datastax.com/#labs&#34;&gt;DataStax Labs&lt;/a&gt;, the DataStax Enterprise Kubernetes Operator simplifies the deployment and management of &lt;a href=&#34;https://www.datastax.com/products/datastax-enterprise&#34;&gt;DataStax Enterprise&lt;/a&gt; (DSE) clusters on the Kubernetes platform. Many enterprise IT organizations are implementing hybrid and multi-cloud solutions to leverage features and capabilities on disparate providers. Additionally, tooling has grown to be homogenous across providers—both on-premises and in the cloud. Kubernetes (also known as k8s) has come out as the dominant player in this space with distributions available on most cloud platforms.&lt;/p&gt;</description>
    </item>
    <item>
      <title>DataStax CDC Connector for Apache Kafka™ Enables Globally Replicated Microservices</title>
      <link>https://www.datastax.com/blog/2019/09/datastax-cdc-connector-apache-kafkatm-enables-globally-replicated-microservices</link>
      <pubDate>Mon, 30 Sep 2019 15:37:36 -0400</pubDate>
      <guid>https://www.datastax.com/blog/2019/09/datastax-cdc-connector-apache-kafkatm-enables-globally-replicated-microservices</guid>
      <description>&lt;p&gt;Customers -  like Capital One, Delta Airlines, and Macy&amp;rsquo;s - choose &lt;a href=&#34;https://www.datastax.com/products/datastax-enterprise&#34;&gt;DataStax Enterprise&lt;/a&gt; (DSE) because it&amp;rsquo;s underpinned by &lt;a href=&#34;https://www.datastax.com/products/apache-cassandra&#34;&gt;Apache Cassandra&lt;/a&gt;™ and thus offers limitless scale and the most battle-tested, geo-replication capabilities on the market. The DataStax Change Data Capture (CDC) Connector for Apache Kafka will empower customers building microservice architectures to provide multi-data center/cloud replication of the Cassandra-backed system of record which will then enable globally synchronized microservices.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://bradfordcp.io/posts/datastax-cdc-connector-apache-kafka-enables-globally-replicated-microservices/CDCKafkaDiagram.png&#34; alt=&#34;DSE and Kafka Architecture&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Shipping Containers - effectively deploying containers in the cloud. </title>
      <link>https://opensourceconnections.com/blog/2016/04/11/shipping-containers-effectively-deploying-containers-in-the-cloud/</link>
      <pubDate>Mon, 11 Apr 2016 16:48:24 -0400</pubDate>
      <guid>https://opensourceconnections.com/blog/2016/04/11/shipping-containers-effectively-deploying-containers-in-the-cloud/</guid>
      <description>&lt;p&gt;&lt;em&gt;This is part 2 of a 3 part series on our move to containers as a platform for Quepid. Be sure to check out Part 1 on generating deployable containers. Part 3 will be linked here once it has been published.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;In our last installment we discussed wrapping an application and &lt;strong&gt;all&lt;/strong&gt; of its dependencies in a single easily deployed container. Running the container locally is trivial, but how can this be deployed into a hosting environment? Our deployment exploration has now shifted to getting the artifacts shipped!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Generating Deployable Quepid Artifacts with Containers</title>
      <link>https://opensourceconnections.com/blog/2016/04/07/generating-deployable-quepid-artifacts-with-containers/</link>
      <pubDate>Thu, 07 Apr 2016 16:45:30 -0400</pubDate>
      <guid>https://opensourceconnections.com/blog/2016/04/07/generating-deployable-quepid-artifacts-with-containers/</guid>
      <description>&lt;p&gt;&lt;em&gt;This is part 1 of a 3 part series on our move to containers as a platform for Quepid.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;As Quepid has matured OSC has gone through an evolution of operational tools to run the platform. Quepid’s &lt;a href=&#34;https://opensourceconnections.com/blog/2015/11/23/quepid-migrates-from-flask-to-rails&#34;&gt;migration to Rails&lt;/a&gt; prompted an exploration of deployment methods for our new stack. Under the Python Flask application we would log in to the appropriate environment’s application server and run a script. It would perform a &lt;code&gt;git pull&lt;/code&gt;, run migrations, and restart the application process. There are deployment tools for Python such as &lt;a href=&#34;http://www.fabfile.org/&#34;&gt;Fabric&lt;/a&gt;, but this workflow worked well for us given the number of hosts and team size. With our additional developers and the switch to Ruby we have &lt;a href=&#34;http://capistranorb.com/&#34;&gt;Capistrano&lt;/a&gt; which like Fabric handles code deployment and execution of remote tasks. What about taking a different tack. Let’s dive into containers, a modular way to encapsulate deployable artifacts.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Exploring Custom TypeCodecs in the Cassandra Java Driver</title>
      <link>https://opensourceconnections.com/blog/2015/12/22/exploring-custom-typecodecs-in-the-cassandra-java-driver/</link>
      <pubDate>Tue, 22 Dec 2015 16:21:57 -0400</pubDate>
      <guid>https://opensourceconnections.com/blog/2015/12/22/exploring-custom-typecodecs-in-the-cassandra-java-driver/</guid>
      <description>&lt;p&gt;&lt;strong&gt;TL;DR check out the source on &lt;a href=&#34;https://github.com/o19s/JodaTimeCodecs&#34;&gt;GitHub&lt;/a&gt;. For more information dig in to the explanation below.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;While working with the C* Java Driver I keep running into error messages when writing to timestamp fields. This issue usually pops up when I bind a value in my insert statement to a Joda DateTime object. The driver accept this variable and throws an exception while serializing it for execution. Here’s some sample code to illustrate the behavior:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Recap of Cassandra Summit 2015</title>
      <link>https://opensourceconnections.com/blog/2015/10/21/recap-cassandra-summit-2015/</link>
      <pubDate>Wed, 21 Oct 2015 15:55:09 -0400</pubDate>
      <guid>https://opensourceconnections.com/blog/2015/10/21/recap-cassandra-summit-2015/</guid>
      <description>&lt;p&gt;This year OpenSource Connections rolled into Cassandra Summit with 4 attendees. Eric Pugh, Matt Overstreet, and John Woodell attended some of the 137 sessions offered. Matt walked away from day 1 as a Certified Cassandra Developer. On day 3 I delivered a talk outlining some of our work with Cassandra and Spark at the US Patent and Trademark Office. This year was packed with attendees, over 6k people were on site with 5k streaming.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Building the world&#39;s smallest Cassandra cluster</title>
      <link>https://opensourceconnections.com/blog/2015/03/30/building-the-worlds-smallest-cassandra-cluster/</link>
      <pubDate>Mon, 30 Mar 2015 14:22:56 -0400</pubDate>
      <guid>https://opensourceconnections.com/blog/2015/03/30/building-the-worlds-smallest-cassandra-cluster/</guid>
      <description>&lt;p&gt;A few weeks ago I received my first Intel Edison in the mail. After a bit of tinkering I was able to bootstrap a small Cassandra cluster on this little SoC. I tweeted a picture showing it up and running with OpsCenter connected in the background.&lt;/p&gt;
&lt;blockquote class=&#34;twitter-tweet&#34;&gt;&lt;p lang=&#34;en&#34; dir=&#34;ltr&#34;&gt;I think I&amp;#39;ve made the world&amp;#39;s smallest Apache &lt;a href=&#34;https://x.com/hashtag/Cassandra?src=hash&amp;amp;ref_src=twsrc%5Etfw&#34;&gt;#Cassandra&lt;/a&gt; cluster with an Intel Edison. @DataStax &lt;a href=&#34;https://x.com/cassandra?ref_src=twsrc%5Etfw&#34;&gt;@cassandra&lt;/a&gt; &lt;a href=&#34;http://t.co/BPjjoY2T2a&#34;&gt;pic.twitter.com/BPjjoY2T2a&lt;/a&gt;&lt;/p&gt;&amp;mdash; Christopher Bradford (@bradfordcp) &lt;a href=&#34;https://x.com/bradfordcp/status/566786202184216576?ref_src=twsrc%5Etfw&#34;&gt;February 15, 2015&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src=&#34;https://platform.x.com/widgets.js&#34; charset=&#34;utf-8&#34;&gt;&lt;/script&gt;


&lt;p&gt;I will ouline how to bootstrap the Intel Edison and install a functioning Cassandra cluster. &lt;em&gt;Note that even though you can run Cassandra on the Edison, that doesn’t necessarily mean you should.&lt;/em&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Going Cross-Origin with Solr</title>
      <link>https://opensourceconnections.com/blog/2015/03/26/going-cross-origin-with-solr/</link>
      <pubDate>Thu, 26 Mar 2015 11:58:42 -0400</pubDate>
      <guid>https://opensourceconnections.com/blog/2015/03/26/going-cross-origin-with-solr/</guid>
      <description>&lt;p&gt;It is becoming more common to connect directly with a Solr cluster from rich client side applications. Performing a search directly against the cluster will require either &lt;a href=&#34;http://en.wikipedia.org/wiki/JSONP&#34;&gt;JSONP&lt;/a&gt; or [Cross-origin Resource Sharing(http://en.wikipedia.org/wiki/Cross-origin_resource_sharing) (CORS). Here we discuss a few methods for connecting with a search resource with CORS.&lt;/p&gt;
&lt;p&gt;Let’s assume we have an angular app running on &lt;code&gt;app.o19s.com&lt;/code&gt; and a Solr cluster available at &lt;code&gt;search.o19s.com&lt;/code&gt;. We attempt to use Angular’s &lt;code&gt;$http&lt;/code&gt; service to perform a query against the &lt;code&gt;http://search.o19s.com/solr/core/select&lt;/code&gt; endpoint. No results are displaying in the application. When we test the Solr URL in another tab the results are displayed. The web inspector displays an XMLHttpRequest error&lt;/p&gt;</description>
    </item>
    <item>
      <title>Solving Cassandra Database Migrations with Trireme</title>
      <link>https://opensourceconnections.com/blog/2015/02/16/solr-cassandra-database-migrations-with-trireme/</link>
      <pubDate>Mon, 16 Feb 2015 10:27:03 -0400</pubDate>
      <guid>https://opensourceconnections.com/blog/2015/02/16/solr-cassandra-database-migrations-with-trireme/</guid>
      <description>&lt;p&gt;Recently we have been working on a project with a distributed team of developers. Each developer had a local &lt;a href=&#34;https://opensourceconnections.com/blog/2015/02/06/a-vagrant-conversation/&#34;&gt;DataStax Enterprise cluster running via Vagrant&lt;/a&gt;. Over time we kept running into problems with various developers’ clusters being out of sync with the latest schema. One early solution involved tearing down and rebuilding the keyspace after every pull. This worked, but lead to delays between building the keyspace, loading data, and having indexed content to work with. This led to problems during deployments as certain changes were looking for columns that no longer existed. Communication was flowing, but there were disjoints in the schema conversation.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Recap of Cassandra Summit 2014 </title>
      <link>https://opensourceconnections.com/blog/2014/09/17/cassandra-summit-2014/</link>
      <pubDate>Wed, 17 Sep 2014 17:00:00 +0000</pubDate>
      <guid>https://opensourceconnections.com/blog/2014/09/17/cassandra-summit-2014/</guid>
      <description>&lt;p&gt;OpenSource Connections was well represented in San Francisco at this years Cassandra Summit 2014. We had Chris Bradford, Eric Pugh, and Matt Overstreet in attendance for the training, sessions, and networking events. John Berryman represented OSC with a presentation discussing CQL 3 and maps to the Cassandra internal data structure.&lt;/p&gt;
&lt;p&gt;The &lt;a href=&#34;http://new.livestream.com/datastax/Cassandra?mkt_tok=3RkMMJWWfF9wsRoiuKXBZKXonjHpfsX66ugsWKCxlMI%2F0ER3fOvrPUfGjI4FTctmI%2BSLDwEYGJlv6SgFSrXMMblswLgIXBY%3D&#34;&gt;Opening Keynote&lt;/a&gt; covered the release of Cassandra 2.1 with a &lt;a href=&#34;https://git-wip-us.apache.org/repos/asf?p=cassandra.git;a=blob_plain;f=CHANGES.txt;hb=refs/tags/cassandra-2.1.0&#34;&gt;wonderful set&lt;/a&gt; of features and fixes. Aaron Morton from The Last Pickle held a talk in the Grand Ballroom outlining specific features and changes (with their associated JIRA numbers) between 2.0 and 2.1. This helped underscore many of the improvements discussed throughout the keynote.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
