{"componentChunkName":"component---src-templates-blog-list-jsx","path":"/blog/8/","result":{"data":{"prismic":{"allFeaturedblogs":{"edges":[{"node":{"featured_blogs_enabled":true,"heading":[{"type":"paragraph","text":"Featured posts","spans":[]}],"featured_blog_1":{"__typename":"PRISMIC_Blog","_linkType":"Link.document","blog_header_image":{"dimensions":{"width":790,"height":395},"alt":null,"copyright":null,"url":"https://images.prismic.io/www-static/6d8d81b1-971a-4313-b033-b4e125cb14a0_MondoDB-blog-header-790x395.PNG?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"Introducing DigitalOcean Managed MongoDB – a fully managed, database as a service for modern apps","spans":[]}],"blog_post_date":"2021-06-29","blog_post_content":[{"type":"paragraph","text":"MongoDB is one of the most popular databases, and it’s ideal for apps that evolve rapidly and need to handle huge volumes of data and traffic. It offers advantages like flexible document schemas, code-native data access, change-friendly design, and easy horizontal scale-out.","spans":[{"start":22,"end":44,"type":"hyperlink","data":{"link_type":"Web","url":"https://db-engines.com/en/ranking","target":"_blank"}}]},{"type":"paragraph","text":"However, building and maintaining MongoDB clusters from the ground up can be a huge undertaking. Developers often complain that they have to spend their valuable time and resources on database management. Well, we’ve been listening and have some great news: accessing and managing MongoDB on DigitalOcean just got a lot simpler!","spans":[]},{"type":"paragraph","text":"We are excited to announce that DigitalOcean Managed MongoDB is now in General Availability. Managed MongoDB is a fully managed, database as a service (DBaaS) offering from DigitalOcean, built in partnership with and certified by MongoDB Inc. It provides you all the technical capabilities that make MongoDB so beloved in the developer community. Together we have ensured that you will get access to all the latest releases of the MongoDB document database as they become available.","spans":[{"start":32,"end":91,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/products/managed-databases-mongodb/"}},{"start":230,"end":241,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.mongodb.com/","target":"_blank"}}]},{"type":"paragraph","text":"Managed MongoDB simplifies the MongoDB administration. Developers of all skill levels, even those who do not have prior experience in databases, can spin up MongoDB clusters in just a few minutes. We handle the provisioning, managing, scaling, updates, backups, and security of your MongoDB clusters, allowing you to offload the complex, time consuming –yet critical – database administration tasks to us. This empowers you to focus on what really matters: building awesome apps.","spans":[]},{"type":"embed","oembed":{"height":113,"width":200,"embed_url":"https://www.youtube.com/watch?v=NvHQSV7jnKA","type":"video","version":"1.0","title":"Create a MongoDB Database on DigitalOcean","author_name":"DigitalOcean","author_url":"https://www.youtube.com/c/Digitalocean","provider_name":"YouTube","provider_url":"https://www.youtube.com/","cache_age":null,"thumbnail_url":"https://i.ytimg.com/vi/NvHQSV7jnKA/hqdefault.jpg","thumbnail_width":480,"thumbnail_height":360,"html":"<iframe width=\"200\" height=\"113\" src=\"https://www.youtube.com/embed/NvHQSV7jnKA?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen></iframe>"}},{"type":"heading2","text":"Benefits of Managed MongoDB","spans":[]},{"type":"paragraph","text":"","spans":[]},{"type":"list-item","text":"Easy set up and maintenance: We create the database clusters for you. Simply choose the cluster configuration (e.g., memory, disk size, number of nodes, etc.), and the data center in which you want to host the database. Follow a few simple steps and your database cluster will be up and running in a matter of minutes. You can spin up clusters using the cloud control panel, CLI, or API.\n\n","spans":[{"start":0,"end":28,"type":"strong"}]},{"type":"list-item","text":"Automatic daily backups with point in time recovery: Data is one of the most important assets of an app, so it’s critical to backup your database. We take backups of your entire clusters automatically on a daily basis, for free. We also provide a point in time recovery for 7 days, that way if things go wrong due to human error, machine error, or some combination of both, you can easily restore the database as it was at any point in the previous 7 days. \n\n","spans":[{"start":0,"end":52,"type":"strong"}]},{"type":"list-item","text":"Automatic updates and access to latest MongoDB releases: You get access to MongoDB 4.4. This is the latest release of MongoDB and comes packed with numerous enhancements like hedged reads, rust, and swift drivers. Since we have developed Managed MongoDB in partnership with MongoDB Inc, you will always get access to new releases as they become available. With Managed MongoDB, the updates happen automatically. Just select a date and time for the updates and we take care of the rest. This makes it easy to stay up to date with MongoDB releases without disrupting your business.\n\n","spans":[{"start":0,"end":56,"type":"strong"},{"start":148,"end":169,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.mongodb.com/new","target":"_blank"}}]},{"type":"list-item","text":"High availability with automated failover: If your database goes down, it can take down the entire app, leading to bad customer experiences. With Managed MongoDB, you can easily minimize the downtime for your database and make it highly available with standby nodes. Standby nodes add redundancy, so if for example the primary node fails, the standby node is immediately promoted to primary and begins serving requests while we provision a replacement standby node in the background.\n\n","spans":[{"start":0,"end":42,"type":"strong"}]},{"type":"list-item","text":"Scale up easily to handle traffic spikes: As your app gains traction and the usage grows, it’s important to have a database that can keep up with the increased demand. With Managed MongoDB, you can easily scale up the size of database nodes when needed.\n\n","spans":[{"start":0,"end":41,"type":"strong"}]},{"type":"list-item","text":"Secure by default: Since data is critical, it also needs to be secure. We encrypt data at rest with LUKS and in transit with SSL. When you create a new cluster, it’s placed in a VPC network by default that provides a more secure connection between resources. You can also restrict access to your nodes to prevent brute-force password and denial-of-service attacks.","spans":[{"start":0,"end":18,"type":"strong"},{"start":178,"end":189,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/docs/networking/vpc/"}}]},{"type":"heading2","text":"The need for Managed Databases","spans":[]},{"type":"paragraph","text":"DigitalOcean’s mission is to simplify cloud computing so developers, startups, and SMBs can spend more time building software that changes the world. While databases are a critical component to any application, building, maintaining, and scaling them can be complex and time consuming. For developers that are building apps for their business, database administration is often not a core focus area. But it’s quite common to find developers that write the code and then also roll up their sleeves to maintain databases. Such users would rather offload the tedious database administration and focus their limited time and energy on building and enhancing their apps. ","spans":[]},{"type":"paragraph","text":"With this in mind, we introduced Managed Databases a couple of years ago and are excited to add Managed MongoDB to our portfolio. With this release, DigitalOcean Managed Databases now supports the following engines:","spans":[{"start":33,"end":50,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/products/managed-databases/"}}]},{"type":"image","url":"https://images.prismic.io/www-static/87745cc1-1c5f-4463-b104-104b7fc30dc7_managed-databases-logos.png?auto=compress,format","alt":null,"copyright":null,"dimensions":{"width":849,"height":104}},{"type":"paragraph","text":"Managed MongoDB launch comes on the heels of DigitalOcean App Platform, a modern, reimagined PaaS (Platform as a Service) that we released a few months ago. App Platform makes it very easy to build, deploy, and scale apps and static sites. You can deploy code by simply pointing to your GitHub and GitLab repos, and App Platform will do all the heavy lifting of managing infrastructure, app runtimes, and dependencies. App Platform, along with Managed Databases, helps fulfill DigitalOcean’s mission by empowering developers, startups, and SMBs to focus more on their apps, and less on the underlying infrastructure and databases.","spans":[{"start":45,"end":70,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/products/app-platform/"}}]},{"type":"heading2","text":"How Managed MongoDB works","spans":[]},{"type":"paragraph","text":"DigitalOcean provides you with various compute options to build your apps like:","spans":[]},{"type":"list-item","text":"Droplets: On-demand, Linux virtual machines suitable for production business applications and personal passion projects.","spans":[{"start":0,"end":8,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/products/droplets/"}}]},{"type":"list-item","text":"DigitalOcean Kubernetes: Managed Kubernetes with automatic scaling, upgrades, and a free control plane.","spans":[{"start":0,"end":23,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/products/kubernetes/"}}]},{"type":"list-item","text":"DigitalOcean App Platform: A fully managed Platform as a Service.","spans":[{"start":0,"end":25,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/products/app-platform/"}}]},{"type":"paragraph","text":"No matter which compute option you choose to build your apps, you can easily add Managed MongoDB to it. In addition to this, Managed MongoDB also integrates with the Node.js 1-Click App from DigitalOcean Marketplace making it a lot easier to build Node.js apps.","spans":[{"start":166,"end":215,"type":"hyperlink","data":{"link_type":"Web","url":"https://marketplace.digitalocean.com/apps/nodejs"}}]},{"type":"heading2","text":"Simple, predictable pricing","spans":[]},{"type":"paragraph","text":"Just like all DigitalOcean products, Managed MongoDB provides simple, predictable pricing that allows you to control costs and prevent any surprise bills. You can spin up a database cluster for just $15/month, or a highly available three-node replica set for $45/month. Click here for more information.","spans":[{"start":270,"end":301,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/pricing/#managed-databases"}}]},{"type":"heading2","text":"Regional availability","spans":[]},{"type":"paragraph","text":"Managed MongoDB is currently available in the following regions:","spans":[]},{"type":"list-item","text":"NYC3 (New York, USA)","spans":[]},{"type":"list-item","text":"FRA1 (Frankfurt, Germany)","spans":[]},{"type":"list-item","text":"AMS3 (Amsterdam, Netherlands)","spans":[]},{"type":"paragraph","text":"We will be making Managed Mongo available in other regions soon. Please check out the release notes for most up to date information on regional availability.","spans":[{"start":86,"end":99,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/docs/release-notes/"}}]},{"type":"heading2","text":"Join us at deploy, DigitalOcean’s virtual user conference","spans":[]},{"type":"paragraph","text":"Today we have deploy, DigitalOcean’s signature user conference, which focuses on celebrating, educating, and connecting awesome builders from all over the world.","spans":[{"start":14,"end":20,"type":"hyperlink","data":{"link_type":"Web","url":"https://deploy.digitalocean.com/home"}}]},{"type":"paragraph","text":"Check out the keynote session from DigitalOcean's CEO, Yancey Spruill, in which he talks about where we're headed as a company and shares some exciting product updates. His keynote will be followed by sessions from community members, engineers, customers, and other experts that are building technologies and businesses powered by the cloud. With live Q&A and an active Discord server, there’s ample opportunity to engage and learn something new. Click here to attend the deploy conference.","spans":[{"start":14,"end":69,"type":"hyperlink","data":{"link_type":"Web","url":"https://deploy.digitalocean.com/agenda/session/552806"}},{"start":347,"end":384,"type":"hyperlink","data":{"link_type":"Web","url":"http://do.co/deploy-discord"}},{"start":461,"end":489,"type":"hyperlink","data":{"link_type":"Web","url":"http://do.co/deploy"}}]},{"type":"paragraph","text":"We are also launching a hackathon for DigitalOcean Managed MongoDB. Learn how you can participate, submit an app and get a t-shirt.","spans":[{"start":24,"end":66,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/mongodb-hackathon"}}]},{"type":"paragraph","text":"We hope you will give Managed MongoDB a try. Here are some sample datasets and sample apps that you can use to kick the tires. Check out the docs and let us know what you think!","spans":[{"start":22,"end":43,"type":"hyperlink","data":{"link_type":"Web","url":"https://cloud.digitalocean.com/databases/new?engine=mongodb"}},{"start":59,"end":90,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/do-community/mongodb-resources","target":"_blank"}},{"start":141,"end":145,"type":"hyperlink","data":{"link_type":"Web","url":"https://docs.digitalocean.com/products/databases/mongodb/"}}]},{"type":"paragraph","text":"If you’d like to have a conversation about using DigitalOcean and Managed MongoDB in your business, please feel free to contact our sales team.","spans":[{"start":120,"end":142,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/company/contact/sales/"}}]},{"type":"paragraph","text":"Happy coding!","spans":[]},{"type":"paragraph","text":"André Bearfield","spans":[]},{"type":"paragraph","text":"Director of Product Management","spans":[]}],"tags":[{"tag1":{"__typename":"PRISMIC_Tag","tag":"Product Updates","_linkType":"Link.document","_meta":{"uid":"product-updates"}}}],"author":{"__typename":"PRISMIC_Author","author_name":"André Bearfield","author_image":{"dimensions":{"width":553,"height":547},"alt":"André Bearfield","copyright":null,"url":"https://images.prismic.io/www-static/fdc7c85186f0a850b04083e1d4306bd1c19772e8_andre-bearfield.png?auto=compress,format"},"_meta":{"uid":"andre-bearfield"}},"_meta":{"uid":"introducing-digitalocean-managed-mongodb"}},"featured_blog_2":{"__typename":"PRISMIC_Blog","_linkType":"Link.document","blog_header_image":{"dimensions":{"width":790,"height":400},"alt":"Droplet Console","copyright":null,"url":"https://images.prismic.io/www-static/710499ae-78cc-4179-afc1-15793637b200_DODX3727-790x400-logo-2.jpg?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"Securely connect to Droplets with SSH key pairs using a new Droplet Console","spans":[]}],"blog_post_date":"2021-08-10","blog_post_content":[{"type":"paragraph","text":"The famous author Ken Blanchard once said, “Feedback is the breakfast of champions.\" This is something we truly believe at DigitalOcean, and we always strive to enhance our products based on customer feedback.","spans":[]},{"type":"paragraph","text":"With this goal in mind, we are excited to introduce a new Droplet Console that will make it much easier to connect to your Droplets securely. The new Droplet Console provides one-click SSH access to your Droplets through a native-like SSH/Terminal experience. It also eliminates the need for a password or manual configuration of SSH keys. Starting today, we’re pleased to announce that the new Droplet Console is now available to all Droplet users.","spans":[]},{"type":"heading2","text":"Why you should be using Secure Shell (SSH) ","spans":[]},{"type":"paragraph","text":"Password-based security is notoriously insecure due to password fatigue and the overuse of passwords such as ‘123456’. Secure Shell or SSH is a network communication protocol that solves this by using passwordless solutions for encryption, enabling two computers to communicate and securely share data. At a high level, SSH works by creating cryptographic key pairs consisting of a public and private key, which are computer generated and stored separately to ensure their security. ","spans":[{"start":80,"end":117,"type":"hyperlink","data":{"link_type":"Web","url":"https://cybernews.com/best-password-managers/most-common-passwords/"}}]},{"type":"paragraph","text":"SSH has become the default encryption protocol for many industries, but it was difficult to use SSH keys with DigitalOcean’s current Recovery (VNC) console, which is why we developed our new Droplet Console. The new Droplet Console is backed by an agent that security supervises the key pair, while also providing one-click SSH access to our users. You can see the full list of features below.","spans":[]},{"type":"heading2","text":"The new Droplet Console: More time saving, less time wasting ","spans":[]},{"type":"paragraph","text":"The new Droplet Console is for everyone who is looking to build fast, secure apps and avoid hassles with SSH access & usability issues.","spans":[]},{"type":"paragraph","text":"In addition to easier SSH access, the new Droplet Console comes with:","spans":[]},{"type":"list-item","text":"Copy/paste text: Instead of typing lengthy key pairs and text manually, you can use copy/paste to save time. ","spans":[{"start":0,"end":17,"type":"strong"}]},{"type":"list-item","text":"Multi-color support: Multi-color support makes the console more useful and intuitive, and breaks the conventional standard appearance which is black text on a white background. ","spans":[{"start":0,"end":41,"type":"strong"}]},{"type":"list-item","text":"Multi-language support: DigitalOcean’s new Droplet Console supports multiple languages, meaning you can now type and view any content in any language that is supported by UTF-8","spans":[{"start":0,"end":24,"type":"strong"}]},{"type":"list-item","text":"OS/images supported: Linux distributions (Ubuntu(16.04 - 20.04), Fedora (32 & 33), Debian (9), CentOS (7.6 & 8.3), CentOS 8 Stream, Rocky Linux and Marketplace images.","spans":[{"start":0,"end":20,"type":"strong"},{"start":148,"end":159,"type":"hyperlink","data":{"link_type":"Web","url":"https://marketplace.digitalocean.com/"}}]},{"type":"paragraph","text":"The new Droplet Console is available by default on any new Droplets you spin up. You can also enable it manually on older Droplets. Click here to learn more!","spans":[{"start":132,"end":157,"type":"hyperlink","data":{"link_type":"Web","url":"https://docs.digitalocean.com/products/droplets/how-to/connect-with-console/"}}]},{"type":"paragraph","text":"Check out this short walkthrough video that shows the new Droplet Console in action: ","spans":[]},{"type":"embed","oembed":{"type":"video","embed_url":"https://www.youtube.com/watch?v=Qt7QihVuxiE","title":"Access Your Droplet Terminal Through the Web Console","provider_name":"YouTube","thumbnail_url":"https://i.ytimg.com/vi/Qt7QihVuxiE/hqdefault.jpg","provider_url":"https://www.youtube.com/","author_name":"DigitalOcean","author_url":"https://www.youtube.com/c/Digitalocean","height":113,"width":200,"version":"1.0","thumbnail_height":360,"thumbnail_width":480,"html":"<iframe width=\"200\" height=\"113\" src=\"https://www.youtube.com/embed/Qt7QihVuxiE?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen></iframe>"}},{"type":"paragraph","text":"We hope you’re excited about the new Droplet Console. You’re welcome to spin some Droplets up right now, and try out the new Droplet Console – why wait?","spans":[{"start":72,"end":103,"type":"hyperlink","data":{"link_type":"Web","url":"https://cloud.digitalocean.com/droplets/new"}}]},{"type":"paragraph","text":"Happy coding!","spans":[]},{"type":"paragraph","text":"Harsh Banwait, Senior Product Manager","spans":[]}],"tags":[{"tag1":{"__typename":"PRISMIC_Tag","tag":"Product Updates","_linkType":"Link.document","_meta":{"uid":"product-updates"}}}],"author":{"__typename":"PRISMIC_Author","author_name":"Harsh Banwait","author_image":{"dimensions":{"width":600,"height":399},"alt":null,"copyright":null,"url":"https://images.prismic.io/www-static/e83ff690-b20c-4d88-a2b6-57e562558cd6_download.png?auto=compress,format"},"_meta":{"uid":"harsh-banwait"}},"_meta":{"uid":"new-droplet-console-ssh-support"}},"featured_blog_3":{"__typename":"PRISMIC_Blog","_linkType":"Link.document","blog_header_image":{"dimensions":{"width":790,"height":400},"alt":null,"copyright":null,"url":"https://images.prismic.io/www-static/588e28d3-d41e-480b-937b-8c3b19201f6e_DODX3568-790x400-Blog.jpg?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"How to scale your SaaS product without breaking the bank","spans":[]}],"blog_post_date":"2021-06-22","blog_post_content":[{"type":"paragraph","text":"These days, if you are in the business of software, chances are you are delivering or plan to deliver your services using a Software-as-a-Service (SaaS) model. A combination of internet-based delivery, subscription-based pricing, and low-friction product experiences have made SaaS solutions valuable tools for their users, and an excellent vehicle for software builders looking to distribute their products.","spans":[]},{"type":"paragraph","text":"These factors have made SaaS solutions ubiquitous; SaaS is the largest segment in the public cloud market, and is used to provide functionality ranging from personal finance apps for consumers, to productivity software for businesses, and even tools and services for software developers themselves to compose their applications and simplify their workflows. It is also not uncommon to find micro-SaaS applications being built for specific industries such as retail, job functions such as accounting or marketing, or tasks such as event management. ","spans":[]},{"type":"paragraph","text":"The best thing about this SaaS wave has been that it has allowed a new generation of software builders to build and monetize applications and participate in the digital economy. Previously, you had to be a big company with lots of resources, name recognition and distribution networks to successfully sell software products. Now, irrespective of whether you are a single person working on a passion project, a small team of developers in a startup, or a small and medium-sized business (SMB), the SaaS model enables you to express your ideas in the form of software and deliver them to customers anywhere in the world.","spans":[]},{"type":"heading2","text":"The unique challenges of building SaaS solutions","spans":[]},{"type":"paragraph","text":"","spans":[]},{"type":"paragraph","text":"Despite the opportunities that come with the widespread adoption of SaaS products, software builders still have to answer key questions in their journey to building successful SaaS products. Understanding what customers to target, features to prioritize, how to price your product, and how to acquire customers are all critical questions to figure out while you are also doing the important job of actually building and operating the product. ","spans":[]},{"type":"paragraph","text":"Writing the code, testing, deployment, monitoring the usage in production, and ensuring that your apps are able to handle the additional demand when customer base and usage grows are all essential and time-consuming tasks.","spans":[]},{"type":"paragraph","text":"Additionally, being able to test multiple ideas, pivot, and double down on the ideas that actually work is critical in early stages of SaaS development. Once growth comes, it is equally important to scale up without compromising on performance or reliability. Needless to say, all of this needs to be economically viable as well, since not everyone has the resources of large SaaS providers like Salesforce or Adobe.","spans":[]},{"type":"heading2","text":"Cloud Computing enables builders but also poses challenges","spans":[]},{"type":"paragraph","text":"","spans":[]},{"type":"paragraph","text":"Fortunately, for the act of building and operating your apps, cloud computing can help take some load off your shoulders. Unless you have the scale and resources of Facebook, chances are you are not going to set up your own data centers to host the computing infrastructure that powers your SaaS company. Public cloud infrastructure providers can bring great value to SaaS builders by providing on-demand computing services with usage-based pricing. However, just like how the legacy software companies weren't built for the SaaS model, the early (and big) cloud computing services were not optimized for the unique needs of small SaaS building teams. ","spans":[]},{"type":"paragraph","text":"Smaller SaaS teams face challenges with large cloud computing providers, including:","spans":[]},{"type":"heading4","text":"Too many technology options","spans":[]},{"type":"paragraph","text":"There are just too many options for tech stacks on which to build your SaaS - programming languages, application development frameworks, libraries, runtime environments, architectural patterns, and deployment models - and the list is growing by the day.","spans":[]},{"type":"heading4","text":"Complexity of cloud computing services","spans":[]},{"type":"paragraph","text":"Even when you have decided on a technology stack, there is a lot of cloud vendor-specific terminology you need to learn and heavy lifting you need to do to build on the cloud, not all of which contributes to making your SaaS applications successful.","spans":[]},{"type":"heading4","text":"Unpredictable costs","spans":[]},{"type":"paragraph","text":"The experimentation necessary in early stages of SaaS development, as well as the scaling of applications required during the growth phase, call for affordable and predictable pricing from your cloud provider. The last thing SaaS teams want is surprising and indecipherable bills from your cloud provider. Unfortunately, smaller businesses often experience unpredictable costs with cloud providers who are busy serving only the large enterprises.","spans":[]},{"type":"heading2","text":"DigitalOcean provides a simple, cost effective solution for SaaS builders","spans":[]},{"type":"paragraph","text":"Fortunately, at DigitalOcean we have a laser focus on small software development teams, who are trying to build the next generation of applications. Today, DigitalOcean customers are already building SaaS applications which serve all kinds of customers.","spans":[{"start":191,"end":217,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/solutions/saas/"}}]},{"type":"paragraph","text":"We believe SaaS builders should focus on building apps that power their business, and not spend their valuable time on managing infrastructure. That is exactly what we have been able to enable through our intuitive products that are built for scale and reliability.","spans":[{"start":205,"end":223,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/products/"}}]},{"type":"list-item","text":"Vidazoo is an advertising technology company specializing in video streaming and serving. It serves video ads to thousands of websites and handles close to 10 billion requests per day. \n\n“We are as much a data company as an adtech company. Our business relies on speedy and accurate data processing at massive scale. DigitalOcean provides us the perfect set of tools to operate our SaaS business profitably, while not making us feel the need to become full time system administrators. We plan to move a lot of our apps to DigitalOcean App Platform and other fully managed products.” - Roman Svichar, CTO of Vidazoo","spans":[{"start":0,"end":7,"type":"hyperlink","data":{"link_type":"Web","url":"https://vidazoo.com/"}},{"start":187,"end":583,"type":"em"}]},{"type":"paragraph","text":"We believe in meeting customers where they are. If they already have an understanding of cloud infrastructure technologies, they should be able to leverage that knowledge and get started with our products without any further ramp up.","spans":[]},{"type":"list-item","text":"Whatfix is an enterprise SaaS provider that offers a digital adoption platform to businesses. The company helps enterprises gain the full value of their investments in enterprise applications by providing real-time, interactive, and contextual guidance to users of those applications. \n\n“What we really love about the DigitalOcean platform is the ease of use. We feel like we know infrastructure and can handle most of the configuration and management. What we needed from a cloud was not bells and whistles but efficiency and reliability. DigitalOcean provides us a platform to build our apps and then gets out of the way. Just how we like it.” - Achyuth Krishna, Director of Engineering of Whatfix","spans":[{"start":0,"end":7,"type":"hyperlink","data":{"link_type":"Web","url":"https://whatfix.com/blog/driving-the-future-now-were-excited-to-announce-our-90-million-series-d-funding/"}},{"start":287,"end":648,"type":"em"}]},{"type":"paragraph","text":"We understand that scaling while maintaining reliability of applications and profitability of business is important, so we provide robust solutions which minimize downtime.","spans":[]},{"type":"list-item","text":"Centra is a SaaS-based e-commerce platform for global direct-to-consumer and wholesale e-commerce brands. Centra provides a powerful e-commerce backend that lets brands build pixel-perfect, custom designed, online flagship stores. \n\n“How do we enable our customers to create differentiated online experiences? How do we ensure their e-commerce apps stay up and running at all times? How do we scale on-demand when traffic grows or new customers come in? These are the questions that we ask ourselves every day. Thankfully, we have a partner in DigitalOcean that provides just the platform to answer those questions enabling us to guarantee 99.9% uptime for our clients.” - Martin Jensen, CEO of Centra","spans":[{"start":0,"end":6,"type":"hyperlink","data":{"link_type":"Web","url":"https://centra.com/"}},{"start":233,"end":673,"type":"em"}]},{"type":"paragraph","text":"These are just a few examples of SaaS businesses finding success on DigitalOcean. We are constantly amazed by the creativity and innovation that software builders are utilizing our platform for. If you are interested in learning more about product updates, technical deep-dives and best practices for building SaaS products and businesses, please contact us to learn how we can help you get started. ","spans":[{"start":340,"end":357,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/migrate/?utmmedium=blog","target":"_blank"}}]},{"type":"paragraph","text":"Come build with DigitalOcean!","spans":[]},{"type":"paragraph","text":"Looking to migrate your SaaS to DigitalOcean? Leverage free infrastructure credits, robust training, and technical support to ensure a worry-free migration.","spans":[{"start":0,"end":156,"type":"strong"},{"start":0,"end":156,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/migrate/?utmmedium=blog","target":"_blank"}}]},{"type":"paragraph","text":"","spans":[]},{"type":"paragraph","text":"Raman Sharma","spans":[]},{"type":"paragraph","text":"Vice President, Product & Programs Marketing","spans":[]}],"tags":[{"tag1":{"__typename":"PRISMIC_Tag","tag":"Developer Relations","_linkType":"Link.document","_meta":{"uid":"developer-relations"}}}],"author":{"__typename":"PRISMIC_Author","author_name":"Raman Sharma","author_image":{"dimensions":{"width":512,"height":512},"alt":null,"copyright":null,"url":"https://images.prismic.io/www-static/497b4b14-d192-493a-8b66-7ae176ba99f3_raman.png?auto=compress,format"},"_meta":{"uid":"raman-sharma"}},"_meta":{"uid":"how-to-scale-your-saas-product-without-breaking-the-bank"}}}}]}}},"pageContext":{"limit":12,"skip":84,"numPages":33,"currentPage":8,"data":[{"node":{"author":{"_linkType":"Link.document","author_name":"Yancey Spruill","author_image":{"dimensions":{"width":6016,"height":4016},"alt":null,"copyright":null,"url":"https://images.prismic.io/www-static/5108518f-e9f6-4361-931e-64c8a848160d_YanceySpruill.jpg?auto=compress,format"},"_meta":{"uid":"yancey_spruill"}},"blog_header_image":null,"blog_headline":[{"type":"heading1","text":"An Update on the DigitalOcean Business","spans":[]}],"blog_post_content":[{"type":"paragraph","text":"It’s been a little more than six months since I joined DigitalOcean as CEO and each day I find myself even more excited about the opportunity ahead of us. Today, I’m pleased to share some good news for everyone in our community.","spans":[]},{"type":"paragraph","text":"I’m happy to announce that we’ve closed on a $300 million bank debt financing, with a consortium of blue-chip commercial lenders, which increases the capital available for us to invest in building a business that supports the needs of developers, entrepreneurs, and small businesses around the globe. With this capital, which includes $100 million in funding from new lenders, we have fully funded our business to profitability and to reach our aspiration of more than $1 billion in revenue within the next five years.","spans":[]},{"type":"paragraph","text":"For our team, this is huge news, but for our community we believe it’s even bigger. When DigitalOcean was first founded, we focused on creating an offering specifically tailored to the needs of an underserved segment of the market – the developer. Over time, as our offerings have expanded, we have broadened our focus to include entrepreneurs and small and mid-sized businesses (SMB), who, like developers, need simple solutions to help them get lift-off on their ideas.","spans":[]},{"type":"paragraph","text":"Today, we are proud to support a community that is more than four million developers strong and an active customer base of more than 500,000 – more than half of whom are businesses. We’ve also been able to establish a strong presence globally, with nearly two-thirds of our customers coming from outside of the US.","spans":[]},{"type":"paragraph","text":"Since joining, I’ve met with many, many customers and partners. In every meeting I’m blown away by the amazing businesses and projects they’ve built and are building on top of DigitalOcean. I’m also struck by the commonalities these customers share. The need for the simplicity of our products, cost-transparency, unwavering support to help them, and investment in their learning through tutorials and events – and of course, the love for serving our customers – remain core to us.","spans":[]},{"type":"paragraph","text":"I’m so proud at how many of our customers express how they’ve found their partner and “home” here at DigitalOcean.","spans":[]},{"type":"paragraph","text":"As we move onto our next phase of growth, I promise that we will continue to scale our business in a way that not only supports these individuals and teams, but also helps them thrive. For our own team we are focused on continuing to invest and enhance our capabilities at DO to better serve our customers.","spans":[]},{"type":"paragraph","text":"I extend the promise to each existing and future customer that we are focused on growing faster so you never have to think about the complexities of scaling your infrastructure. We are growing smarter so we can continue to deliver the features, education, and support you need at an affordable price point. And we are growing together so we can further unite our community and help even more developers, founders, and teams tackle tough problems and capitalize on their ideas to build software that changes the world.","spans":[]},{"type":"paragraph","text":"We look forward to the journey ahead, and I want to take this opportunity to thank each and every customer and partner who has entrusted us to help you build your business and realize your dreams.","spans":[]}],"blog_post_date":"2020-02-20","tags":[],"_meta":{"uid":"an-update-on-the-digitalocean-business"}}},{"node":{"author":{"_linkType":"Link.document","author_name":"John Gannon","author_image":{"dimensions":{"width":188,"height":188},"alt":"John Gannon","copyright":null,"url":"https://images.prismic.io/www-static/c168397537fa6de301e8f96c1d3aa74bdd6b8e4b_john_gannon-02f76ff8.png?auto=compress,format"},"_meta":{"uid":"john_gannon"}},"blog_header_image":{"dimensions":{"width":784,"height":418},"alt":"user-interview-header-img","copyright":null,"url":"https://images.prismic.io/www-static/00442f8c-7ece-446b-be7f-f20c650670c4_conduct-user-interviews-1.png?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"How to conduct user interviews","spans":[]}],"blog_post_content":[{"type":"paragraph","text":"As product designers and product managers, we spend a lot of time thinking about developers’ needs. We look at the data and analytics on how they’re using the products we build.","spans":[{"start":66,"end":74,"type":"em"}]},{"type":"paragraph","text":"But unless we get out of the building, we’ll never get the full picture of how and why developers use our products.","spans":[{"start":14,"end":37,"type":"hyperlink","data":{"link_type":"Web","url":"https://steveblank.com/2009/03/20/supermac-war-story-2-facts-exist-outside-the-building-opinions-reside-within-%e2%80%93-so-get-the-hell-outside-the-building/"}}]},{"type":"paragraph","text":"Our product and design teams speak with developers every single week. But with DigitalOcean’s rapid growth over the last few years, we realized we need to ensure that the whole company – not only product teams – had a consistent view of developers’ needs and their Jobs to be Done. An analytics console or SQL queries weren't enough: we needed to get in front of developers, face to face.","spans":[{"start":265,"end":280,"type":"hyperlink","data":{"link_type":"Web","url":"https://hbr.org/2016/09/know-your-customers-jobs-to-be-done"}}]},{"type":"paragraph","text":"So, in 2018, the Product Management, Product Design, and Customer Success teams kicked off a formal research effort called the Developer Landscape project to reach this understanding. The goal was twofold:","spans":[{"start":127,"end":154,"type":"strong"}]},{"type":"o-list-item","text":"Deepen our understanding of the needs and “Jobs to be Done” of the developers and teams that use our products, and;","spans":[]},{"type":"o-list-item","text":"Analyze and synthesize what we learn, and communicate that understanding to the rest of the company.","spans":[]},{"type":"paragraph","text":"By accomplishing these two things, we hoped we’d be in a great position in the coming years to give developers products and solutions that help them make their own products and solutions even better.","spans":[]},{"type":"paragraph","text":"Today, we want to share one of the processes we developed as part of the Developer Landscape project. It’s the playbook for how we found users to interview for the project – and how we ran those interviews.","spans":[{"start":178,"end":181,"type":"em"}]},{"type":"heading2","text":"How to find users to interview","spans":[]},{"type":"paragraph","text":"There’s a multibillion-dollar market research industry loaded with for-fee tools, services, and consultancies. But if you’re on a startup budget, don’t worry. There are lots of ways to recruit users for interviews – for little or no cost. Here are a few examples:","spans":[]},{"type":"list-item","text":"People who are conference speakers and panelists are often very interested in connecting with others in the industry (and they often like to talk!). So why not reach out with a nice, personalized email and see if they’ll talk to you?","spans":[{"start":229,"end":232,"type":"em"}]},{"type":"list-item","text":"Press releases from companies in your space (including competitors) can also be a place to source names of people who might be open to becoming research subjects. If your competitor quotes a VP of Engineering in a press release, and you hypothesize that a VP of Engineering is a potential buyer of your product, this person could be a great interview subject.","spans":[]},{"type":"list-item","text":"Reaching out (appropriately) via social media is always a solid option.","spans":[]},{"type":"list-item","text":"You can set up a dedicated page on your site for potential participants to opt in and sign up, just like our Research at DigitalOcean page.","spans":[{"start":105,"end":138,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/research/"}}]},{"type":"paragraph","text":"If your audience is very broad – maybe your product is a social media app or a photo sharing service – and you have a modest research budget available, then tools like UserTesting.com or Lookback.io are easy ways to find participants. Ethn.io is another useful tool for targeting actual site visitors.","spans":[{"start":168,"end":183,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.usertesting.com/"}},{"start":187,"end":198,"type":"hyperlink","data":{"link_type":"Web","url":"https://lookback.io/"}},{"start":235,"end":242,"type":"hyperlink","data":{"link_type":"Web","url":"https://ethn.io/"}}]},{"type":"paragraph","text":"If you’re targeting a hard-to-reach user base – or you’re looking to rapidly ramp up the volume of user interviews you’re doing – recruitment services like respondent.io might be a good choice. We used this service because we needed to conduct a large number of interviews in a short period of time. We found that it worked well when targeting a specialized international audience (like technical-minded software engineers interested in IoT), but not if screening by specific job titles or roles. If you’re mining your customer database, your CRM or LinkedIn might be the best way to find these folks.","spans":[{"start":156,"end":169,"type":"hyperlink","data":{"link_type":"Web","url":"http://respondent.io/"}}]},{"type":"paragraph","text":"What worked best for us? Personal connections and connections of our colleagues ended up making up the bulk of our user interviews. The takeaway is that individual tools and methods are only one part of a larger strategy for recruiting users. Even if you have a research budget, you should still ping friends and colleagues for help to broaden your network of participants.","spans":[]},{"type":"paragraph","text":"No matter how you approach recruiting, you’ll need to screen participants if you haven’t prequalified them. Here are some good tips for writing screeners so you can avoid spending time interviewing people who aren’t really your users.","spans":[{"start":108,"end":153,"type":"hyperlink","data":{"link_type":"Web","url":"https://uxmastery.com/how-to-write-screeners-for-better-ux-research-results/"}}]},{"type":"paragraph","text":"Once you source users, you then need to get prospects to actually agree to your request.","spans":[]},{"type":"paragraph","text":"There’s no one way to do this, but we kept these in mind when writing emails:","spans":[]},{"type":"list-item","text":"Make them feel special! Point out that they’re in a select group. (“You were selected from a list of our top customers.”) Or personalize your outreach. (“Hey, I saw that we went to the same university.”)","spans":[]},{"type":"list-item","text":"Use simple, accessible language and short sentences. Make it easy for them to say “Yes.” This can be as simple as asking the user to reply to your message, or including a link to a scheduling service like Calendly.","spans":[{"start":205,"end":213,"type":"hyperlink","data":{"link_type":"Web","url":"https://calendly.com/"}}]},{"type":"list-item","text":"They’re doing you a solid, so acknowledge that fact. You might also offer them a “thank you” after the interview in the form of cash or a gift. We offer DigitalOcean credits or gift cards – the longer the session, the higher the value.","spans":[]},{"type":"paragraph","text":"If you’re not getting the participants you need, try increasing the types and/or amounts of your incentives to better entice users.","spans":[]},{"type":"heading2","text":"How to prepare for interviews","spans":[]},{"type":"paragraph","text":"You'll have limited time with each user, so careful preparation is essential.","spans":[]},{"type":"paragraph","text":"Before each interview, we made sure the user had everything they needed to connect with us on the big day. We issued a lookback.io link via Google Calendar with a reminder configured. Lookback gave us the ability to record the interview, and let our teammates observe and comment in real time.","spans":[{"start":119,"end":130,"type":"hyperlink","data":{"link_type":"Web","url":"https://lookback.io/"}}]},{"type":"paragraph","text":"At the beginning of the project, we also gave our team access to a short discussion guide we prepared. The guide was stored as a Google Doc, allowing the team to make a copy of the file for each interview and easily add notes.","spans":[]},{"type":"paragraph","text":"Here’s a snippet from our discussion guide:","spans":[]},{"type":"preformatted","text":"Intro  \n* Thanks for joining the call\n* Intros\n* Purpose of call – to understand tools/solutions/processes you team is using so that we can better serve our customers\n* Reminder recording – internal purposes only, not to be shared\n* Reminder DO credit/incentive after filling out the Google form questionnaire\n\nBackground & Current Infra  \n* Company & Role: Tell me about your company and your role. What do you do? Who are your customers?\n* Skill: How did you get to where you are today?\n* How would you describe your current infrastructure? (Scope/State/Scale)\n","spans":[]},{"type":"heading2","text":"How to conduct interviews","spans":[]},{"type":"paragraph","text":"Beginning the call informally in nature can help establish a level of comfort with the user. And if there are remote colleagues sitting in to listen, be sure they remain in a listen-only state to avoid overcrowding your subject. When an interviewee is comfortable, they are far more likely to answer questions about their current challenges with their role, team, and company – openly and honestly. This is what that process looked like for us:\n* We started with warmup questions to help build a rapport and put the users at ease with the process. * We avoided leading questions, and instead focused on open-ended questions to solicit deeper insights than pointed questions would. * We didn’t follow the order of questions verbatim. If the participant started deep diving in a specific area, we went along with them. In some cases, we found that certain questions might not be applicable to an individual. In that case, we skipped the question and moved on.","spans":[]},{"type":"paragraph","text":"At every stage, we were careful to ask questions to get the answers we needed.","spans":[]},{"type":"image","url":"https://images.prismic.io/www-static/dcd0275b-00f3-4f2e-8e55-b6395ffdb7d8_conduct-user-interviews-2.jpg?auto=compress,format","alt":"user-interview-img-2","copyright":null,"dimensions":{"width":784,"height":418}},{"type":"heading3","text":"Who are they?","spans":[]},{"type":"paragraph","text":"Again, we started with easy, open-ended questions. We asked them to tell us a little bit about their company and their role. We asked how they ended up in this job at this company. And we asked them to tell us about their users and customers.","spans":[]},{"type":"heading3","text":"What’s their day to day like?","spans":[]},{"type":"paragraph","text":"We wanted to understand what jobs users are typically trying to do, and how they get those jobs done.","spans":[]},{"type":"list-item","text":"What’s your process for getting code from development to production?","spans":[]},{"type":"list-item","text":"What tools or services do you use to do that?","spans":[]},{"type":"list-item","text":"How do you feel about those tools, services, and processes?","spans":[]},{"type":"list-item","text":"Why did you pick those tools and services in the first place?","spans":[]},{"type":"list-item","text":"What was that process like?","spans":[]},{"type":"heading3","text":"What do they do when the going gets tough?","spans":[]},{"type":"paragraph","text":"You can learn a lot about a user by honing in on a difficult situation they’ve faced. By asking them to drill into a specific challenge they’ve recently faced, you can follow up:","spans":[]},{"type":"list-item","text":"Where do you look for solutions?","spans":[]},{"type":"list-item","text":"Whom do you ask for help?","spans":[]},{"type":"list-item","text":"Would you have preferred to select a different solution were it not for some other constraints?","spans":[]},{"type":"list-item","text":"What were you nervous or anxious about as you were selecting or implementing a solution?","spans":[]},{"type":"list-item","text":"How did you feel afterward? How do you currently feel about how things played out?","spans":[]},{"type":"list-item","text":"Are there more incremental improvements you plan to make? Why?","spans":[]},{"type":"image","url":"https://images.prismic.io/www-static/ce6f8a74-bae6-40c4-976b-2143433427cc_conduct-user-interviews-3.jpg?auto=compress,format","alt":"user-interview-img-3","copyright":null,"dimensions":{"width":784,"height":418}},{"type":"heading3","text":"What does the world look like when things are going great?","spans":[]},{"type":"paragraph","text":"We learned a lot by asking users to tell us about a tool, solution, or process that worked really well for them. Knowing what excites and makes them happy is important when trying to figure out how to build a product they’ll love. To dive deeper into these happier scenarios, you can use some of the questions from the previous section as well.","spans":[]},{"type":"heading3","text":"Why? (Why? Why?)","spans":[]},{"type":"paragraph","text":"Ask \"Why?\" as a followup question – frequently.","spans":[]},{"type":"list-item","text":"“Why is that important to you?”","spans":[]},{"type":"list-item","text":"“Can you tell me why you think that?”","spans":[]},{"type":"list-item","text":"“Just so I understand, why do you feel this way?”","spans":[]},{"type":"paragraph","text":"Asking \"Why?\" is a great way to demonstrate empathy. And it’s a great opportunity to dig deeper and gain insight into how your ideal user thinks about problems and solutions.","spans":[]},{"type":"paragraph","text":"Close the interview by giving a user a floor for aspiration\nAsk what their dream process or solution would look like if money and resources were no problem.","spans":[]},{"type":"paragraph","text":"And, most importantly, ask if there’s anything else you should know.","spans":[{"start":23,"end":68,"type":"strong"}]},{"type":"paragraph","text":"This is a great final question because it lets the customer share exactly what is on their mind. Maybe there’s something they wished you asked them, or something else they want to share. Either way, you might be surprised by what you learn when you cap off the interview with this open-ended question.","spans":[]},{"type":"heading2","text":"After interviewing","spans":[]},{"type":"paragraph","text":"Send the participant a thank-you followup as soon as possible after the interview, and give them instructions on accessing the incentive you promised. If there was anything you wanted to dive deeper on from the interview, this is a great time to ask.","spans":[]},{"type":"paragraph","text":"We sent a short survey with simple followup questions to each interviewee, along with a note letting them know we’d send their incentive once they completed the survey (which we informed them about prior to the interview).","spans":[]},{"type":"paragraph","text":"Next, share the raw notes from your interview with your team. Don’t worry if they are messy! You might even want to give a tl;dr version in your daily standup.","spans":[]},{"type":"heading2","text":"How to analyze, synthesize, and distribute interview results","spans":[]},{"type":"paragraph","text":"If you’ve run a good user interview process, you’ve completed several interviews, and have notes and recordings from each. Now you need to identify common themes throughout your interviews and synthesize the data into actionable conclusions for your team.","spans":[]},{"type":"paragraph","text":"The synthesis method you choose varies by the type of user research you're running. For instance, if you're running a usability test, a list of observed usability issues and pain points prioritized by severity and frequency will be more helpful and actionable to you than a word cloud.","spans":[]},{"type":"paragraph","text":"To get to the next level, present the insights (along with the customer quotes that contributed to them) in your team or company all-hands meeting. And include those insights in the onboarding materials for new hires. In many cases, it’s not hard to convert the customer’s journey into a single slide that’s easy to understand for both new and tenured team members.","spans":[]},{"type":"heading2","text":"Go forth and research!","spans":[]},{"type":"paragraph","text":"We hope this helps you start your own user research project – or provides a few tools and suggestions you can apply to existing projects.","spans":[]},{"type":"paragraph","text":"If you have questions or would like to share how you’re incorporating user interviews into your product development process, please leave a comment below. We’d love to hear about your user research needs and will try to answer any followup questions you might have.","spans":[]}],"blog_post_date":"2020-01-31","tags":[{"tag1":{"tag":"Design","_linkType":"Link.document","_meta":{"uid":"design"}}}],"_meta":{"uid":"how-to-conduct-user-interviews"}}},{"node":{"author":{"_linkType":"Link.document","author_name":"Tyler Healy","author_image":{"dimensions":{"width":1961,"height":1961},"alt":"Tyler Healy","copyright":null,"url":"https://images.prismic.io/www-static/21e57dd9-d192-4b6c-a9c9-f38e1c5e10c5_tyler-healy.jpeg?auto=compress,format"},"_meta":{"uid":"tyler_healy"}},"blog_header_image":null,"blog_headline":[{"type":"heading1","text":"An Update about Intel’s Recent CVE Announcement","spans":[]}],"blog_post_content":[{"type":"paragraph","text":"UPDATE (3/10/2020):","spans":[{"start":0,"end":19,"type":"strong"}]},{"type":"paragraph","text":"We’re excited to update you that we have finished deploying the mitigations across our fleet for the two Processors Data Leakage security vulnerabilities.","spans":[]},{"type":"paragraph","text":"As a reminder, there is no action required from users to protect their Droplets from these two issues.","spans":[]},{"type":"paragraph","text":"We appreciate your patience and understanding throughout this process.","spans":[]},{"type":"paragraph","text":"UPDATE (2/28/2020):","spans":[{"start":0,"end":19,"type":"strong"}]},{"type":"paragraph","text":"Today, we’re happy to share that we have started deploying the final mitigations across our fleet for the two Processors Data Leakage security vulnerabilities recently disclosed by Intel.","spans":[]},{"type":"paragraph","text":"Over the past several weeks, we were awaiting a reliable production microcode while actively testing and validating the beta microcode. Now that production microcode is in hand, we expect to complete the entire mitigation process within the next few weeks.","spans":[]},{"type":"paragraph","text":"There is no action required from users to protect their Droplets from these two Processors Data Leakage security vulnerabilities.","spans":[]},{"type":"paragraph","text":"We will continue to share updates here.","spans":[]},{"type":"paragraph","text":"ORIGINAL POST:","spans":[{"start":0,"end":14,"type":"strong"}]},{"type":"paragraph","text":"Hi there,","spans":[]},{"type":"paragraph","text":"Today, Intel released a statement regarding two Processors Data Leakage security vulnerabilities (Vector Register Sampling and L1D Eviction Sampling) that may allow unintended information disclosure for users of multi-tenant cloud environments. On DigitalOcean’s platform, this means a malicious actor could theoretically use a Droplet to infer partial data used by another Droplet on the same physical host.","spans":[{"start":48,"end":71,"type":"hyperlink","data":{"link_type":"Web","url":"https://blogs.intel.com/technology/2020/01/ipas-intel-sa-00329/"}}]},{"type":"paragraph","text":"These vulnerabilities are similar to L1 Terminal Fault (L1TF) as well as the Microarchitectural Data Sampling (MDS) and Transactional Asynchronous Abort (TAA) processor-level issues we’ve mitigated previously. Vector Register Sampling (CVE-2020-0548) relates closely to MDS vulnerabilities, but has a smaller scope and risk. For L1D Eviction Sampling (CVE-2020-0549), the L1TF mitigations already in place on DigitalOcean partially mitigate the vulnerability.","spans":[{"start":37,"end":61,"type":"hyperlink","data":{"link_type":"Web","url":"https://blog.digitalocean.com/a-message-about-l1tf/"}},{"start":77,"end":115,"type":"hyperlink","data":{"link_type":"Web","url":"https://blog.digitalocean.com/may-2019-intel-vulnerability/"}}]},{"type":"paragraph","text":"To further mitigate the impact of these vulnerabilities, we are working with Intel to obtain updated microcode. Once received, our engineering team will begin to rapidly and thoroughly test, and then roll out the updated microcode across our fleet.","spans":[]},{"type":"paragraph","text":"These details will be shared in an email to all active customers, and we will send another email once our mitigation efforts are complete. In the meantime, any information and updates from Intel – as well as our progress rolling the microcode out – will be shared here.","spans":[]},{"type":"paragraph","text":"The security of our platform and protection of our users’ data is our highest priority. We’re working diligently to ensure this issue is resolved as soon as possible.","spans":[]}],"blog_post_date":"2020-01-27","tags":[{"tag1":{"tag":"Trust & Security","_linkType":"Link.document","_meta":{"uid":"trust-security"}}}],"_meta":{"uid":"an-update-about-intels-recent-cve-announcement"}}},{"node":{"author":{"_linkType":"Link.document","author_name":"DigitalOcean","author_image":{"dimensions":{"width":600,"height":600},"alt":"Sammy avatar","copyright":null,"url":"https://images.prismic.io/www-static/a10e3c2eb15b74ee43f872be3044313423b1c9a9_sammy_avatar.png?auto=compress,format"},"_meta":{"uid":"digitalocean"}},"blog_header_image":null,"blog_headline":[{"type":"heading1","text":"Reminder: Use best practices to avoid phishing scams on DigitalOcean","spans":[]}],"blog_post_content":[{"type":"paragraph","text":"We've noticed an uptick in phishing attempts targeting our user base. These are attempts by bad actors to take over your account and use your resources or information to cause harm.","spans":[]},{"type":"paragraph","text":"The most recent examples are emails sent to some users' inboxes which contain links to a non-DigitalOcean site (perhaps a lookalike site) to reset your password or gain control of your account. Do not click on these links!","spans":[{"start":194,"end":222,"type":"strong"}]},{"type":"paragraph","text":"Today we learned that some DigitalOcean customers received an email designed to appear as though it was from Customer Support at DigitalOcean. Its subject was “Account Ref: [Various Number and Letters],” and the email claimed that the user account had been disabled. The easiest way to tell that this isn't a real DigitalOcean message is that it doesn't come from support@support.digitalocean.com.","spans":[]},{"type":"paragraph","text":"Please do not click on any of the links in these emails. We do not send account recovery links in our emails for this reason. Instead, we will ask you to log in to your accounts directly.","spans":[]},{"type":"paragraph","text":"If you did click on the link and enter your account credentials, immediately try to change your DigitalOcean password by logging in at http://cloud.digitalocean.com/login. If you are unsuccessful, or if you believe your account has been compromised, please open a ticket with Customer Support.","spans":[{"start":135,"end":170,"type":"hyperlink","data":{"link_type":"Web","url":"http://cloud.digitalocean.com/login"}}]},{"type":"paragraph","text":"For increased security, we also highly recommend enabling 2FA (two-factor authentication). For how to do that, please visit How to Manage Two-Factor Authentication.","spans":[{"start":124,"end":163,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/docs/accounts/security/2fa/"}}]},{"type":"paragraph","text":"Stay safe out there!","spans":[]}],"blog_post_date":"2020-01-24","tags":[{"tag1":{"tag":"News","_linkType":"Link.document","_meta":{"uid":"news"}}}],"_meta":{"uid":"use-best-practices-to-avoid-phishing"}}},{"node":{"author":{"_linkType":"Link.document","author_name":"Sunny Beatteay","author_image":null,"_meta":{"uid":"sunny_beatteay"}},"blog_header_image":null,"blog_headline":[{"type":"heading1","text":"From 15,000 database connections to under 100: DigitalOcean's tale of tech debt","spans":[]}],"blog_post_content":[{"type":"paragraph","text":"A new hire recently asked me over lunch, “What does DigitalOcean’s tech debt look like?”","spans":[]},{"type":"paragraph","text":"I could not help but smile when I heard the question. Software engineers asking about a company’s tech debt is the equivalent of asking about a credit score. It’s their way of gauging a company’s questionable past and what baggage they’re carrying. And DigitalOcean is no stranger to technical baggage.","spans":[]},{"type":"paragraph","text":"As a cloud provider that manages our own servers and hardware, we have faced complications that many other startups have not encountered in this new era of cloud computing. These tough situations ultimately led to tradeoffs we had to make early in our existence. And as any quickly growing company knows, the technical decisions you make early on tend to catch up with you later.","spans":[]},{"type":"paragraph","text":"Staring at the new hire from across the table, I took a deep breath and began. “Let me tell you about the time we had 15,000 direct connections to our database….”","spans":[]},{"type":"image","url":"https://images.prismic.io/www-static/41779f66-60db-4208-912e-f9d13c0e5e5e_tale-of-tech-debt-1.png?auto=compress,format","alt":null,"copyright":null,"dimensions":{"width":666,"height":500}},{"type":"paragraph","text":"The story I told our new recruit is the story of DigitalOcean’s largest technical rearchitecture to date. It was a companywide effort that extended over multiple years and taught us many lessons. I hope that telling it will be helpful for future DigitalOcean developers – or any developers who find themselves in a tricky tech-debt conundrum.","spans":[]},{"type":"heading3","text":"Where it all started","spans":[]},{"type":"paragraph","text":"DigitalOcean has been obsessed with simplicity from its inception. It’s one of our core values: Strive for simple and elegant solutions. This applies not only to our products, but to our technical decisions as well. Nowhere is that more visible than in our initial system design.","spans":[{"start":96,"end":135,"type":"em"}]},{"type":"paragraph","text":"Like GitHub, Shopify, and Airbnb, DigitalOcean began as a Rails application in 2011. The Rails application, internally known as Cloud, managed all user interactions in both the UI and public API. Aiding the Rails service were two Perl services: Scheduler and DOBE (DigitalOcean BackEnd). Scheduler scheduled and assigned Droplets to hypervisors, while DOBE was in charge of creating the actual Droplet virtual machines. While the Cloud and Scheduler ran as stand-alone services, DOBE ran on every server in the fleet.","spans":[{"start":128,"end":133,"type":"strong"},{"start":245,"end":254,"type":"strong"},{"start":259,"end":263,"type":"strong"}]},{"type":"paragraph","text":"Neither Cloud, Scheduler, nor DOBE talked directly to one another. They communicated via a MySQL database. This database served two roles: storing data and brokering communication. All three services used a single database table as a message queue to relay information.","spans":[]},{"type":"paragraph","text":"Whenever a user created a new Droplet, Cloud inserted a new event record into the queue. Scheduler continuously polled the database every second for new Droplet events and scheduled their creation on an available hypervisor. Finally, each DOBE instance would wait for new scheduled Droplets to be created and fulfilled the task. In order for these servers to detect any new changes, they would each need to poll the database for new records in the table.","spans":[]},{"type":"image","url":"https://images.prismic.io/www-static/ef14910e-7804-415d-8ede-7aed315fdd4c_tale-of-tech-debt-2.png?auto=compress,format","alt":null,"copyright":null,"dimensions":{"width":1056,"height":562}},{"type":"paragraph","text":"While infinite loops and giving each server a direct connection to the database may have been rudimentary in terms of system design, it was simple and it worked – especially for a short-staffed technical team facing tight deadlines and a rapidly increasing user base.","spans":[]},{"type":"paragraph","text":"For four years, the database message queue formed the backbone of DigitalOcean’s technology stack. During this period, we adopted a microservice architecture, replaced HTTPS with gRPC for internal traffic, and ousted Perl in favor of Golang for the backend services. However, all roads still led to that MySQL database.","spans":[]},{"type":"paragraph","text":"It’s important to note that simply because something is “legacy” does not mean it is dysfunctional and should be replaced. Bloomberg and IBM have legacy services written in Fortran and COBOL that generate more revenue than entire companies. On the other hand, every system has a scaling limit. And we were about to hit ours.","spans":[]},{"type":"paragraph","text":"From 2012 to 2016, DigitalOcean’s user traffic grew over 10,000%. We added more products to our catalog and services to our infrastructure. This increased the ingress of events on the database message queue. More demand for Droplets meant that Scheduler was working overtime to assign them all to servers. And unfortunately for Scheduler, the number of available servers was not static.","spans":[]},{"type":"image","url":"https://images.prismic.io/www-static/ec3fcc36-df90-4a63-9bdf-0a0bfd602e12_tale-of-tech-debt-3.png?auto=compress,format","alt":null,"copyright":null,"dimensions":{"width":800,"height":534}},{"type":"paragraph","text":"To keep up with the increased Droplet demand, we were adding more and more servers to handle the traffic. Each new hypervisor meant another persistent connection to the database. By the start of 2016, the database had over 15,000 direct connections, each one querying for new events every one to five seconds. If that was not bad enough, the SQL query that each hypervisor used to fetch new Droplet events had also grown in complexity. It had become a colossus over 150 lines long and JOINed across 18 tables. It was as impressive as it was precarious and difficult to maintain.","spans":[]},{"type":"paragraph","text":"Unsurprisingly, it was around this period that the cracks began to show. A single point of failure with thousands of dependencies grabbling over shared resources, inevitably led to periods of chaos. Table locks and query backlogs led to outages and performance drops.","spans":[]},{"type":"paragraph","text":"And due to the tight coupling in the system, there was not a clear or simple solution to resolving the issues. Cloud, Scheduler, and DOBE all served as bottlenecks. Patching only one or two components would only shift the load to the remaining bottlenecks. So after a lot of deliberation, the engineering staff came up with a three-pronged plan for rectifying the situation:","spans":[]},{"type":"o-list-item","text":"Decrease the number of direct connections on the database","spans":[]},{"type":"o-list-item","text":"Refactor Scheduler’s ranking algorithm to improve availability","spans":[]},{"type":"o-list-item","text":"Absolve the database of its message queue responsibilities","spans":[]},{"type":"heading3","text":"The refactoring begins","spans":[]},{"type":"paragraph","text":"To tackle the database dependencies, DigitalOcean engineers created Event Router. Event Router served as a regional proxy that polled the database on behalf of each DOBE instance in each data center. Instead of thousands of servers each querying the database, there would only be a handful of proxies doing the querying. Each Event Router proxy would fetch all the active events in a specific region and delegate each event to the appropriate hypervisor. Event Router also broke up the mammoth polling query into ones that were smaller and easier to maintain.","spans":[{"start":68,"end":80,"type":"strong"}]},{"type":"image","url":"https://images.prismic.io/www-static/2e31d55f-803b-4a39-a904-a216e627bd51_tale-of-tech-debt-4.png?auto=compress,format","alt":null,"copyright":null,"dimensions":{"width":985,"height":655}},{"type":"paragraph","text":"When Event Router went live, it slashed the number of database connections from over 15,000 to less than 100.","spans":[]},{"type":"paragraph","text":"Next, the engineers set their sights on the next target: Scheduler. As mentioned before, Scheduler was a Perl script that determined which hypervisor would host a created Droplet. It did this by using a series of queries to rank and sort the servers. Whenever a user created a Droplet, Scheduler updated the table row with the best machine.","spans":[]},{"type":"paragraph","text":"While it sounds simple enough, Scheduler had a few flaws. Its logic was complex and challenging to work with. It was single threaded and its performance suffered during peak traffic. Finally, there was only one instance of Scheduler – and it had to serve the entire fleet. It was an unavoidable bottleneck. To tackle these issues, the engineering team created Scheduler V2.","spans":[{"start":360,"end":372,"type":"strong"}]},{"type":"paragraph","text":"The updated Scheduler completely revamped the ranking system. Instead of querying the database for the server metrics, it aggregated them from the hypervisors and stored it in its own database. Additionally, the Scheduler team used concurrency and replication to make their new service performant under load.","spans":[]},{"type":"paragraph","text":"Event Router and Scheduler v2 were all great achievements that addressed many of the architectural weaknesses. Even so, there was a glaring obstacle. The centralized MySQL message queue was still in use – bustling even – by early 2017. It was handling up to 400,000 new records per day, and 20 updates per second.","spans":[]},{"type":"paragraph","text":"Unfortunately, removing the database's message queue was not an easy feat. The first step was preventing services from having direct access to it. The database needed an abstraction layer. And it needed an API to aggregate requests and perform queries on its behalf. If any service wanted to create a new event, it would need to do so through the API. And so, Harpoon was born.","spans":[{"start":360,"end":367,"type":"strong"}]},{"type":"paragraph","text":"However, building the interface for the Event queue was the easy part. Getting buy-in from the other teams proved more difficult. Integrating with Harpoon meant teams would have to give up their database access, rewrite portions of their codebase, and ultimately change how they had always done things. That wasn’t an easy sell.","spans":[]},{"type":"paragraph","text":"Team by team and service by service, the Harpoon engineers were able to migrate the entire codebase onto their new platform. It took the better part of a year, but by the end of 2017, Harpoon became the sole publisher to the database message queue.","spans":[]},{"type":"paragraph","text":"Now the real work began. Having complete control of the event system meant that Harpoon had the freedom to reinvent the Droplet workflow.","spans":[]},{"type":"paragraph","text":"Harpoon's first task was to extract the message queue responsibilities from the database into itself. To do this, Harpoon created an internal messaging queue of its own that was made up of RabbitMQ and asynchronous workers. As Harpoon pushed new events to the queue on one side, the workers pulled them from the other. And since RabbitMQ replaced the database's queue, the workers were free to communicate directly with Scheduler and Event Router. Thus, instead of Scheduler V2 and Event Router polling for new changes from the database, Harpoon pushed the updates to them directly. As of this writing in 2019, this is where the Droplet event architecture stands.","spans":[]},{"type":"image","url":"https://images.prismic.io/www-static/de90af9e-09a6-490a-a6fd-7dad2093f54f_tale-of-tech-debt-5.png?auto=compress,format","alt":null,"copyright":null,"dimensions":{"width":1120,"height":572}},{"type":"heading3","text":"Onward","spans":[]},{"type":"paragraph","text":"In the past seven years, DigitalOcean has grown from garage-band roots into the established cloud provider it is today. Like other transitioning tech companies, DigitalOcean deals with legacy code and tech debt on a regular basis. Whether breaking apart monoliths, creating multiregional services, or removing single points of failure, we DigitalOcean engineers are always working to craft elegant and simple solutions.","spans":[]},{"type":"paragraph","text":"I hope this story of how our infrastructure scaled with our user base has been interesting and illuminating. I'd love to hear your thoughts in the comments below!","spans":[]}],"blog_post_date":"2020-01-08","tags":[{"tag1":{"tag":"Engineering","_linkType":"Link.document","_meta":{"uid":"engineering"}}}],"_meta":{"uid":"from-15-000-database-connections-to-under-100-digitaloceans-tale-of-tech-debt"}}},{"node":{"author":{"_linkType":"Link.document","author_name":"DigitalOcean","author_image":{"dimensions":{"width":600,"height":600},"alt":"Sammy avatar","copyright":null,"url":"https://images.prismic.io/www-static/a10e3c2eb15b74ee43f872be3044313423b1c9a9_sammy_avatar.png?auto=compress,format"},"_meta":{"uid":"digitalocean"}},"blog_header_image":{"dimensions":{"width":1200,"height":592},"alt":null,"copyright":null,"url":"https://images.prismic.io/www-static/af37bf4a-7e41-47fb-8a2e-7e347fa0b681_appreciating-community-2019.jpg?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"Appreciating our community in 2019","spans":[]}],"blog_post_content":[{"type":"paragraph","text":"The end of the year is upon us, and we're reflecting on a pretty amazing 2019 at DigitalOcean. While we're proud of what we've accomplished as a team, what really excites us is the work we've done together with our broader community.","spans":[]},{"type":"paragraph","text":"This year alone, more than 27 million developers and aspiring developers visited our Community site to learn, explore, and share knowledge. We created more than 260 original tutorials in English, rewrote 40 to bring them up to the minute, and translated 163 to eight languages other than English.","spans":[{"start":81,"end":99,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community"}}]},{"type":"image","url":"https://images.prismic.io/www-static/07ee0dd0-0b36-4964-8a0c-3f9d6991a08b_appreciating-community-2.jpg?auto=compress,format","alt":null,"copyright":null,"dimensions":{"width":1200,"height":500}},{"type":"paragraph","text":"And you played a huge part in this success. Via our Write for DOnations program, you contributed 146 tutorials as of mid-December. This provided funds to 28 worthy organizations, with a total value of more than $24,000.","spans":[{"start":52,"end":79,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/write-for-donations/"}}]},{"type":"paragraph","text":"You also helped answer more questions than you asked: in our Q&A section, you asked 3,229 questions and posted 6,483 answers. Now that's a community that cares.","spans":[]},{"type":"paragraph","text":"","spans":[]},{"type":"paragraph","text":"Outside the world of 1s and 0s, we also had the opportunity to connect with many of you in person. Together, we launched The SpinUp with a16z’s Cultural Leadership Fund. Alongside Major League Hacking, we created the LocalHost™️ workshop program. Our community also participated in Cornell Tech’s Product Studio, consistently among the top three most popular offers through the GitHub Student Developer Pack. And that's not to mention the 70 community meetups organized in 17 countries!","spans":[{"start":121,"end":131,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/the-spin-up/"}},{"start":144,"end":168,"type":"hyperlink","data":{"link_type":"Web","url":"https://a16z.com/2018/08/22/introducing-the-cultural-leadership-fund/"}},{"start":217,"end":237,"type":"hyperlink","data":{"link_type":"Web","url":"https://localhost.mlh.io/activities/digitalocean/"}},{"start":282,"end":311,"type":"hyperlink","data":{"link_type":"Web","url":"https://twitter.com/lisaironcutter/status/1204548746236837888"}},{"start":378,"end":407,"type":"hyperlink","data":{"link_type":"Web","url":"https://education.github.com/pack"}}]},{"type":"image","url":"https://images.prismic.io/www-static/4aac8883-9696-4c4a-a3f7-de2b2fec90ed_appreciating-community-hatch.jpg?auto=compress,format","alt":null,"copyright":null,"dimensions":{"width":1200,"height":675}},{"type":"paragraph","text":"We're also proud of our expanding Hatch community, bringing together some of the world's most exciting startups. In 2019, we welcomed 2,500 new Hatchers and gave the cap and gown (metaphorically) to 1,500 graduates of the Hatch program.","spans":[{"start":20,"end":49,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/hatch/"}}]},{"type":"paragraph","text":"This was the year we launched our Solutions Partner Program, which has grown to 830 partners representing 55 countries; and our Marketplace – currently home to 125 1-Click Apps from 88 vendors.","spans":[{"start":30,"end":59,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/partners/solutions-partners/"}}]},{"type":"image","url":"https://images.prismic.io/www-static/3764b76b-90b8-476a-b7ea-b2a8e0ab0dcb_appreciating+community+hacktober.jpg?auto=compress,format","alt":null,"copyright":null,"dimensions":{"width":1200,"height":675}},{"type":"paragraph","text":" Finally, we expanded our engagement with the open source community. This was our biggest Hacktoberfest ever, with 483,127 pull requests in 154,767 repositories. Developers from 142 countries participated in Hacktoberfest, and 673 in-person Hacktoberfest gatherings took place in 73 countries.","spans":[]},{"type":"paragraph","text":"We are proud and grateful to be blessed with such an incredible global community. We're already looking forward to 2020 and working even more closely with the developer community to encourage learning, growth, and open source.","spans":[]},{"type":"paragraph","text":"From all of us at DigitalOcean, have a wonderful holiday season!","spans":[]}],"blog_post_date":"2019-12-19","tags":[],"_meta":{"uid":"appreciating-our-community-in-2019"}}},{"node":{"author":{"_linkType":"Link.document","author_name":"Tim Falls","author_image":null,"_meta":{"uid":"tim_falls"}},"blog_header_image":null,"blog_headline":[{"type":"heading1","text":"Scotch.io is joining DigitalOcean","spans":[]}],"blog_post_content":[{"type":"paragraph","text":"I’m thrilled to announce some big news for the DigitalOcean community: Scotch is joining the DigitalOcean family.","spans":[{"start":71,"end":77,"type":"hyperlink","data":{"link_type":"Web","url":"https://scotch.io/"}}]},{"type":"paragraph","text":"If you’re not familiar with Scotch’s awesome library of tutorials and tips already, we can’t wait to introduce you. Please see the note below for more context from Scotch’s cofounder, Chris.","spans":[]},{"type":"paragraph","text":"We’re excited that the DigitalOcean community is growing by leaps and bounds, and we’re immensely grateful for the developers worldwide who make it what it is. A sincere and heartfelt thanks to all of you.","spans":[]},{"type":"paragraph","text":"– Tim Falls, Director of Community @ DigitalOcean","spans":[]},{"type":"paragraph","text":"A note from Chris Sevilleja of Scotch","spans":[{"start":0,"end":37,"type":"em"}]},{"type":"paragraph","text":"Scotch is joining the DigitalOcean family! This is a huge deal, and you probably have a ton of questions.","spans":[]},{"type":"paragraph","text":"In the short version, DigitalOcean is extremely community driven and is committed to supporting the Scotch ecosystem of developers, authors, tutorials, and more. Here’s the long version:","spans":[]},{"type":"heading3","text":"Scotch.io has grown!","spans":[]},{"type":"paragraph","text":"When Nick Cerminara and I (Chris on Code) started Scotch, we wanted to create a place where developers could help developers by sharing knowledge, tips, and tactics to get better at their craft. We were passionate about education: we wanted everyone to learn not only how to get better at coding, but to understand the deep decisions at the heart of creating awesome code. An internal goal for us has always been to “explain why, not just how.”","spans":[{"start":5,"end":19,"type":"hyperlink","data":{"link_type":"Web","url":"https://twitter.com/whatnicktweets"}},{"start":24,"end":41,"type":"hyperlink","data":{"link_type":"Web","url":"https://twitter.com/chrisoncode"}}]},{"type":"paragraph","text":"We never imagined that the Scotch community would grow to more than two million developers visiting us every month. As of today, Scotch is home to more than 1,800 tutorials and articles produced by our amazing and talented community around the world.","spans":[]},{"type":"heading3","text":"DigitalOcean is deeply committed to community","spans":[]},{"type":"paragraph","text":"There aren’t many places on the Internet that are as devoted to developer education as we are. But we found one.","spans":[]},{"type":"paragraph","text":"You probably already know about DigitalOcean. They are a cloud provider (Scotch has been hosted on their Droplets since we started) that also cares a lot about the developer community and helping developers become better coders. Their Community site is famous for having one of the most comprehensive, well written tutorial sections anywhere. In short, they’re a company of developers working to make the developer experience incredible for anyone, anywhere. Sounds a lot like Scotch!","spans":[{"start":105,"end":113,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/products/droplets/"}},{"start":235,"end":249,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community"}}]},{"type":"paragraph","text":"When DigitalOcean reached out to us, I knew that we have both been committed to developer communities for years. Seeing their programs that are devoted to developers is what let me know that they were a great match for Scotch – programs like:","spans":[]},{"type":"list-item","text":"Write for DOnations","spans":[{"start":0,"end":19,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/write-for-donations/"}}]},{"type":"list-item","text":"Community Q&A","spans":[{"start":0,"end":13,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/questions/"}}]},{"type":"list-item","text":"Hatch for Startups","spans":[{"start":0,"end":18,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/hatch/"}}]},{"type":"list-item","text":"Hacktoberfest","spans":[{"start":0,"end":13,"type":"hyperlink","data":{"link_type":"Web","url":"https://hacktoberfest.digitalocean.com/"}}]},{"type":"list-item","text":"Droplets for Demos","spans":[{"start":0,"end":18,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/droplets-for-demos/"}}]},{"type":"paragraph","text":"Commitment to developer support is why we agreed to join forces. We know that joining the Scotch and DigitalOcean communities is going to be massive. Together, we will be the best educational resource for developers on the planet. This is a dream come true for me, and I can’t wait to make it happen.","spans":[]},{"type":"heading3","text":"What Happens to Scotch?","spans":[]},{"type":"paragraph","text":"So is Scotch going away? No way! In fact, our site is getting even better for our community – and for everyone. Starting immediately, we are going to remove the paywall for all articles and tutorials and Scotch. Our content will be free to anyone.","spans":[]},{"type":"paragraph","text":"In addition, we’ll make sure that great Scotch tutorials also appear on the DigitalOcean Community site so that even more developers can benefit from our community’s expertise.","spans":[]},{"type":"paragraph","text":"There’s a lot of work to do to help developers around the world. Joining the DigitalOcean Community will allow Scotch to continue the work that its been doing. More support for great authors, more quality content for developers, and a cleaner experience from learning to creating.","spans":[]},{"type":"paragraph","text":"I hope you’re as stoked about the evolution of Scotch as I am. Let’s keep on making great things together!","spans":[]},{"type":"paragraph","text":"– Chris Sevilleja, Cofounder of Scotch.io and (now) Community Manager @ DigitalOcean too!","spans":[]}],"blog_post_date":"2019-12-16","tags":[{"tag1":{"tag":"Community","_linkType":"Link.document","_meta":{"uid":"community"}}}],"_meta":{"uid":"scotch-io-is-joining-digitalocean"}}},{"node":{"author":{"_linkType":"Link.document","author_name":"Community Team","author_image":null,"_meta":{"uid":"community_team"}},"blog_header_image":null,"blog_headline":[{"type":"heading1","text":"Student developers: share your knowledge!","spans":[]}],"blog_post_content":[{"type":"paragraph","text":"Calling all students!","spans":[{"start":0,"end":21,"type":"em"}]},{"type":"paragraph","text":"Here at DigitalOcean, we are committed to supporting developers as they learn. Today we have over 2,300 technical tutorials, eBooks, courses, and more on our Community site.","spans":[{"start":154,"end":172,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community"}}]},{"type":"paragraph","text":"As we reflect on the end of the year, we would love to see you reflect on how you have grown as a developer – and give back to the community by sharing what you have learned about the cloud. So today we are inviting you to write a post on DEV about your experience using DigitalOcean’s cloud.","spans":[{"start":59,"end":62,"type":"em"},{"start":223,"end":242,"type":"hyperlink","data":{"link_type":"Web","url":"https://dev.to/"}}]},{"type":"paragraph","text":"If you're a current student who has used the DigitalOcean credit on the GitHub Student Developer pack and you would like to participate, please write up a technical tutorial or blog post about one of your products and post it on DEV. Your post must be tagged with #DigitalOcean and #Students and you must complete your post by December 27th at the end of the day wherever you are in the world. We’ll send out a swag sticker to all qualified participants!","spans":[{"start":72,"end":101,"type":"hyperlink","data":{"link_type":"Web","url":"https://education.github.com/pack"}},{"start":218,"end":232,"type":"hyperlink","data":{"link_type":"Web","url":"https://dev.to/"}},{"start":264,"end":277,"type":"hyperlink","data":{"link_type":"Web","url":"https://dev.to/t/digitalocean"}},{"start":282,"end":291,"type":"hyperlink","data":{"link_type":"Web","url":"https://dev.to/t/students"}}]},{"type":"paragraph","text":"Additionally, GitHub projects may be featured in the GitHub Student Gallery, so link your repo to the post.","spans":[{"start":53,"end":75,"type":"hyperlink","data":{"link_type":"Web","url":"http://education.github.com/pack/gallery"}}]},{"type":"paragraph","text":"If you need support in spinning up your first Droplet, check out our video walkthrough.","spans":[{"start":69,"end":86,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.youtube.com/watch?v=GHB7O12gUcs"}}]},{"type":"paragraph","text":"We're especially interested in learning about projects that deal with environmental sustainability, as well as those that make use of multiple offerings from the GitHub Student Developer Pack. For some inspiration, take a look at some of our existing tutorials, and consider checking out DigitalOcean’s Technical Writing Guidelines.","spans":[{"start":242,"end":260,"type":"hyperlink","data":{"link_type":"Web","url":"https://do.co/tutorials"}},{"start":288,"end":331,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/tutorials/digitalocean-s-technical-writing-guidelines"}}]}],"blog_post_date":"2019-12-12","tags":[{"tag1":{"tag":"Community","_linkType":"Link.document","_meta":{"uid":"community"}}}],"_meta":{"uid":"students-share-your-knowledge"}}},{"node":{"author":{"_linkType":"Link.document","author_name":"Tim Falls","author_image":null,"_meta":{"uid":"tim_falls"}},"blog_header_image":{"dimensions":{"width":1197,"height":673},"alt":null,"copyright":null,"url":"https://images.prismic.io/www-static/514341ec-c494-4c44-bb9c-44252590890a_DigitalOcean_Currents_Open_Source_2019.jpg?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"DigitalOcean Currents: December 2019","spans":[]}],"blog_post_content":[{"type":"paragraph","text":"The fall is an especially exciting time of the year at DigitalOcean. In recognition of the impact the open source movement has had on software development, we make a concerted effort each October to support developers around the world. Our extended developer community gathers to generate a massive, global wave of open source software contributions. We call this phenomenon Hacktoberfest.","spans":[{"start":91,"end":97,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.linuxfoundation.org/uncategorized/2018/08/corporate-open-source-programs-are-on-the-rise-as-shared-software-development-becomes-mainstream-for-businesses/"}},{"start":375,"end":388,"type":"hyperlink","data":{"link_type":"Web","url":"https://hacktoberfest.digitalocean.com/"}}]},{"type":"paragraph","text":"On the heels of Hacktoberfest's record-breaking sixth year, we thought we’d take a fresh look at how people view the current state of open source development and the future of the community.","spans":[]},{"type":"paragraph","text":"In that spirit, this fall’s installment of our seasonal Currents report is dedicated to open source for the second year running. We surveyed more than 5800 developers around the world on the overall health and direction of the open source community. When we last checked in with the community in 2018, more than half of developers reported contributing to open source projects, and most felt the community was healthy and growing.","spans":[{"start":296,"end":300,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/currents/october-2018/"}}]},{"type":"paragraph","text":"Of course, a lot can change in a year. So what can we expect from the next generation of open source developers? Read on for a few highlights and dig into the full report.","spans":[{"start":146,"end":170,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/currents/december-2019/"}}]},{"type":"list-item","text":"Optimism about the state and future of the open source community remains high.\nundefinedundefined","spans":[{"start":0,"end":78,"type":"strong"}]},{"type":"list-item","text":"There is still plenty of room for improvement when it comes to inclusivity.\nundefinedundefined","spans":[{"start":0,"end":75,"type":"strong"}]},{"type":"list-item","text":"Opinions are still split on the big tech players and their effects on the open source environment.\nundefinedundefinedundefined","spans":[{"start":0,"end":98,"type":"strong"}]},{"type":"heading4","text":"Most active open source participants are contributing more often than they were a year ago, but some have struggled to make time to do so","spans":[]},{"type":"image","url":"https://images.prismic.io/www-static/f48e3627-7f0c-420d-bb15-af0bd00a4804_currents_participation.jpg?auto=compress,format","alt":null,"copyright":null,"dimensions":{"width":1200,"height":928}},{"type":"paragraph","text":"Overall participation is up from last year, with 63% of developers saying they actively contribute to open source projects compared to 55% in 2018. However, developers’ reasons for contributing vary based on demographics – while men tend to contribute simply because they enjoy it, women are more likely to cite their desire to learn new skills as a key participation driver.","spans":[]},{"type":"paragraph","text":"By contrast, 14% of developers reported a decrease in their open source participation, with U.S.-based developers most likely to list burnout as the reason for the change. While this points to an overall lack of time and energy as a key issue, there are some developers who say they’ve simply lost interest in open source. Developers over age 45 are more likely to list lack of interest as a reason for decreased participation, signaling that much of the growth of the community may depend on future generations of developers.","spans":[]},{"type":"heading4","text":"The community is generally viewed as friendly and welcoming, but it depends on whom you ask","spans":[]},{"type":"image","url":"https://images.prismic.io/www-static/d3dd5c6b-c256-4977-a198-cb15e9531167_currents_men_vs_women_opern_source.jpg?auto=compress,format","alt":null,"copyright":null,"dimensions":{"width":1200,"height":570}},{"type":"paragraph","text":"While a majority (58%) of respondents feel the community is friendly, women report feeling more barriers to entry than men. Nearly a quarter of women who contribute would participate more frequently if the community were more inclusive, and two thirds would contribute more if there were more opportunities and resources to help them get started.","spans":[]},{"type":"paragraph","text":"One reason for this disconnect is seemingly linked to how developers value diversity and how they personally assess the current state of the open source community on diversity measures – 75% of women said diversity is of utmost importance, compared to 58% of men. Almost half (45%) of the men surveyed rated the community’s diversity as very good or excellent, compared to just a third (33%) of women.","spans":[]},{"type":"paragraph","text":"Younger developers were also significantly more likely to say the community is inclusive (68%) than older generations (42%), who are more likely to report feeling excluded due to negative community interactions (57%).","spans":[]},{"type":"heading4","text":"The jury is still out on whether big tech engagement with the open source community is a net positive or negative","spans":[]},{"type":"image","url":"https://images.prismic.io/www-static/1b5dd90f-0253-4245-a9ab-a0938021b8f1_currents_major_tech.jpg?auto=compress,format","alt":null,"copyright":null,"dimensions":{"width":1200,"height":559}},{"type":"paragraph","text":"In 2018, developers reported an even 50/50 split on whether large tech companies contribute as much to the open source community as they gain. In 2019, that split has become more complicated, with 40% of developers saying they are concerned about the level of big tech involvement, and another 25% who are unsure.","spans":[]},{"type":"paragraph","text":"Self-serving intentions and restrictive licenses were the two biggest issues for developers concerned about big tech, while the third who are unconcerned feel the big tech players provide important resources for the community. One might fairly conjecture that developers’ opinions of big tech are also swayed by their data privacy practices and other related social/political issues that’ve been in the news.","spans":[]},{"type":"heading4","text":"What these findings mean to DigitalOcean","spans":[]},{"type":"paragraph","text":"After more than 20 years of the open source movement, the community is still growing far beyond what the original leaders envisioned. As we head towards 2020 and beyond, it’s clear that the open source community will need to continue evolving to stay healthy and to empower people from all walks of life to participate in building the software that will power our future.","spans":[{"start":54,"end":84,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.cbinsights.com/research/report/future-open-source/"}}]},{"type":"paragraph","text":"For our part, DigitalOcean will keep doing our part to strengthen and celebrate the community, through initiatives like Hacktoberfest and providing free educational resources to support folks at all stages of their open source journeys. If you’d like to get involved, but aren’t sure how, check out our five-part tutorial series: An Introduction to Open Source.","spans":[{"start":330,"end":360,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/tutorial_series/an-introduction-to-open-source"}}]},{"type":"paragraph","text":"The future of open source is bright, and we’re excited to be a part of it.","spans":[]},{"type":"heading4","text":"About Currents","spans":[]},{"type":"paragraph","text":"DigitalOcean Currents highlights the latest trends among developers in the cloud.","spans":[]},{"type":"paragraph","text":"If you would like to be among the first to receive Currents each quarter, sign up\nhere. You’ll also be able to share ideas on what topics we should cover and participate in our next survey.","spans":[{"start":74,"end":86,"type":"hyperlink","data":{"link_type":"Web","url":"https://docs.google.com/forms/d/e/1FAIpQLScwem9s1c7oKRbRF_ZKcTdxQUQlns52L2CgltSyHn1UJOpvkw/viewform"}}]},{"type":"paragraph","text":"Read more about these and other findings in the full Currents report here.","spans":[{"start":69,"end":73,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/currents/december-2019/"}}]}],"blog_post_date":"2019-12-05","tags":[{"tag1":{"tag":"News","_linkType":"Link.document","_meta":{"uid":"news"}}}],"_meta":{"uid":"digitalocean-currents-december-2019"}}},{"node":{"author":{"_linkType":"Link.document","author_name":"Phil Dougherty","author_image":{"dimensions":{"width":573,"height":557},"alt":"Phil Dougherty","copyright":null,"url":"https://images.prismic.io/www-static/ef89c36114b5e1872e8de0b79eb679b9be5b3765_phil.png?auto=compress,format"},"_meta":{"uid":"phil_dougherty"}},"blog_header_image":{"dimensions":{"width":1200,"height":640},"alt":null,"copyright":null,"url":"https://images.prismic.io/www-static/b1104d64-7e85-4017-8e11-7b42d1785a92_blog-digitalocean-container-registry-1.png?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"Making Kubernetes Easier with DigitalOcean Container Registry and 1-Click Apps","spans":[]}],"blog_post_content":[{"type":"paragraph","text":"Let’s be honest: Kubernetes is complicated. And since we’re obsessed with simplifying the developer experience, we continually ask ourselves: How do we make using Kubernetes easier?","spans":[]},{"type":"paragraph","text":"It’s with this in mind that we’re pleased to announce DigitalOcean Container Registry and our fast-growing collection of more than fifteen Kubernetes 1-Click Apps. Together, these enhancements make development and operations with Kubernetes much smoother sailing.","spans":[{"start":54,"end":85,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/products/container-registry/"}},{"start":139,"end":162,"type":"hyperlink","data":{"link_type":"Web","url":"https://marketplace.digitalocean.com/category/kubernetes"}}]},{"type":"heading2","text":"Easily store and manage private container images","spans":[]},{"type":"paragraph","text":"After building your apps into Docker containers, you’ll often want to store container images in a centralized location called a container registry. From there, you can pull images into a Kubernetes cluster or VM, whether it’s a development, testing, staging, or production environment.","spans":[]},{"type":"paragraph","text":"While you can post your container images on the open Internet freely using a service like Docker Hub, clearly you won’t want to do that with confidential software. And while you can also build and operate a registry on your own private network, it’s probably not the best use of your engineers’ time. That’s why we’re excited to introduce a new managed service: DigitalOcean Container Registry, now available in Early Access. DigitalOcean Container Registry is all of these:","spans":[{"start":362,"end":393,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/products/container-registry/"}}]},{"type":"list-item","text":"Simple - Build your container images on any machine, and push them to DigitalOcean Container Registry with the Docker CLI. DigitalOcean Kubernetes seamlessly integrates with this service to facilitate continuous deployment using container images stored there.","spans":[{"start":0,"end":6,"type":"strong"},{"start":111,"end":121,"type":"hyperlink","data":{"link_type":"Web","url":"https://docs.docker.com/engine/reference/commandline/cli/"}}]},{"type":"list-item","text":"Private - Protect sensitive software by storing container images in private repositories. With DigitalOcean Teams, you can easily give access to coworkers – and no one else.","spans":[{"start":0,"end":7,"type":"strong"},{"start":95,"end":113,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/products/teams/"}}]},{"type":"list-item","text":"Secure - Transfer container images over high speed HTTPS connections to servers across four continents. Container images are stored safely and encrypted at rest.","spans":[{"start":0,"end":6,"type":"strong"}]},{"type":"list-item","text":"Fast - Store your container images near your Kubernetes clusters and Droplets and enjoy low latency and free transfer over the private network.","spans":[{"start":0,"end":4,"type":"strong"}]},{"type":"image","url":"https://images.prismic.io/www-static/68b2e34b-cee8-428f-bd65-e1089df8c047_digitalocean-container-registry-ui.png?auto=compress,format","alt":null,"copyright":null,"dimensions":{"width":1254,"height":792}},{"type":"paragraph","text":"Container Registry is integrated into the Images section of cloud.digitalocean.com","spans":[{"start":0,"end":82,"type":"em"}]},{"type":"paragraph","text":"We’ll be inviting folks to try DigitalOcean Container Registry in the weeks ahead. And the service is free to use during the Early Access program.","spans":[{"start":31,"end":62,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/products/container-registry/"}}]},{"type":"heading2","text":"Deploy software to clusters with 1-Click Apps","spans":[]},{"type":"paragraph","text":"DigitalOcean introduced 1-Click Apps back in 2012, making it super simple to deploy popular software stacks to your VMs. We’ve now brought the same 1-Click experience to Kubernetes, so you can easily deploy complex software packages to your clusters.","spans":[]},{"type":"paragraph","text":"Within DigitalOcean Marketplace, you’ll find a dedicated Kubernetes section with more than fifteen 1-Click Apps specifically packaged and tested for deployment to DigitalOcean Kubernetes.","spans":[{"start":7,"end":31,"type":"hyperlink","data":{"link_type":"Web","url":"https://marketplace.digitalocean.com/"}},{"start":57,"end":75,"type":"hyperlink","data":{"link_type":"Web","url":"https://marketplace.digitalocean.com/category/kubernetes"}}]},{"type":"image","url":"https://images.prismic.io/www-static/4a9bc9d3-593f-47bb-a6fd-857a36e8a3c4_digitalocean-kubernetes-1-click-apps.png?auto=compress,format","alt":null,"copyright":null,"dimensions":{"width":2044,"height":1458}},{"type":"paragraph","text":"Broadly speaking, you can think about Kubernetes apps as addressing various use cases:","spans":[]},{"type":"list-item","text":"Critical cluster operations - Monitoring Stack, Grafana Loki, Linkerd, Netdata, Red Sky Ops, NGINX Ingress Controller, and Metrics help with fundamentals like monitoring, performance, logging, or security.","spans":[{"start":0,"end":27,"type":"strong"},{"start":30,"end":46,"type":"hyperlink","data":{"link_type":"Web","url":"https://marketplace.digitalocean.com/apps/kubernetes-monitoring-stack"}},{"start":48,"end":60,"type":"hyperlink","data":{"link_type":"Web","url":"https://marketplace.digitalocean.com/apps/grafana-loki"}},{"start":62,"end":69,"type":"hyperlink","data":{"link_type":"Web","url":"https://marketplace.digitalocean.com/apps/linkerd"}},{"start":71,"end":78,"type":"hyperlink","data":{"link_type":"Web","url":"https://marketplace.digitalocean.com/apps/netdata"}},{"start":80,"end":91,"type":"hyperlink","data":{"link_type":"Web","url":"https://marketplace.digitalocean.com/apps/red-sky-ops"}},{"start":93,"end":117,"type":"hyperlink","data":{"link_type":"Web","url":"https://marketplace.digitalocean.com/apps/nginx-ingress-controller"}},{"start":123,"end":130,"type":"hyperlink","data":{"link_type":"Web","url":"https://marketplace.digitalocean.com/apps/kubernetes-metrics-server"}}]},{"type":"list-item","text":"Developer-friendly tools - OpenFaaS, KubeMQ, Okteto, OpenEBS, Argo CD, and Moon create easily consumable APIs or services for your development teams","spans":[{"start":0,"end":24,"type":"strong"},{"start":27,"end":35,"type":"hyperlink","data":{"link_type":"Web","url":"https://marketplace.digitalocean.com/apps/openfaas-kubernetes"}},{"start":37,"end":43,"type":"hyperlink","data":{"link_type":"Web","url":"https://marketplace.digitalocean.com/apps/kubemq"}},{"start":45,"end":51,"type":"hyperlink","data":{"link_type":"Web","url":"https://marketplace.digitalocean.com/apps/okteto-1"}},{"start":53,"end":60,"type":"hyperlink","data":{"link_type":"Web","url":"https://marketplace.digitalocean.com/apps/openebs-1"}},{"start":62,"end":69,"type":"hyperlink","data":{"link_type":"Web","url":"https://marketplace.digitalocean.com/apps/argo-cd"}},{"start":75,"end":79,"type":"hyperlink","data":{"link_type":"Web","url":"https://marketplace.digitalocean.com/apps/moon"}}]},{"type":"list-item","text":"Consumer or enterprise apps - Wordpress , Mattermost, 1Password SCIM Bridge run popular services you can use for hobbies or work.","spans":[{"start":0,"end":27,"type":"strong"},{"start":30,"end":39,"type":"hyperlink","data":{"link_type":"Web","url":"https://marketplace.digitalocean.com/apps/wordpress-kubernetes"}},{"start":42,"end":52,"type":"hyperlink","data":{"link_type":"Web","url":"https://marketplace.digitalocean.com/apps/mattermost-operator"}},{"start":54,"end":75,"type":"hyperlink","data":{"link_type":"Web","url":"https://marketplace.digitalocean.com/apps/1password-scim-bridge"}}]},{"type":"paragraph","text":"We continue to add new applications to the DigitalOcean Marketplace almost every week. If you’d like to submit your Kubernetes application for consideration, submit a pull request on our Marketplace Github repo.","spans":[{"start":187,"end":210,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/digitalocean/marketplace-kubernetes/blob/master/CONTRIBUTING.md"}}]},{"type":"heading2","text":"New DigitalOcean Kubernetes features and customers","spans":[]},{"type":"paragraph","text":"Like many of you do for your products, we continuously deliver new features and enhancements for DigitalOcean Kubernetes. We recently introduced support for Kubernetes 1.16, and in case you missed it, last month we announced cluster autoscaling, minor version upgrades, and tokenized authentication.","spans":[{"start":157,"end":172,"type":"hyperlink","data":{"link_type":"Web","url":"https://kubernetes.io/blog/2019/09/18/kubernetes-1-16-release-announcement/"}},{"start":225,"end":244,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/docs/kubernetes/how-to/configure-autoscaling/"}},{"start":246,"end":268,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/docs/kubernetes/how-to/upgrade-cluster/"}},{"start":274,"end":298,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/docs/kubernetes/how-to/connect-to-cluster/"}}]},{"type":"image","url":"https://images.prismic.io/www-static/703a0786-3d3b-4499-af91-0a34d09e36be_digitalocean-kubernetes-autoscale-1.png?auto=compress,format","alt":null,"copyright":null,"dimensions":{"width":378,"height":545}},{"type":"paragraph","text":"With every new feature, we eat our own dog food to make sure that things work. Read how DigitalOcean Marketplace runs at global scale using DigitalOcean Kubernetes.","spans":[{"start":79,"end":163,"type":"hyperlink","data":{"link_type":"Web","url":"https://blog.digitalocean.com/how-we-launched-our-marketplace-using-digitalocean-kubernetes-part-1/"}}]},{"type":"paragraph","text":"And, with thousands of DigitalOcean Kubernetes clusters running successfully every day, you can have confidence in our platform. Here’s what Paritosh Gupta, CTO of Orai – an AI speech coach and Hatch startup – had to say about his experience:","spans":[{"start":164,"end":168,"type":"hyperlink","data":{"link_type":"Web","url":"http://www.orai.com/"}},{"start":194,"end":199,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/hatch/"}}]},{"type":"paragraph","text":"“Setting up DigitalOcean Kubernetes was super fast. Our team can easily add new features and update the machine learning models that power the Orai app. We can ensure our technology stack processes everything in realtime, without worrying about the time or cost to rebuild our infrastructure.” -\nParitosh Gupta, CTO","spans":[{"start":0,"end":315,"type":"em"},{"start":296,"end":315,"type":"strong"}]},{"type":"image","url":"https://images.prismic.io/www-static/ea3f8522-3f5a-4bab-84d3-0767410569b9_orai.png?auto=compress,format","alt":null,"copyright":null,"dimensions":{"width":277,"height":112}},{"type":"heading2","text":"Get started with DigitalOcean Kubernetes and Container Registry today","spans":[]},{"type":"paragraph","text":"Hopefully the new features and enhancements make it easier for you to set up and operate your Kubernetes clusters in production. It takes just a few minutes to try DigitalOcean Kubernetes. Simply sign into your account and spin up. You can also check out our new Kubernetes curriculum on the DigitalOcean Community to help you learn what has become the de facto container orchestration platform. We’re also hosting a series of webinars to help you advance your Kubernetes skills.","spans":[{"start":196,"end":230,"type":"hyperlink","data":{"link_type":"Web","url":"https://cloud.digitalocean.com/kubernetes/clusters/new"}},{"start":263,"end":314,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/curriculums/kubernetes-for-full-stack-developers"}},{"start":417,"end":478,"type":"hyperlink","data":{"link_type":"Web","url":"https://go.digitalocean.com/WEBAdvanced-K8s-With-DO-General_MainLandingPagev1"}}]},{"type":"paragraph","text":"If you’d like to discuss how to use DigitalOcean Kubernetes to run your applications, we invite you to contact our sales team. Or, if you happen to be at KubeCon in San Diego this week, come by our booth (G18) or one of our tech talks to speak with me, our engineers, and developer advocates.","spans":[{"start":103,"end":125,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/company/contact/sales/"}},{"start":154,"end":174,"type":"hyperlink","data":{"link_type":"Web","url":"https://events19.linuxfoundation.org/events/kubecon-cloudnativecon-north-america-2019/"}},{"start":213,"end":234,"type":"hyperlink","data":{"link_type":"Web","url":"https://kccncna19.sched.com/?searchstring=digitalocean"}}]},{"type":"paragraph","text":"Happy Kubecon!\nPhil Dougherty, Senior Product Manager","spans":[]}],"blog_post_date":"2019-11-19","tags":[{"tag1":{"tag":"Product Updates","_linkType":"Link.document","_meta":{"uid":"product-updates"}}}],"_meta":{"uid":"making-kubernetes-easier-with-digitalocean-container-registry-and-1-click-apps"}}},{"node":{"author":{"_linkType":"Link.document","author_name":"Kathleen Juell","author_image":null,"_meta":{"uid":"kathleenjuell"}},"blog_header_image":{"dimensions":{"width":784,"height":418},"alt":null,"copyright":null,"url":"https://images.prismic.io/www-static/9544065f-de1e-47c3-9f17-806b84c292c0_Kubernetes_FullStack_blog.png?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"Closing the Kubernetes Skills Gap with Developer-First Learning","spans":[]}],"blog_post_content":[{"type":"paragraph","text":"How do you begin learning Kubernetes? This is an important question for any organization building, hosting, or managing applications today. For DigitalOcean, which released its managed Kubernetes product in 2018, it's essential.","spans":[{"start":173,"end":203,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/products/kubernetes/"}}]},{"type":"paragraph","text":"The demand for developers with experience building and deploying containerized apps and services continues to grow rapidly. According to Dice, Kubernetes proficiency was the most listed job requirement in their job posting database in 2018 – by far. However, when DigitalOcean surveyed container usage trends among developers for our Currents research report last year, we found that only 42% of developers working with containers were using Kubernetes.","spans":[{"start":137,"end":141,"type":"hyperlink","data":{"link_type":"Web","url":"https://insights.dice.com/2019/01/02/kotlin-kubernetes-top-rising-tech-skills/"}},{"start":330,"end":358,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/currents/june-2018/"}}]},{"type":"paragraph","text":"DigitalOcean's core philosophy has always been to make the developer experience simple and intuitive – and this applies to how we support developers using Kubernetes. This philosophy underpins our longstanding commitment to education through our Community platform and technical tutorials. When the internal announcement of our managed Kubernetes service went out, the mission for our Developer Education team was clear: Teach the world Kubernetes! This would support not only DigitalOcean customers, but also the internal teams that worked with these users – as well as anyone who was interested in Kubernetes more broadly.","spans":[{"start":246,"end":264,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/"}},{"start":269,"end":288,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/tutorials"}}]},{"type":"paragraph","text":"Thanks to advances in technologies like containers and Kubernetes, there is a paradigm shift going on in modern software development to move to containers and microservices. As many developers come face-to-face with this shift, it is crucial that they have quality content, thorough instructions, and a supportive community to guide them. Our DigitalOcean community is a great place for anyone looking for help or a collaborative environment with which to share information and experiences.","spans":[]},{"type":"paragraph","text":"– John Kwiatkoski, Senior Developer Support Engineer - Kubernetes at DigitalOcean","spans":[]},{"type":"paragraph","text":"The team set out to write code and tutorials that would walk readers through core concepts and specific tasks related to running applications on Kubernetes. As the body of content grew, so did a pattern: The tutorials followed the steps that any new user would take in learning about and eventually using Kubernetes to run their applications.","spans":[]},{"type":"paragraph","text":"These steps included:","spans":[]},{"type":"o-list-item","text":"Learning Kubernetes core concepts","spans":[]},{"type":"o-list-item","text":"Modernizing applications to work with containers","spans":[]},{"type":"o-list-item","text":"Containerizing applications","spans":[]},{"type":"o-list-item","text":"Deploying applications to Kubernetes","spans":[]},{"type":"o-list-item","text":"Managing cluster operations","spans":[]},{"type":"paragraph","text":"The team began to consider how this structure could benefit users if it were presented as a defined curriculum. We continued iterating on it, integrating feedback from users as well as our own experience – and today we are happy to introduce DigitalOcean’s Kubernetes for Full-Stack Developers, a self-guided course designed to take you from start to finish in the process of learning Kubernetes.","spans":[{"start":257,"end":293,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/curriculums/kubernetes-for-full-stack-developers"}}]},{"type":"paragraph","text":"This self-guided learning approach is designed to help both newcomers and experienced users learn more about Kubernetes container clusters and running containerized applications on them. With core Kubernetes concepts in hand, running an application on a production cluster can become a familiar, repeatable, and automated process.","spans":[]},{"type":"paragraph","text":"Next up: learning about more advanced Kubernetes topics – like how to manage and monitor a production Kubernetes cluster.","spans":[]},{"type":"paragraph","text":"Ready to get started with Kubernetes? Sign up now for the course!","spans":[{"start":38,"end":65,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/curriculums/kubernetes-for-full-stack-developers"}}]},{"type":"paragraph","text":"We hope you enjoy taking your learning journey with DigitalOcean, and look forward to hearing your feedback.","spans":[]}],"blog_post_date":"2019-11-13","tags":[{"tag1":{"tag":"Community","_linkType":"Link.document","_meta":{"uid":"community"}}}],"_meta":{"uid":"closing-the-kubernetes-skills-gap-with-developer-first-learning"}}},{"node":{"author":{"_linkType":"Link.document","author_name":"Daniel Zaltsman","author_image":{"dimensions":{"width":188,"height":188},"alt":"Daniel Zaltsman","copyright":null,"url":"https://images.prismic.io/www-static/663d428f56c46eeb165c811add8f1f60402aa451_daniel_zaltsman-c47f4847.png?auto=compress,format"},"_meta":{"uid":"daniel_zaltsman"}},"blog_header_image":{"dimensions":{"width":1200,"height":590},"alt":null,"copyright":null,"url":"https://images.prismic.io/www-static/3c0ee455-939f-4fef-81e0-7f10755f447e_image--16-.png?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"Recapping Hacktoberfest #6 and Looking to Next Year","spans":[]}],"blog_post_content":[{"type":"paragraph","text":"Another year, another Hacktoberfest, right? Think again! This Hacktoberfest was the best yet, and we have the stories and numbers to prove it. As we reflect on the Hacktoberfest community’s accomplishments, we wanted to showcase what worked, recognize the people who made it possible, and share some surprises, too.","spans":[]},{"type":"paragraph","text":"The very first Hacktoberfest was six years ago, which began with a blog post and pipe dream that we could inspire a significant number of people around the world to contribute more to open source software. Because the team at DigitalOcean has always valued love, simplicity, community, and open source technology, we believed that we could translate those values into something tangible. In the last few years, the event has become more than we imagined possible. Years later, we can confidently say that it’s thanks to many maintainers, community organizers, and participants that this dream has become a reality – and, still, we’re just getting started.","spans":[{"start":67,"end":76,"type":"hyperlink","data":{"link_type":"Web","url":"https://blog.digitalocean.com/hacktoberfest/"}},{"start":314,"end":386,"type":"hyperlink","data":{"link_type":"Web","url":"https://youtu.be/v6gh1LiG78U"}}]},{"type":"heading2","text":"A 2019 Retrospective: Results & Recognitions","spans":[]},{"type":"paragraph","text":"What did we accomplish together in October? These are the highlights from Hacktoberfest #6:","spans":[]},{"type":"list-item","text":"Pull requests from all participants: 483,127","spans":[]},{"type":"list-item","text":"Participating repositories: 154,767","spans":[]},{"type":"list-item","text":"Participating countries, based on addresses: 142","spans":[]},{"type":"list-item","text":"Day with the most PRs: 29,742 (6%) on October 1","spans":[]},{"type":"list-item","text":"*Most used license: MIT in 36,314 repositories (23.46%)","spans":[]},{"type":"list-item","text":"Top language: JavaScript with 89,603 PRs (18.55%)","spans":[]},{"type":"image","url":"https://images.prismic.io/www-static/518399ea-5182-49eb-a654-999325b00d67_prs_by_language_spline.png?auto=compress,format","alt":null,"copyright":null,"dimensions":{"width":2500,"height":1000}},{"type":"paragraph","text":"Pull requests each day for the top 10 languages during Hacktoberfest 2019","spans":[{"start":0,"end":73,"type":"em"}]},{"type":"paragraph","text":"It would be very hard to highlight all of the great projects that participated this year. But we wanted to recognize a few with noteworthy missions: Terrastories, Gatsby, Xamarin, Accord Project, Twilio, Hacktober-board, PricewaterhouseCoopers, Sensenet, and Caneco’s Logos.","spans":[{"start":149,"end":161,"type":"hyperlink","data":{"link_type":"Web","url":"https://medium.com/@rudokemper/a-very-happy-hacktoberfest-for-terrastories-and-the-ruby-community-9e472d9e85d3"}},{"start":163,"end":169,"type":"hyperlink","data":{"link_type":"Web","url":"https://twitter.com/gatsbyjs/status/1192136571341942784"}},{"start":171,"end":178,"type":"hyperlink","data":{"link_type":"Web","url":"https://devblogs.microsoft.com/xamarin/hacktoberfest-2019-xamarin-edition/"}},{"start":180,"end":194,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.accordproject.org/news/hacktoberfest-2019-completion/"}},{"start":196,"end":202,"type":"hyperlink","data":{"link_type":"Web","url":"https://open-pixel-art.com/"}},{"start":204,"end":219,"type":"hyperlink","data":{"link_type":"Web","url":"http://hacktober-board.com/"}},{"start":221,"end":243,"type":"hyperlink","data":{"link_type":"Web","url":"http://pwc.to/33y56t7"}},{"start":245,"end":253,"type":"hyperlink","data":{"link_type":"Web","url":"https://community.sensenet.com/blog/2019/11/06/surviving-hacktoberfest"}},{"start":259,"end":273,"type":"hyperlink","data":{"link_type":"Web","url":"https://medium.com/@caneco/the-30-logos-i-did-for-hacktoberfest-4aa6f161443d"}}]},{"type":"paragraph","text":"*Over 50% of repositories (83,010) in Hacktoberfest had no license that GitHub could detect.","spans":[{"start":0,"end":92,"type":"em"}]},{"type":"heading2","text":"Events on Events on Events – All Around the World","spans":[]},{"type":"paragraph","text":"We were overjoyed to see 673 in-person gatherings across 393 cities in 73 countries this year! That’s two and a half times more events than last year – which saw 267 events across 210 cities in 50 countries!","spans":[]},{"type":"image","url":"https://images.prismic.io/www-static/33943692-c519-4610-bfd6-2d3738727c3b_EGe7BZ7X0AABnRA.jpg?auto=compress,format","alt":null,"copyright":null,"dimensions":{"width":882,"height":666}},{"type":"paragraph","text":"Photo of the organizing team of Open Source Montréal –a Canada meetup","spans":[{"start":0,"end":69,"type":"em"},{"start":0,"end":5,"type":"hyperlink","data":{"link_type":"Web","url":"https://twitter.com/dennyperez18/status/1182119064803692544"}}]},{"type":"paragraph","text":"The countries where the most events took place were:","spans":[]},{"type":"o-list-item","text":"India: 213 events (most in Bengaluru)","spans":[]},{"type":"o-list-item","text":"United States: 88 events (most in New York City)","spans":[]},{"type":"o-list-item","text":"Brazil: 52 events (most in São Paulo)","spans":[]},{"type":"o-list-item","text":"Germany: 41 events (most in Munich)","spans":[]},{"type":"o-list-item","text":"United Kingdom: 29 events (most in London)","spans":[]},{"type":"o-list-item","text":"Indonesia: 23 events (most in Semarang)","spans":[]},{"type":"o-list-item","text":"Nigeria: 18 events (most in Kano)","spans":[]},{"type":"o-list-item","text":"France: 17 events (most in Paris)","spans":[]},{"type":"o-list-item","text":"Mexico: 15 events (most in CDMX)","spans":[]},{"type":"o-list-item","text":"Canada: 15 events (most in Toronto & Vancouver)","spans":[]},{"type":"paragraph","text":"Indonesia took the lead in growth – fivefold! – from four events in 2018 to 23 events in 2019. We’d also like to welcome the first-time countries who hosted events this year: Algeria, Angola, Argentina, Botswana, Congo - Kinshasa, Egypt, Ghana, Guatemala, Guyana, Haiti, Hungary, Ireland, Jamaica, Jordan, Mozambique, Panama, Paraguay, Rwanda, South Africa, South Korea, Uganda, United Arab Emirates, Vietnam, Zambia, and Zimbabwe.","spans":[]},{"type":"paragraph","text":"Hacktoberfest has touched many corners of the world – and continues to expand as the event gains momentum each year. We can’t wait to see where next year leads.","spans":[]},{"type":"image","url":"https://images.prismic.io/www-static/536f2154-8a83-4957-bce5-8f5ee6756ed0_72696645_1438571409642561_2964132547887366144_o.jpg?auto=compress,format","alt":null,"copyright":null,"dimensions":{"width":1944,"height":1296}},{"type":"paragraph","text":"Photo of Open Source Community (OSC) in CS - Ain Shams University, Cairo, Egypt","spans":[{"start":0,"end":79,"type":"em"},{"start":0,"end":5,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.facebook.com/pg/oscgeeks/photos/?tab=album&album_id=1438570919642610&__xts__%5B0%5D=68.ARD2abGPW-c8944CH8tdU3BIkj3EWJM0LR7i0VqHzNgtQD8fNOsVO_ZQBZeNsOg-sR3llw3T5DnUcBDLLGZ1tGNcXgJXdJ6E-M_dZAc2kGDScPvcIejJpljAPiLpZv3vExJDwlnp2-TCu2a6hUoIAtvZISRp4BmgyM2gTwMj0DBYa5da1IF0kFwl-eJzc-9DChfT3R2cCpC2rQIjnYELaRonC8GQuB4aGidKTUxoPoct4AKNVCpOPh0XuQNxHsAJzXMlCZceSiwUD8pf4SyYZzwiAj42ureYT1iheeW8t_9JRAEnQ1b7hWgX2N6LxFaPCEqb6d5MQNhPAv07cu5mTpj4EdMBxfKI3K0U7kaTLBjo-PAKRSnYzmhIP4fUmQVT_Eeu5oAkrLccci5n6ZWZoU4neKVov96y&__tn__=H-R"}}]},{"type":"heading2","text":"Partners Make Perfect","spans":[]},{"type":"paragraph","text":"We’re thankful for the team at DEV for diving in as one of our sponsors this year. The DEV community was highly active all month long – and this communal effort centered on education and encouragement, which contributed to the overall participation and growth this year.","spans":[{"start":31,"end":34,"type":"hyperlink","data":{"link_type":"Web","url":"https://dev.to/"}},{"start":39,"end":48,"type":"hyperlink","data":{"link_type":"Web","url":"https://dev.to/devteam/hacktoberfest-has-finished-thanks-to-all-those-who-took-part-2fbj"}}]},{"type":"paragraph","text":"Here are the top five pieces of content curated by the DEV team, and more posts can be seen here.","spans":[{"start":92,"end":96,"type":"hyperlink","data":{"link_type":"Web","url":"https://dev.to/t/hacktoberfest/top/year"}}]},{"type":"o-list-item","text":"My Hacktoberfest personal challenge: I'm writing a game in 7 days!","spans":[{"start":0,"end":66,"type":"hyperlink","data":{"link_type":"Web","url":"https://dev.to/deleteman123/my-hacktoberfest-personal-challenge-i-m-writing-a-game-in-7-days-eg"}}]},{"type":"o-list-item","text":"Hacktoberfest: From Decision To Completion","spans":[{"start":0,"end":42,"type":"hyperlink","data":{"link_type":"Web","url":"https://dev.to/timrodz/hacktoberfest-from-decision-to-completion-3ogb"}}]},{"type":"o-list-item","text":"Hacktoberfest: Getting Over the Fear of Open Source","spans":[{"start":0,"end":51,"type":"hyperlink","data":{"link_type":"Web","url":"https://dev.to/torianne02/hacktoberfest-getting-over-the-fear-of-open-source-41kg"}}]},{"type":"o-list-item","text":"I finished Hacktoberfest for the first time","spans":[{"start":0,"end":43,"type":"hyperlink","data":{"link_type":"Web","url":"https://dev.to/eddyvinck/i-finished-hacktoberfest-for-the-first-time-5e2f"}}]},{"type":"o-list-item","text":"My A11y Hacktoberfest Retro","spans":[{"start":0,"end":27,"type":"hyperlink","data":{"link_type":"Web","url":"https://dev.to/s_aitchison/my-a11y-hacktoberfest-retro-34op"}}]},{"type":"paragraph","text":"As a reward to participants, the DEV team is offering ‘Hacktoberfest 2019’ profile badges! If you participated in Hacktoberfest and are not yet a registered DEV member, sign up with your GitHub authentication. If you are an existing member, simply add GitHub authentication to your profile in your settings to claim your participation badge.","spans":[{"start":290,"end":306,"type":"hyperlink","data":{"link_type":"Web","url":"https://dev.to/settings"}}]},{"type":"image","url":"https://images.prismic.io/www-static/665b0155-731b-44e7-86dc-d449304baf34_HacktoberfestBadgeOnProfileArrow.png?auto=compress,format","alt":null,"copyright":null,"dimensions":{"width":2874,"height":1528}},{"type":"paragraph","text":"Screenshot highlighting the Hacktoberfest badge on a DEV profile.","spans":[{"start":0,"end":65,"type":"em"}]},{"type":"paragraph","text":"Many of you have asked us to open source the Hacktoberfest application, so we’re excited to announce that we’ve done just that! As of today, you can officially visit and make contributions to the Hacktoberfest repo here. And we sincerely look forward to seeing you in the issues.","spans":[{"start":215,"end":219,"type":"hyperlink","data":{"link_type":"Web","url":"http://github.com/digitalocean/hacktoberfest"}}]},{"type":"paragraph","text":"Next year, we plan to invest even more in community support and rewarding maintainers and event organizers. We hope there will be at least one event in every country where there is a participant. We also plan to provide more tools for maintainers, and seek out ways to reduce the climate impact of the program.","spans":[]},{"type":"image","url":"https://images.prismic.io/www-static/23744d4d-b5c7-4e06-8bdc-be8efe8b881d_Image-from-iOS--21-.jpg?auto=compress,format","alt":null,"copyright":null,"dimensions":{"width":4032,"height":3024}},{"type":"paragraph","text":"Photo courtesy of Kotis Design, showing the Hacktoberfest shirts being printed","spans":[{"start":0,"end":78,"type":"em"}]},{"type":"paragraph","text":"If you’ve already received your shirt, we’d love for you to share a photo with us on social media using #Hacktoberfest! For those of you still waiting for yours, please be patient as we work to distribute them. And lastly, if you haven’t claimed your shirt, the deadline to do so is November 30.","spans":[]},{"type":"paragraph","text":"Hacktoberfest is far from over for us at DigitalOcean, and we hope you feel the same. While we’re packing up your T-shirts (and sending them to 142 countries!), we encourage you to continue to dedicate time to make a meaningful impact on the technology you use and love.","spans":[]},{"type":"paragraph","text":"If you have any ideas or comments you’d like to share, please do so below! As a closing, we wanted to share this video from the Hacktoberfest kickoff in NYC.","spans":[]},{"type":"embed","oembed":{"type":"video","embed_url":"https://www.youtube.com/watch?v=dyrCxByo7zE","title":"Hacktoberfest Kick-Off Celebration at DigitalOcean HQ in NYC","provider_name":"YouTube","thumbnail_url":"https://i.ytimg.com/vi/dyrCxByo7zE/hqdefault.jpg","provider_url":"https://www.youtube.com/","author_name":"DigitalOcean","html":"<iframe width=\"480\" height=\"270\" src=\"https://www.youtube.com/embed/dyrCxByo7zE?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen></iframe>","thumbnail_width":480,"width":480,"version":"1.0","author_url":"https://www.youtube.com/user/DigitalOceanVideos","height":270,"thumbnail_height":360}},{"type":"paragraph","text":"","spans":[]}],"blog_post_date":"2019-11-12","tags":[{"tag1":{"tag":"Community","_linkType":"Link.document","_meta":{"uid":"community"}}}],"_meta":{"uid":"recapping-hacktoberfest-6"}}}]}}}