{"componentChunkName":"component---src-templates-blog-list-jsx","path":"/blog/16/","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":180,"numPages":33,"currentPage":16,"data":[{"node":{"author":{"_linkType":"Link.document","author_name":"Billie Cleek","author_image":null,"_meta":{"uid":"billie_cleek"}},"blog_header_image":{"dimensions":{"width":784,"height":418},"alt":null,"copyright":null,"url":"https://images.prismic.io/www-static/287bb0dc-2d4f-41ac-b8e7-cc701e3e1d23_CodeReview_blog.png?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"How to Conduct Effective Code Reviews","spans":[]}],"blog_post_content":[{"type":"paragraph","text":"A code review, at its core, is a conversation about a set of proposed changes. Early in my career, I viewed code reviews as a mostly technical exercise that should be devoid of non-technical concerns. I now see them as one of the few opportunities to concurrently learn and teach while also strengthening my relationship with my peers and colleagues. ","spans":[]},{"type":"paragraph","text":"My team, Delivery, has been working together for at least six months (some much longer), but only two members work in the New York City office while the rest are spread across North America. Because of our familiarity with each other, most of our daily interactions take place via text or video chat. Code reviews are often short, but we also go out of our way to communicate when we are stating an opinion or being nit-picky. ","spans":[]},{"type":"paragraph","text":"Most software developers are expected to participate in code reviews, and yet few are offered any training or guidance on conducting and participating in an effective code review. Participants attempt to find the most appropriate solution to a problem given the constraints of time, effort, and skills of all involved. But how do we have that conversation? What does an effective conversation look like? And what are the challenges of participating in a code review, and how can you overcome them?","spans":[]},{"type":"paragraph","text":"Whether your tool of choice is GitHub, GitLab, Gerrit, or another tool, the goal of this article is to help you get as much out of the code review process as possible.","spans":[]},{"type":"heading3","text":"What Are Code Reviews For?","spans":[]},{"type":"paragraph","text":"Code reviews happen in a wide range of contexts, and often the skills and depth of experience of participants vary widely. On open source projects, for example, participants may not have any sort of personal relationship with each other. Indeed, they may never communicate outside of the code review process. At the other end of the spectrum are code reviews where the participants have daily face-to-face interactions, such as when everyone works at the same company. A good participant will adjust how they participate in a code review according to their knowledge of the other participants. ","spans":[]},{"type":"paragraph","text":"While it is important to adjust one's communication style in accordance with the intended recipient, how to adjust is influenced by three primary factors: the purpose of the code review, the intended audience, and one's relationship to the audience.","spans":[]},{"type":"heading3","text":"Identifying the Purpose of a Code Review","spans":[]},{"type":"paragraph","text":"Code reviews serve both technical and cultural purposes: finding bugs before they're integrated, identifying security concerns, ensuring style consistency with the existing codebase, maintaining code quality, training, fostering a greater sense of ownership, and giving other maintainers an opportunity to get familiar with the code before it's integrated are just some of the reasons you may be asked to participate in code reviews. Make sure you know why you're participating in a code review beforehand. ","spans":[]},{"type":"paragraph","text":"Regardless of why you’re conducting a code review, it is important to respect the purposes that code reviews serve for the codebase. If the only purpose of a code review is to check for security concerns, then drop whatever personal concerns you may have about coding style or naming patterns. Unfortunately, it is not uncommon for the purpose of code reviews to be poorly defined or non-existent. In that case, once you've determined that the proposed changes are necessary and add value, I'd suggest reviewing for correctness, bug identification, and security concerns. Secondary to those concerns may be overall quality and long term maintainability of the proposed changes.","spans":[]},{"type":"heading3","text":"Submissions: What to Include","spans":[]},{"type":"paragraph","text":"Code reviews typically start with a contributor submitting a proposed set of changes to the project. The submission should include:","spans":[]},{"type":"list-item","text":"A clear and useful description of the changes and give a general overview of why the change is necessary.","spans":[]},{"type":"list-item","text":"The scope of the change.","spans":[]},{"type":"list-item","text":"Areas where reviewers may want to give special attention.","spans":[]},{"type":"list-item","text":"Subtleties that need clarification.","spans":[]},{"type":"list-item","text":"Details that may help reviewers better understand the patch.","spans":[]},{"type":"paragraph","text":"Depending on the complexity of the changes, reviewers may find an overview of the trade-offs the submitter made in the patch helpful in order to be better understand why the patch is the most appropriate of the possible alternatives.","spans":[]},{"type":"paragraph","text":"Written communication about technical subjects can be difficult: people have limited time, and each of us is on a journey of confronting challenges and personal growth. In code reviews every participant has a role to play, each with its own set of objectives:","spans":[]},{"type":"list-item","text":"As a writer, strive to be as clear as you can. When in doubt, be descriptive. ","spans":[{"start":5,"end":11,"type":"strong"}]},{"type":"list-item","text":"As a reader, ask questions when something is unclear. ","spans":[{"start":5,"end":11,"type":"strong"}]},{"type":"list-item","text":"As a reviewer, be gracious when someone uses their time to submit a patch to your project. ","spans":[{"start":5,"end":13,"type":"strong"}]},{"type":"list-item","text":"As a submitter, be forgiving when your patch is not reviewed in the time frame you would prefer. ","spans":[{"start":5,"end":14,"type":"strong"}]},{"type":"paragraph","text":"Regardless of your role in the review process, respect that others may be at a different place in their journey, and assume that all participants are engaging in the process in good faith and because of shared values and goals. The process is easiest when one assumes that all other participants are doing their utmost to help you succeed and get better. ","spans":[]},{"type":"paragraph","text":"Here's an example of a pull request from our team where I asked for clarification, discussed my concerns, and ultimately landed on a compromise that made the submission better and easier to maintain, all while gaining personal knowledge of the subject at hand:","spans":[]},{"type":"image","url":"https://images.prismic.io/www-static/52f5f421-6510-4b8c-8c92-100cd1272605_pasted-image-1.png?auto=compress,format","alt":"code review example #1","copyright":null,"dimensions":{"width":1318,"height":702}},{"type":"image","url":"https://images.prismic.io/www-static/562cb75e-2021-49e6-951e-07e788b87449_pasted-image-0.png?auto=compress,format","alt":"code review example #2","copyright":null,"dimensions":{"width":1426,"height":1336}},{"type":"paragraph","text":"Example of how my team communicates in our code reviews.","spans":[{"start":0,"end":56,"type":"em"}]},{"type":"heading3","text":"Knowing Your Audience","spans":[]},{"type":"paragraph","text":"Start by reading all the code. As a reviewer, recognize that the submitter gave their time and energy and tried to improve the product in some way. As you read and strive to understand the patch, record your questions and concerns privately so that you understand the full context before providing any feedback. As mentioned previously, make an honest effort to restrict your feedback to the purposes for which the code review is being conducted. ","spans":[{"start":0,"end":29,"type":"strong"}]},{"type":"paragraph","text":"Prepare and submit your feedback after reading and understanding the changes. Be gracious. Try to keep your comments focused on the code and the solution it offers; avoid digressing into unrelated matters. If you see something surprising, ask questions. If you don't have a strong history with a submitter, go the extra mile to communicate your good intentions. It's OK to use emojis to communicate tone. Strive to begin fostering a healthy, productive relationship with this new contributor.","spans":[{"start":0,"end":76,"type":"strong"}]},{"type":"paragraph","text":"Your feedback in code reviews is one of the primary ways to build a community of developers eager to contribute to your project. By nurturing a strong community, you will promote a quality product. Especially for open source maintainers, an authentic, explicit “thank you for the contribution” or other nice words can go a long way towards making people feel appreciated and fostering a supportive community. ","spans":[{"start":0,"end":91,"type":"strong"}]},{"type":"paragraph","text":"Take the feedback, evaluate it, and decide what to do next. For submitters, it can be difficult to read criticism of the code you have written. When a reviewer asks for changes, they are doing so for the same reason a patch author submits a patch: a genuine desire to improve the product. Remind yourself that feedback about code is not personal. You may decide to accept the feedback and change something. Or you may decide that there was a misunderstanding, and that some requested changes are unwarranted or would simply be wrong or add no value. It’s OK to push back.","spans":[{"start":0,"end":58,"type":"strong"}]},{"type":"heading3","text":"Developing a Partnership Through Code Reviews","spans":[]},{"type":"paragraph","text":"When there is an asymmetric level of experience between the submitter and reviewer, use the opportunity to mentor. As a reviewer with more experience than the submitter, you may choose to accept that submitter's patch as-is and then improve upon it, contacting the submitter to let them know about your changes later. In a professional setting, such an approach isn't always feasible. Have the conversation in the open so that observers (i.e. other readers) can learn too, but reach out for a more personal touch if the extent of feedback is becoming overwhelming in written form. In my experience, patches submitted by someone significantly more experienced than the reviewer are usually accepted as-is or with only very minor changes requested.","spans":[]},{"type":"paragraph","text":"When you're thinking out loud, make it clear to the reader so that they do not think you are asking for a change inasmuch as evaluating a possibility. If you're nitpicking, explain your reasons for doing so. On our team, we often preface nit-picky comments with `(nit)`, in order to help contributors recognize these types of comments. This usually serves as a signal that the contributor can ignore that feedback if they want. Without that distinction, the nitpicks are not distinguishable from the feedback that the reviewer feels more strongly about. For all participants: when you're unsure about something, ask, and err on the side of clarity and friendliness.","spans":[]},{"type":"paragraph","text":"A successful code review will result in a higher quality change, strengthen the relationship between reviewer and submitter, and increase the understanding that everyone involved has of the project. Code reviews are not just a formality that require a rubber stamp before being merged; they are an essential aspect of modern software development that provide real value to projects and teams by promoting good software engineering practices.","spans":[]},{"type":"heading3","text":"Conclusion","spans":[]},{"type":"paragraph","text":"Through code reviews, I've learned to be more gracious and more understanding about the personal challenges and technical struggles that everyone experiences. I have learned to more thoughtfully examine the trade-offs that we all make when writing software. I hope the ideas presented here can help you grow your community and increase your effectiveness.","spans":[]},{"type":"paragraph","text":"Billie Cleek is a Senior Software Engineer on the Delivery team where he supports internal tools to provide a consistent deployment surface for DigitalOcean's microservices. In his spare time, Billie is a maintainer of vim-go, infrequent contributor to other open source projects, and can be found working on his 100-year-old house or in the forests of the Pacific Northwest regardless of the weather. You may also find Billie on GitHub and Twitter.","spans":[{"start":0,"end":449,"type":"em"},{"start":430,"end":436,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/bhcleek"}},{"start":441,"end":448,"type":"hyperlink","data":{"link_type":"Web","url":"https://twitter.com/bhcleek"}}]}],"blog_post_date":"2018-03-28","tags":[{"tag1":{"tag":"Engineering","_linkType":"Link.document","_meta":{"uid":"engineering"}}}],"_meta":{"uid":"how-to-conduct-effective-code-reviews"}}},{"node":{"author":{"_linkType":"Link.document","author_name":"Ryan Quinn","author_image":{"dimensions":{"width":240,"height":240},"alt":"Ryan Quinn","copyright":null,"url":"https://images.prismic.io/www-static/f9ea432b5990fac0de17b009eb0c7b3f2dc6885b_pasted-image-at-2017_09_15-10_25-am.png?auto=compress,format"},"_meta":{"uid":"ryan_quinn"}},"blog_header_image":{"dimensions":{"width":784,"height":418},"alt":"waves illustration with the word currents","copyright":null,"url":"https://images.prismic.io/www-static/46f6503e2a60d5a17286285d3596eef8db19d91f_currets_blog_header--1-.png?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"DigitalOcean Currents: March 2018","spans":[]}],"blog_post_content":[{"type":"paragraph","text":"Currents is back with our third report on the developer experience. This February we asked 5,993 participants about their thoughts on hot topics like artificial intelligence and machine learning, new ways of working with codebases and services like continuous integration and delivery, and important issues like the European Union’s General Data Protection Regulation (GDPR) and the FCC’s decision on net neutrality.","spans":[{"start":333,"end":374,"type":"hyperlink","data":{"link_type":"Web","url":"https://techcrunch.com/2018/01/20/wtf-is-gdpr/"}},{"start":383,"end":415,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.wired.com/story/after-fcc-vote-net-neutrality-fight-moves-to-courts-congress/"}}]},{"type":"paragraph","text":"Among our findings this quarter:","spans":[]},{"type":"list-item","text":"Developers in the US are strongly against the repeal of net neutrality with 83% saying they believe the Federal Communications Commission (FCC) made the wrong decision. This is in line with the 83% of US voters who said the same in a December poll, highlighting the overwhelming public opposition to the repeal.","spans":[{"start":0,"end":70,"type":"strong"},{"start":234,"end":247,"type":"hyperlink","data":{"link_type":"Web","url":"http://thehill.com/policy/technology/364528-poll-83-percent-of-voters-support-keeping-fccs-net-neutrality-rules"}}]},{"type":"list-item","text":"Despite the wide reach and the intense media coverage of the Spectre/Meltdown vulnerabilities, a majority (71%) of developers’ day-to-day work was not impacted by the issue.","spans":[{"start":61,"end":159,"type":"strong"}]},{"type":"list-item","text":"Though GDPR is slated to go into effect in just a few months, developers and companies are still confused about who the regulation will affect. A third (34%) of all respondents are unsure if their company is preparing for the legislation. This holds true regardless of company size, but developers in some countries appear to be more confused than others; up to 40-50% in markets like Mexico and Indonesia say they are not sure where their company stands on GDPR.","spans":[{"start":62,"end":142,"type":"strong"}]},{"type":"list-item","text":"As companies grow in size, they’re more likely to be using continuous integration (CI), but there’s still room for growth. Today, roughly two-thirds (68%) of companies with 1,000+ employees use CI. Of all industries, financial services companies are most likely to be using CI at 72%, while nonprofits are least likely at only 39%.","spans":[{"start":0,"end":121,"type":"strong"}]},{"type":"heading4","text":"If you work in a larger organization, chances are you are using CI/CD","spans":[]},{"type":"image","url":"https://images.prismic.io/www-static/45e81d57b616f55f8e6b60e65828afe0188b8e22_cd-solutions_social.png?auto=compress,format","alt":"CI/CD infographic","copyright":null,"dimensions":{"width":1024,"height":512}},{"type":"paragraph","text":"While only 45% of developers in organizations with five employees or less are using continuous integration, and only 35% are using continuous delivery (CD), developers report the likelihood of using these technologies increases with the size of the organization. This is somewhat intuitive as many of the benefits of these methods provide ways for groups of developers to work together.  In large organizations with over 1,000 employees, 68% of developers report using continuous integration and 52% are using continuous delivery.","spans":[]},{"type":"heading4","text":"Developers strongly disagree with the US FCC’s recent decision on net neutrality","spans":[]},{"type":"image","url":"https://images.prismic.io/www-static/b33e5bb0e95289edae669390ef3af6df3c893ee9_net_neutrality_social.png?auto=compress,format","alt":"Net neutrality infographic","copyright":null,"dimensions":{"width":1024,"height":512}},{"type":"paragraph","text":"Worldwide, the developers we surveyed voiced a strong opinion against the repeal of net neutrality in the US by the FCC.  Among those in the United States this opinion was even more pronounced with 83% of developers against the decision and only 3.6% in favor of the change.","spans":[]},{"type":"heading4","text":"Adoption of the GDPR in Europe has many developers working to ensure compliance","spans":[]},{"type":"image","url":"https://images.prismic.io/www-static/134950f531315a7fe665a69e824fccfffd136e89_gdpr_social.png?auto=compress,format","alt":"GDPR infographic","copyright":null,"dimensions":{"width":1024,"height":512}},{"type":"paragraph","text":"Thirty-seven percent of the developers we surveyed reported that their teams were currently working to prepare for the GDPR.  Unsurprisingly, developers in European countries are leading in this regard, with 58% of respondents in the Netherlands, 62% in Belgium, and 68% in Sweden stating their teams were actively working to ensure GDPR compliance.  The United Kingdom saw the most engagement at 70%.","spans":[]},{"type":"paragraph","text":"DigitalOcean Currents is published quarterly, highlighting the latest trends among developers.","spans":[]},{"type":"paragraph","text":"If you would like to be among the first to receive Currents each quarter, sign up here. You’ll receive the latest report once it is released, share your 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":"http://do.co/getcurrents"}}]},{"type":"paragraph","text":"Read more about these and other findings in the full report. Download the full Currents report here.","spans":[{"start":61,"end":99,"type":"hyperlink","data":{"link_type":"Web","url":"https://do.co/currents-report"}}]}],"blog_post_date":"2018-03-21","tags":[{"tag1":{"tag":"News","_linkType":"Link.document","_meta":{"uid":"news"}}}],"_meta":{"uid":"currents-march-2018"}}},{"node":{"author":{"_linkType":"Link.document","author_name":"Josh Viney","author_image":{"dimensions":{"width":250,"height":250},"alt":"Josh Viney","copyright":null,"url":"https://images.prismic.io/www-static/a2f3442df272c869c0482d6e5ecc23d3fbc6baf1_f2e1ef84a186a79c8c642193dbbed89f.jpg?auto=compress,format"},"_meta":{"uid":"josh_viney"}},"blog_header_image":{"dimensions":{"width":1568,"height":836},"alt":"Website illustration","copyright":null,"url":"https://images.prismic.io/www-static/cd0f46b26bafdbd2d75300c2ab6b7c76736b8b9d_fleets-ui-blog.png?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"Introducing Dashboard: View Your Infrastructure At a Glance","spans":[]}],"blog_post_content":[{"type":"paragraph","text":"Simplifying the developer experience in the cloud has been a priority for DigitalOcean since we launched Droplets in 2013. As our product capabilities grow, we're taking great care to ensure that using DigitalOcean to run your applications remains as easy and intuitive as possible.","spans":[]},{"type":"paragraph","text":"Today, we’re announcing the Control Panel Dashboard, the first of many Control Panel updates planned for 2018 as part of our mission to make it simple for development teams to operate and scale production applications in the cloud.","spans":[{"start":71,"end":84,"type":"hyperlink","data":{"link_type":"Web","url":"https://cloud.digitalocean.com"}}]},{"type":"heading4","text":"Introducing The Dashboard","spans":[]},{"type":"paragraph","text":"Every day as we talk to developers, read feedback from the community, and witness the amazing applications being launched on our platform, the message that rings the clearest is that everyone values simplicity and ease of use. Visualizing, understanding, and controlling your cloud infrastructure in a single place is not inherently simple or easy, and it can get significantly more difficult as complexity increases.","spans":[]},{"type":"paragraph","text":"The release of the new Dashboard is specifically meant to help you quickly access your existing resources and key account-related information, while highlighting additional products and features we think you’ll find useful when deploying scalable, production-ready infrastructure.","spans":[]},{"type":"paragraph","text":"For existing users, the Dashboard replaces the Droplets page as the new default home page of the Control Panel. It provides “at-a-glance” visibility into active resources, like Droplets, Spaces, Load Balancers, Domains, Floating IPs, month-to-date current billing usage, shortcuts to team management, and other common tasks without having to navigate to different, often hard-to-find, sections of the Control Panel.","spans":[{"start":177,"end":185,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/tutorials/how-to-create-your-first-digitalocean-droplet"}},{"start":187,"end":193,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/tutorials/an-introduction-to-digitalocean-spaces"}},{"start":195,"end":209,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/tutorials/an-introduction-to-digitalocean-load-balancers"}},{"start":211,"end":218,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/tutorials/how-to-set-up-a-host-name-with-digitalocean"}},{"start":220,"end":232,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/tutorials/how-to-use-floating-ips-on-digitalocean"}}]},{"type":"paragraph","text":"A look at the new Control Panel Dashboard.","spans":[{"start":0,"end":42,"type":"em"}]},{"type":"image","url":"https://images.prismic.io/www-static/ZmIzZmY3MmItOGEzZi00ZjRjLThkODMtZDRiMTcxZWNlODEy_control-panel-demo-with-cta.gif?auto=compress,format","alt":"Control Panel Dashboard GIF","copyright":null,"dimensions":{"width":1920,"height":1080}},{"type":"paragraph","text":"Additionally, we’ve made changes to the top and bottom navigation to expose more helpful links to our status page, Community tutorials, API docs, and the support portal. All with the goal of surfacing more ways to help keep your applications running smoothly without overloading the UI.","spans":[]},{"type":"paragraph","text":"The Dashboard is just the beginning. We have many more updates planned this year, and we can’t do it without your continued feedback. When you log in to take a look, please leave us some feedback using the little megaphone icon in the bottom right corner of the Control Panel. Or get early access to upcoming features by completing this survey.","spans":[{"start":321,"end":343,"type":"hyperlink","data":{"link_type":"Web","url":"https://digitalocean.getfeedback.com/r/6oH0ELJm/"}}]},{"type":"paragraph","text":"The new Control Panel Dashboard is available starting today and will roll out to all DigitalOcean users over the course of the week. Stay tuned for more UI updates in the future!","spans":[]}],"blog_post_date":"2018-03-21","tags":[{"tag1":{"tag":"Product Updates","_linkType":"Link.document","_meta":{"uid":"product-updates"}}}],"_meta":{"uid":"introducing-control-panel-dashboard"}}},{"node":{"author":{"_linkType":"Link.document","author_name":"Amanda Brazzell","author_image":{"dimensions":{"width":572,"height":657},"alt":"Amanda Brazzell","copyright":null,"url":"https://images.prismic.io/www-static/6af55a5a023502f4750be92df823a6edd32b3897_11055254_10200392298167803_8685793855303694114_n-1.jpg?auto=compress,format"},"_meta":{"uid":"amanda_brazzell"}},"blog_header_image":{"dimensions":{"width":1024,"height":512},"alt":"Two developers highfiving illustration","copyright":null,"url":"https://images.prismic.io/www-static/e20ccb82d0fe87761c57073b40c7b7db3c54b7f5_remote_culture_social.png?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"How We Support Remote Employees at DigitalOcean","spans":[]}],"blog_post_content":[{"type":"paragraph","text":"Remote culture at DigitalOcean is one of my favorite things to talk about when discussing my job. When I first joined the company in June of 2015, there was already a substantial percentage of existing remote employees (better known as our “remotees”). Working with the remotees wasn’t initially a part of my function, but as a member of the Employee Experience Team, I gradually found myself getting to know many of them more personally.  I learned about their experiences as distributed employees, some of their pain points, and how it influences their engagement.","spans":[]},{"type":"paragraph","text":"Since I've never been remote, I educated myself on best practices for companies with remote employees and how we could expand our top-notch employee experience to those outside of our HQ.","spans":[]},{"type":"paragraph","text":"Two and a half years later, our remotee population totals over 200 employees, making up over 50% of our employees, and our program has grown to support both the needs of our business and those who work remotely. To date, remotees score higher in engagement than any other subgroup at the company. This has been attributed to the attention and effort we have actively given to support the remotee experience.","spans":[]},{"type":"paragraph","text":"Here’s what we learned and how we adjusted our efforts to better support the remotee experience:","spans":[]},{"type":"heading3","text":"Remote Communication","spans":[]},{"type":"paragraph","text":"“Watercooler talk” is an important aspect of working in-office, and it’s a practice that companies seeking to become more remote-friendly have trouble replicating. Being able to easily communicate with other colleagues helps improve team bonds and makes people feel part of the company fabric. At DO, we use several different mediums to avoid having remotees excluded from conversation and risking having information fall through the cracks:","spans":[]},{"type":"list-item","text":"Slack: The entire company uses Slack extensively for communication, whether you’re located across from each other or across time zones. We have a dedicated Slack channel specifically for our remotees, and we use that channel to make all remote-specific announcements (not to mention, for a lot of watercooler conversations). Additionally, we recently started a “Coffee Buds” program that pairs participants in our #coffeebuds Slack channel each week. Remotees have the chance to meet other colleagues—remote and in-office alike—and “hang out” over Hangouts!","spans":[{"start":0,"end":5,"type":"strong"}]},{"type":"list-item","text":"Google Hangouts: It is common practice at DigitalOcean to have all our meetings hosted on Google Hangouts. All of our conference rooms include screens where remote employees join the meeting, making it possible for them to always be a contributor in team conversations.","spans":[{"start":0,"end":15,"type":"strong"}]},{"type":"list-item","text":"Zoom: Hangouts can be limiting depending on the amount of people you have on a call. All of our company-wide, internal meetings are hosted on Zoom, and all remotees use it to join our biweekly All Hands Meeting. (It’s always fun seeing all of our remotees tune in at the same time.)","spans":[{"start":0,"end":4,"type":"strong"}]},{"type":"list-item","text":"Google Drive: But what about time zone differences? Because we have an office in Bangalore, India and other remotees globally, all of our company-wide meetings are recorded and filed in a Google Drive for anyone to access at their convenience.","spans":[{"start":0,"end":12,"type":"strong"}]},{"type":"list-item","text":"Who’s in HQ: Our weekly, internal newsletter goes out to the entire company on Monday mornings and a recurring section in it is called “Who’s in HQ”. This section has pictures of all the remotees who are visiting either our New York or our Cambridge office that week. This gives our in-office employees visibility into the visiting remotees so they can be sure to take the opportunity to meet them.","spans":[{"start":0,"end":11,"type":"strong"}]},{"type":"heading3","text":"Remote-inclusive Programs","spans":[]},{"type":"paragraph","text":"While most of our teams at DigitalOcean are comprised of both in-office and remote employees, there is definite value in giving teams the opportunity to get together in person at different times during the year. Here are the processes we have in place to ensure teams get face time:","spans":[]},{"type":"list-item","text":"DO Docking In: The \"DO Docking In\" program supports remote employees joining the rest of their team in the office all at once. We arrange leadership meetings, team dinners and activities, reserve workspace or conference room space, and host a Meet and Treat (a midday gathering between in-office employees and remotees) for them. In addition, teams also have the opportunity to participate in facilitation or meeting preparation by our internal Talent Development Team to serve the team’s goals for getting everyone together in person.","spans":[{"start":0,"end":13,"type":"strong"}]},{"type":"list-item","text":"DO Out To Sea: Considering that we have employees dispersed domestically and internationally, some teams prefer to have their entire team get together in locations more local to where they work remotely from. This program is essentially the same as DO Docking In except that any team member who works from the office will fly out to meet with their remote team members. We help to arrange all of the offsite logistics and activities to support that team’s objectives for the visit.","spans":[{"start":0,"end":13,"type":"strong"}]},{"type":"list-item","text":"DO Local: This program is the newest addition to our remote experience effort. This program parallels all major events or activities that are occurring in our office for our remotees. An example of this is our holiday party: we host our holiday party in New York and give the option for remotees who work in near proximity to other remotees to get together locally and enjoy a DigitalOcean sponsored dinner.","spans":[{"start":0,"end":8,"type":"strong"}]},{"type":"list-item","text":"Shark Week: Shark Week is our annual family gathering. Essentially it’s structured like an internal conference providing team time, workshops, team activities, shared meals, and an entire week of quality time together. DigitalOcean covers the flights and the accommodations for all the remotees to join us for that week.","spans":[{"start":0,"end":10,"type":"strong"}]},{"type":"heading3","text":"Perks for Remotees","spans":[]},{"type":"paragraph","text":"While some companies see working from home as a perk in and of itself, we recreate many of the in-office perks and make them available to remotees. This is key to building a cohesive company culture and experience, and one where remotees feel engaged with the company at large.","spans":[]},{"type":"paragraph","text":"Our remotes are able to participate in our workstation program, where they get access to different monitors, mouse/keyboards, and trackpads for their home offices, as well as credit up to $100 for headphones of their choice. The equivalent of our commuter benefit for in-house employees is providing remotes a credit toward the cost of either their monthly internet bill or their monthly coworking space membership. Additionally, remotes can opt into a monthly subscription snack box (because snacks are awesome!). Finally, DO covers travel and per diem costs, and provides accommodation at our corporate apartments for remotee visits to HQ.","spans":[]},{"type":"heading3","text":"\"Love is What Makes Us Great\"","spans":[]},{"type":"paragraph","text":"DigitalOcean’s employee experience programs strives to be inclusive of all of our employees. We do this by keeping both the needs of in-office and remote employees in mind, and by adjusting our programs as needed to ensure they can change and scale with our growing organization. Removing obstacles to communication between people in our offices and remotes is essential for building cohesion across teams and to help everyone be the most productive employee they can be, no matter where they’re located.","spans":[]},{"type":"heading4","text":"Apply For a Job @ DO","spans":[{"start":0,"end":20,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/company/careers/#current-openings"}}]},{"type":"paragraph","text":"Amanda Brazzell is DigitalOcean’s Office Experience Team Lead. She has helped build an effective Remote Experience program that drives dispersed employee engagement and job satisfaction. Amanda is a California native who moved to NYC without having ever visited the city before, and has been at DO since 2015.","spans":[{"start":0,"end":309,"type":"em"}]}],"blog_post_date":"2018-03-14","tags":[{"tag1":{"tag":"Culture","_linkType":"Link.document","_meta":{"uid":"culture"}}}],"_meta":{"uid":"how-we-support-remote-employees-at-digitalocean"}}},{"node":{"author":{"_linkType":"Link.document","author_name":"Andrew Starr-Bochicchio","author_image":null,"_meta":{"uid":"asb"}},"blog_header_image":{"dimensions":{"width":784,"height":418},"alt":"Two hands doing a high five illustration","copyright":null,"url":"https://images.prismic.io/www-static/927dd10154d9cbfe5c4578de0d408bb1797bb471_developer_advocates_blog.png?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"Introducing Community Doers: March Edition","spans":[]}],"blog_post_content":[{"type":"paragraph","text":"Here at DigitalOcean one of our core values is \"our community is bigger than just us\". From our support of the broader open source community to making our tutorials as platform agnostic as possible, we believe that contributing knowledge and resources to the community benefits not just ourselves but all members – past, present, and future.","spans":[{"start":155,"end":164,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/tutorials"}}]},{"type":"paragraph","text":"We never could have anticipated the amazing amount of support we've received in return. You’ve built open source tools using our API, hosted Meetups across the globe, shared your DigitalOcean stories, and so much more. We wouldn’t be where we are today without you.","spans":[{"start":101,"end":118,"type":"hyperlink","data":{"link_type":"Web","url":"https://developers.digitalocean.com/libraries/"}},{"start":134,"end":148,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.meetup.com/pro/digitalocean/"}},{"start":167,"end":199,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/customers/"}}]},{"type":"paragraph","text":"We're now six years into this journey and want to start recognizing our members more regularly. So today we are excited to highlight some of our most active Community contributors—our Doers!","spans":[{"start":184,"end":189,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community#do-ers"}}]},{"type":"heading3","text":"Marko Mudrinić (@xmudrii)","spans":[]},{"type":"paragraph","text":"It’s hard to overstate just how lucky we are to have people like Marko in our Community; he’s an all around rockstar whose contributions span from ocean to ocean. Marko is one of the most prolific users on our Community Q&A platform, where he helps users learn about and build on DigitalOcean. He’s written tutorials on topics like Prometheus and Go, but also puts that knowledge into practice. He is the most active contributor to doctl, our open source command line interface, and has worked extensively on DigitalOcean support in Kubicorn to help users get up and running with Kubernetes.","spans":[{"start":65,"end":70,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/users/xmudrii?primary_filter=tutorials"}},{"start":210,"end":232,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/questions"}},{"start":432,"end":437,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/digitalocean/doctl"}},{"start":533,"end":541,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/kris-nova/kubicorn"}}]},{"type":"heading3","text":"Mateusz Papiernik (@maticomp)","spans":[]},{"type":"paragraph","text":"Mateusz's passion for giving back to the Community inspires us. He has been sharing his technical expertise with us for many years, which you can enjoy in the dozens of tutorials he has published on topics from ProxySQL to Nginx optimization. With even more in the works, he has already helped hundreds of thousands of readers. His genuine enthusiasm and drive to aid others shines through in his writing and his collaboration with our editorial team.","spans":[{"start":0,"end":9,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/users/mati"}}]},{"type":"heading3","text":"Peter Hsu (@peterdavehello)","spans":[]},{"type":"paragraph","text":"Peter is an open source enthusiast who is always going above and beyond. He has traveled across Taiwan to share DigitalOcean with his community—from COSCUP in Taipei to MOPCON in Kaohsiung. As the maintainer of the CDNJS (a free, public, and open-source CDN service), he helps to power millions of websites across the globe. Closer to home, he is an organizer of the DigitalOcean Meetup group in Hsinchu, Taiwan, which is quickly approaching 600 members. With nine events in 2017—including the first Hacktoberfest event of the year—it’s one of our most active Meetups!","spans":[{"start":0,"end":5,"type":"hyperlink","data":{"link_type":"Web","url":"https://twitter.com/peterdavehello"}},{"start":367,"end":411,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.meetup.com/DigitalOceanHsinchu/"}}]},{"type":"paragraph","text":"Marko, Mateusz, and Peter exemplify some of the best qualities found in our community. All three share our enthusiasm for open source and passion for knowledge-sharing. But they’re not alone! We look forward to recognizing more of our amazing Community members in the coming months.","spans":[]},{"type":"paragraph","text":"Are you interested in getting more involved in the DigitalOcean Community? Here are a few places to start:","spans":[]},{"type":"list-item","text":"Share a project that you’ve built with our API.","spans":[{"start":0,"end":15,"type":"hyperlink","data":{"link_type":"Web","url":"http://www.digitalocean.com/community/projects"}}]},{"type":"list-item","text":"Share your knowledge in our Community Q&A section.","spans":[{"start":28,"end":49,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/questions"}}]},{"type":"list-item","text":"Join our Write for DigitalOcean program and contribute to our library of tutorials.","spans":[{"start":9,"end":39,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/write-for-digitalocean"}}]},{"type":"list-item","text":"Get involved in your local DigitalOcean Meetup or start your own.","spans":[{"start":21,"end":46,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.meetup.com/pro/digitalocean/"}},{"start":50,"end":64,"type":"hyperlink","data":{"link_type":"Web","url":"https://do.co/cometomycity"}}]}],"blog_post_date":"2018-03-07","tags":[{"tag1":{"tag":"Community","_linkType":"Link.document","_meta":{"uid":"community"}}}],"_meta":{"uid":"introducing-community-doers-march-edition"}}},{"node":{"author":{"_linkType":"Link.document","author_name":"Hollie Haggans","author_image":{"dimensions":{"width":400,"height":400},"alt":"Hollie Haggans","copyright":null,"url":"https://images.prismic.io/www-static/7793109e3fed5f875dc50b8866c8e631bd51d5b5_0bfbced-1.jpg?auto=compress,format"},"_meta":{"uid":"hollie_haggans"}},"blog_header_image":{"dimensions":{"width":1500,"height":800},"alt":"water deep end podcast illustration","copyright":null,"url":"https://images.prismic.io/www-static/aad9e02a46d845625cadb57d1006373a36251380_deepend_blogsize.png?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"The Deep End Podcast Ep. 14: Making Sense of It All with Attentive","spans":[]}],"blog_post_content":[{"type":"paragraph","text":"There’s such a thing as “too much information”, especially for companies scaling out their sales operations. That’s why Attentive was born in 2015: to help sales teams make their increasing pipelines simpler to manage. Indeed, the small, Portugal-based team is itself focused on scaling, having participated in accelerator programs like Techstars.","spans":[]},{"type":"paragraph","text":"In this episode, Attentive founder and CTO Pedro Araújo talks about what it takes to build a tech product from the ground up. Discover their approach to running an engineering team, from adopting new open source technologies, to onboarding junior developers and learning about cloud infrastructure.","spans":[]},{"type":"paragraph","text":"Subscribe to the The Deep End Podcast on iTunes and Spotify, or listen to the latest episode on SoundCloud below:","spans":[{"start":41,"end":47,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.google.com/url?q=https://itunes.apple.com/us/podcast/the-deep-end-podcast-by-digitalocean/id1238518419?mt%3D2&amp;sa=D&amp;ust=1515098984068000&amp;usg=AFQjCNH3nSy_ALB5aUIiKt0otKyITr8RkQ"}},{"start":52,"end":59,"type":"hyperlink","data":{"link_type":"Web","url":"https://attentive.us/index.html"}}]},{"type":"paragraph","text":"Hollie Haggans heads up Global Partnerships for DigitalOcean’s Hatch program. She is passionate about startups and cold brew coffee. Get in touch with questions at hatch@digitalocean.com.","spans":[{"start":0,"end":187,"type":"em"},{"start":164,"end":186,"type":"hyperlink","data":{"link_type":"Web","url":"mailto:hatch@digitalocean.com"}}]}],"blog_post_date":"2018-03-01","tags":[{"tag1":{"tag":"Community","_linkType":"Link.document","_meta":{"uid":"community"}}}],"_meta":{"uid":"deep-end-podcast-attentive"}}},{"node":{"author":{"_linkType":"Link.document","author_name":"Ben Uretsky","author_image":{"dimensions":{"width":197,"height":197},"alt":"Ben Uretsky","copyright":null,"url":"https://images.prismic.io/www-static/9c33dc1465bf14e543a18d402452f77970d3b4c1_aaeaaqaaaaaaaa3gaaaajdbmyjgxnzvjlti2zwutnddlzi04mgyxltlhyjfhotnlytgzna.jpg?auto=compress,format"},"_meta":{"uid":"ben_uretsky"}},"blog_header_image":null,"blog_headline":[{"type":"heading1","text":"Onward and Upward Together","spans":[]}],"blog_post_content":[{"type":"paragraph","text":"As we turn the page on 2017, I’m proud to share that DigitalOcean had another tremendous year of rapid growth and strong profitability, a combination which few tech companies have achieved at our scale. We are rapidly approaching $200M in annual recurring revenue and are looking forward to celebrating our 6th anniversary next month. The key to our success is our disruptive offering — a cloud computing platform that is engineered with simplicity at the core — and our vibrant, growing developer community. We see a substantial and growing market need, and believe that DigitalOcean is perfectly positioned to lead this category in the years ahead.","spans":[]},{"type":"paragraph","text":"While we have enjoyed great success since I co-founded the company in 2012, I believe we have barely scratched the surface. I’ve been reflecting on our next phase of growth and what it will take to reach our full potential, and it’s become clear to me that now is the right time to identify my successor as CEO of DigitalOcean.","spans":[]},{"type":"paragraph","text":"I recognize where my strengths lie and where others will have more experience to give. With all of the exciting opportunities in front of us, including the possibility of an IPO — a long-term goal we have frequently discussed internally — I feel a new seasoned executive will be best to guide the company through the next chapter of our journey. We have engaged a leading search firm to help us find a great leader. One that will be inspirational, able to scale our operations beyond 1,000 people, evolve our go-to-market strategy, and help us reach our audacious vision. Someone who can build a global brand that could potentially help us become a publicly-traded company with the simplest cloud platform for developers to run applications of any size.","spans":[]},{"type":"paragraph","text":"Once we’ve identified this person, I’ll be taking on a new role as Chairman of the Board, which will allow me to support our company vision and strategy while working closely with the new CEO.","spans":[]},{"type":"paragraph","text":"When Moisey, Mitch, Alec, Jeff, and I started the company in 2012, we left our families and friends in New York to join the Techstars program in Colorado. We slept on bunk beds and worked relentlessly pretty much every day until midnight. Finding product-market fit didn’t happen overnight and it took months of iterating and refining our product offering. We had 400 users when we graduated from the Techstars program, and while we knew we had developed something special, trying to raise venture capital at that time was a real uphill battle. We heard many “no’s” from investors along the way, but believed in our long-term vision.","spans":[]},{"type":"paragraph","text":"After returning to a small office in New York City, we launched the first SSD virtual machine service with unprecedented price-to-performance on January 15th, 2013. We instantly went from signing up a couple of new users per day to more than 100. I vividly remember sitting at our kitchen table with the co-founding team, having to manually install SSDs into our servers to keep up with the demand. It’s been a humbling journey to say the least, and I could not have imagined the growth, success, and scale we would achieve only five years later. DigitalOcean has accomplished so many incredible things over the years and I know that our product, people, and operations have never been stronger.","spans":[]},{"type":"paragraph","text":"Aug 9, 2012 - Mitch, Alec, Moisey, me and Jeff walking on stage for Techstars demo day","spans":[]},{"type":"image","url":"https://images.prismic.io/www-static/935995c0c9d0359ffca3dccb6b5395f0bb745e7b_image.png?auto=compress,format","alt":null,"copyright":null,"dimensions":{"width":960,"height":960}},{"type":"paragraph","text":"We have raised $123M from some of the world’s leading VCs that share our belief that the developer will lead the continuing technology revolution. Today, we have a team of 400-plus employees around the world with growing offices in New York, Cambridge, Mass., and Bangalore. Our user base has grown with us and last year we crossed one million users from almost every country in the world. Over the last few years, our product went from a single offering, Droplet, to a complete cloud platform. We are extremely proud to be one of the largest and fastest-growing cloud providers in the world.","spans":[]},{"type":"paragraph","text":"I’ve always said that putting the business first and doing what is right for DigitalOcean is my highest priority. I’m making this decision knowing that DigitalOcean’s best days are still to come. We have never been in a better position to begin this transition. We have a great leadership team in place, the business has very strong momentum, and we are a clear leader in our industry. I’m confident that our new CEO will be able to rapidly build on this strong foundation.","spans":[]},{"type":"paragraph","text":"No matter who our next leader is, one thing that definitely won’t change is our unwavering commitment to delivering the industry’s simplest cloud computing platform, while building one of the world’s largest developer communities. All of the core elements that have contributed to our success — the powerful simplicity of the product, the dedication and talent of the team, and the passionate community of developers that we serve — will remain the same.","spans":[]},{"type":"paragraph","text":"I am tremendously excited about DigitalOcean’s future and the milestones ahead. I want to thank everyone who has helped turn our dream and passion into reality. The skills I have learned and friendships I have made while helping to build this company will last me a lifetime, for which I will be forever grateful and I couldn’t be more excited for the journey ahead.","spans":[]},{"type":"paragraph","text":"Onward and upward together,","spans":[]},{"type":"paragraph","text":"Ben Uretsky","spans":[]}],"blog_post_date":"2018-02-22","tags":[{"tag1":{"tag":"News","_linkType":"Link.document","_meta":{"uid":"news"}}}],"_meta":{"uid":"onwardandupwardtogether"}}},{"node":{"author":{"_linkType":"Link.document","author_name":"Stephanie Morillo","author_image":{"dimensions":{"width":188,"height":188},"alt":"Stephanie Morillo","copyright":null,"url":"https://images.prismic.io/www-static/88c5ec7b08345ce34cc82af6a32619bee69b1dae_stephanie_morillo-abc491ab.png?auto=compress,format"},"_meta":{"uid":"stephanie_morillo"}},"blog_header_image":{"dimensions":{"width":784,"height":418},"alt":"BDT letters illustration ","copyright":null,"url":"https://images.prismic.io/www-static/40637c77831e8024beeb48d04f3052a0c9d6fd89_bdt-blog.png?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"Meet the DigitalOcean Brand Design Team","spans":[]}],"blog_post_content":[{"type":"paragraph","text":"As a company, we’ve always cared about contributing to developer culture in an authentic way, and one of the ways we do that is by adding moments of visual delight to everything we do, whether it's a Community tutorial, an interaction in the control panel, or a T-shirt at a conference. That is why, from the very beginning, DigitalOcean put an emphasis on building out a Brand Design team comprised of not just proficient graphic designers, but brilliant illustrators as well.","spans":[{"start":200,"end":218,"type":"hyperlink","data":{"link_type":"Web","url":"http://www.digitalocean.com/community"}},{"start":262,"end":285,"type":"hyperlink","data":{"link_type":"Web","url":"http://store.digitalocean.com/"}}]},{"type":"paragraph","text":"The Brand Designers at DigitalOcean are challenged every single day to transform extremely technical and esoteric content into approachable and friendly touch points. Lead Visual Designer Masami Kubo says, “We believe these technologies should be accessible to everyone, and a part of that is acknowledging and celebrating the diverse and quirky personality behind the humans that build these amazing things. Visuals and branding throughout the cloud computing industry are often disregarded or unconsidered, so it’s a unique opportunity for us as designers to bring that culture to life.”","spans":[{"start":0,"end":35,"type":"hyperlink","data":{"link_type":"Web","url":"https://dribbble.com/digitalocean"}}]},{"type":"paragraph","text":"We interviewed DO’s Brand (Visual) Designers Kasia Bojanowska, Masami Kubo, Pat Raubo, and Alex Mostov to learn more about their design process, how they illustrate technical concepts, and where they turn to for inspiration.","spans":[{"start":45,"end":61,"type":"hyperlink","data":{"link_type":"Web","url":"https://dribbble.com/kabojanowska"}},{"start":63,"end":74,"type":"hyperlink","data":{"link_type":"Web","url":"https://dribbble.com/masamikubo"}},{"start":76,"end":85,"type":"hyperlink","data":{"link_type":"Web","url":"https://dribbble.com/patraubo"}},{"start":91,"end":102,"type":"hyperlink","data":{"link_type":"Web","url":"https://dribbble.com/amostov"}}]},{"type":"heading4","text":"How do you approach technical topics as illustrators?","spans":[]},{"type":"paragraph","text":"Masami: We’ve been illustrating technical topics for years, so the challenge now is how to keep it fresh and relevant. However, if we push the imagery too conceptual or meta, we run the risk of none of it making any sense to our audience. My approach now is to identify the primary action or message behind complex concepts, and focus on making that one thing really clear. I like to start minimal, then add elements sparingly to not distract from the primary message.","spans":[]},{"type":"paragraph","text":"Alex: I came to the DigitalOcean team without much technical knowledge. In some ways I think this has actually been an advantage in creating conceptual illustrations. I create images that help me understand the concepts. I think and hope that inherently makes them more intuitive to others, too.","spans":[]},{"type":"heading4","text":"Where do you draw inspiration from for your designs?","spans":[]},{"type":"paragraph","text":"Kasia: When starting a new project I definitely try to spend a good chunk of time looking for inspirations. Google image search, Pinterest, Dribbble, Behance are all wonderful resources for that. We have a few shared pinterest boards with stuff we like. I also get really inspired when I see great work being made by others on our team.","spans":[]},{"type":"paragraph","text":"Pat: One of the benefits of working with a team of such enormously talented designers is that I draw inspiration from them and their work all the time. Masami and Kasia both do amazing work, and I’ve learned a great deal from both of them, as well as from Alex. I try to seek out inspiration from a number of things. Some have a pretty clear association with the kind of work we do at DO, like design and illustration done specifically for tech, but I also draw from editorial illustration, film, comics, and book covers, among other sources.","spans":[]},{"type":"paragraph","text":"Illustrations by Kasia Bojanowska, Patricia Raubo, & Alex Mostov","spans":[{"start":0,"end":64,"type":"em"}]},{"type":"image","url":"https://images.prismic.io/www-static/Nzg4N2NmNzgtNTUyMS00OWIyLTlhNzYtZTU3YmE1M2NiM2I0_bdt-socialmedia.gif?auto=compress,format","alt":"Illustrations by Kasia Bojanowska, Patricia Raubo, &amp; Alex Mostov","copyright":null,"dimensions":{"width":1024,"height":512}},{"type":"heading4","text":"How do you come up with new ideas for similar technical topics?","spans":[]},{"type":"paragraph","text":"Masami: I think it actually helps for imagery with similar technical topics to have a common thread of imagery, so as to build a visual association. We have strict style guides for most of our platforms and campaigns, but some of these style guides allow for permutation in aesthetics to avoid looking too repetitive over time.","spans":[]},{"type":"paragraph","text":"Pat: I like to first do some research to understand the basic concept of what I’m going to illustrate, and then add to my notes with simple schematics and/or sketches to see if there’s anything I can pull from those for the final visuals.","spans":[]},{"type":"paragraph","text":"Alex: I will often try to think about representing a topic in a different kind of space or world. For examples if I create an image for a topic in a 2D space, the next time I will try to figure out how I could represent that same concept in a 3D space or from a different perspective.","spans":[]},{"type":"heading4","text":"What is one of your favorite projects you’ve worked on at DO thus far?","spans":[]},{"type":"paragraph","text":"Pat: I worked on a series of illustrations for our Employee Handbook, which meant drawing a team of cute sea creatures in an office setting. I really enjoyed working on that project, and it was great to see people respond to the illustrations in such a positive way.","spans":[]},{"type":"paragraph","text":"Masami: My favorite projects are often also the most challenging ones. And usually the more ambitious they are, the more compromises on vision I’ve had to make. But some of the most exciting stuff I’ve worked on here is the art direction and design of our office spaces, in collaboration with architects, fabricators, and our People team. I was expected to transform the space into a branded and navigable experience. It’s still a work in progress, but I love the challenge of designing for physical spaces.","spans":[]},{"type":"paragraph","text":"Murals by Alex Mostov & Masami Kubo","spans":[{"start":0,"end":35,"type":"em"}]},{"type":"image","url":"https://images.prismic.io/www-static/MjA4NWI0ZTYtZDU2Yi00YzQ3LWJjODctN2Q3NGE2ZDRjZjcw_bdt-office.gif?auto=compress,format","alt":"Murals by Alex Mostov &amp; Masami Kubo","copyright":null,"dimensions":{"width":1024,"height":512}},{"type":"heading4","text":"What was one of the most challenging projects you’ve worked on at DO?","spans":[]},{"type":"paragraph","text":"Kasia: Redesigning the DO logo was definitely the biggest challenge for me. The process was pretty high pressure but I was allowed enough time to really let myself explore and dig in deep. In this case having a supportive team to brainstorm and keep motivation high through all of the iterations was essential.","spans":[]},{"type":"paragraph","text":"Masami: We did a design refresh of the marketing site a year ago, and it went through a lot of changes and push backs. The task was simple—refresh the designs and clean up the performance—but it involved approval from every department and stakeholder in the company. I was doing everything from art direction, web design layouts, and spot illustration. I learned a ton about project management and designing within web accessibility standards, thanks to Una Kravets. I felt creatively drained after the project was finished, and didn’t think it would be possible to revisit it with new ideas. Surprisingly, I am now leading a complete design overhaul for the marketing site, and I feel more equipped than ever to tackle all the challenges and make something more beautiful and smart than last year.","spans":[]},{"type":"image","url":"https://images.prismic.io/www-static/MTVjMDg5OTEtYWM3YS00ZWE4LTkwM2UtNjliYTkxMTNiMzM5_bdt-website.gif?auto=compress,format","alt":"Illustration by Masami Kubo","copyright":null,"dimensions":{"width":1024,"height":512}},{"type":"heading4","text":"Sometimes you create visual assets that are targeted at a very specific audience, and you have to balance things like humor with cultural sensitivities. How does localization factor into your designs?","spans":[]},{"type":"paragraph","text":"Masami: Part of our job is being aware and sensitive to any imagery that might have harmful or negative impacts to our community. We are fortunate to have a diverse employee base that cares about these things, so the more opinions we can gather, the better. We try to treat branding the same in any other countries as we do here. However, we do want to highlight our growing global coverage, so one way we approach this is to celebrate the unique design culture local to these countries. For example, the Frankfurt datacenter launch campaign featured designs inspired by Bauhaus Constructivist design. For the Bangalore datacenter launch, we created stylized renditions of local architecture. Being a developer from another country doesn’t necessarily mean you have vastly different tastes or interests, so it’s important for companies and designers to address these things authentically.","spans":[]},{"type":"heading4","text":"How do you create different kinds of content while maintaining brand consistency?","spans":[]},{"type":"paragraph","text":"Kasia: For illustrations, we keep a consistent color palette. We have a list of prompts to help us throughout the process, but we do not have a very strict style guide when it comes to editorial illustration. We tend to have more fun and variation with all of our community and conference designs. However, we are definitely more strict about stylistic consistency when it comes to our website design.","spans":[]},{"type":"paragraph","text":"Like much of DO, the Brand Design team is distributed across the world. What systems or processes do you have in place that allow for open communication and collaboration?","spans":[]},{"type":"paragraph","text":"Pat: One of our team members, Kasia, is based in Poland, so we have a time difference of six hours between us. We started to make a habit of doing our daily stand ups and critiques early in the day to make sure we were all able to benefit from them. We have a private Slack channel which we use to stay in contact, to brainstorm, and to share ideas on projects.","spans":[]},{"type":"heading4","text":"Where do you see the DO brand going?","spans":[]},{"type":"paragraph","text":"Masami: When I first joined DigitalOcean in 2014, the company was breaking into the cloud computing world by differentiating itself as friendly and accessible. At the time that meant being extra illustrative and bubbly with our designs. We wanted to let the developer community know that their content and culture deserves this kind of attention. That attitude and core value is still what drives every decision, but our aesthetics have matured and evolved just as our products and features have grown. The brand now has a diverse voice ranging from playful and young to mature and sophisticated, all under the same goal of enabling the developer community. I think this range directly reflects the diversity of users we want to speak to.","spans":[]},{"type":"paragraph","text":"Alex: I really like DO’s brand evolution because I feel like the changes are made based on need and effectiveness rather than just trying to make a splash. I think the brand will continue to change in this deliberate way as the community and product develop. I also hope it will always maintain the sense of playfulness that I think makes DO special.","spans":[]},{"type":"heading4","text":"What is your best advice for designers just starting out?","spans":[]},{"type":"paragraph","text":"Pat: I would encourage aspiring creative folks of any stripe to always stay curious (as cliched as it may sound, it’s advice I’ve followed that I feel has served me well) and seek out inspiration from a range of sources (museums, books, online communities, whatever floats your boat!), because you never know what’s going to be the seed that becomes the root of a fantastic idea. Feeding your mind will give you perspective and enrich your work.","spans":[]},{"type":"paragraph","text":"That said, don’t wait around for inspiration to strike, either! It’s best not to be too precious about your work. Just sit down, make the thing, and make it to suit your standards. Then, when you think it’s done, work on it just a little bit more. Keep learning, and push yourself a bit more with each new project.","spans":[]},{"type":"paragraph","text":"Do you enjoy our designers' creations? Download desktop wallpapers from some of their favorite illustrations.","spans":[{"start":39,"end":66,"type":"hyperlink","data":{"link_type":"Web","url":"http://do.co/wallpapers"}}]}],"blog_post_date":"2018-02-20","tags":[{"tag1":{"tag":"Culture","_linkType":"Link.document","_meta":{"uid":"culture"}}},{"tag1":{"tag":"Design","_linkType":"Link.document","_meta":{"uid":"design"}}}],"_meta":{"uid":"meet-the-digitalocean-brand-design-team"}}},{"node":{"author":{"_linkType":"Link.document","author_name":"Mark Drake","author_image":null,"_meta":{"uid":"mark_drake"}},"blog_header_image":{"dimensions":{"width":784,"height":418},"alt":"Paper boat floating on sharp paper waves illustration with words Write for DOnations beta","copyright":null,"url":"https://images.prismic.io/www-static/e97168832f625b0bc23ffb40fc54ecfb84646ea7_writefordonations_blog.png?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"Make a Lasting Impact with \"Write for DOnations\"","spans":[]}],"blog_post_content":[{"type":"paragraph","text":"“Our community is bigger than just us” — As DigitalOcean (DO) employees, we aim to keep this value at the front of our minds in all our work. Since the company was founded in 2012, we’ve worked hard to build a vibrant, engaging Community where everybody from beginners to professionals can learn from one another about working in the cloud.","spans":[{"start":228,"end":237,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community"}}]},{"type":"paragraph","text":"It’s important to us that the Community emulates the best that tech has to offer by serving as a welcoming place where members can share their ideas and experiences. This is what led us to introduce the Write for DigitalOcean program. Write for DO gives Community members an opportunity to build their brand, develop their writing skills, and get paid for contributing to DigitalOcean’s collection of tutorials on open-source software deployment, configuration, and development.","spans":[{"start":203,"end":225,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/write-for-digitalocean"}}]},{"type":"paragraph","text":"We’re always looking for new ways to give back to the Community. To that end, we’re excited to announce some updates to the Write for DigitalOcean program and reintroduce it as “Write for DOnations” (currently in beta — the full program launch is coming later this year).","spans":[]},{"type":"paragraph","text":"There are two main changes that we are excited to share:","spans":[]},{"type":"list-item","text":"DigitalOcean will match the payout to Community authors in the form of a donation to a tech-focused nonprofit, which they can choose from a predetermined list. We hope to add more organizations to this list over time, but as of the beta launch the available organizations fall into the following categories: Free and Open Source, Tech Education, Diversity and Inclusion in Tech, and organizations promoting a Free and Open Internet.","spans":[{"start":308,"end":328,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.brightfunds.org/funds/foss-nonprofits"}},{"start":330,"end":344,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.brightfunds.org/funds/tech-education"}},{"start":346,"end":377,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.brightfunds.org/funds/diversity-in-tech"}},{"start":409,"end":431,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.brightfunds.org/funds/open-internet-free-speech"}}]},{"type":"list-item","text":"The typical payout for new tutorial content from Community authors will increase to $300, to be paid either via PayPal or as DO credit.","spans":[]},{"type":"paragraph","text":"The Write for DOnations beta program will follow the same editorial structure as Write for DO:","spans":[]},{"type":"list-item","text":"Anyone interested in becoming a DO Community author can apply by submitting a sample tutorial which showcases their ability to explain technical concepts to others.","spans":[{"start":56,"end":61,"type":"hyperlink","data":{"link_type":"Web","url":"https://do.co/w4do"}}]},{"type":"list-item","text":"One of DigitalOcean’s editors will reach out to approved applicants and the two will work together to find a topic for an original, first-run article that would be exciting to the author and valuable to the broader DO Community.","spans":[]},{"type":"list-item","text":"The author will write and submit their first draft, then collaborate one-on-one with their editor to revise their work to align with the DigitalOcean Style Guide.","spans":[{"start":137,"end":161,"type":"hyperlink","data":{"link_type":"Web","url":"https://do.co/style"}}]},{"type":"paragraph","text":"At the end of this review process, the author’s tutorial will be published on the Community website and they will receive their payout. The author will then get to choose the nonprofit(s) that will receive their matching donation. Donations will be processed through Bright Funds, and authors’ donations can either go to a single tech-focused nonprofit or be evenly split between a group of nonprofits that share similar missions. Please note that the charitable contributions made by DigitalOcean through this program are not tax-deductible to the authors.","spans":[]},{"type":"paragraph","text":"Since its launch, the Write for DigitalOcean program has allowed authors to share their diverse technical knowledge with the world while also improving their writing skills and growing their personal brand. Our team is always on the lookout for fresh content our community will love. To get a sense of which tutorial topics we’re particularly interested in, take a look at our suggested topics page.","spans":[{"start":377,"end":398,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/tutorials/suggested-topics-for-tutorials"}}]},{"type":"paragraph","text":"Although Write for DOnations is still in development, we’re excited to help our Community authors make a real impact by donating to fantastic organizations that are working to shape the world of tech for the better.","spans":[]},{"type":"paragraph","text":"We are actively seeking feedback to inform the full release of the the new Write for DOnations program. Check out the program’s FAQ page for more details, and please share any questions or comments about the Write for DOnations beta launch in the comments below or reach out to us directly at writefordonations@digitalocean.com.","spans":[{"start":114,"end":136,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/tutorials/write-for-donations-faq"}},{"start":293,"end":327,"type":"hyperlink","data":{"link_type":"Web","url":"mailto:writefordonations@digitalocean.com"}}]}],"blog_post_date":"2018-02-14","tags":[{"tag1":{"tag":"Community","_linkType":"Link.document","_meta":{"uid":"community"}}}],"_meta":{"uid":"write-for-donations"}}},{"node":{"author":{"_linkType":"Link.document","author_name":"Hollie Haggans","author_image":{"dimensions":{"width":400,"height":400},"alt":"Hollie Haggans","copyright":null,"url":"https://images.prismic.io/www-static/7793109e3fed5f875dc50b8866c8e631bd51d5b5_0bfbced-1.jpg?auto=compress,format"},"_meta":{"uid":"hollie_haggans"}},"blog_header_image":{"dimensions":{"width":784,"height":418},"alt":"Woman interviewing Man with clouds illustration","copyright":null,"url":"https://images.prismic.io/www-static/e2998af44cd18a7ad05e9dae5e714793557b3ddb_hatchpodcast_socialillo_blog_pat.png?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"The Deep End Podcast Ep #13: From Prototype to Internet of Things with Muzzley","spans":[]}],"blog_post_content":[{"type":"paragraph","text":"A vision, a small prototype, and a PowerPoint presentation: that’s how Muzzley, a platform for interacting between Internet of Things (IoT) devices, was born three years ago. Today the Muzzley team works to solve a pain point for smart home consumers: managing their IoT devices from one interface, with minimum hassle. But they also place importance on transparency, privacy, and protecting their customers’ data.","spans":[{"start":71,"end":78,"type":"hyperlink","data":{"link_type":"Web","url":"https://muzzley.com"}}]},{"type":"paragraph","text":"In this episode, Muzzley co-founders, Domingo Bruges and Sasha Dewitt, discuss how Muzzley’s tech stack evolved to support a product that integrates with different vendors. They share insight into how they manage the data generated by consumer IoT devices, and how they approach consumer privacy and data production.","spans":[]},{"type":"paragraph","text":"Subscribe to the The Deep End Podcast on iTunes, and listen to the latest episode on SoundCloud below:","spans":[{"start":0,"end":47,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.google.com/url?q=https://itunes.apple.com/us/podcast/the-deep-end-podcast-by-digitalocean/id1238518419?mt%3D2&amp;sa=D&amp;ust=1515098984068000&amp;usg=AFQjCNH3nSy_ALB5aUIiKt0otKyITr8RkQ"}}]},{"type":"paragraph","text":"Hollie Haggans heads up Global Partnerships for DigitalOcean’s Hatch program. She is passionate about startups and cold brew coffee. Get in touch with questions at hatch@digitalocean.com.","spans":[{"start":0,"end":187,"type":"em"},{"start":164,"end":186,"type":"hyperlink","data":{"link_type":"Web","url":"mailto:hatch@digitalocean.com"}}]}],"blog_post_date":"2018-02-12","tags":[{"tag1":{"tag":"Community","_linkType":"Link.document","_meta":{"uid":"community"}}}],"_meta":{"uid":"deep-end-podcast-muzzley"}}},{"node":{"author":{"_linkType":"Link.document","author_name":"Reynold Harbin","author_image":{"dimensions":{"width":1606,"height":1437},"alt":"Reynold Harbin","copyright":null,"url":"https://images.prismic.io/www-static/207f4345a91f3cff367efb169c13549666f7027f_image-uploaded-from-ios--1--1.jpg?auto=compress,format"},"_meta":{"uid":"reynold_harbin"}},"blog_header_image":{"dimensions":{"width":784,"height":418},"alt":null,"copyright":null,"url":"https://images.prismic.io/www-static/8a7dd1f9-c1cb-4204-ade4-aa4451367329_droplet_comparison_blog.png?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"A Practical Droplet Performance Comparison","spans":[]}],"blog_post_content":[{"type":"paragraph","text":"Benchmarks are a common way to measure and compare the performance of cloud compute servers. While standardized benchmarks are useful for establishing a consistent, broad set of comparison metrics, it can be useful and more practical to compare the performance of the actual tasks you run most often on your servers as well.","spans":[]},{"type":"paragraph","text":"For example, how much time could you save when running your app's automated test scripts if you used a more powerful cloud server?  ","spans":[]},{"type":"paragraph","text":"We compared the performance of Standard and Optimized Droplets when doing just this. Specifically, we used the basic React Boilerplate app, which includes a comprehensive set of testing scripts covering 99% of the project. Because the tests are CPU-intensive, we chose test execution time as our comparison metric for the two different Droplet configurations.","spans":[{"start":117,"end":138,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/react-boilerplate/react-boilerplate"}}]},{"type":"heading3","text":"Server Setup and Testing Methodology","spans":[]},{"type":"paragraph","text":"For the default environment, we used a Standard $40 Droplet, which is configured with 4 vCPUs (Intel Xeon CPU E5-2650L v3 @ 1.80GHz), 8GB of RAM, and 160GB of SSD storage.","spans":[{"start":39,"end":59,"type":"strong"}]},{"type":"paragraph","text":"For the comparison environment, we used an Optimized $40 Droplet, which is configured with 2 dedicated vCPUs (Intel Xeon CPU E5-2697A v4 @ 2.60GHz), 4GB of RAM, and 25GB of SSD storage.","spans":[{"start":43,"end":64,"type":"strong"}]},{"type":"paragraph","text":"Both Droplets were running Ubuntu 16.04, and we set both up using the following procedure.","spans":[]},{"type":"paragraph","text":"After initial setup to create a non-root user and basic firewall, we verified the CPU architecture using lscpu. We installed Node.js using the PPA to get a recent version of Node.js that includes npm, the Node.js package manager, which we needed to execute the test scripts. Finally, we installed React Boilerplate by cloning the react-boilerplate repository and running `npm run setup` to install its dependencies.","spans":[{"start":6,"end":19,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-16-04"}},{"start":125,"end":146,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/tutorials/how-to-install-node-js-on-ubuntu-16-04#how-to-install-using-a-ppa"}},{"start":330,"end":358,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/react-boilerplate/react-boilerplate"}}]},{"type":"paragraph","text":"At this point, we had everything we needed to run the tests. To measure the time it takes to execute them, we used the utility program time, which summarizes the time and system resource usage for a given program command.","spans":[]},{"type":"paragraph","text":"As a baseline, we first compared Droplet performance when running React Boilerplate's test suite with its default settings using  `time npm test`.","spans":[]},{"type":"paragraph","text":"Because npm uses a test framework that can use all available processors, we also ran a single CPU comparison to better understand the impact of CPU on performance. For the single CPU comparison, we ran `time npm test -- --runInBand` to force all of the automated tests to run sequentially. This test is relevant for applications that are not designed to use multiple CPUs, where a more powerful processor can improve performance.","spans":[]},{"type":"paragraph","text":"Additionally, we found that setting the number of worker nodes to match the number of vCPUs on the server yielded the fastest overall test execution time, so we compared the best case setup on both servers as well. For the vCPU-specific comparison, we ran `time npm test -- --maxWorkers=4` for the Standard Droplet (which has 4 vCPUs) and `time npm test -- --maxWorkers=2` for the Optimized Droplet (which has 2 vCPUs).","spans":[]},{"type":"paragraph","text":"We ran each of these tests five times on each server to look at the average execution time over a larger sample size.","spans":[]},{"type":"paragraph","text":"So, how did the Standard and Optimized Droplets perform?","spans":[]},{"type":"heading3","text":"Results","spans":[]},{"type":"paragraph","text":"Here's an example (truncated for length) of the output from time npm test on the Optimized Droplet:","spans":[]},{"type":"preformatted","text":"```[php]{`","spans":[]},{"type":"paragraph","text":"    > react-boilerplate@3.5.0 pretest /home/perfaccount/react-boilerplate","spans":[]},{"type":"paragraph","text":"    > npm run test:clean && npm run lint","spans":[]},{"type":"paragraph","text":"    [...]","spans":[]},{"type":"paragraph","text":"    ","spans":[]},{"type":"paragraph","text":"     PASS  app/containers/App/tests/index.test.js","spans":[]},{"type":"paragraph","text":"     PASS  app/containers/LocaleToggle/tests/index.test.js","spans":[]},{"type":"paragraph","text":"    [...]","spans":[]},{"type":"paragraph","text":"     PASS  app/containers/HomePage/tests/actions.test.js","spans":[]},{"type":"paragraph","text":"    ","spans":[]},{"type":"paragraph","text":"    Test Suites: 76 passed, 76 total  ","spans":[]},{"type":"paragraph","text":"    Tests:       289 passed, 289 total  ","spans":[]},{"type":"paragraph","text":"    Snapshots:   4 passed, 4 total  ","spans":[]},{"type":"paragraph","text":"    Time:        14.725s, estimated 33s  ","spans":[]},{"type":"paragraph","text":"    Ran all test suites.  ","spans":[]},{"type":"paragraph","text":"    ---------------------------------|----------|----------|----------|----------|----------------|","spans":[]},{"type":"paragraph","text":"    File                             |  % Stmts | % Branch |  % Funcs |  % Lines |Uncovered Lines |  ","spans":[]},{"type":"paragraph","text":"    ---------------------------------|----------|----------|----------|----------|----------------|","spans":[]},{"type":"paragraph","text":"    All files                        |      100 |      100 |      100 |      100 |                |  ","spans":[]},{"type":"paragraph","text":"     app                             |      100 |      100 |      100 |      100 |                |","spans":[]},{"type":"paragraph","text":"      configureStore.js              |      100 |      100 |      100 |      100 |                |","spans":[]},{"type":"paragraph","text":"    [...]","spans":[]},{"type":"paragraph","text":"      sagaInjectors.js               |      100 |      100 |      100 |      100 |                |","spans":[]},{"type":"paragraph","text":"    ---------------------------------|----------|----------|----------|----------|----------------|","spans":[]},{"type":"paragraph","text":"    ","spans":[]},{"type":"paragraph","text":"    real    0m22.380s  ","spans":[]},{"type":"paragraph","text":"    user    0m23.512s  ","spans":[]},{"type":"paragraph","text":"    sys    0m0.884s  ","spans":[]},{"type":"paragraph","text":"    `}```","spans":[]},{"type":"paragraph","text":"The output we’re interested in is `real` time, which is the actual elapsed wall-clock time it took to execute the tests. In this example, the test script completed in 22.380 seconds.","spans":[]},{"type":"paragraph","text":"These are our results showing the average execution time across multiple runs:","spans":[]},{"type":"image","url":"https://images.prismic.io/www-static/fc7ab68b-0232-4535-b6b5-c8b7f9aff083_Screen-Shot-2018-02-05-at-11.10.51-AM.png?auto=compress,format","alt":"average execution time","copyright":null,"dimensions":{"width":650,"height":231}},{"type":"paragraph","text":"The Optimized Droplet outperformed the Standard Droplet in all tests, but as we explain in the next section, this isn't the only factor to consider when choosing the right configuration for your use case.","spans":[]},{"type":"heading3","text":"Conclusions","spans":[]},{"type":"paragraph","text":"When comparing cloud servers with the goal of optimizing price-to-performance and resources, it's important to test the applications that you plan to run on the server in addition to comparing standard benchmarks.","spans":[]},{"type":"paragraph","text":"In measuring the execution times of the react-boilerplate project's automated tests, our results showed a small improvement of 4.9% when using a $40 Optimized Droplet compared to a $40 Standard Droplet. For applications that perform similarly and do not take full advantage of all CPUs, choosing the $40 Standard Droplet may be a better choice because of its additional memory (8GB vs 4GB) and larger SSD (160GB vs 25GB).","spans":[]},{"type":"paragraph","text":"However, the Optimized Droplet executed 37.3% faster when running the tests sequentially. For compute-intensive applications that use a single vCPU, this difference may be significant enough to choose the Optimized Droplet for the same price as the Standard Droplet.","spans":[]},{"type":"paragraph","text":"If your application can run in a clustered mode with a specific number of CPU resources, you may be able to optimize price to resources by using a Standard Plan with more CPU, RAM and SSD versus a lower number of higher powered CPUs. We saw the best performance on both Droplets when we set the number of application instances to match the number of available vCPUs, where Optimized Droplets still outperformed Standard Droplets by a significant 21.7%, though the additional RAM and SSD in Standard Droplets may be preferable.","spans":[]},{"type":"paragraph","text":"The tests performed in this article are not designed to be comprehensive, but are tailored to the types of applications that typically consume time and CPU resources. To maximize price-to-performance and resources for your applications, you can test various Droplet configurations and measure execution times of the typical jobs you place on your servers.","spans":[]},{"type":"heading4","text":"Test Droplets for Your Apps","spans":[{"start":0,"end":27,"type":"hyperlink","data":{"link_type":"Web","url":"https://cloud.digitalocean.com/droplets/new?size%3Dc-2-4gib&amp;sa=D&amp;ust=1517850525227000&amp;usg=AFQjCNFVsICZq1AQ3h9BvYxBw3rFjUeCmw"}}]}],"blog_post_date":"2018-02-06","tags":[{"tag1":{"tag":"Product Updates","_linkType":"Link.document","_meta":{"uid":"product-updates"}}}],"_meta":{"uid":"a-practical-droplet-performance-comparison"}}},{"node":{"author":{"_linkType":"Link.document","author_name":"Lisa Tagliaferri","author_image":{"dimensions":{"width":1490,"height":1608},"alt":"Lisa Tagliaferri","copyright":null,"url":"https://images.prismic.io/www-static/0d614f5dd9d938e9b5985c6817831c72ddf3c39a_lisa-tagliaferri-1.jpg?auto=compress,format"},"_meta":{"uid":"lisa_tagliaferri"}},"blog_header_image":{"dimensions":{"width":784,"height":418},"alt":"Snake illustration","copyright":null,"url":"https://images.prismic.io/www-static/ce3dffbca716ef5e3db683fbd2ac9dbda9c7c32b_ebook_python_blog.png?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"How To Code in Python: A DigitalOcean eBook","spans":[]}],"blog_post_content":[{"type":"paragraph","text":"We have always been community-focused at DigitalOcean. On our Community site, we offer a few ways that developers can connect with each other, through sharing projects, learning about meetups, or answering questions. Additionally, we have over 1,800 technical tutorials, written by both external community members and internal technical writers, that have been designed to support the learning pathways of software engineers and system administrators as they develop their skills and scale their projects.","spans":[{"start":62,"end":76,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community"}}]},{"type":"paragraph","text":"Since joining the DigitalOcean Community team, I have focused on curriculum development and technical writing related to Python software development. Today, I am happy to share that we are repackaging the “How To Code in Python 3” tutorial series as an eBook that can serve as both a teaching tool for beginners and a point of reference for more seasoned developers.","spans":[{"start":206,"end":229,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/tutorial_series/how-to-code-in-python-3"}}]},{"type":"paragraph","text":"Our goal in making this tutorial series available in an eBook format is to facilitate access to this educational content. This is especially significant for people with limited internet access, long commutes without wifi, or who primarily access written material from mobile devices. Our hope is that the people who will benefit from this eBook will become more knowledgeable about how coding works, and thereby increase the number of technology stakeholders, decision makers, and knowledge producers who can work to build better software for everyone. By offering a new format of this content, we would like to drive engagement with and interest in software development across broader and more diverse communities.","spans":[]},{"type":"heading3","text":"Creating an eBook","spans":[]},{"type":"paragraph","text":"This eBook project came about during a DigitalOcean company-wide Hackathon. Hackathons offer a great environment to test out projects that teams have been thinking about taking on, but have not been able to devote the time and resources to during a regular work week. Our team, which we nicknamed Bookworms, consisted of Brian Boucheron (Technical Writer), Kasia Bojanowska (Senior Visual Designer), and myself.","spans":[{"start":39,"end":74,"type":"hyperlink","data":{"link_type":"Web","url":"https://blog.digitalocean.com/company-hackathons/"}}]},{"type":"paragraph","text":"Brian was our eBook developer. He used pandoc, GNU Make, and Perl scripting to automate the eBook creation process from the original tutorial markdown. For some final stylistic choices, he has done some hand crafting along the way, but has worked to ensure that the eBook can be read as its user desires across devices. We intend to release relevant source code in a repository for others to extend and modify.","spans":[]},{"type":"paragraph","text":"Kasia has done a lot of the design work that sets DigitalOcean’s tutorials and brand apart, and has conceived of a new vibrant cover for this eBook. Designs and imagery that invite readers in are an instrumental element of book conception, and Kasia’s dynamic image inspires curiosity and playfulness.","spans":[]},{"type":"paragraph","text":"Since the Hackathon, I have worked to ensure that this eBook is made publicly available from major eBook distributors, is catalogued in libraries, and made available as an open educational resource in schools and universities.","spans":[]},{"type":"heading3","text":"What Is an Open Educational Resource?","spans":[]},{"type":"paragraph","text":"Open educational resources (OERs) are texts or digital assets that can be used for teaching, learning, and research. What is significant about them is that they are openly accessible and openly licensed. At DigitalOcean, we use a Creative Commons License on all of our tutorials so that others can freely translate our technical content to other languages to encourage learning.","spans":[{"start":221,"end":254,"type":"hyperlink","data":{"link_type":"Web","url":"https://creativecommons.org/licenses/by-nc-sa/4.0/"}}]},{"type":"paragraph","text":"Each version of the eBook that is made publicly available will have a separate ISBN in order to facilitate access to the book. I have been working with the librarians at the City University of New York’s Brooklyn College and Graduate Center in order to catalogue the eBook and make it available for students as an open educational resource. If you would like to see this eBook in your library, share this WorldCat link with your local librarian.","spans":[{"start":394,"end":418,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.worldcat.org/title/how-to-code-in-python-3/oclc/1020289950"}}]},{"type":"paragraph","text":"By having this eBook available in libraries and within OER repositories, more students will be able to access computer programming learning material without having to pay textbook prices for that privilege.","spans":[]},{"type":"paragraph","text":"We hope that readers who learn from or reference this eBook will be empowered to make their own contributions to open-source code via software and documentation pull requests or repository maintenance. Our community is bigger than just us, and building software together can make sure that everyone has an opportunity to participate in the technology we use every day.","spans":[]},{"type":"paragraph","text":"You can now download the free eBook in one of the following formats:","spans":[]},{"type":"list-item","text":"How To Code in Python EPUB","spans":[{"start":0,"end":26,"type":"hyperlink","data":{"link_type":"Web","url":"https://do.co/python-book-epub"}}]},{"type":"list-item","text":"How To Code in Python PDF","spans":[{"start":0,"end":25,"type":"hyperlink","data":{"link_type":"Web","url":"https://do.co/python-book-pdf"}}]},{"type":"paragraph","text":"Lisa Tagliaferri is the manager of Community Content at DigitalOcean. In addition to writing about Python, Lisa helps people find solutions through technology and infrastructure. Holding a PhD from CUNY, Lisa has a continued interest in interdisciplinary research, and is committed to community building through education. Find her on Twitter @lisaironcutter.","spans":[{"start":0,"end":359,"type":"em"},{"start":343,"end":358,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.twitter.com/lisaironcutter"}}]}],"blog_post_date":"2018-02-01","tags":[{"tag1":{"tag":"Community","_linkType":"Link.document","_meta":{"uid":"community"}}}],"_meta":{"uid":"how-to-code-in-python-ebook"}}}]}}}